diff --git a/design/.htaccess b/design/.htaccess new file mode 100644 index 0000000..2de56d1 --- /dev/null +++ b/design/.htaccess @@ -0,0 +1 @@ +RemoveType .phtml .php .php3 .php4 .php5 .php6 .phps .cgi .exe .pl .asp .aspx .shtml .shtm .fcgi .fpl .jsp .htm .html .wml \ No newline at end of file diff --git a/design/atomic/css/acord/css/style.css b/design/atomic/css/acord/css/style.css new file mode 100644 index 0000000..9ac4362 --- /dev/null +++ b/design/atomic/css/acord/css/style.css @@ -0,0 +1,37 @@ +/* */ +ul.vertmenu { + padding:0; + margin:10px 15px; + text-transform: uppercase; +} +ul.vertmenu li { + padding:2px 0; + margin:0; + list-style: none; + BACKGROUND-IMAGE: url(../img/leftmenublock.jpg); + BACKGROUND-REPEAT: repeat-x; + BACKGROUND-POSITION: left top; +} +ul.vertmenu li ul { + padding:0; + margin:0; + text-indent: 5px; + display:none; + text-transform: none; +} +ul.vertmenu li ul li { + BACKGROUND-IMAGE: url(../img/leftmenublockinside.jpg); + BACKGROUND-REPEAT: repeat-x; + BACKGROUND-POSITION: left top; +} +ul#myvertmenu a { /* */ + padding-left: 8px; + text-decoration: none; +} +ul#myvertmenu a.collapsed { + background:url('../img/collapsed.gif') left 6px no-repeat; +} +ul#myvertmenu a.expanded { + background:url('../img/expanded.gif') left 6px no-repeat; +} +.none{display: none;} \ No newline at end of file diff --git a/design/atomic/css/acord/images/collapsed.gif b/design/atomic/css/acord/images/collapsed.gif new file mode 100644 index 0000000..55e2dd9 Binary files /dev/null and b/design/atomic/css/acord/images/collapsed.gif differ diff --git a/design/atomic/css/acord/images/expanded.gif b/design/atomic/css/acord/images/expanded.gif new file mode 100644 index 0000000..c302392 Binary files /dev/null and b/design/atomic/css/acord/images/expanded.gif differ diff --git a/design/atomic/css/acord/images/leftmenublock.jpg b/design/atomic/css/acord/images/leftmenublock.jpg new file mode 100644 index 0000000..8999f3b Binary files /dev/null and b/design/atomic/css/acord/images/leftmenublock.jpg differ diff --git a/design/atomic/css/acord/images/leftmenublockinside.jpg b/design/atomic/css/acord/images/leftmenublockinside.jpg new file mode 100644 index 0000000..3286f48 Binary files /dev/null and b/design/atomic/css/acord/images/leftmenublockinside.jpg differ diff --git a/design/atomic/css/acord/js/jquery.cookie.js b/design/atomic/css/acord/js/jquery.cookie.js new file mode 100644 index 0000000..6df1fac --- /dev/null +++ b/design/atomic/css/acord/js/jquery.cookie.js @@ -0,0 +1,96 @@ +/** + * Cookie plugin + * + * Copyright (c) 2006 Klaus Hartl (stilbuero.de) + * Dual licensed under the MIT and GPL licenses: + * http://www.opensource.org/licenses/mit-license.php + * http://www.gnu.org/licenses/gpl.html + * + */ + +/** + * Create a cookie with the given name and value and other optional parameters. + * + * @example $.cookie('the_cookie', 'the_value'); + * @desc Set the value of a cookie. + * @example $.cookie('the_cookie', 'the_value', { expires: 7, path: '/', domain: 'jquery.com', secure: true }); + * @desc Create a cookie with all available options. + * @example $.cookie('the_cookie', 'the_value'); + * @desc Create a session cookie. + * @example $.cookie('the_cookie', null); + * @desc Delete a cookie by passing null as value. Keep in mind that you have to use the same path and domain + * used when the cookie was set. + * + * @param String name The name of the cookie. + * @param String value The value of the cookie. + * @param Object options An object literal containing key/value pairs to provide optional cookie attributes. + * @option Number|Date expires Either an integer specifying the expiration date from now on in days or a Date object. + * If a negative value is specified (e.g. a date in the past), the cookie will be deleted. + * If set to null or omitted, the cookie will be a session cookie and will not be retained + * when the the browser exits. + * @option String path The value of the path atribute of the cookie (default: path of page that created the cookie). + * @option String domain The value of the domain attribute of the cookie (default: domain of page that created the cookie). + * @option Boolean secure If true, the secure attribute of the cookie will be set and the cookie transmission will + * require a secure protocol (like HTTPS). + * @type undefined + * + * @name $.cookie + * @cat Plugins/Cookie + * @author Klaus Hartl/klaus.hartl@stilbuero.de + */ + +/** + * Get the value of a cookie with the given name. + * + * @example $.cookie('the_cookie'); + * @desc Get the value of a cookie. + * + * @param String name The name of the cookie. + * @return The value of the cookie. + * @type String + * + * @name $.cookie + * @cat Plugins/Cookie + * @author Klaus Hartl/klaus.hartl@stilbuero.de + */ +jQuery.cookie = function(name, value, options) { + if (typeof value != 'undefined') { // name and value given, set cookie + options = options || {}; + if (value === null) { + value = ''; + options.expires = -1; + } + var expires = ''; + if (options.expires && (typeof options.expires == 'number' || options.expires.toUTCString)) { + var date; + if (typeof options.expires == 'number') { + date = new Date(); + date.setTime(date.getTime() + (options.expires * 24 * 60 * 60 * 1000)); + } else { + date = options.expires; + } + expires = '; expires=' + date.toUTCString(); // use expires attribute, max-age is not supported by IE + } + // CAUTION: Needed to parenthesize options.path and options.domain + // in the following expressions, otherwise they evaluate to undefined + // in the packed version for some reason... + var path = options.path ? '; path=' + (options.path) : ''; + var domain = options.domain ? '; domain=' + (options.domain) : ''; + var secure = options.secure ? '; secure' : ''; + document.cookie = [name, '=', encodeURIComponent(value), expires, path, domain, secure].join(''); + } else { // only name given, get cookie + var cookieValue = null; + if (document.cookie && document.cookie != '') { + var cookies = document.cookie.split(';'); + for (var i = 0; i < cookies.length; i++) { + var cookie = jQuery.trim(cookies[i]); + // Does this cookie string begin with the name we want? + if (cookie.substring(0, name.length + 1) == (name + '=')) { + cookieValue = decodeURIComponent(cookie.substring(name.length + 1)); + break; + } + } + } + return cookieValue; + } +}; \ No newline at end of file diff --git a/design/atomic/css/acord/js/jquery.js b/design/atomic/css/acord/js/jquery.js new file mode 100644 index 0000000..5ee77bd --- /dev/null +++ b/design/atomic/css/acord/js/jquery.js @@ -0,0 +1,11 @@ +/* + * jQuery 1.2.6 - New Wave Javascript + * + * Copyright (c) 2008 John Resig (jquery.com) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * $Date: 2008/05/30 21:41:14 $ + * $Rev: 5685 $ + */ +eval(function(p,a,c,k,e,r){e=function(c){return(c35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('(H(){J w=1b.4M,3m$=1b.$;J D=1b.4M=1b.$=H(a,b){I 2B D.17.5j(a,b)};J u=/^[^<]*(<(.|\\s)+>)[^>]*$|^#(\\w+)$/,62=/^.[^:#\\[\\.]*$/,12;D.17=D.44={5j:H(d,b){d=d||S;G(d.16){7[0]=d;7.K=1;I 7}G(1j d=="23"){J c=u.2D(d);G(c&&(c[1]||!b)){G(c[1])d=D.4h([c[1]],b);N{J a=S.61(c[3]);G(a){G(a.2v!=c[3])I D().2q(d);I D(a)}d=[]}}N I D(b).2q(d)}N G(D.1D(d))I D(S)[D.17.27?"27":"43"](d);I 7.6Y(D.2d(d))},5w:"1.2.6",8G:H(){I 7.K},K:0,3p:H(a){I a==12?D.2d(7):7[a]},2I:H(b){J a=D(b);a.5n=7;I a},6Y:H(a){7.K=0;2p.44.1p.1w(7,a);I 7},P:H(a,b){I D.P(7,a,b)},5i:H(b){J a=-1;I D.2L(b&&b.5w?b[0]:b,7)},1K:H(c,a,b){J d=c;G(c.1q==56)G(a===12)I 7[0]&&D[b||"1K"](7[0],c);N{d={};d[c]=a}I 7.P(H(i){R(c 1n d)D.1K(b?7.V:7,c,D.1i(7,d[c],b,i,c))})},1g:H(b,a){G((b==\'2h\'||b==\'1Z\')&&3d(a)<0)a=12;I 7.1K(b,a,"2a")},1r:H(b){G(1j b!="49"&&b!=U)I 7.4E().3v((7[0]&&7[0].2z||S).5F(b));J a="";D.P(b||7,H(){D.P(7.3t,H(){G(7.16!=8)a+=7.16!=1?7.76:D.17.1r([7])})});I a},5z:H(b){G(7[0])D(b,7[0].2z).5y().39(7[0]).2l(H(){J a=7;1B(a.1x)a=a.1x;I a}).3v(7);I 7},8Y:H(a){I 7.P(H(){D(7).6Q().5z(a)})},8R:H(a){I 7.P(H(){D(7).5z(a)})},3v:H(){I 7.3W(19,M,Q,H(a){G(7.16==1)7.3U(a)})},6F:H(){I 7.3W(19,M,M,H(a){G(7.16==1)7.39(a,7.1x)})},6E:H(){I 7.3W(19,Q,Q,H(a){7.1d.39(a,7)})},5q:H(){I 7.3W(19,Q,M,H(a){7.1d.39(a,7.2H)})},3l:H(){I 7.5n||D([])},2q:H(b){J c=D.2l(7,H(a){I D.2q(b,a)});I 7.2I(/[^+>] [^+>]/.11(b)||b.1h("..")>-1?D.4r(c):c)},5y:H(e){J f=7.2l(H(){G(D.14.1f&&!D.4n(7)){J a=7.6o(M),5h=S.3h("1v");5h.3U(a);I D.4h([5h.4H])[0]}N I 7.6o(M)});J d=f.2q("*").5c().P(H(){G(7[E]!=12)7[E]=U});G(e===M)7.2q("*").5c().P(H(i){G(7.16==3)I;J c=D.L(7,"3w");R(J a 1n c)R(J b 1n c[a])D.W.1e(d[i],a,c[a][b],c[a][b].L)});I f},1E:H(b){I 7.2I(D.1D(b)&&D.3C(7,H(a,i){I b.1k(a,i)})||D.3g(b,7))},4Y:H(b){G(b.1q==56)G(62.11(b))I 7.2I(D.3g(b,7,M));N b=D.3g(b,7);J a=b.K&&b[b.K-1]!==12&&!b.16;I 7.1E(H(){I a?D.2L(7,b)<0:7!=b})},1e:H(a){I 7.2I(D.4r(D.2R(7.3p(),1j a==\'23\'?D(a):D.2d(a))))},3F:H(a){I!!a&&D.3g(a,7).K>0},7T:H(a){I 7.3F("."+a)},6e:H(b){G(b==12){G(7.K){J c=7[0];G(D.Y(c,"2A")){J e=c.64,63=[],15=c.15,2V=c.O=="2A-2V";G(e<0)I U;R(J i=2V?e:0,2f=2V?e+1:15.K;i<2f;i++){J d=15[i];G(d.2W){b=D.14.1f&&!d.at.2x.an?d.1r:d.2x;G(2V)I b;63.1p(b)}}I 63}N I(7[0].2x||"").1o(/\\r/g,"")}I 12}G(b.1q==4L)b+=\'\';I 7.P(H(){G(7.16!=1)I;G(b.1q==2p&&/5O|5L/.11(7.O))7.4J=(D.2L(7.2x,b)>=0||D.2L(7.34,b)>=0);N G(D.Y(7,"2A")){J a=D.2d(b);D("9R",7).P(H(){7.2W=(D.2L(7.2x,a)>=0||D.2L(7.1r,a)>=0)});G(!a.K)7.64=-1}N 7.2x=b})},2K:H(a){I a==12?(7[0]?7[0].4H:U):7.4E().3v(a)},7b:H(a){I 7.5q(a).21()},79:H(i){I 7.3s(i,i+1)},3s:H(){I 7.2I(2p.44.3s.1w(7,19))},2l:H(b){I 7.2I(D.2l(7,H(a,i){I b.1k(a,i,a)}))},5c:H(){I 7.1e(7.5n)},L:H(d,b){J a=d.1R(".");a[1]=a[1]?"."+a[1]:"";G(b===12){J c=7.5C("9z"+a[1]+"!",[a[0]]);G(c===12&&7.K)c=D.L(7[0],d);I c===12&&a[1]?7.L(a[0]):c}N I 7.1P("9u"+a[1]+"!",[a[0],b]).P(H(){D.L(7,d,b)})},3b:H(a){I 7.P(H(){D.3b(7,a)})},3W:H(g,f,h,d){J e=7.K>1,3x;I 7.P(H(){G(!3x){3x=D.4h(g,7.2z);G(h)3x.9o()}J b=7;G(f&&D.Y(7,"1T")&&D.Y(3x[0],"4F"))b=7.3H("22")[0]||7.3U(7.2z.3h("22"));J c=D([]);D.P(3x,H(){J a=e?D(7).5y(M)[0]:7;G(D.Y(a,"1m"))c=c.1e(a);N{G(a.16==1)c=c.1e(D("1m",a).21());d.1k(b,a)}});c.P(6T)})}};D.17.5j.44=D.17;H 6T(i,a){G(a.4d)D.3Y({1a:a.4d,31:Q,1O:"1m"});N D.5u(a.1r||a.6O||a.4H||"");G(a.1d)a.1d.37(a)}H 1z(){I+2B 8J}D.1l=D.17.1l=H(){J b=19[0]||{},i=1,K=19.K,4x=Q,15;G(b.1q==8I){4x=b;b=19[1]||{};i=2}G(1j b!="49"&&1j b!="H")b={};G(K==i){b=7;--i}R(;i-1}},6q:H(b,c,a){J e={};R(J d 1n c){e[d]=b.V[d];b.V[d]=c[d]}a.1k(b);R(J d 1n c)b.V[d]=e[d]},1g:H(d,e,c){G(e=="2h"||e=="1Z"){J b,3X={30:"5x",5g:"1G",18:"3I"},35=e=="2h"?["5e","6k"]:["5G","6i"];H 5b(){b=e=="2h"?d.8f:d.8c;J a=0,2C=0;D.P(35,H(){a+=3d(D.2a(d,"57"+7,M))||0;2C+=3d(D.2a(d,"2C"+7+"4b",M))||0});b-=29.83(a+2C)}G(D(d).3F(":4j"))5b();N D.6q(d,3X,5b);I 29.2f(0,b)}I D.2a(d,e,c)},2a:H(f,l,k){J e,V=f.V;H 3E(b){G(!D.14.2k)I Q;J a=3P.54(b,U);I!a||a.52("3E")==""}G(l=="1y"&&D.14.1f){e=D.1K(V,"1y");I e==""?"1":e}G(D.14.2G&&l=="18"){J d=V.50;V.50="0 7Y 7W";V.50=d}G(l.1I(/4i/i))l=y;G(!k&&V&&V[l])e=V[l];N G(3P.54){G(l.1I(/4i/i))l="4i";l=l.1o(/([A-Z])/g,"-$1").3y();J c=3P.54(f,U);G(c&&!3E(f))e=c.52(l);N{J g=[],2E=[],a=f,i=0;R(;a&&3E(a);a=a.1d)2E.6h(a);R(;i<2E.K;i++)G(3E(2E[i])){g[i]=2E[i].V.18;2E[i].V.18="3I"}e=l=="18"&&g[2E.K-1]!=U?"2F":(c&&c.52(l))||"";R(i=0;i]*?)\\/>/g,H(b,a,c){I c.1I(/^(aK|4f|7E|aG|4T|7A|aB|3n|az|ay|av)$/i)?b:a+">"});J f=D.3k(d).3y(),1v=h.3h("1v");J e=!f.1h("",""]||!f.1h("",""]||f.1I(/^<(aq|22|am|ak|ai)/)&&[1,"<1T>",""]||!f.1h("<4F")&&[2,"<1T><22>",""]||(!f.1h("<22><4F>",""]||!f.1h("<7E")&&[2,"<1T><22><7q>",""]||D.14.1f&&[1,"1v<1v>",""]||[0,"",""];1v.4H=e[1]+d+e[2];1B(e[0]--)1v=1v.5T;G(D.14.1f){J g=!f.1h("<1T")&&f.1h("<22")<0?1v.1x&&1v.1x.3t:e[1]=="<1T>"&&f.1h("<22")<0?1v.3t:[];R(J j=g.K-1;j>=0;--j)G(D.Y(g[j],"22")&&!g[j].3t.K)g[j].1d.37(g[j]);G(/^\\s/.11(d))1v.39(h.5F(d.1I(/^\\s*/)[0]),1v.1x)}d=D.2d(1v.3t)}G(d.K===0&&(!D.Y(d,"3V")&&!D.Y(d,"2A")))I;G(d[0]==12||D.Y(d,"3V")||d.15)k.1p(d);N k=D.2R(k,d)});I k},1K:H(d,f,c){G(!d||d.16==3||d.16==8)I 12;J e=!D.4n(d),40=c!==12,1f=D.14.1f;f=e&&D.3X[f]||f;G(d.2j){J g=/5Q|4d|V/.11(f);G(f=="2W"&&D.14.2k)d.1d.64;G(f 1n d&&e&&!g){G(40){G(f=="O"&&D.Y(d,"4T")&&d.1d)7p"O a3 a1\'t 9V 9U";d[f]=c}G(D.Y(d,"3V")&&d.7i(f))I d.7i(f).76;I d[f]}G(1f&&e&&f=="V")I D.1K(d.V,"9T",c);G(40)d.9Q(f,""+c);J h=1f&&e&&g?d.4G(f,2):d.4G(f);I h===U?12:h}G(1f&&f=="1y"){G(40){d.6B=1;d.1E=(d.1E||"").1o(/7f\\([^)]*\\)/,"")+(3r(c)+\'\'=="9L"?"":"7f(1y="+c*7a+")")}I d.1E&&d.1E.1h("1y=")>=0?(3d(d.1E.1I(/1y=([^)]*)/)[1])/7a)+\'\':""}f=f.1o(/-([a-z])/9H,H(a,b){I b.2r()});G(40)d[f]=c;I d[f]},3k:H(a){I(a||"").1o(/^\\s+|\\s+$/g,"")},2d:H(b){J a=[];G(b!=U){J i=b.K;G(i==U||b.1R||b.4I||b.1k)a[0]=b;N 1B(i)a[--i]=b[i]}I a},2L:H(b,a){R(J i=0,K=a.K;i*",7).21();1B(7.1x)7.37(7.1x)}},H(a,b){D.17[a]=H(){I 7.P(b,19)}});D.P(["6N","4b"],H(i,c){J b=c.3y();D.17[b]=H(a){I 7[0]==1b?D.14.2G&&S.1c["5t"+c]||D.14.2k&&1b["5s"+c]||S.70=="6Z"&&S.1C["5t"+c]||S.1c["5t"+c]:7[0]==S?29.2f(29.2f(S.1c["4y"+c],S.1C["4y"+c]),29.2f(S.1c["2i"+c],S.1C["2i"+c])):a==12?(7.K?D.1g(7[0],b):U):7.1g(b,a.1q==56?a:a+"2X")}});H 25(a,b){I a[0]&&3r(D.2a(a[0],b,M),10)||0}J C=D.14.2k&&3r(D.14.5B)<8H?"(?:[\\\\w*3m-]|\\\\\\\\.)":"(?:[\\\\w\\8F-\\8E*3m-]|\\\\\\\\.)",6L=2B 4v("^>\\\\s*("+C+"+)"),6J=2B 4v("^("+C+"+)(#)("+C+"+)"),6I=2B 4v("^([#.]?)("+C+"*)");D.1l({6H:{"":H(a,i,m){I m[2]=="*"||D.Y(a,m[2])},"#":H(a,i,m){I a.4G("2v")==m[2]},":":{8D:H(a,i,m){I im[3]-0},3a:H(a,i,m){I m[3]-0==i},79:H(a,i,m){I m[3]-0==i},3o:H(a,i){I i==0},3S:H(a,i,m,r){I i==r.K-1},6D:H(a,i){I i%2==0},6C:H(a,i){I i%2},"3o-4u":H(a){I a.1d.3H("*")[0]==a},"3S-4u":H(a){I D.3a(a.1d.5T,1,"4l")==a},"8z-4u":H(a){I!D.3a(a.1d.5T,2,"4l")},6W:H(a){I a.1x},4E:H(a){I!a.1x},8y:H(a,i,m){I(a.6O||a.8x||D(a).1r()||"").1h(m[3])>=0},4j:H(a){I"1G"!=a.O&&D.1g(a,"18")!="2F"&&D.1g(a,"5g")!="1G"},1G:H(a){I"1G"==a.O||D.1g(a,"18")=="2F"||D.1g(a,"5g")=="1G"},8w:H(a){I!a.3R},3R:H(a){I a.3R},4J:H(a){I a.4J},2W:H(a){I a.2W||D.1K(a,"2W")},1r:H(a){I"1r"==a.O},5O:H(a){I"5O"==a.O},5L:H(a){I"5L"==a.O},5p:H(a){I"5p"==a.O},3Q:H(a){I"3Q"==a.O},5o:H(a){I"5o"==a.O},6A:H(a){I"6A"==a.O},6z:H(a){I"6z"==a.O},2s:H(a){I"2s"==a.O||D.Y(a,"2s")},4T:H(a){I/4T|2A|6y|2s/i.11(a.Y)},3T:H(a,i,m){I D.2q(m[3],a).K},8t:H(a){I/h\\d/i.11(a.Y)},8s:H(a){I D.3C(D.3O,H(b){I a==b.T}).K}}},6x:[/^(\\[) *@?([\\w-]+) *([!*$^~=]*) *(\'?"?)(.*?)\\4 *\\]/,/^(:)([\\w-]+)\\("?\'?(.*?(\\(.*?\\))?[^(]*?)"?\'?\\)/,2B 4v("^([:.#]*)("+C+"+)")],3g:H(a,c,b){J d,1t=[];1B(a&&a!=d){d=a;J f=D.1E(a,c,b);a=f.t.1o(/^\\s*,\\s*/,"");1t=b?c=f.r:D.2R(1t,f.r)}I 1t},2q:H(t,o){G(1j t!="23")I[t];G(o&&o.16!=1&&o.16!=9)I[];o=o||S;J d=[o],2o=[],3S,Y;1B(t&&3S!=t){J r=[];3S=t;t=D.3k(t);J l=Q,3j=6L,m=3j.2D(t);G(m){Y=m[1].2r();R(J i=0;d[i];i++)R(J c=d[i].1x;c;c=c.2H)G(c.16==1&&(Y=="*"||c.Y.2r()==Y))r.1p(c);d=r;t=t.1o(3j,"");G(t.1h(" ")==0)6M;l=M}N{3j=/^([>+~])\\s*(\\w*)/i;G((m=3j.2D(t))!=U){r=[];J k={};Y=m[2].2r();m=m[1];R(J j=0,3i=d.K;j<3i;j++){J n=m=="~"||m=="+"?d[j].2H:d[j].1x;R(;n;n=n.2H)G(n.16==1){J g=D.L(n);G(m=="~"&&k[g])1X;G(!Y||n.Y.2r()==Y){G(m=="~")k[g]=M;r.1p(n)}G(m=="+")1X}}d=r;t=D.3k(t.1o(3j,""));l=M}}G(t&&!l){G(!t.1h(",")){G(o==d[0])d.4s();2o=D.2R(2o,d);r=d=[o];t=" "+t.6v(1,t.K)}N{J h=6J;J m=h.2D(t);G(m){m=[0,m[2],m[3],m[1]]}N{h=6I;m=h.2D(t)}m[2]=m[2].1o(/\\\\/g,"");J f=d[d.K-1];G(m[1]=="#"&&f&&f.61&&!D.4n(f)){J p=f.61(m[2]);G((D.14.1f||D.14.2G)&&p&&1j p.2v=="23"&&p.2v!=m[2])p=D(\'[@2v="\'+m[2]+\'"]\',f)[0];d=r=p&&(!m[3]||D.Y(p,m[3]))?[p]:[]}N{R(J i=0;d[i];i++){J a=m[1]=="#"&&m[3]?m[3]:m[1]!=""||m[0]==""?"*":m[2];G(a=="*"&&d[i].Y.3y()=="49")a="3n";r=D.2R(r,d[i].3H(a))}G(m[1]==".")r=D.5m(r,m[2]);G(m[1]=="#"){J e=[];R(J i=0;r[i];i++)G(r[i].4G("2v")==m[2]){e=[r[i]];1X}r=e}d=r}t=t.1o(h,"")}}G(t){J b=D.1E(t,r);d=r=b.r;t=D.3k(b.t)}}G(t)d=[];G(d&&o==d[0])d.4s();2o=D.2R(2o,d);I 2o},5m:H(r,m,a){m=" "+m+" ";J c=[];R(J i=0;r[i];i++){J b=(" "+r[i].1F+" ").1h(m)>=0;G(!a&&b||a&&!b)c.1p(r[i])}I c},1E:H(t,r,h){J d;1B(t&&t!=d){d=t;J p=D.6x,m;R(J i=0;p[i];i++){m=p[i].2D(t);G(m){t=t.8r(m[0].K);m[2]=m[2].1o(/\\\\/g,"");1X}}G(!m)1X;G(m[1]==":"&&m[2]=="4Y")r=62.11(m[3])?D.1E(m[3],r,M).r:D(r).4Y(m[3]);N G(m[1]==".")r=D.5m(r,m[2],h);N G(m[1]=="["){J g=[],O=m[3];R(J i=0,3i=r.K;i<3i;i++){J a=r[i],z=a[D.3X[m[2]]||m[2]];G(z==U||/5Q|4d|2W/.11(m[2]))z=D.1K(a,m[2])||\'\';G((O==""&&!!z||O=="="&&z==m[5]||O=="!="&&z!=m[5]||O=="^="&&z&&!z.1h(m[5])||O=="$="&&z.6v(z.K-m[5].K)==m[5]||(O=="*="||O=="~=")&&z.1h(m[5])>=0)^h)g.1p(a)}r=g}N G(m[1]==":"&&m[2]=="3a-4u"){J e={},g=[],11=/(-?)(\\d*)n((?:\\+|-)?\\d*)/.2D(m[3]=="6D"&&"2n"||m[3]=="6C"&&"2n+1"||!/\\D/.11(m[3])&&"8q+"+m[3]||m[3]),3o=(11[1]+(11[2]||1))-0,d=11[3]-0;R(J i=0,3i=r.K;i<3i;i++){J j=r[i],1d=j.1d,2v=D.L(1d);G(!e[2v]){J c=1;R(J n=1d.1x;n;n=n.2H)G(n.16==1)n.4q=c++;e[2v]=M}J b=Q;G(3o==0){G(j.4q==d)b=M}N G((j.4q-d)%3o==0&&(j.4q-d)/3o>=0)b=M;G(b^h)g.1p(j)}r=g}N{J f=D.6H[m[1]];G(1j f=="49")f=f[m[2]];G(1j f=="23")f=6u("Q||H(a,i){I "+f+";}");r=D.3C(r,H(a,i){I f(a,i,m,r)},h)}}I{r:r,t:t}},4S:H(b,c){J a=[],1t=b[c];1B(1t&&1t!=S){G(1t.16==1)a.1p(1t);1t=1t[c]}I a},3a:H(a,e,c,b){e=e||1;J d=0;R(;a;a=a[c])G(a.16==1&&++d==e)1X;I a},5v:H(n,a){J r=[];R(;n;n=n.2H){G(n.16==1&&n!=a)r.1p(n)}I r}});D.W={1e:H(f,i,g,e){G(f.16==3||f.16==8)I;G(D.14.1f&&f.4I)f=1b;G(!g.24)g.24=7.24++;G(e!=12){J h=g;g=7.3M(h,H(){I h.1w(7,19)});g.L=e}J j=D.L(f,"3w")||D.L(f,"3w",{}),1H=D.L(f,"1H")||D.L(f,"1H",H(){G(1j D!="12"&&!D.W.5k)I D.W.1H.1w(19.3L.T,19)});1H.T=f;D.P(i.1R(/\\s+/),H(c,b){J a=b.1R(".");b=a[0];g.O=a[1];J d=j[b];G(!d){d=j[b]={};G(!D.W.2t[b]||D.W.2t[b].4p.1k(f)===Q){G(f.3K)f.3K(b,1H,Q);N G(f.6t)f.6t("4o"+b,1H)}}d[g.24]=g;D.W.26[b]=M});f=U},24:1,26:{},21:H(e,h,f){G(e.16==3||e.16==8)I;J i=D.L(e,"3w"),1L,5i;G(i){G(h==12||(1j h=="23"&&h.8p(0)=="."))R(J g 1n i)7.21(e,g+(h||""));N{G(h.O){f=h.2y;h=h.O}D.P(h.1R(/\\s+/),H(b,a){J c=a.1R(".");a=c[0];G(i[a]){G(f)2U i[a][f.24];N R(f 1n i[a])G(!c[1]||i[a][f].O==c[1])2U i[a][f];R(1L 1n i[a])1X;G(!1L){G(!D.W.2t[a]||D.W.2t[a].4A.1k(e)===Q){G(e.6p)e.6p(a,D.L(e,"1H"),Q);N G(e.6n)e.6n("4o"+a,D.L(e,"1H"))}1L=U;2U i[a]}}})}R(1L 1n i)1X;G(!1L){J d=D.L(e,"1H");G(d)d.T=U;D.3b(e,"3w");D.3b(e,"1H")}}},1P:H(h,c,f,g,i){c=D.2d(c);G(h.1h("!")>=0){h=h.3s(0,-1);J a=M}G(!f){G(7.26[h])D("*").1e([1b,S]).1P(h,c)}N{G(f.16==3||f.16==8)I 12;J b,1L,17=D.1D(f[h]||U),W=!c[0]||!c[0].32;G(W){c.6h({O:h,2J:f,32:H(){},3J:H(){},4C:1z()});c[0][E]=M}c[0].O=h;G(a)c[0].6m=M;J d=D.L(f,"1H");G(d)b=d.1w(f,c);G((!17||(D.Y(f,\'a\')&&h=="4V"))&&f["4o"+h]&&f["4o"+h].1w(f,c)===Q)b=Q;G(W)c.4s();G(i&&D.1D(i)){1L=i.1w(f,b==U?c:c.7d(b));G(1L!==12)b=1L}G(17&&g!==Q&&b!==Q&&!(D.Y(f,\'a\')&&h=="4V")){7.5k=M;1U{f[h]()}1V(e){}}7.5k=Q}I b},1H:H(b){J a,1L,38,5f,4m;b=19[0]=D.W.6l(b||1b.W);38=b.O.1R(".");b.O=38[0];38=38[1];5f=!38&&!b.6m;4m=(D.L(7,"3w")||{})[b.O];R(J j 1n 4m){J c=4m[j];G(5f||c.O==38){b.2y=c;b.L=c.L;1L=c.1w(7,19);G(a!==Q)a=1L;G(1L===Q){b.32();b.3J()}}}I a},6l:H(b){G(b[E]==M)I b;J d=b;b={8o:d};J c="8n 8m 8l 8k 2s 8j 47 5d 6j 5E 8i L 8h 8g 4K 2y 5a 59 8e 8b 58 6f 8a 88 4k 87 86 84 6d 2J 4C 6c O 82 81 35".1R(" ");R(J i=c.K;i;i--)b[c[i]]=d[c[i]];b[E]=M;b.32=H(){G(d.32)d.32();d.80=Q};b.3J=H(){G(d.3J)d.3J();d.7Z=M};b.4C=b.4C||1z();G(!b.2J)b.2J=b.6d||S;G(b.2J.16==3)b.2J=b.2J.1d;G(!b.4k&&b.4K)b.4k=b.4K==b.2J?b.6c:b.4K;G(b.58==U&&b.5d!=U){J a=S.1C,1c=S.1c;b.58=b.5d+(a&&a.2e||1c&&1c.2e||0)-(a.6b||0);b.6f=b.6j+(a&&a.2c||1c&&1c.2c||0)-(a.6a||0)}G(!b.35&&((b.47||b.47===0)?b.47:b.5a))b.35=b.47||b.5a;G(!b.59&&b.5E)b.59=b.5E;G(!b.35&&b.2s)b.35=(b.2s&1?1:(b.2s&2?3:(b.2s&4?2:0)));I b},3M:H(a,b){b.24=a.24=a.24||b.24||7.24++;I b},2t:{27:{4p:H(){55();I},4A:H(){I}},3D:{4p:H(){G(D.14.1f)I Q;D(7).2O("53",D.W.2t.3D.2y);I M},4A:H(){G(D.14.1f)I Q;D(7).4e("53",D.W.2t.3D.2y);I M},2y:H(a){G(F(a,7))I M;a.O="3D";I D.W.1H.1w(7,19)}},3N:{4p:H(){G(D.14.1f)I Q;D(7).2O("51",D.W.2t.3N.2y);I M},4A:H(){G(D.14.1f)I Q;D(7).4e("51",D.W.2t.3N.2y);I M},2y:H(a){G(F(a,7))I M;a.O="3N";I D.W.1H.1w(7,19)}}}};D.17.1l({2O:H(c,a,b){I c=="4X"?7.2V(c,a,b):7.P(H(){D.W.1e(7,c,b||a,b&&a)})},2V:H(d,b,c){J e=D.W.3M(c||b,H(a){D(7).4e(a,e);I(c||b).1w(7,19)});I 7.P(H(){D.W.1e(7,d,e,c&&b)})},4e:H(a,b){I 7.P(H(){D.W.21(7,a,b)})},1P:H(c,a,b){I 7.P(H(){D.W.1P(c,a,7,M,b)})},5C:H(c,a,b){I 7[0]&&D.W.1P(c,a,7[0],Q,b)},2m:H(b){J c=19,i=1;1B(i=0){J i=g.3s(e,g.K);g=g.3s(0,e)}c=c||H(){};J f="2P";G(d)G(D.1D(d)){c=d;d=U}N{d=D.3n(d);f="6g"}J h=7;D.3Y({1a:g,O:f,1O:"2K",L:d,1J:H(a,b){G(b=="1W"||b=="7J")h.2K(i?D("<1v/>").3v(a.4U.1o(/<1m(.|\\s)*?\\/1m>/g,"")).2q(i):a.4U);h.P(c,[a.4U,b,a])}});I 7},aL:H(){I D.3n(7.7I())},7I:H(){I 7.2l(H(){I D.Y(7,"3V")?D.2d(7.aH):7}).1E(H(){I 7.34&&!7.3R&&(7.4J||/2A|6y/i.11(7.Y)||/1r|1G|3Q/i.11(7.O))}).2l(H(i,c){J b=D(7).6e();I b==U?U:b.1q==2p?D.2l(b,H(a,i){I{34:c.34,2x:a}}):{34:c.34,2x:b}}).3p()}});D.P("7H,7G,7F,7D,7C,7B".1R(","),H(i,o){D.17[o]=H(f){I 7.2O(o,f)}});J B=1z();D.1l({3p:H(d,b,a,c){G(D.1D(b)){a=b;b=U}I D.3Y({O:"2P",1a:d,L:b,1W:a,1O:c})},aE:H(b,a){I D.3p(b,U,a,"1m")},aD:H(c,b,a){I D.3p(c,b,a,"3z")},aC:H(d,b,a,c){G(D.1D(b)){a=b;b={}}I D.3Y({O:"6g",1a:d,L:b,1W:a,1O:c})},aA:H(a){D.1l(D.60,a)},60:{1a:5Z.5Q,26:M,O:"2P",2T:0,7z:"4R/x-ax-3V-aw",7x:M,31:M,L:U,5Y:U,3Q:U,4Q:{2N:"4R/2N, 1r/2N",2K:"1r/2K",1m:"1r/4t, 4R/4t",3z:"4R/3z, 1r/4t",1r:"1r/as",4w:"*/*"}},4z:{},3Y:H(s){s=D.1l(M,s,D.1l(M,{},D.60,s));J g,2Z=/=\\?(&|$)/g,1u,L,O=s.O.2r();G(s.L&&s.7x&&1j s.L!="23")s.L=D.3n(s.L);G(s.1O=="4P"){G(O=="2P"){G(!s.1a.1I(2Z))s.1a+=(s.1a.1I(/\\?/)?"&":"?")+(s.4P||"7u")+"=?"}N G(!s.L||!s.L.1I(2Z))s.L=(s.L?s.L+"&":"")+(s.4P||"7u")+"=?";s.1O="3z"}G(s.1O=="3z"&&(s.L&&s.L.1I(2Z)||s.1a.1I(2Z))){g="4P"+B++;G(s.L)s.L=(s.L+"").1o(2Z,"="+g+"$1");s.1a=s.1a.1o(2Z,"="+g+"$1");s.1O="1m";1b[g]=H(a){L=a;1W();1J();1b[g]=12;1U{2U 1b[g]}1V(e){}G(i)i.37(h)}}G(s.1O=="1m"&&s.1Y==U)s.1Y=Q;G(s.1Y===Q&&O=="2P"){J j=1z();J k=s.1a.1o(/(\\?|&)3m=.*?(&|$)/,"$ap="+j+"$2");s.1a=k+((k==s.1a)?(s.1a.1I(/\\?/)?"&":"?")+"3m="+j:"")}G(s.L&&O=="2P"){s.1a+=(s.1a.1I(/\\?/)?"&":"?")+s.L;s.L=U}G(s.26&&!D.4O++)D.W.1P("7H");J n=/^(?:\\w+:)?\\/\\/([^\\/?#]+)/;G(s.1O=="1m"&&O=="2P"&&n.11(s.1a)&&n.2D(s.1a)[1]!=5Z.al){J i=S.3H("6w")[0];J h=S.3h("1m");h.4d=s.1a;G(s.7t)h.aj=s.7t;G(!g){J l=Q;h.ah=h.ag=H(){G(!l&&(!7.3f||7.3f=="68"||7.3f=="1J")){l=M;1W();1J();i.37(h)}}}i.3U(h);I 12}J m=Q;J c=1b.7s?2B 7s("ae.ac"):2B 7r();G(s.5Y)c.6R(O,s.1a,s.31,s.5Y,s.3Q);N c.6R(O,s.1a,s.31);1U{G(s.L)c.4B("ab-aa",s.7z);G(s.5S)c.4B("a9-5R-a8",D.4z[s.1a]||"a7, a6 a5 a4 5N:5N:5N a2");c.4B("X-9Z-9Y","7r");c.4B("9W",s.1O&&s.4Q[s.1O]?s.4Q[s.1O]+", */*":s.4Q.4w)}1V(e){}G(s.7m&&s.7m(c,s)===Q){s.26&&D.4O--;c.7l();I Q}G(s.26)D.W.1P("7B",[c,s]);J d=H(a){G(!m&&c&&(c.3f==4||a=="2T")){m=M;G(f){7k(f);f=U}1u=a=="2T"&&"2T"||!D.7j(c)&&"3e"||s.5S&&D.7h(c,s.1a)&&"7J"||"1W";G(1u=="1W"){1U{L=D.6X(c,s.1O,s.9S)}1V(e){1u="5J"}}G(1u=="1W"){J b;1U{b=c.5I("7g-5R")}1V(e){}G(s.5S&&b)D.4z[s.1a]=b;G(!g)1W()}N D.5H(s,c,1u);1J();G(s.31)c=U}};G(s.31){J f=4I(d,13);G(s.2T>0)3B(H(){G(c){c.7l();G(!m)d("2T")}},s.2T)}1U{c.9P(s.L)}1V(e){D.5H(s,c,U,e)}G(!s.31)d();H 1W(){G(s.1W)s.1W(L,1u);G(s.26)D.W.1P("7C",[c,s])}H 1J(){G(s.1J)s.1J(c,1u);G(s.26)D.W.1P("7F",[c,s]);G(s.26&&!--D.4O)D.W.1P("7G")}I c},5H:H(s,a,b,e){G(s.3e)s.3e(a,b,e);G(s.26)D.W.1P("7D",[a,s,e])},4O:0,7j:H(a){1U{I!a.1u&&5Z.9O=="5p:"||(a.1u>=7e&&a.1u<9N)||a.1u==7c||a.1u==9K||D.14.2k&&a.1u==12}1V(e){}I Q},7h:H(a,c){1U{J b=a.5I("7g-5R");I a.1u==7c||b==D.4z[c]||D.14.2k&&a.1u==12}1V(e){}I Q},6X:H(a,c,b){J d=a.5I("9J-O"),2N=c=="2N"||!c&&d&&d.1h("2N")>=0,L=2N?a.9I:a.4U;G(2N&&L.1C.2j=="5J")7p"5J";G(b)L=b(L,c);G(c=="1m")D.5u(L);G(c=="3z")L=6u("("+L+")");I L},3n:H(a){J s=[];G(a.1q==2p||a.5w)D.P(a,H(){s.1p(3u(7.34)+"="+3u(7.2x))});N R(J j 1n a)G(a[j]&&a[j].1q==2p)D.P(a[j],H(){s.1p(3u(j)+"="+3u(7))});N s.1p(3u(j)+"="+3u(D.1D(a[j])?a[j]():a[j]));I s.6s("&").1o(/%20/g,"+")}});D.17.1l({1N:H(c,b){I c?7.2g({1Z:"1N",2h:"1N",1y:"1N"},c,b):7.1E(":1G").P(H(){7.V.18=7.5D||"";G(D.1g(7,"18")=="2F"){J a=D("<"+7.2j+" />").6P("1c");7.V.18=a.1g("18");G(7.V.18=="2F")7.V.18="3I";a.21()}}).3l()},1M:H(b,a){I b?7.2g({1Z:"1M",2h:"1M",1y:"1M"},b,a):7.1E(":4j").P(H(){7.5D=7.5D||D.1g(7,"18");7.V.18="2F"}).3l()},78:D.17.2m,2m:H(a,b){I D.1D(a)&&D.1D(b)?7.78.1w(7,19):a?7.2g({1Z:"2m",2h:"2m",1y:"2m"},a,b):7.P(H(){D(7)[D(7).3F(":1G")?"1N":"1M"]()})},9G:H(b,a){I 7.2g({1Z:"1N"},b,a)},9F:H(b,a){I 7.2g({1Z:"1M"},b,a)},9E:H(b,a){I 7.2g({1Z:"2m"},b,a)},9D:H(b,a){I 7.2g({1y:"1N"},b,a)},9M:H(b,a){I 7.2g({1y:"1M"},b,a)},9C:H(c,a,b){I 7.2g({1y:a},c,b)},2g:H(k,j,i,g){J h=D.77(j,i,g);I 7[h.36===Q?"P":"36"](H(){G(7.16!=1)I Q;J f=D.1l({},h),p,1G=D(7).3F(":1G"),46=7;R(p 1n k){G(k[p]=="1M"&&1G||k[p]=="1N"&&!1G)I f.1J.1k(7);G(p=="1Z"||p=="2h"){f.18=D.1g(7,"18");f.33=7.V.33}}G(f.33!=U)7.V.33="1G";f.45=D.1l({},k);D.P(k,H(c,a){J e=2B D.28(46,f,c);G(/2m|1N|1M/.11(a))e[a=="2m"?1G?"1N":"1M":a](k);N{J b=a.6r().1I(/^([+-]=)?([\\d+-.]+)(.*)$/),2b=e.1t(M)||0;G(b){J d=3d(b[2]),2M=b[3]||"2X";G(2M!="2X"){46.V[c]=(d||1)+2M;2b=((d||1)/e.1t(M))*2b;46.V[c]=2b+2M}G(b[1])d=((b[1]=="-="?-1:1)*d)+2b;e.3G(2b,d,2M)}N e.3G(2b,a,"")}});I M})},36:H(a,b){G(D.1D(a)||(a&&a.1q==2p)){b=a;a="28"}G(!a||(1j a=="23"&&!b))I A(7[0],a);I 7.P(H(){G(b.1q==2p)A(7,a,b);N{A(7,a).1p(b);G(A(7,a).K==1)b.1k(7)}})},9X:H(b,c){J a=D.3O;G(b)7.36([]);7.P(H(){R(J i=a.K-1;i>=0;i--)G(a[i].T==7){G(c)a[i](M);a.7n(i,1)}});G(!c)7.5A();I 7}});J A=H(b,c,a){G(b){c=c||"28";J q=D.L(b,c+"36");G(!q||a)q=D.L(b,c+"36",D.2d(a))}I q};D.17.5A=H(a){a=a||"28";I 7.P(H(){J q=A(7,a);q.4s();G(q.K)q[0].1k(7)})};D.1l({77:H(b,a,c){J d=b&&b.1q==a0?b:{1J:c||!c&&a||D.1D(b)&&b,2u:b,41:c&&a||a&&a.1q!=9t&&a};d.2u=(d.2u&&d.2u.1q==4L?d.2u:D.28.5K[d.2u])||D.28.5K.74;d.5M=d.1J;d.1J=H(){G(d.36!==Q)D(7).5A();G(D.1D(d.5M))d.5M.1k(7)};I d},41:{73:H(p,n,b,a){I b+a*p},5P:H(p,n,b,a){I((-29.9r(p*29.9q)/2)+0.5)*a+b}},3O:[],48:U,28:H(b,c,a){7.15=c;7.T=b;7.1i=a;G(!c.3Z)c.3Z={}}});D.28.44={4D:H(){G(7.15.2Y)7.15.2Y.1k(7.T,7.1z,7);(D.28.2Y[7.1i]||D.28.2Y.4w)(7);G(7.1i=="1Z"||7.1i=="2h")7.T.V.18="3I"},1t:H(a){G(7.T[7.1i]!=U&&7.T.V[7.1i]==U)I 7.T[7.1i];J r=3d(D.1g(7.T,7.1i,a));I r&&r>-9p?r:3d(D.2a(7.T,7.1i))||0},3G:H(c,b,d){7.5V=1z();7.2b=c;7.3l=b;7.2M=d||7.2M||"2X";7.1z=7.2b;7.2S=7.4N=0;7.4D();J e=7;H t(a){I e.2Y(a)}t.T=7.T;D.3O.1p(t);G(D.48==U){D.48=4I(H(){J a=D.3O;R(J i=0;i7.15.2u+7.5V){7.1z=7.3l;7.2S=7.4N=1;7.4D();7.15.45[7.1i]=M;J b=M;R(J i 1n 7.15.45)G(7.15.45[i]!==M)b=Q;G(b){G(7.15.18!=U){7.T.V.33=7.15.33;7.T.V.18=7.15.18;G(D.1g(7.T,"18")=="2F")7.T.V.18="3I"}G(7.15.1M)7.T.V.18="2F";G(7.15.1M||7.15.1N)R(J p 1n 7.15.45)D.1K(7.T.V,p,7.15.3Z[p])}G(b)7.15.1J.1k(7.T);I Q}N{J n=t-7.5V;7.4N=n/7.15.2u;7.2S=D.41[7.15.41||(D.41.5P?"5P":"73")](7.4N,n,0,1,7.15.2u);7.1z=7.2b+((7.3l-7.2b)*7.2S);7.4D()}I M}};D.1l(D.28,{5K:{9l:9j,9i:7e,74:9g},2Y:{2e:H(a){a.T.2e=a.1z},2c:H(a){a.T.2c=a.1z},1y:H(a){D.1K(a.T.V,"1y",a.1z)},4w:H(a){a.T.V[a.1i]=a.1z+a.2M}}});D.17.2i=H(){J b=0,1S=0,T=7[0],3q;G(T)ao(D.14){J d=T.1d,4a=T,1s=T.1s,1Q=T.2z,5U=2k&&3r(5B)<9c&&!/9a/i.11(v),1g=D.2a,3c=1g(T,"30")=="3c";G(T.7y){J c=T.7y();1e(c.1A+29.2f(1Q.1C.2e,1Q.1c.2e),c.1S+29.2f(1Q.1C.2c,1Q.1c.2c));1e(-1Q.1C.6b,-1Q.1C.6a)}N{1e(T.5X,T.5W);1B(1s){1e(1s.5X,1s.5W);G(42&&!/^t(98|d|h)$/i.11(1s.2j)||2k&&!5U)2C(1s);G(!3c&&1g(1s,"30")=="3c")3c=M;4a=/^1c$/i.11(1s.2j)?4a:1s;1s=1s.1s}1B(d&&d.2j&&!/^1c|2K$/i.11(d.2j)){G(!/^96|1T.*$/i.11(1g(d,"18")))1e(-d.2e,-d.2c);G(42&&1g(d,"33")!="4j")2C(d);d=d.1d}G((5U&&(3c||1g(4a,"30")=="5x"))||(42&&1g(4a,"30")!="5x"))1e(-1Q.1c.5X,-1Q.1c.5W);G(3c)1e(29.2f(1Q.1C.2e,1Q.1c.2e),29.2f(1Q.1C.2c,1Q.1c.2c))}3q={1S:1S,1A:b}}H 2C(a){1e(D.2a(a,"6V",M),D.2a(a,"6U",M))}H 1e(l,t){b+=3r(l,10)||0;1S+=3r(t,10)||0}I 3q};D.17.1l({30:H(){J a=0,1S=0,3q;G(7[0]){J b=7.1s(),2i=7.2i(),4c=/^1c|2K$/i.11(b[0].2j)?{1S:0,1A:0}:b.2i();2i.1S-=25(7,\'94\');2i.1A-=25(7,\'aF\');4c.1S+=25(b,\'6U\');4c.1A+=25(b,\'6V\');3q={1S:2i.1S-4c.1S,1A:2i.1A-4c.1A}}I 3q},1s:H(){J a=7[0].1s;1B(a&&(!/^1c|2K$/i.11(a.2j)&&D.1g(a,\'30\')==\'93\'))a=a.1s;I D(a)}});D.P([\'5e\',\'5G\'],H(i,b){J c=\'4y\'+b;D.17[c]=H(a){G(!7[0])I;I a!=12?7.P(H(){7==1b||7==S?1b.92(!i?a:D(1b).2e(),i?a:D(1b).2c()):7[c]=a}):7[0]==1b||7[0]==S?46[i?\'aI\':\'aJ\']||D.71&&S.1C[c]||S.1c[c]:7[0][c]}});D.P(["6N","4b"],H(i,b){J c=i?"5e":"5G",4f=i?"6k":"6i";D.17["5s"+b]=H(){I 7[b.3y()]()+25(7,"57"+c)+25(7,"57"+4f)};D.17["90"+b]=H(a){I 7["5s"+b]()+25(7,"2C"+c+"4b")+25(7,"2C"+4f+"4b")+(a?25(7,"6S"+c)+25(7,"6S"+4f):0)}})})();',62,669,'|||||||this|||||||||||||||||||||||||||||||||||if|function|return|var|length|data|true|else|type|each|false|for|document|elem|null|style|event||nodeName|||test|undefined||browser|options|nodeType|fn|display|arguments|url|window|body|parentNode|add|msie|css|indexOf|prop|typeof|call|extend|script|in|replace|push|constructor|text|offsetParent|cur|status|div|apply|firstChild|opacity|now|left|while|documentElement|isFunction|filter|className|hidden|handle|match|complete|attr|ret|hide|show|dataType|trigger|doc|split|top|table|try|catch|success|break|cache|height||remove|tbody|string|guid|num|global|ready|fx|Math|curCSS|start|scrollTop|makeArray|scrollLeft|max|animate|width|offset|tagName|safari|map|toggle||done|Array|find|toUpperCase|button|special|duration|id|copy|value|handler|ownerDocument|select|new|border|exec|stack|none|opera|nextSibling|pushStack|target|html|inArray|unit|xml|bind|GET|isReady|merge|pos|timeout|delete|one|selected|px|step|jsre|position|async|preventDefault|overflow|name|which|queue|removeChild|namespace|insertBefore|nth|removeData|fixed|parseFloat|error|readyState|multiFilter|createElement|rl|re|trim|end|_|param|first|get|results|parseInt|slice|childNodes|encodeURIComponent|append|events|elems|toLowerCase|json|readyList|setTimeout|grep|mouseenter|color|is|custom|getElementsByTagName|block|stopPropagation|addEventListener|callee|proxy|mouseleave|timers|defaultView|password|disabled|last|has|appendChild|form|domManip|props|ajax|orig|set|easing|mozilla|load|prototype|curAnim|self|charCode|timerId|object|offsetChild|Width|parentOffset|src|unbind|br|currentStyle|clean|float|visible|relatedTarget|previousSibling|handlers|isXMLDoc|on|setup|nodeIndex|unique|shift|javascript|child|RegExp|_default|deep|scroll|lastModified|teardown|setRequestHeader|timeStamp|update|empty|tr|getAttribute|innerHTML|setInterval|checked|fromElement|Number|jQuery|state|active|jsonp|accepts|application|dir|input|responseText|click|styleSheets|unload|not|lastToggle|outline|mouseout|getPropertyValue|mouseover|getComputedStyle|bindReady|String|padding|pageX|metaKey|keyCode|getWH|andSelf|clientX|Left|all|visibility|container|index|init|triggered|removeAttribute|classFilter|prevObject|submit|file|after|windowData|inner|client|globalEval|sibling|jquery|absolute|clone|wrapAll|dequeue|version|triggerHandler|oldblock|ctrlKey|createTextNode|Top|handleError|getResponseHeader|parsererror|speeds|checkbox|old|00|radio|swing|href|Modified|ifModified|lastChild|safari2|startTime|offsetTop|offsetLeft|username|location|ajaxSettings|getElementById|isSimple|values|selectedIndex|runtimeStyle|rsLeft|_load|loaded|DOMContentLoaded|clientTop|clientLeft|toElement|srcElement|val|pageY|POST|unshift|Bottom|clientY|Right|fix|exclusive|detachEvent|cloneNode|removeEventListener|swap|toString|join|attachEvent|eval|substr|head|parse|textarea|reset|image|zoom|odd|even|before|prepend|exclude|expr|quickClass|quickID|uuid|quickChild|continue|Height|textContent|appendTo|contents|open|margin|evalScript|borderTopWidth|borderLeftWidth|parent|httpData|setArray|CSS1Compat|compatMode|boxModel|cssFloat|linear|def|webkit|nodeValue|speed|_toggle|eq|100|replaceWith|304|concat|200|alpha|Last|httpNotModified|getAttributeNode|httpSuccess|clearInterval|abort|beforeSend|splice|styleFloat|throw|colgroup|XMLHttpRequest|ActiveXObject|scriptCharset|callback|fieldset|multiple|processData|getBoundingClientRect|contentType|link|ajaxSend|ajaxSuccess|ajaxError|col|ajaxComplete|ajaxStop|ajaxStart|serializeArray|notmodified|keypress|keydown|change|mouseup|mousedown|dblclick|focus|blur|stylesheet|hasClass|rel|doScroll|black|hover|solid|cancelBubble|returnValue|wheelDelta|view|round|shiftKey|resize|screenY|screenX|relatedNode|mousemove|prevValue|originalTarget|offsetHeight|keyup|newValue|offsetWidth|eventPhase|detail|currentTarget|cancelable|bubbles|attrName|attrChange|altKey|originalEvent|charAt|0n|substring|animated|header|noConflict|line|enabled|innerText|contains|only|weight|font|gt|lt|uFFFF|u0128|size|417|Boolean|Date|toggleClass|removeClass|addClass|removeAttr|replaceAll|insertAfter|prependTo|wrap|contentWindow|contentDocument|iframe|children|siblings|prevAll|wrapInner|nextAll|outer|prev|scrollTo|static|marginTop|next|inline|parents|able|cellSpacing|adobeair|cellspacing|522|maxLength|maxlength|readOnly|400|readonly|fast|600|class|slow|1px|htmlFor|reverse|10000|PI|cos|compatible|Function|setData|ie|ra|it|rv|getData|userAgent|navigator|fadeTo|fadeIn|slideToggle|slideUp|slideDown|ig|responseXML|content|1223|NaN|fadeOut|300|protocol|send|setAttribute|option|dataFilter|cssText|changed|be|Accept|stop|With|Requested|Object|can|GMT|property|1970|Jan|01|Thu|Since|If|Type|Content|XMLHTTP|th|Microsoft|td|onreadystatechange|onload|cap|charset|colg|host|tfoot|specified|with|1_|thead|leg|plain|attributes|opt|embed|urlencoded|www|area|hr|ajaxSetup|meta|post|getJSON|getScript|marginLeft|img|elements|pageYOffset|pageXOffset|abbr|serialize|pixelLeft'.split('|'),0,{})) \ No newline at end of file diff --git a/design/atomic/css/acord/js/jquery.simplemenu.js b/design/atomic/css/acord/js/jquery.simplemenu.js new file mode 100644 index 0000000..88e1052 --- /dev/null +++ b/design/atomic/css/acord/js/jquery.simplemenu.js @@ -0,0 +1,49 @@ +$(document).ready(function() { + $('ul#myvertmenu ul').each(function(i) { // + if ($.cookie('submenuMark-' + i)) { // + $(this).show().prev().removeClass('collapsed').addClass('expanded'); // + } + else { + $(this).hide().prev().removeClass('expanded').addClass('collapsed'); // + } + $(this).prev().addClass('collapsible').click(function() { // + var this_i = $('ul#myvertmenu ul').index($(this).next()); // + if ($(this).next().css('display') == 'none') { + + // , + $(this).parent('li').parent('ul').find('ul').each(function(j) { + if (j != this_i) { + $(this).slideUp(200, function () { + $(this).prev().removeClass('expanded').addClass('collapsed'); + cookieDel($('ul#myvertmenu ul').index($(this))); + }); + } + }); + // + + $(this).next().slideDown(200, function () { // + $(this).prev().removeClass('collapsed').addClass('expanded'); + cookieSet(this_i); + }); + } + else { + $(this).next().slideUp(200, function () { // + $(this).prev().removeClass('expanded').addClass('collapsed'); + cookieDel(this_i); + $(this).find('ul').each(function() { + $(this).hide(0, cookieDel($('ul#myvertmenu ul').index($(this)))).prev().removeClass('expanded').addClass('collapsed'); + }); + }); + } + return false; // ; true - + }); + }); +}); + +function cookieSet(index) { + $.cookie('submenuMark-' + index, 'opened', {expires: null, path: '/'}); // " " +} + +function cookieDel(index) { + $.cookie('submenuMark-' + index, null, {expires: null, path: '/'}); // " " +} diff --git a/design/atomic/css/ckeditor.css b/design/atomic/css/ckeditor.css new file mode 100644 index 0000000..4cac98e --- /dev/null +++ b/design/atomic/css/ckeditor.css @@ -0,0 +1,18 @@ +@import url(https://fonts.googleapis.com/css?family=Open+Sans:400,700&subset=latin,cyrillic); +@import url(https://fonts.googleapis.com/css?family=Russo+One&subset=latin,cyrillic); + +body {background: #141618 !important;} + +a { + text-decoration: underline !important; + cursor: pointer !important; +} + +img { + width: auto; + height: auto; + max-width: 100%; + max-height: 100%; + /* max-width: 480px !important; + max-height: 480px !important;*/ +} \ No newline at end of file diff --git a/design/atomic/css/desktop.css b/design/atomic/css/desktop.css new file mode 100644 index 0000000..c9e7067 --- /dev/null +++ b/design/atomic/css/desktop.css @@ -0,0 +1,62 @@ +.container { min-width: 970px; } +.col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-44, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm-15 { float: left; } +.col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12 { float: left; } +.col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12 { float: left; } +.col-sm-12, .col-md-12, .col-lg-12 { width: 100%; } +.col-sm-11, .col-md-11, .col-lg-11 { width: 91.66666667%; } +.col-sm-10, .col-md-10, .col-lg-10 { width: 83.33333333%; } +.col-sm-9, .col-md-9, .col-lg-9 { width: 75%; } +.col-sm-8, .col-md-8, .col-lg-8 { width: 66.66666667%; } +.col-sm-7, .col-md-7, .col-lg-7 { width: 58.33333333%; } +.col-sm-6, .col-md-6, .col-lg-6 { width: 50%; } +.col-sm-5, .col-md-5, .col-lg-5 { width: 41.66666667%; } +.col-sm-4, .col-md-4, .col-lg-4 { width: 33.33333333%; } +.col-sm-44, .col-md-44, .col-lg-44 { width: 66.33333333%; } +.col-sm-3, .col-md-3, .col-lg-3 { width: 25%; } +.col-sm-2, .col-md-2, .col-lg-2 { width: 16.66666667%; } +.col-sm-1, .col-md-1, .col-lg-1 { width: 8.33333333%; } +.col-sm-15, .col-md-15, .col-lg-15 { width: 20%; } + +.hidden-xs {display: block !important;} +.collapse { display: block !important; visibility: visible !important; } +/*.nav > li { float: left !important; } +.nav > li > a { padding: 15px 10px; } +.navbar-nav { float: left; }*/ +.navbar-header { float: left; } +.navbar-right { float: right; } +.navbar-toggle { display: none !important; } + +.modal2.well {margin-bottom: 0;} + + +@media (min-width:1200px) { + + .navbar-nav > li > a { text-align: center; } + header .phone { font-size: 150% !important; } + header .top-text1 { font-size: 160% !important; } + header .top-text2 { line-height: 1.5em; } + header .top-text3 { font-size: 150%; } +} + +@media (max-width:1199px) { + + .navbar-nav > li > a { padding-left: 12px !important; padding-right: 12px !important; } + header .phone { font-size: 105% !important; } + header .top-text1 { font-size: 130% !important; } + header .top-text2 { line-height: 1.15em; } + header .top-text3 { font-size: 120%; } +} + +@media (max-width: 767px) { + .container-fluid>.navbar-header, + .container>.navbar-collapse { + margin-right: 0px; + margin-left: -15px; + } + .navbar { border-radius: 4px; } +} + + + + + diff --git a/design/atomic/css/desktop_back.css b/design/atomic/css/desktop_back.css new file mode 100644 index 0000000..2762987 --- /dev/null +++ b/design/atomic/css/desktop_back.css @@ -0,0 +1,61 @@ +.container { min-width: 970px; } +.col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm-15 { float: left; } +.col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12 { float: left; } +.col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12 { float: left; } +.col-sm-12, .col-md-12, .col-lg-12 { width: 100%; } +.col-sm-11, .col-md-11, .col-lg-11 { width: 91.66666667%; } +.col-sm-10, .col-md-10, .col-lg-10 { width: 83.33333333%; } +.col-sm-9, .col-md-9, .col-lg-9 { width: 75%; } +.col-sm-8, .col-md-8, .col-lg-8 { width: 66.66666667%; } +.col-sm-7, .col-md-7, .col-lg-7 { width: 58.33333333%; } +.col-sm-6, .col-md-6, .col-lg-6 { width: 50%; } +.col-sm-5, .col-md-5, .col-lg-5 { width: 41.66666667%; } +.col-sm-4, .col-md-4, .col-lg-4 { width: 33.33333333%; } +.col-sm-3, .col-md-3, .col-lg-3 { width: 25%; } +.col-sm-2, .col-md-2, .col-lg-2 { width: 16.66666667%; } +.col-sm-1, .col-md-1, .col-lg-1 { width: 8.33333333%; } +.col-sm-15, .col-md-15, .col-lg-15 { width: 20%; } + +.hidden-xs {display: block !important;} +.collapse { display: block !important; visibility: visible !important; } +/*.nav > li { float: left !important; } +.nav > li > a { padding: 15px 10px; } +.navbar-nav { float: left; }*/ +.navbar-header { float: left; } +.navbar-right { float: right; } +.navbar-toggle { display: none !important; } + +.modal2.well {margin-bottom: 0;} + + +@media (min-width:1200px) { + + .navbar-nav > li > a { text-align: center; } + header .phone { font-size: 150% !important; } + header .top-text1 { font-size: 160% !important; } + header .top-text2 { line-height: 1.5em; } + header .top-text3 { font-size: 150%; } +} + +@media (max-width:1199px) { + + .navbar-nav > li > a { padding-left: 12px !important; padding-right: 12px !important; } + header .phone { font-size: 105% !important; } + header .top-text1 { font-size: 130% !important; } + header .top-text2 { line-height: 1.15em; } + header .top-text3 { font-size: 120%; } +} + +@media (max-width: 767px) { + .container-fluid>.navbar-header, + .container>.navbar-collapse { + margin-right: 0px; + margin-left: -15px; + } + .navbar { border-radius: 4px; } +} + + + + + diff --git a/design/atomic/css/fancy_img/blank.gif b/design/atomic/css/fancy_img/blank.gif new file mode 100644 index 0000000..35d42e8 Binary files /dev/null and b/design/atomic/css/fancy_img/blank.gif differ diff --git a/design/atomic/css/fancy_img/fancy_closebox.png b/design/atomic/css/fancy_img/fancy_closebox.png new file mode 100644 index 0000000..0703530 Binary files /dev/null and b/design/atomic/css/fancy_img/fancy_closebox.png differ diff --git a/design/atomic/css/fancy_img/fancy_loading.png b/design/atomic/css/fancy_img/fancy_loading.png new file mode 100644 index 0000000..2503017 Binary files /dev/null and b/design/atomic/css/fancy_img/fancy_loading.png differ diff --git a/design/atomic/css/fancy_img/fancy_nav_left.png b/design/atomic/css/fancy_img/fancy_nav_left.png new file mode 100644 index 0000000..ebaa6a4 Binary files /dev/null and b/design/atomic/css/fancy_img/fancy_nav_left.png differ diff --git a/design/atomic/css/fancy_img/fancy_nav_right.png b/design/atomic/css/fancy_img/fancy_nav_right.png new file mode 100644 index 0000000..873294e Binary files /dev/null and b/design/atomic/css/fancy_img/fancy_nav_right.png differ diff --git a/design/atomic/css/fancy_img/fancy_shadow_e.png b/design/atomic/css/fancy_img/fancy_shadow_e.png new file mode 100644 index 0000000..2eda089 Binary files /dev/null and b/design/atomic/css/fancy_img/fancy_shadow_e.png differ diff --git a/design/atomic/css/fancy_img/fancy_shadow_n.png b/design/atomic/css/fancy_img/fancy_shadow_n.png new file mode 100644 index 0000000..69aa10e Binary files /dev/null and b/design/atomic/css/fancy_img/fancy_shadow_n.png differ diff --git a/design/atomic/css/fancy_img/fancy_shadow_ne.png b/design/atomic/css/fancy_img/fancy_shadow_ne.png new file mode 100644 index 0000000..79f6980 Binary files /dev/null and b/design/atomic/css/fancy_img/fancy_shadow_ne.png differ diff --git a/design/atomic/css/fancy_img/fancy_shadow_nw.png b/design/atomic/css/fancy_img/fancy_shadow_nw.png new file mode 100644 index 0000000..7182cd9 Binary files /dev/null and b/design/atomic/css/fancy_img/fancy_shadow_nw.png differ diff --git a/design/atomic/css/fancy_img/fancy_shadow_s.png b/design/atomic/css/fancy_img/fancy_shadow_s.png new file mode 100644 index 0000000..d8858bf Binary files /dev/null and b/design/atomic/css/fancy_img/fancy_shadow_s.png differ diff --git a/design/atomic/css/fancy_img/fancy_shadow_se.png b/design/atomic/css/fancy_img/fancy_shadow_se.png new file mode 100644 index 0000000..541e3ff Binary files /dev/null and b/design/atomic/css/fancy_img/fancy_shadow_se.png differ diff --git a/design/atomic/css/fancy_img/fancy_shadow_sw.png b/design/atomic/css/fancy_img/fancy_shadow_sw.png new file mode 100644 index 0000000..b451689 Binary files /dev/null and b/design/atomic/css/fancy_img/fancy_shadow_sw.png differ diff --git a/design/atomic/css/fancy_img/fancy_shadow_w.png b/design/atomic/css/fancy_img/fancy_shadow_w.png new file mode 100644 index 0000000..8a4e4a8 Binary files /dev/null and b/design/atomic/css/fancy_img/fancy_shadow_w.png differ diff --git a/design/atomic/css/fancy_img/fancy_title_left.png b/design/atomic/css/fancy_img/fancy_title_left.png new file mode 100644 index 0000000..6049223 Binary files /dev/null and b/design/atomic/css/fancy_img/fancy_title_left.png differ diff --git a/design/atomic/css/fancy_img/fancy_title_main.png b/design/atomic/css/fancy_img/fancy_title_main.png new file mode 100644 index 0000000..8044271 Binary files /dev/null and b/design/atomic/css/fancy_img/fancy_title_main.png differ diff --git a/design/atomic/css/fancy_img/fancy_title_over.png b/design/atomic/css/fancy_img/fancy_title_over.png new file mode 100644 index 0000000..d9f458f Binary files /dev/null and b/design/atomic/css/fancy_img/fancy_title_over.png differ diff --git a/design/atomic/css/fancy_img/fancy_title_right.png b/design/atomic/css/fancy_img/fancy_title_right.png new file mode 100644 index 0000000..e36d9db Binary files /dev/null and b/design/atomic/css/fancy_img/fancy_title_right.png differ diff --git a/design/atomic/css/fancy_img/fancybox-x.png b/design/atomic/css/fancy_img/fancybox-x.png new file mode 100644 index 0000000..c2130f8 Binary files /dev/null and b/design/atomic/css/fancy_img/fancybox-x.png differ diff --git a/design/atomic/css/fancy_img/fancybox-y.png b/design/atomic/css/fancy_img/fancybox-y.png new file mode 100644 index 0000000..7ef399b Binary files /dev/null and b/design/atomic/css/fancy_img/fancybox-y.png differ diff --git a/design/atomic/css/fancy_img/fancybox.png b/design/atomic/css/fancy_img/fancybox.png new file mode 100644 index 0000000..65e14f6 Binary files /dev/null and b/design/atomic/css/fancy_img/fancybox.png differ diff --git a/design/atomic/css/font/HelveticaBlack.otf b/design/atomic/css/font/HelveticaBlack.otf new file mode 100644 index 0000000..35234b3 Binary files /dev/null and b/design/atomic/css/font/HelveticaBlack.otf differ diff --git a/design/atomic/css/font/HelveticaNormal.otf b/design/atomic/css/font/HelveticaNormal.otf new file mode 100644 index 0000000..8757e18 Binary files /dev/null and b/design/atomic/css/font/HelveticaNormal.otf differ diff --git a/design/atomic/css/mobile.css b/design/atomic/css/mobile.css new file mode 100644 index 0000000..3c089bb --- /dev/null +++ b/design/atomic/css/mobile.css @@ -0,0 +1,181 @@ +body {margin-top: 10px;} +#top-shopcart {display: none;} +.container { min-width: 320px; } +.collapse-panel .panel-body {display: none;} + +.container-fluid { + padding-right: 15px !important; +} + +@media (min-width:1200px) { + .product-price { font-size: 145% !important; } + .navbar-nav > li > a { padding-left: 20px !important; padding-right: 20px !important; } + header .phone { font-size: 125% !important; } + header .top-text1 { font-size: 160% !important; } + header .top-text2 { line-height: 1.5em; } + header .top-text3 { font-size: 150%; } +} + +@media (max-width:1199px) { + .top-block li { + padding: 0 10px; + display: inline; +} + .social li { + padding: 9px 0 6px 3px; + display: inline-block; +} + .product-price { font-size: 115% !important; } +.navbar-nav > li > a { + padding-left: 4px !important; + padding-right: 4px !important; + text-align: center; +} + header .phone { font-size: 105% !important; } + header .top-text1 { font-size: 130% !important; } + header .top-text2 { line-height: 1.15em; } + header .top-text3 { font-size: 120%; } +} + +@media (min-width: 767px) and (max-width:991px) { + .flexslider .slides > li { + background-size: contain !important; +} +.blog-unit a span.img { + height: 140px; + overflow: hidden; + display: block; +} +.social li { + padding: 9px 0 6px 3px; + display: inline-block; +} +.input-group.top-serch +{ + margin-left: 20px; +} + + header .cart .cart-info { + padding-left: 91px; + padding-top: 7px; +} + .row.second-line{ + position: absolute; + width: 100vw; + left: -33vw; + } + .navbar { + white-space: nowrap; + margin-top: 109px; +} + +.top-block ul { + list-style: none; + padding: 0; + margin: 0; + margin-left: 0; +}.top-block li { + padding: 0 10px; + display: inline; +} +.top-block { + + margin-top: 0px; +} +.top-menu a{ font-size:10px;} + .nav>li>a { + position: relative; + display: block; + padding: 5px 5px; + font-size: 11px; + text-align: center; +} + + .navbar { white-space: nowrap; } + .navbar-right { display: none; } + header { height: 135px; font-size: 10px; } + header .cart .cart-info table td { white-space: nowrap; } + + footer { font-size: 10px; } + footer, .push { height: auto; } + .wrapper { margin-bottom: -230px; } + .product-name, .product-price {font-size: 12px !important;} +} + +@media (max-width: 767px) { + #top-shopcart { + display: flex !important; + justify-content: space-around; + } + + .always-on-top .mobile__header--phone, + .always-on-top .cart-info { + padding: 7px 15px !Important; + } + + .always-on-top .cart-info { + display: flex !Important; + align-items: center; + } + + .always-on-top .mobile__header--phone>div:first-child { + margin-top: 0; + } + + #cart_informer:before { + margin-left: 0; + } + + .flexslider { display: none; } + a.logo { + display: block; + text-align: center; + padding-top: 15px; + } + + .services-view.row .advantage { display: none; } + + a.logo img {width:200px;} + .callme_viewform { + text-align: center !important; + border-radius: 5px; + border: 1px solid #fff; + padding: 8px 16px; + text-decoration: none; + text-transform: uppercase; + color: #fff; + font-size: 12px; + float: none !important; + margin: auto; + margin-top: 10px !important; + width: 200px; + display: block; +} +.always-on-top .cart-info .icon .glyphicon { +display: none; +} + .top-block { margin-top: 0px; } + #hidden-cart {display: block !important;} + .flexslider { display: none; } + .navbar { margin-top: 15px;} + header, footer { height: auto; font-size: 10px;} + header .phone { font-size: 12px !important; } + + .panel-heading, .breadcrumb, .badge, .label { -webkit-border-radius: 0px; -moz-border-radius: 0px; border-radius: 0px; } + .cart-links a {color: #ffffff;} + footer, .push { height: auto; } + .wrapper { margin-bottom: auto; } + footer .container { padding-top: 25px; padding-bottom: 25px; } + #tabs {margin-top: 15px;} + #tabs li {float: left;margin: 0 0.2em 0 0;} + #tabs a {font-size: 10px; padding: 0.7em 0.5em;} + label {font-size: 10px;} + #callme {display: none;} + .mobile__header--phone {display: block!important;} + .mobile__header--phone-link {/*margin-top: 7px;*/ font-size: 14px;} +} +@media (max-width: 575.98px) { + .brand-card { + width: 33%; + } +} \ No newline at end of file diff --git a/design/atomic/css/old/idealforms.css b/design/atomic/css/old/idealforms.css new file mode 100644 index 0000000..4beb05f --- /dev/null +++ b/design/atomic/css/old/idealforms.css @@ -0,0 +1,349 @@ + +.element { + line-height: 1; + border: 0; + text-decoration: none; + font-size: 14px; + font-family: Arial, sans-serif; +} +/* --------------------------------------- + Load Dingbat font for checkmark icon +----------------------------------------*/ +@font-face { + font-family: 'DistroIIBats'; + src: url('distro2_bats-webfont.eot'); + src: url('distro2_bats-webfont.eot?#iefix') format('embedded-opentype'), url('distro2_bats-webfont.woff') format('woff'), url('distro2_bats-webfont.svg#DistroIIBats') format('svg'), url('distro2_bats-webfont.ttf') format('truetype'); + font-weight: normal; + font-style: normal; +} +/* --------------------------------------- + Remove default input focus outline +----------------------------------------*/ +:focus { + outline: none; + outline-style: none; +} +::-moz-focus-inner { + border: 0; +} +/* ---------------------------------------- + + Ideal Forms Styles + + * Be careful editing these values + * since everything is measured in ems + * you should only change values using + * the global variables and colors above. + +-----------------------------------------*/ +.idealform { + font-size: 14px; + font-family: Arial, sans-serif; + + +} +.idealform :focus, .idealform :active { + outline: 0; +} +.idealform fieldset { + padding: 6px 10px 0 10px; + background: #fcfcfc; + -moz-box-shadow: 0 0 2px rgba(0, 0, 0, 0.2), transparent 0 0 0; + -webkit-box-shadow: 0 0 2px rgba(0, 0, 0, 0.2), transparent 0 0 0; + box-shadow: 0 0 2px rgba(0, 0, 0, 0.2), transparent 0 0 0; + -webkit-border-radius: 4px 4px 4px 4px; + -moz-border-radius: 4px 4px 4px 4px; + border-radius: 4px 4px 4px 4px; +} +.idealform select, .idealform input[type="radio"], .idealform input[type="checkbox"] { + position: absolute; + left: -9999px; +} +.idealform label, +.idealform .idealselect, +.idealform .idealradio, +.idealform .idealcheck { + display: inline-block; +} + +#content .idealform ul { + list-style: none; + margin: 0; + padding: 0; +} + + +.idealform label { + vertical-align: top; + padding-right: 1em; +} +.idealform .main-label { + position: relative; + font-weight: bold; +} +.idealform .main-label span { + position: absolute; + left: -0.5em; + top: -0.3em; + font-family: Arial, sans-serif; + font-size: 1.5em; + color: #d1301b; +} + +.idealform input[type="text"]:focus, .idealform input[type="password"]:focus, .idealform textarea:focus { + border: 1px solid #1ba5c7; + -moz-box-shadow: 0 0 2px #1ba5c7, transparent 0 0 0; + -webkit-box-shadow: 0 0 2px #1ba5c7, transparent 0 0 0; + box-shadow: 0 0 2px #1ba5c7, transparent 0 0 0; +} +.idealform input[type="submit"], .idealform input[type="reset"], .idealform button { + line-height: 1; + border: 0; + text-decoration: none; + font-size: 14px; + font-family: Arial, sans-serif; + display: inline-block; + padding: .5em 1.5em; + box-shadow: inset 0 1px rgba(255, 255, 255, 0.7); + border: 1px solid #126d84; + font-weight: bold; + color: #093540; + text-shadow: 1px 1px rgba(255, 255, 255, 0.4); + -moz-box-shadow: inset 0 1px rgba(255, 255, 255, 0.7), 0 1px 2px rgba(0, 0, 0, 0.3); + -webkit-box-shadow: inset 0 1px rgba(255, 255, 255, 0.7), 0 1px 2px rgba(0, 0, 0, 0.3); + box-shadow: inset 0 1px rgba(255, 255, 255, 0.7), 0 1px 2px rgba(0, 0, 0, 0.3); + -webkit-border-radius: 4px 4px 4px 4px; + -moz-border-radius: 4px 4px 4px 4px; + border-radius: 4px 4px 4px 4px; + background: #5fcee9; + background: -moz-linear-gradient(top, #5fcee9 0%, #1ba5c7 100%); + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #5fcee9), color-stop(100%, #1ba5c7)); + background: -webkit-linear-gradient(top, #5fcee9 0%, #1ba5c7 100%); + background: -o-linear-gradient(top, #5fcee9 0%, #1ba5c7 100%); + background: -ms-linear-gradient(top, #5fcee9 0%, #1ba5c7 100%); + background: linear-gradient(top, #5fcee9 0%, #1ba5c7 100%); + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#5fcee9', endColorstr='#1ba5c7',GradientType=0 ); +} +.idealform input[type="submit"]:hover, .idealform input[type="reset"]:hover, .idealform button:hover { + background: #8cdcef; + background: -moz-linear-gradient(top, #8cdcef 0%, #1ba5c7 100%); + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #8cdcef), color-stop(100%, #1ba5c7)); + background: -webkit-linear-gradient(top, #8cdcef 0%, #1ba5c7 100%); + background: -o-linear-gradient(top, #8cdcef 0%, #1ba5c7 100%); + background: -ms-linear-gradient(top, #8cdcef 0%, #1ba5c7 100%); + background: linear-gradient(top, #8cdcef 0%, #1ba5c7 100%); + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#8cdcef', endColorstr='#1ba5c7',GradientType=0 ); +} +.idealform input[type="submit"]:active, .idealform input[type="reset"]:active, .idealform button:active { + background: #1ba5c7; +} +.idealform .idealselect { + /* Title */ + + /* Menu */ + +} + +.idealselect ul li{ +border-bottom: 1px solid #E7E7E7; +border-top: 1px solid white; +margin: 0; +} + +#content .idealselect ul li{ +margin: 0; +} + +.idealform .idealselect a { + line-height: 1; + border: 0; + text-decoration: none; + font-size: 14px; + font-family: Arial, sans-serif; + display: block; + padding: .5em .8em; + padding-right: 3em; +} + + +.idealform .idealselect .idealselect-title { + position: relative; + font-weight: bold; + color: #fff; + text-shadow: 1px 1px rgba(9, 53, 64, 0.5); + border: 1px solid #3ba7dc; + -moz-box-shadow: inset 0 1px rgba(255, 255, 255, 0.7), 0 1px 2px rgba(0, 0, 0, 0.3); + -webkit-box-shadow: inset 0 1px rgba(255, 255, 255, 0.7), 0 1px 2px rgba(0, 0, 0, 0.3); + box-shadow: inset 0 1px rgba(255, 255, 255, 0.7), 0 1px 2px rgba(0, 0, 0, 0.3); + background: #5fcee9; + background: -moz-linear-gradient(top, #5fcee9 0%, #2D93D3 100%); + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #5fcee9), color-stop(100%, #2D93D3)); + background: -webkit-linear-gradient(top, #5fcee9 0%, #2D93D3 100%); + background: -o-linear-gradient(top, #5fcee9 0%, #2D93D3 100%); + background: -ms-linear-gradient(top, #5fcee9 0%, #2D93D3 100%); + background: linear-gradient(top, #5fcee9 0%, #2D93D3 100%); + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#5fcee9', endColorstr='#2D93D3',GradientType=0 ); + -webkit-border-radius: 4px 4px 4px 4px; + -moz-border-radius: 4px 4px 4px 4px; + border-radius: 4px 4px 4px 4px; + /* Arrow */ + +} +.idealform .idealselect .idealselect-title span { + position: absolute; + right: 0; + top: 0; + display: inline-block; + height: 100%; + width: 2em; + border-left: 1px solid #1ba5c7; + -moz-box-shadow: inset 0 1px rgba(255, 255, 255, 0.7), transparent 0 0 0; + -webkit-box-shadow: inset 0 1px rgba(255, 255, 255, 0.7), transparent 0 0 0; + box-shadow: inset 0 1px rgba(255, 255, 255, 0.7), transparent 0 0 0; + background: #b9e9f5; + background: -moz-linear-gradient(top, #b9e9f5 0%, #5fcee9 100%); + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #b9e9f5), color-stop(100%, #5fcee9)); + background: -webkit-linear-gradient(top, #b9e9f5 0%, #5fcee9 100%); + background: -o-linear-gradient(top, #b9e9f5 0%, #5fcee9 100%); + background: -ms-linear-gradient(top, #b9e9f5 0%, #5fcee9 100%); + background: linear-gradient(top, #b9e9f5 0%, #5fcee9 100%); + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#b9e9f5', endColorstr='#5fcee9',GradientType=0 ); + -webkit-border-radius: 0 4px 4px 0; + -moz-border-radius: 0 4px 4px 0; + border-radius: 0 4px 4px 0; +} +.idealform .idealselect .idealselect-title small { + position: relative; + display: inline-block; + vertical-align: top; + top: 50%; + left: 50%; + margin: -0.25em 0 0 -0.5em; + border-width: .5em; + border-style: solid; + border-color: #277aa9 transparent transparent transparent; +} +.idealform .idealselect ul { +position: absolute; +overflow-y: scroll; +z-index: 999; +border: 1px solid #CCC; +border-top: 0; +background: #E6E6E6; +background: -moz-linear-gradient(134deg, #E6E6E6 0%, white 100%) +background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #E6E6E6), color-stop(100%, #ffffff)); +background: -webkit-linear-gradient(134deg, #E6E6E6 0%, white 100%); +background: -o-linear-gradient(134deg, #E6E6E6 0%, white 100%); +background: -ms-linear-gradient(134deg, #E6E6E6 0%, white 100%); +background: linear-gradient(134deg, #E6E6E6 0%, white 100%); +filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#E6E6E6', endColorstr='#ffffff',GradientType=0 ); +-webkit-border-radius: 0 0 4px 4px; +-moz-border-radius: 0 0 4px 4px; +border-radius: 0 0 4px 4px; +text-shadow: 1px 1px 0px white; +} +.idealform .idealselect ul li:last-child a { + -webkit-border-radius: 0 0 4px 4px; + -moz-border-radius: 0 0 4px 4px; + border-radius: 0 0 4px 4px; +} +.idealform .idealselect ul a { + color: #3d3d3d; +} +.idealform .idealselect ul a:hover { + background: #c9c9c9; + color: #3d3d3d; + text-shadow: 1px 0px 2px white; +} +.idealform .idealselect:hover .idealselect-title { + background: #8cdcef; + background: -moz-linear-gradient(top, #8cdcef 0%, #1ba5c7 100%); + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #8cdcef), color-stop(100%, #1ba5c7)); + background: -webkit-linear-gradient(top, #8cdcef 0%, #1ba5c7 100%); + background: -o-linear-gradient(top, #8cdcef 0%, #1ba5c7 100%); + background: -ms-linear-gradient(top, #8cdcef 0%, #1ba5c7 100%); + background: linear-gradient(top, #8cdcef 0%, #1ba5c7 100%); + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#8cdcef', endColorstr='#1ba5c7',GradientType=0 ); +} +.idealform .idealselect:hover .idealselect-title span { + background: #e5f7fc; + background: -moz-linear-gradient(top, #e5f7fc 0%, #5fcee9 100%); + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #e5f7fc), color-stop(100%, #5fcee9)); + background: -webkit-linear-gradient(top, #e5f7fc 0%, #5fcee9 100%); + background: -o-linear-gradient(top, #e5f7fc 0%, #5fcee9 100%); + background: -ms-linear-gradient(top, #e5f7fc 0%, #5fcee9 100%); + background: linear-gradient(top, #e5f7fc 0%, #5fcee9 100%); + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#e5f7fc', endColorstr='#5fcee9',GradientType=0 ); +} +.idealform .idealselect.open .idealselect-title { + -webkit-border-radius: 4px 4px 0 0; + -moz-border-radius: 4px 4px 0 0; + border-radius: 4px 4px 0 0; +} +.idealform .idealselect.open .idealselect-title span { + -webkit-border-radius: 0 4px 0 0; + -moz-border-radius: 0 4px 0 0; + border-radius: 0 4px 0 0; +} +.idealform .idealradio, .idealform .idealcheck { + margin-top: .3em; + /* Check */ + + /* Radio */ + +} +.idealform .idealradio label, .idealform .idealcheck label { + cursor: pointer; +} +.idealform .idealradio li, .idealform .idealcheck li { + margin-bottom: .6em; +} +.idealform .idealradio span, .idealform .idealcheck span { + display: inline-block; + vertical-align: top; + width: 1.2em; + height: 1.2em; + margin-right: .5em; + border: 1px solid #999999; + background: #ffffff; + background: -moz-linear-gradient(top, #ffffff 0%, #cccccc 100%); + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #ffffff), color-stop(100%, #cccccc)); + background: -webkit-linear-gradient(top, #ffffff 0%, #cccccc 100%); + background: -o-linear-gradient(top, #ffffff 0%, #cccccc 100%); + background: -ms-linear-gradient(top, #ffffff 0%, #cccccc 100%); + background: linear-gradient(top, #ffffff 0%, #cccccc 100%); + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#cccccc',GradientType=0 ); +} +.idealform .idealradio .check, .idealform .idealcheck .check { + -webkit-border-radius: 2px 2px 2px 2px; + -moz-border-radius: 2px 2px 2px 2px; + border-radius: 2px 2px 2px 2px; +} +.idealform .idealradio .check.checked, .idealform .idealcheck .check.checked { + background: #ffffff; + /* Checkmark */ + +} +.idealform .idealradio .check.checked:after, .idealform .idealcheck .check.checked:after { + content: "|"; + font-family: 'DistroIIBats'; + font-size: 1.6em; + position: relative; + top: -0.3em; + left: .1em; + color: #d1301b; +} +.idealform .idealradio .radio, .idealform .idealcheck .radio { + -webkit-border-radius: 1.2em 1.2em 1.2em 1.2em; + -moz-border-radius: 1.2em 1.2em 1.2em 1.2em; + border-radius: 1.2em 1.2em 1.2em 1.2em; +} +.idealform .idealradio .radio.checked, .idealform .idealcheck .radio.checked { + -moz-box-shadow: inset 0 0 0 0.3em #ffffff, transparent 0 0 0; + -webkit-box-shadow: inset 0 0 0 0.3em #ffffff, transparent 0 0 0; + box-shadow: inset 0 0 0 0.3em #ffffff, transparent 0 0 0; + filter: 0; + /* IE */ + + background: #d1301b; +} diff --git a/design/atomic/css/old/re_style3_4.css b/design/atomic/css/old/re_style3_4.css new file mode 100644 index 0000000..7971a54 --- /dev/null +++ b/design/atomic/css/old/re_style3_4.css @@ -0,0 +1,2561 @@ +html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, font, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td { + margin: 0; + padding: 0; + border: 0; + outline: 0; + font-size: 17px; + vertical-align: baseline; + background: transparent; +} +table, caption, tbody, tfoot, thead, tr, th, td { + /*vertical-align: middle;*/ +} +em, i { + font-style: normal; +} +/*ul, ol { + list-style: none; +}*/ +#content ol, #content ul, #content .idealform ul.article_cat { + +} +#content li { + /*margin: 10px 0 0 30px; */ +} +blockquote, q { + quotes: none; +} +:focus { + outline: 0; +} +ins { + text-decoration: none; +} +del { + text-decoration: line-through; +} +table { + border-collapse: collapse; + border-spacing: 0; +} +html { + height: 100%; +} +body, input[type="text"], textarea { + font: normal 14px/21px Arial, Tahoma, Verdana, sans-serif; + color: #666; +} +body { + height: 100%; + width: 100%; + background-color:#C5C5C5; + /*background: url(../images/bg_top.png) repeat-x top;*/ +} +a { + color: #222329; + outline: none; + text-decoration: underline; +} +a:hover { + text-decoration: none; +} +p { + margin: 0 0 18px +} +img { + border: none; + line-height: 0; +} +input { + vertical-align: middle; +} +#wrapper, .nav2, #header_wrap { + width: 1000px; + margin: 0 auto; +} +#wrapper { + margin-top: 25px; + height +} +#bottominfo { + line-height: 0; + position: relative; + padding: 0 30px 40px 50px; + font-size: 125%; +} +.nav2 { + text-align: center; + background-color: #00c6f1; + text-shadow: 0 1px 0 #0282c4; + -moz-box-shadow: inset 1px 1px 0 #80e6f9; + -ms-box-shadow: inset 1px 1px 0 #80e6f9; + -webkit-box-shadow: inset 1px 1px 0 #80e6f9; + box-shadow: inset 1px 1px 0 #80e6f9; + filter: progid :DXImageTransform.Microsoft.Gradient(GradientType=0,StartColorStr=#6891e7,EndColorStr=#304ea6); + background-image: -moz-linear-gradient(top,#00cdf3 0,#00b3ed 100%); + background-image: -ms-linear-gradient(top,#00cdf3 0,#00b3ed 100%); + background-image: -o-linear-gradient(top,#00cdf3 0,#00b3ed 100%); + background-image: -webkit-gradient(linear,left top,left bottom,color-stop(0,#00cdf3),color-stop(100%,#00b3ed)); + background-image: -webkit-linear-gradient(top,#00cdf3 0,#00b3ed 100%); + background-image: linear-gradient(top bottom,#00cdf3 0,#00b3ed 100%); + margin: 1px auto 4px; + padding: 11px; + border: 1px solid #1891c2; + outline: 0; + white-space: nowrap; + word-wrap: normal; + vertical-align: middle; + cursor: pointer; + -moz-border-radius: 10px; + -webkit-border-radius: 10px; + border-radius: 10px; + overflow: hidden; + position: relative; + top: 0; + +} +.nav2 li { + padding: 5px 3px; + position: relative; + float: left; + right: 50%; + border-right: 1px solid #80E6F9; + border-left: 1px solid #04A3CB; +} +#b { + position: relative; + float: left; + left: 50%; + list-style: none; +} +.nav2 .nobr { + border-right: none; +} +.nav2 .nobl { + border-left: none; +} +.topmenulink { + color: white; + font: bold 16px Arial; + text-decoration: none; + padding: 15px 20px; +} +.topmenulink:hover, .active { + padding-top: 16px; + background: url(../images/menu_arrow.png) no-repeat center 0; + border-bottom: 3px solid #0377a3; + color: #ffff00; +} +.active2, .active2:hover { + background: #009cc6; + text-shadow: 0 1px 0 #666; + border-radius: 3px; + box-shadow: inset 0px 1px 0 #80e6f9; + border-width: 1px; + border-style: solid; + border-bottom-color: #1282af; + border-left-color: #1282af; + border-right-color: #1282af; + border-top-color: #1891c2; + padding: 8px 5px; + color: #fff; +} + +/* @group */ +#catalog_menu { + margin-top: 10px; + margin-bottom: 10px; +} + +#catalog_menu li{ + cursor: pointer; +/* background:url(accordion_bg.png) repeat-x;*/ + font-weight:bold; + color:#015287; + border:1px solid #b2b2b2; + margin-bottom:2px; + list-style-image:none; + list-style-position:outside; + list-style-type:none; + -moz-border-radius: 4px; + -webkit-border-radius: 4px; + padding: 4px 8px; +} +#catalog_menu li.active{ + color:#D15600 +} +#catalog_menu li ul{ + padding:0; + margin:10px 0 0 0; +} +#catalog_menu li.active li{ + text-indent:0; +} +#catalog_menu li li{ + font-weight: normal; + background:none; + border:0; +} + + +#nav { background:url("../img/menu_bg.jpg") no-repeat 50% 0;} +#nav > ul {list-style: none outside none;} +#nav > ul > li { border-top:1px dotted #dadbdb; padding:7px 0 8px;} +#nav > ul > li > a { color:#1672cd;} +#nav > ul > li img { float:right; margin:-4px 3px 0 5px;} +#nav .close { width:9px; height:9px; overflow:hidden; background:url("../img/minus.png") no-repeat 0 0; float:left; margin:4px 8px 0 0; cursor:pointer;} +#nav ul ul { margin:3px 0 0 4px; display:block; list-style: none outside none;} +#nav li.closed ul { display:none;} +#nav li.closed .close { background:url("../img/plus.png") no-repeat 0 0;} +#nav ul ul li {background:url("../img/aside_bull.png") no-repeat 14px 8px; padding:0 0 0 10px; margin:0 0 -2px;} +#nav ul ul li.act { background:url("../img/menu_bg2.png") no-repeat 0 0;} +#nav ul ul li a { color:#69727a; text-decoration:none; display:block; line-height:21px; height:22px; padding:0 0 0 14px;} +#nav ul ul li.act a { background:url("../img/menu_bg2.png") no-repeat 100% 100%;} +#nav ul ul li a:hover { color:#1672cd;} + +#nav .parent_sub.closed ul.parent{ display: none;} +#nav .parent_sub ul.parent{ display: block;} +/* @end */ + + +/* Header + -----------------------------------------------------------------------------*/ +.sale_menu_item { + color: yellow; +} +#main_img { + margin-left: 60px; +} +#header { + height: 267px; + width:1050px; + color: #898989; + background: url(../images/header_bg2.png) repeat-x 0 10px; + margin: 0 auto; + text-align: center; + +} +#header_wrap { + position: relative; +} +#logo, #phones, #search, #authform, #basket_wrap { + position: absolute; +} +#logo { + top: 25px; +} +#phones { + top: 48px; + left: 411px; + color: white; + font: bold 20px Tahoma; + text-shadow: 0px -1px 0px #1B7699; + text-align: left; +} +.multi { + font-size: 14px; +} +.phones { + margin: -25px 0; + color: white; + font-size: 21px; +} +.phones a { + color: white; +} +#email { + font-size: 17px; + font-family: Arial; + margin-top: 35px; +} +#email a { + color: yellow; + text-decoration: none; + border-bottom: 1px dashed; +} +#dopadr { + font-size: 17px; + font-family: Arial; + margin-top: 5px; +} +#dopadr a { + color: yellow; + text-decoration: none; + border-bottom: 1px dashed; +} +/* Search + --------------------------------------------------------------------*/ + +#search { + top: 196px; + left: 768px; + background: url(../images/search_bg.png) no-repeat; + padding: 9px; + padding-left: 6px; +} +#s_query { + color: #898989; + border: 0; + border-radius: 5px 0 0 5px; + -moz-border-radius: 5px 0 0 5px; + -webkit-border-radius: 5px 0 0 5px; + background: white; +} + +#callback { + top: 196px; + left: 768px; + padding: 10px; +} +#callback a { + color: white; + text-decoration: none; +} + +/* Inputs + -----------------------------------------------------------------------------*/ +input[type="submit"], input[type="button"], .cont_feedback { + background: -webkit-linear-gradient(-45deg,#e40c0c 20%,#e40c0c 50%,#e40c0c 87%); /* for webkit browsers */ + background: -moz-linear-gradient(-45deg,#e40c0c 20%,#e40c0c 50%,#e40c0c 87%); /* for firefox 3.6+ */ + background: -o-linear-gradient(-45deg,#e40c0c 20%,#e40c0c 50%,#e40c0c 87%); /* Opera 11.10+ */ + background: -ms-linear-gradient(-45deg,#e40c0c 20%,#e40c0c 50%,#e40c0c 87%); /* IE10+ */ + background: linear-gradient(-45deg,#e40c0c 20%,#e40c0c 50%,#e40c0c 87%); + padding: 6px 14px; + + border-radius: 5px; + color: #fff; + text-shadow: 0 1px 1px #759929; + font-weight: bold; + background-color: #e40c0c; + -moz-box-shadow: inset 0px 1px 0 #e40c0c; + -ms-box-shadow: inset 0px 1px 0 #e40c0c; + + border: 1px solid; + border-color: #e40c0c #e40c0c #e40c0c #e40c0c; + cursor: pointer; + +} + +input[type="submit"]:hover, input[type="button"]:hover, .cont_feedback:hover { + background: -webkit-linear-gradient(45deg,#e40c0c 20%,#e40c0c 50%,#e40c0c 87%); /* for webkit browsers */ + background-color: #e40c0c; +} +input[type="password"] { + line-height: 21px; +} +input[type="text"], input[type="password"], #site-select, textarea { + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + box-sizing: border-box; + background: #fafbfc; + -webkit-box-shadow: inset 1px 3px 1px #c7cfd8; + -moz-box-shadow: inset 1px 3px 1px #c7cfd8; + box-shadow: inset 1px 3px 1px #c7cfd8; + border-radius: 5px; + -moz-border-radius: 5px; + -webkit-border-radius: 5px; + border: 1px solid; + padding: 6px; + outline: 0; + border-top-width: 0; + border-color: #E5E5E5; + color: #898989; +} +/* AuthForm + -----------------------------------------------------------------------------*/ + +#auth_content .after_login { + font-size: 17px; + font-weight: bold; + text-decoration: none; + border-bottom: 1px dashed yellow; + padding-bottom: 1px; +} +.history { + margin-bottom: 15px; +} +.yellow2 { + color: #ff0; +} +#authform input[type="text"], #authform input[type="password"] { + -webkit-box-shadow: inset 1px 3px 1px #c7cfd8, 2px 2px 1px #2e9fce; + -moz-box-shadow: inset 1px 3px 1px #c7cfd8, 2px 2px 1px #2e9fce; + box-shadow: inset 1px 3px 1px #c7cfd8, 2px 2px 1px #2e9fce; + background: white; + width: 100%; +} +#authform input[type="submit"] { + -webkit-box-shadow: inset 0px 1px 0 #cbdc51, 2px 2px 1px #2e9fce; + -moz-box-shadow: inset 0px 1px 0 #cbdc51, 2px 2px 1px #2e9fce; + box-shadow: inset 0px 1px 0 #cbdc51, 2px 2px 1px #2e9fce; +} +#authform { + width: 242px; + right: 0; + top: 24px; + background: url(../images/auth_bg.png) center no-repeat; + height: 96px; +} +#auth_content { + padding: 15px; + color: #fff; + text-align: left; +} +#auth_content input { + display: block; + margin: 6px 0; +} +#auth_content a, #through { + color: #fff; + text-shadow: 0 1px 1px #2c94bc; + font-size: 16px; +} +#login { margin-top: 12px; +} + +#through { + float: left; + margin: 8px 0 0 55px; + width: 50px; + position: relative; + bottom: 5px; +} +.clr { + clear: both; +} +/* Basket + -----------------------------------------------------------------------------*/ +#fathersname_row{display:none} + +#basket_wrap { + right: 10px; + width: 222px; + top: 116px; + height: 100px; + padding-left: 27px; +} +#basket { + height: 74px; + background: white url(../images/cart.png) no-repeat top right; + border-radius: 8px; + text-align: left; + position: relative; +} +#basket_ajax { + padding: 10px; + margin: 0 0 0 -7px; +} +#cart_link { + display: block; + height: 72px; + position: absolute; + width: 70px; + right: 0; + text-decoration: none; +} +#bsk_name { + color: black; + font-size: 18px; + font-family: 'Trebuchet MS', Helvetica, Lucida Sans Unicode, Tahoma, Geneva, sans-serif; + position: absolute; + top: 10px; + left: -76px; + text-shadow: 0px 0px 12px white; + text-decoration: none; + border-bottom: 1px dashed; +} +.bsk_item { + padding-right: 6px; + padding-top: 4px; + color: #555; + font-size: 15px; +} +.bsk_value { + color: #111; + font-weight: bold; + padding-top: 4px; + font-size: 15px; +} +.bsk_value td { + color: #111; + font-weight: bold; + padding-top: 4px; + font-size: 15px; +} +/* Module + -----------------------------------------------------------------------------*/ +.module { + margin: 25px 0; +} +.module_name { + float: left; + color: black; + font-size: 23px; + font-family: Trebuchet MS, Lucida Sans Unicode, Tahoma, Geneva, sans-serif; + margin: 0 5px 15px 0; +} +.module_line { + border-bottom: 1px inset #dcdcdc; + position: relative; + top: 13px; + overflow: hidden; +} +#content h1, #content h2, #content h3, #content h4, #content h5, #content h6 { + font-weight: normal; + font-size: 20px; + color: black; + font-family: Trebuchet MS, Lucida Sans Unicode, Tahoma, Geneva, sans-serif; + margin: 0 5px 15px 0; +} +.decor_h1 { + color: #2196c1; +} +#content .m_header { + margin-top: -14px; + color: #333; + font-size: 14px; +} +/* Left menu + -----------------------------------------------------------------------------*/ +.module_content, .vendor_table td, #help-panel { + background: #F8F8F8; + border: 1px solid #EBEBEB; + -webkit-box-shadow: inset 0px 0px 0px 1px #fff, 0 2px 8px -5px black; + -moz-box-shadow: inset 0px 0px 0px 1px #fff, 0 2px 8px -5px black; + box-shadow: inset 0px 0px 0px 1px #fff, 0 2px 8px -5px black; + padding: 15px; +} +.module_content img { + line-height: 0; +} +#myslidemenu { + /*position: absolute;*/ + z-index: 100; + padding: 0; +} +.module_content, #myslidemenu ul li ul, .inputbox, #auth_form, .ph_gal, .vendor_table td, .m_img, #easyTooltip, #help-panel, .img_cat, .messages, .errors, #easyTooltip3 { + -moz-border-radius: 7px; + -webkit-border-radius: 7px; + -khtml-border-radius: 7px; + border-radius: 7px +} +.rightarrowclass { + position: absolute; + top: 10px; + right: 5px; + background: url(../images/icons.gif) no-repeat 0 -38px; + width: 8px; + height: 9px +} +#topnav { + padding: 12px 0; +} +#topnav li { + position: relative; +} +#topnav li .sub { + position: absolute; + top: -1px; + left: 228px; + display: none; + border: 1px solid #EBEBEB; + border-radius: 0 7px 7px 0; + box-shadow: -2px 2px 8px -6px black; + padding: 0 10px; + background: #fff; +} +#topnav ul { + width: 200px; + background: #fff; +} +#topnav .group a, #help-panel .main { + color: #007DC5; + text-decoration: none; + font-size: 17px; + display: block; + text-shadow: 1px 1px 1px white; + border-bottom: 1px solid #EBEBEB; + border-top: 1px solid white; + padding: 5px 15px; + font-family: Trebuchet MS, Lucida Sans Unicode, Tahoma, Geneva, sans-serif; +} +#topnav .sub a { + border-bottom: 1px dotted #d9d9d9; + padding-left: 5px; + color: #33aade; +} +#topnav a:hover, #topnav a.selected { + color: #333; + background: #fff; +} +.chief2 { + color: #444; + font-size: 11px; + text-transform: uppercase; + font-weight: bold; +} +.red2 { + color: #de3b21; +} +#news_mod p { + margin: 0; +} +.data_news { + font-size: 11px; + color: #999; +} +.module2 { + text-align: center; + line-height: 0; +} +#top50_2, .top50_2 { + /*padding: 10px 0 0;*/ + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; +} +/* Vendors Bottom + -----------------------------------------------------------------------------*/ +.vendor_table { + border-collapse: separate; + border-spacing: 10px; + width: 100%; +} +.vendor_table td { + border: 1px solid #DFDFDF; + padding: 7px; + vertical-align: middle; +} +.vendor_table td:hover { + border-color: #80A1CA; +} +.vendor_table a, .vendor_table div { + display: block; + text-align: center; + margin: 0 auto; +} +#vr_1 { + width: 100px; + height: 38px; + background: url(../images/footer_logos2.gif) no-repeat 0 0 +} +#vr_2 { + width: 106px; + height: 38px; + background: url(../images/footer_logos2.gif) no-repeat -101px 0 +} +#vr_3 { + width: 100px; + height: 38px; + background: url(../images/footer_logos2.gif) no-repeat -206px 0 +} +#vr_4 { + width: 100px; + height: 38px; + background: url(../images/footer_logos2.gif) no-repeat -314px 0 +} +#vr_5 { + width: 100px; + height: 30px; + background: url(../images/footer_logos2.gif) no-repeat 0 -46px +} +#vr_6 { + width: 100px; + height: 46px; + background: url(../images/footer_logos2.gif) no-repeat -108px -39px +} +#vr_7 { + width: 107px; + height: 46px; + background: url(../images/footer_logos2.gif) no-repeat -207px -38px +} +#vr_8 { + width: 106px; + height: 46px; + background: url(../images/footer_logos2.gif) no-repeat -312px -40px +} +#vr_9 { + width: 100px; + height: 48px; + background: url(../images/footer_logos2.gif) no-repeat 0 -84px +} +#vr_10 { + width: 107px; + height: 48px; + background: url(../images/footer_logos2.gif) no-repeat -101px -86px +} +#vr_11 { + width: 100px; + height: 48px; + background: url(../images/footer_logos2.gif) no-repeat -209px -84px +} +#vr_12 { + width: 100px; + height: 48px; + background: url(../images/footer_logos2.gif) no-repeat -316px -85px +} +#vr_13 { + width: 100px; + height: 38px; + background: url(../images/footer_logos2.gif) no-repeat 0 -133px +} +#vr_14 { + width: 100px; + height: 38px; + background: url(../images/footer_logos2.gif) no-repeat -103px -133px +} +#vr_15 { + width: 100px; + height: 38px; + background: url(../images/footer_logos2.gif) no-repeat -209px -133px +} +#vr_16 { + width: 110px; + height: 38px; + background: url(../images/footer_logos2.gif) no-repeat -313px -133px +} +#vr_17 { + width: 100px; + height: 32px; + background: url(../images/footer_logos2.gif) no-repeat 0 -172px +} +#vr_18 { + width: 100px; + height: 41px; + background: url(../images/footer_logos2.gif) no-repeat -101px -171px +} +#vr_19 { + width: 100px; + height: 32px; + background: url(../images/footer_logos2.gif) no-repeat -209px -171px +} +#vr_20 { + width: 100px; + height: 32px; + background: url(../images/footer_logos2.gif) no-repeat -315px -171px +} +#vr_22 { + width: 119px; + height: 55px; + background: url(../images/footer_logos2.gif) no-repeat -101px -215px; +} +#vr_21 { + width: 101px; + height: 37px; + background: url(../images/footer_logos2.gif) no-repeat 0 -212px; +} +/* Middle + -----------------------------------------------------------------------------*/ +#middle { + width: 100%; + /*padding: 0 0 170px; + height: 100%; */ + position: relative; +} +#middle:after { + content: '.'; + display: block; + clear: both; + visibility: hidden; + height: 0; +} +#container { + width: 100%; + float: left; + overflow: hidden; +} +#content { + padding: 0 0 35px 260px; +} +/* Sidebar Left + -----------------------------------------------------------------------------*/ +#sideLeft { + float: left; + width: 225px; + margin-left: -100%; + position: relative; +} +/* Footer + -----------------------------------------------------------------------------*/ +#footer { + margin:0px auto; + clear: both; + text-align: center; + height: 120px; + background: url(../images/bottom_bg.png) repeat-x; + position: relative; + overflow: hidden; +} +.float_wrapper { + float: left; + position: relative; + left: 50%; + margin-top: 72px; +} +#bottom_links { + position: absolute; + left: 20px; + top: 138px; +} +#copyright2 { + background: url(../images/logo_footer.png) no-repeat left center; + color: #000; + font-size: 19px; + float: left; + position: relative; + right: 50%; + text-shadow: 1px 1px 0px white; +} +/* Main Page + -----------------------------------------------------------------------------*/ +.sale_label { + float: left; + padding-right: 20px; + +} +.content_box { + text-align: justify; +} +#brands { + padding-bottom: 5px; +} +#m_brands { + float: right; +} +#intro_text { + text-align: justify; + /*margin-right: 300px;*/ + clear: left; +} +#box_3_2 { + margin: 0px 0 0px; + overflow: hidden; + float: left; +} +#box_3_2 .m_img { + margin: 0; +} +#box_3_2 .module_name { + float: none; + text-align: center; + width: 406px; +} +.m_row_item { + float: left; + padding: 10px; + position: relative; +} +.label2 { + position: absolute; + top: 8px; + left: 61px; +} +.m_name { + font-weight: bold; + color: #c9eefe; + border-bottom: 1px dotted #fff; + margin-bottom: 5px; +} +/* + .m_desc { + overflow: hidden; + margin: 8px 0; + } + */ +.m_price { + text-align: center; + color: black; + font: bold 16px Trebuchet MS, Lucida Sans Unicode, Tahoma, Geneva, sans-serif; + padding-top: 4px; + text-shadow: 1px 1px 0px #FCE468; + margin-bottom: -2px; +} +.m_img { + float: left; + margin-right: 8px; + padding: 8px; + background: #fff url(../images/price_bg.png) repeat-x bottom; + /*background: #F8F8F8 url(../images/price_bg.png) repeat-x bottom;*/ + border: 1px solid #EBEBEB; + border-bottom: 1px solid #CCC; + box-shadow: 0 2px 8px -5px black; + -webkit-box-shadow: 0 2px 8px -5px black; + -moz-box-shadow: 0 2px 8px -5px black; + width: 100px; + text-align: center; +} +.b_img2 { + display: block; + margin: 5px 0; +} +/* Tooltip + -----------------------------------------------------------------------------*/ + +.d_none { + display: none; +} +.t_yellow { + color: #007DC5; +} +#easyTooltip3 { + padding: 5px 10px; + border: 1px solid #5e5e5e; + background: #5e5e5e; + color: #fff; + text-shadow: 1px 1px #444; + opacity: 0.9; + filter: progid :DXImageTransform.Microsoft.Gradient(GradientType=0,StartColorStr=#8e8e8e,EndColorStr=#616161); + background-image: -moz-linear-gradient(top,#8e8e8e 0,#616161 100%); + background-image: -ms-linear-gradient(top,#8e8e8e 0,#616161 100%); + background-image: -o-linear-gradient(top,#8e8e8e 0,#616161 100%); + background-image: -webkit-gradient(linear,left top,left bottom,color-stop(0,#8e8e8e),color-stop(100%,#616161)); + background-image: -webkit-linear-gradient(top,#8e8e8e 0,#616161 100%); + background-image: linear-gradient(to bottom,#8e8e8e 0,#616161 100%); +} +#easyTooltip, #easyTooltip2, #easyTooltip3 { + font-family: Verdana, Arial, Helvetica, sans-serif; + font-size: 11px; + z-index: 9999; +} +#easyTooltip { + padding: 2px 10px; + border: 1px solid #5e5e5e; + background: #5e5e5e url(/images/bg2.gif) repeat-x; + color: #fff; + text-shadow: 1px 1px #444; +} +#easyTooltip2 .module_content { + padding: 5px 15px; + opacity: 0.8; +} +/* Help Panel + -----------------------------------------------------------------------------*/ + +#help { + display: block; + position: fixed; + right: 0; + top: 250px; + /*width: 279px;*/ + z-index: 5; + color: #333; +} +#help-panel { + display: none; + float: right; + width: 240px; +} +#help-panel .collapse { + display: none; + padding: 15px; + background: #fff; + border-bottom: 1px solid #EBEBEB; +} +#help-panel a.title { + background: url("/plugins/helper/images/but-right.gif") no-repeat 8px 19px; + color: #333; + display: block; + padding: 12px 10px 12px 22px; +} +#help-panel a.selected { + background: url("/plugins/helper/images/but-down.gif") no-repeat 8px 19px; +} +#help a { + text-decoration: none; +} +#help-button { + float: right; + position: relative; + top: 13px; +} +/* Your View + -----------------------------------------------------------------------------*/ +.y_v_box, .thead, .ainfo, .section, .module_content { + text-shadow: 1px 1px 0 white; + margin-bottom: 20px; +} +.wrapper_img .v_img { + line-height: 0; + display: block; + padding-right: 5px; + float: left; +} +.wrapper_img { + border-bottom: 1px solid #EBEBEB; + border-top: 1px solid #EBEBEB; + padding: 7px 0; +} +.view_desc { + border-bottom: 1px solid white; + padding-bottom: 3px; +} +.view_bottom { + border-top: 1px solid white; + padding-top: 3px; +} +.no, .yes, .limit { + font-weight: 700 +} +.yes, .green2 { + color: #71ac18 +} +.no, .no_good { + color: red; +} +.limit { + color: orange +} +/* Cats + -----------------------------------------------------------------------------*/ + +#w2b-StoTop { + -moz-border-radius: 5px; + -webkit-border-radius: 5px; + border-radius: 5px; + width: 50px; + background-color: #EFEFEF; + text-align: center; + padding: 5px; + position: fixed; + bottom: 10px; + right: 10px; + cursor: pointer; + color: #444; + text-decoration: none; + border: 1px solid #DDD; +} +#ajax_tastes select { + position: static; +} +.cmp_label { + cursor: pointer; +} +.article_cat { + margin-bottom: 20px; +} +#content .article_cat li { + margin: 5px 0; +} +.quick_box { + float: left; + margin-right: 33px; +} +.q_box_links { + padding: 3px; +} +.last_box { + margin-right: 0; +} +.ancLinks, .ancLinks2 { + color: #FF5F02; + font-family: Trebuchet MS, Lucida Sans Unicode, Tahoma, Geneva, sans-serif; + text-decoration: none; + border-bottom: 1px dashed; +} +.sale_cat { + float: right; +} +.count_num { + padding-left: 3px; + color: #999; +} +#hide_goods { + padding: 10px; + border: 1px solid #91D7FF; + float: left; + border-radius: 7px; + margin: 15px 0 0; +} +#hide_goods span { + cursor: pointer; + border-bottom: 1px dashed #007DC5; + color: #007DC5; + font-weight: bold; + padding: 2px; +} +#content .ideal_ckek2 { + list-style: none; + margin: 0; + display: block; +} +.img_cat { + width: 100px; + text-align: center; + border: 1px solid #EBEBEB; + position: relative; + padding: 10px; + background: #fff; +} + + +.label3 { + position: absolute; + top: -3PX; + right: -3px; +} +.tpurchase, .tprice, .tleft, .tpack { + + background: #F8F8F8; + border: 1px solid #EBEBEB; + -webkit-box-shadow: inset 0px 0px 0px 1px #fff; + -moz-box-shadow: inset 0px 0px 0px 1px #fff; + box-shadow: inset 0px 0px 0px 1px #fff; + padding: 10px; +} +.tleft { + border-radius: 7px 0 0 7px; + border-right: none; +} +.tpurchase { + border-radius: 0 7px 7px 0; +} +.tpack, .tprice { + border-radius: 0; + border-right: none; +} +.tpack, .tprice, .tpurchase { + width: 70px; + text-align: center; +} +.orange2 { + color: #FF5F02; + border-bottom: 1px dotted; + text-decoration: none; +} +.productstable, .tbl_header { + width: 100%; +} +.productstable td { + padding: 16px 0; +} +#basket_form .productstable td { + text-align: center; +} +.thead td { + padding: 3px 0; +} +.cat_item_row { + border-bottom: 1px dotted #E8E8E8; +} +td.descr_good { + text-align: left; + padding-left: 13px; + padding-right: 5px; + width: 10px; +} +.big_title { + margin-bottom: 8px; + color: #000; +} +.big_title a { + font-size: 18px; + margin-right: 10px; +} +.top_button { + text-align: center; + margin: 20px; +} +.td_img { + vertical-align: top; + text-align: left; +} +.cat_price2 { + float: none; + margin: 0; + padding: 5px; + width: 75px; +} +.qnt_box { + position: relative; + bottom: 3px; +} +.qnt_text { + width: 47px; + position: absolute; + right: 23px; + text-align: center; + height: 41px; + bottom: 0; +} +.mail_ico, .add2_cart_lim, .add_to_cart { + background: url(../images/p_label.gif) no-repeat 0 0; + cursor: pointer; + height: 41px; + width: 48px; +} +.inform_err { + font-size: 13px; +} +.mail_ico { + background-position: -47px -51px; + width: 41px; + height: 30px; + position: relative; + top: 1px; +} +.no_good { + position: absolute; + bottom: 32px; + left: 7px; +} +.hidden_form { + position: absolute; + right: 54px; + z-index: 10; + margin-top: 8px +} +.hidden_form .email { + margin-right: 10px; +} +.add2_cart_lim { + background-position: 0 -40px; +} +.quick_links { + margin: 15px 0; +} +.breadcrumbs { + margin: 0px 0 10px; +} +.icon2 { + background: url(/img/icons.gif) no-repeat 5px -47px; + padding-left: 19px; +} +.ainfo, .ainfo select { + padding: 3px; + font-size: 11px; + font-family: Verdana; +} +.ainfo { + position: absolute; + right: 0; + z-index: 500; + padding: 10px; +} +/* FAQ + -----------------------------------------------------------------------------*/ + +.forminput { + width: 100%; +} +#faq_pages { + position: relative; + left: 50%; + float: left; + margin: 15px 0; +} +.faq_page_nav, .f_norm, .f_new { + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; +} +.faq_page_nav, .f_norm, .f_new { + text-decoration: none; + border: 1px solid #CCC; + text-shadow: 0 1px 0 white; + border-bottom-color: #AAA; + background-color: #E0E0E0; + filter: progid :DXImageTransform.Microsoft.Gradient(GradientType=0,StartColorStr=#ffffffff,EndColorStr=#ffe0e0e0); + background-image: -moz-linear-gradient(top,white 0,#E0E0E0 100%); + background-image: -ms-linear-gradient(top,white 0,#E0E0E0 100%); + background-image: -o-linear-gradient(top,white 0,#E0E0E0 100%); + background-image: -webkit-gradient(linear,left top,left bottom,color-stop(0,white),color-stop(100%,#E0E0E0)); + background-image: -webkit-linear-gradient(top,white 0,#E0E0E0 100%); + background-image: linear-gradient(to bottom,white 0,#E0E0E0 100%); + -moz-box-shadow: inset 0 0 1px #fff; + -ms-box-shadow: inset 0 0 1px #fff; + -webkit-box-shadow: inset 0 0 1px #fff; + box-shadow: inset 0 0 1px #fff; + padding: 12px; + font-weight: bold; + font-size: 15px; + white-space: nowrap; + word-wrap: normal; + cursor: pointer; + margin: 4px; + line-height: 0; + display: block; + float: left; + overflow: hidden; + position: relative; + right: 50%; +} +.faq_page_nav:hover { + -moz-box-shadow: 0 1px 2px rgba(0,0,0,0.25), inset 0 0 3px #fff; + -ms-box-shadow: 0 1px 2px rgba(0,0,0,0.25), inset 0 0 3px #fff; + -webkit-box-shadow: 0 1px 2px rgba(0,0,0,0.25), inset 0 0 3px #fff; + box-shadow: 0 1px 2px rgba(0,0,0,0.25), inset 0 0 3px #fff; + border-color: #999; +} +.cur_page_faq, .cur_page_faq:hover { + text-shadow: 0 1px 0 #C1BFBF; + background-color: #DADADA; + background-image: none; + -moz-box-shadow: inset 2px 2px 7px rgba(51,51,51, 0.3); + -ms-box-shadow: inset 2px 2px 7px rgba(51,51,51, 0.3); + -webkit-box-shadow: inset 2px 2px 7px rgba(51,51,51, 0.3); + box-shadow: inset 2px 2px 7px rgba(51,51,51, 0.3); + color: white; + cursor: default; + border-color: #ccc; +} +.add_quest { + position: absolute; + top: 38px; + right: 0; + font-size: 18px; + color: #007DC5; + border: 1px solid #91D7FF; + padding: 11px 15px; + -moz-border-radius: 5px; + -webkit-border-radius: 5px; + border-radius: 5px; +} +.add_quest a { + text-decoration: none; + border-bottom: 1px dashed; +} +.faq_quest { + margin-bottom: 20px; + border-bottom: 1px dotted #CCC; + padding-bottom: 25px; +} +.f_norm, .f_new { + float: left; + padding: 0 5px; + color: #444; + margin-right: 15px; + font-size: 12px; + line-height: 20px; + left: 0; + bottom: 5px; + cursor: default; +} +.f_new { + background: #ffa800; + text-shadow: 1px 1px 1px #e19501; + color: #fff; + border: 1px solid #e19501; +} +.num_views { + font-size: 13px; + margin-bottom: 10px; + color: #8DB62D; +} +.f_title { + font-size: 18px; + display: block; + margin-bottom: 10px; +} +.em_quest { + font-style: italic; +} +#form_faq { + width: 70%; + margin-top: 20px; +} +#form_faq .f_field_name { + width: 150px; +} +#form_faq td { + padding: 5px 0; +} +.f_field_name { + color: #000; +} +/* Article + -----------------------------------------------------------------------------*/ +.img_art, .v_rolik { + border: 1px solid #EBEBEB; + overflow: hidden; + display: block; + float: left; + margin-right: 15px; + padding: 10px; + border-radius: 5px; + border-bottom: 1px solid #CCC; + box-shadow: 0 2px 8px -5px black; + -webkit-box-shadow: 0 2px 8px -5px black; + -moz-box-shadow: 0 2px 8px -5px black; +} +/* Contacts + -----------------------------------------------------------------------------*/ +div.addWM2 { + position: absolute; + right: 62px; + top: 323px +} +.awards { + background: url(/img/awards/cup.png) no-repeat 106px 23px; + height: 50px; + padding-top: 38px; +} +.contacts .cont_icon, .cont_icon { + color: #333; + text-transform: uppercase; + font-weight: 700; + font-family: Trebuchet MS, Lucida Sans Unicode, Tahoma, Geneva, sans-serif; +} +.contacts td { + font-weight: 700; + border-bottom: 1px dashed #CCC; + padding: 10px; +} +.doc_tbl { + margin: 20px 0; +} +.row_name { + text-align: center; + padding: 2px 9px 2px 0; + font-weight: bold; +} +.excel_text { + font: normal 11px Verdana, sans-serif; + text-decoration: none; + position: relative; + bottom: 10px; +} +.excel img { + margin-right: 5px; +} +.ex2 { + margin-left: 80px; +} +.region_dialers { + margin-top: 15px; +} +.mail_icon_png { + position: relative; + left: 7px; + bottom: -3px; +} +.cont_feedback a { + color: white; + text-decoration: none; +} +.cont_feedback { + float: left; + position: absolute; + top: 470px; +} +#tagsHelpBlock td { + border-bottom: 1px dashed #CCC; + padding: 10px 0; +} +.txt-red10 { + color: #DE3B21; +} +#productstable_back td, #bsk_tbl td { + padding: 5px; +} +#bsk_tbl th { + text-align: right; + padding-right: 35px; +} +.contact_table td { + font-weight: normal; +} +.contact_table p { + margin: 0; +} +/* Delivery + -----------------------------------------------------------------------------*/ +.addWM { + position: absolute; + top: 50px; + right: 0; +} +#content .custom_list { + list-style-type: decimal; +} +.deliv_tbl td, .deliv_tbl2 td { + padding-right: 20px; +} +.deliv_tbl { + margin-top: 25px; + border-bottom: 1px dashed #CCC; + display: block; + margin-bottom: 10px; + border-top: 1px dashed #CCC; + padding: 10px; +} +.sale3, .sale4, .sale5 { + padding: 18px 0 18px 70px; +} +.sale3 { + background: url(../images/sale5.png) no-repeat 0 center; +} +.sale4 { + background: url(../images/sale10.png) no-repeat 0 center; + margin-left: 75px; +} +.sale5 { + background: url(../images/sale15.png) no-repeat 0 center; + margin-left: 150px; +} +/* Basket + -----------------------------------------------------------------------------*/ +.messages, .errors { + display: block; + color: #666; + padding: 7px 10px; + font-size: 13px; +} +.messages { + border: 1px solid #090; + background-color: #DFC +} +.errors { + border: 1px solid #FC3; + background-color: #FFF4C2; +} +/* Product + -----------------------------------------------------------------------------*/ +.detail_img { + padding: 15px 25px; + position: relative; + overflow: visible; + margin: 5px 30px 10px 0; +} +.p_short_desc { + color: #8DB62D; + margin-bottom: 20px; + font-size: 18px; + font-family: Trebuchet MS, Lucida Sans Unicode, Tahoma, Geneva, sans-serif; +} +.p_prop { + margin-bottom: 5px; +} +.buy_button { + margin: 7px 0 0 2px; +} +.p_price { + width: 150px; + overflow: hidden; + float: none; + padding: 5px 0; +} +#buy_box { + float: right; + width: 153px; +} +.separat { + margin-bottom: 20px; +} +#content .separat li { + margin: 0; +} +.mail_ico2 { + font-size: 19px; + font-family: verdana; + text-decoration: none; + border-bottom: 1px dashed +} +a.close { + background: url(/css/fancy_img/fancy_closebox.png) no-repeat 0 0; + cursor: pointer; + display: block; + height: 30px; + position: absolute; + right: -12px; + top: -12px; + width: 30px; + z-index: 100 +} +#mask, #compare_mask { + position: absolute; + left: 0; + top: 0; + z-index: 9000; + background-color: #000; + display: none +} +.window { + position: absolute; + left: 0; + top: 0; + display: none; + z-index: 9999; + padding: 20px +} +#dialog_vote, #compare_box { + width: 375px; + height: 244px; + background-color: white; + border: 1px solid black; + padding: 20px; +} +.cmp_del_img { + background: url(/img/drop_inform2.png) no-repeat left; + padding-left: 25px; + display: block; + margin: 10px 0; + height: 18px; +} +/* Product Tabs + -----------------------------------------------------------------------------*/ +.full_descr img { + margin: 5px 0 15px 20px; +} +.section { + margin: 60px 0 +} +ul.tabs { + position: relative; + z-index: 6; + top: -7px; +} +.tabs li:hover { + color: #F70; +} +.tabs li.current { + color: #F70; +} +.tabs li { + display: inline; + color: #666; + cursor: pointer; + -webkit-box-shadow: inset 1px 1px 0px 0px #fff; + -moz-box-shadow: inset 1px 1px 0px 0px #fff; + box-shadow: inset 1px 1px 0px 0px #fff; + -moz-border-radius: 7px 7px 0 0; + -webkit-border-radius: 7px 7px 0 0; + -khtml-border-radius: 7px 7px 0 0; + border-radius: 7px 7px 0 0; + padding: 10px 40px; + border-bottom: none; + font-size: 16px; + font-family: Trebuchet MS, Lucida Sans Unicode, Tahoma, Geneva, sans-serif; +} +.box { + display: none; + position: relative; + z-index: 5; + -moz-border-radius: 0 7px 7px 7px; + -webkit-border-radius: 0 7px 7px 7px; + -khtml-border-radius: 0 7px 7px 7px; + border-radius: 0 7px 7px 7px; + padding: 25px; + overflow: hidden; + clear: both; +} +.box.visible { + display: block +} +.box .m_row_item { + width: inherit; +} +#content .tabs li { + margin: 0 6px 0 0; +} +.product-reviews h4 { + background: url(/images/user-icon-l.png) no-repeat scroll 0 1px transparent; + padding-left: 22px; + color: #5890A8; + padding-bottom: 5px; + line-height: 18px +} +.product-reviews blockquote { + margin: 10px 30px +} +.zoom1 { + cursor: url(/img/zoomin.cur), pointer; +} +.energy_cennost { + border-collapse: separate; + border: 1px solid #E5E4E4; + border-right: 1px solid white; + border-bottom: 1px solid white; +} +.energy_cennost td, .energy_cennost th { + background: #f1f1f1; + padding: 8px 15px; + border-left: 1px solid white; + border-right: 1px solid #e5e4e4; + border-top: 1px solid white; + border-bottom: 1px solid #e5e4e4; +} +.energy_cennost th { + background: #E7E7E7; +} + + + +/* Fancy Box styles + -----------------------------------------------------------------------------*/ +div#fancy_overlay { + position: absolute; + top: 0; + left: 0; + z-index: 201; + width: 100%; + background: #000 +} +div#fancy_loading { + position: absolute; + height: 40px; + width: 40px; + cursor: pointer; + display: none; + overflow: hidden; + background: transparent; + z-index: 100 +} +div#fancy_loading div { + position: absolute; + top: 0; + left: 0; + width: 40px; + height: 480px; + background: transparent url(fancy_img/fancy_progress.png) no-repeat +} +div#fancy_close { + position: absolute; + top: -12px; + right: -12px; + height: 30px; + width: 30px; + background: transparent url(fancy_img/fancy_closebox.png); + cursor: pointer; + z-index: 100; + display: none +} +div#fancy_content { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + z-index: 96; + margin: 0; + padding: 0 +} +#fancy_frame { + position: relative; + width: 100%; + height: 100%; + display: none +} +img#fancy_img { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + border: 0; + z-index: 92; + margin: 0; + padding: 0 +} +div#fancy_title { + position: absolute; + bottom: -35px; + left: 0; + width: 100%; + z-index: 100; + display: none +} +div#fancy_title table { + margin: 0 auto +} +div#fancy_title div { + color: #FFF; + font: bold 12px Arial; + padding-bottom: 2px +} +td#fancy_title_left { + height: 32px; + width: 15px; + background: transparent url(fancy_img/fancy_title_left.png) repeat-x +} +td#fancy_title_main { + height: 32px; + background: transparent url(fancy_img/fancy_title_main.png) repeat-x +} +td#fancy_title_right { + height: 32px; + width: 15px; + background: transparent url(fancy_img/fancy_title_right.png) repeat-x +} +div#fancy_outer { + position: absolute; + top: 0; + left: 0; + z-index: 9000; + overflow: hidden; + background: transparent; + display: none; + margin: 0; + padding: 18px 18px 58px +} +div#fancy_inner { + position: relative; + width: 100%; + height: 100%; + border: 1px solid #444; + background: #FFF +} +a#fancy_left, a#fancy_right { + position: absolute; + bottom: 10px; + height: 100%; + width: 35%; + cursor: pointer; + background-image: url(data:image/gif;base64,AAAA); + z-index: 100 +} +a#fancy_left { + left: 0 +} +a#fancy_right { + right: 0 +} +a#fancy_left:hover { + background: transparent url(fancy_img/fancy_left.gif) no-repeat 0 100% +} +a#fancy_right:hover { + background: transparent url(fancy_img/fancy_right.gif) no-repeat 100% 100% +} +#fancy_bigIframe, #fancy_freeIframe { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + z-index: 10 +} +div#fancy_bg { + display: none +} +div.fancy_bg { + position: absolute; + display: block; + z-index: 70 +} +div.fancy_bg_n { + top: -18px; + width: 100%; + height: 18px; + background: transparent url(fancy_img/fancy_shadow_n.png) repeat-x +} +div.fancy_bg_ne { + top: -18px; + right: -13px; + width: 13px; + height: 18px; + background: transparent url(fancy_img/fancy_shadow_ne.png) no-repeat +} +div.fancy_bg_e { + right: -13px; + height: 100%; + width: 13px; + background: transparent url(fancy_img/fancy_shadow_e.png) repeat-y +} +div.fancy_bg_se { + bottom: -18px; + right: -13px; + width: 13px; + height: 18px; + background: transparent url(fancy_img/fancy_shadow_se.png) no-repeat +} +div.fancy_bg_s { + bottom: -18px; + width: 100%; + height: 18px; + background: transparent url(fancy_img/fancy_shadow_s.png) repeat-x +} +div.fancy_bg_sw { + bottom: -18px; + left: -13px; + width: 13px; + height: 18px; + background: transparent url(fancy_img/fancy_shadow_sw.png) no-repeat +} +div.fancy_bg_w { + left: -13px; + height: 100%; + width: 13px; + background: transparent url(fancy_img/fancy_shadow_w.png) repeat-y +} +div.fancy_bg_nw { + top: -18px; + left: -13px; + width: 13px; + height: 18px; + background: transparent url(fancy_img/fancy_shadow_nw.png) no-repeat +} + +.image { float: left; +} + +/* @group */ +.product .image { + text-align: center; + width: 300px; + background-color: #ffffff; + border: 1px solid #e0e0e0; + float: left; + padding: 5px; + margin-right: 20px; +} +.product .image img{ + max-width: 300px; +} +.product .images { + float: left; + clear: left; + width: 300px; + margin-right: 20px; + margin-bottom: 10px; + padding-top: 15px; + padding-bottom: 15px; +} +.product .images img{ + text-align: center; + width: 50px; + background-color: #ffffff; + border: 1px solid #e0e0e0; + float: left; + padding: 5px; + margin: 4px 10px 10px 0px; +} +.product .description{ + width:100%; + float:left; +} + +#features { + list-style: none; + width: 330px; + float:right; + display: block; + clear: both; + margin-top: 15px; + margin-bottom: 25px; + border-bottom: 1px solid #e0e0e0; +} +.product .features li { + padding: 10px 5px 10px 5px; + overflow: hidden; + width: 330px; + border-top: 1px solid #e0e0e0; + background-color: #f0f0f0; +} +.product .features li.even{ + background-color: #e9e9e9; +} +.product .features label { + font-style: normal; + display: block; + width: 30%; + float: left; +} +.product .features p { + float: left; + display: block; + width: 70%; +} +.product .variants { + + font-size: 16px; +} +.product .variant td{ + padding-bottom: 6px; + vertical-align: middle; +} +.product .compare_price { + font-size: 14px; + text-decoration: line-through; + white-space: nowrap; + color: #707070; +} +.product .price { + font-size: 16px; + color:#000000; + font-weight:bold; + white-space: nowrap; +} +.product .variant_name { + float: left; + margin-right: 10px; + font-size: 12px; +} +.product .variant_radiobutton { + margin-right: 5px; + margin-left: 0px; +} +#back_forward { + font-size: 14px; + margin-bottom: 20px; + clear: both; +} +#back_forward a.prev_page_link{ + margin-right: 20px; +} +/* @end */ + + +.tiny_products { + list-style: none; + display: block; +} +.tiny_products .product{ + width: 210px; + margin-right: 10px; + margin-bottom: 30px; + display: -moz-inline-box; + display: inline-block; + *zoom: 1; + *display: inline; + word-spacing: normal; + vertical-align: top; +} +.tiny_products .product .image { + vertical-align: middle; + text-align: center; + width: 200px; + +/* line-height: 200px;*/ + background-color: #ffffff; + border: 1px solid #e0e0e0; + padding: 5px; + margin-bottom: 10px; +} +.tiny_products .product .image img{ + vertical-align: middle; + max-width: 200px; +} +.tiny_products .product h3 { + font-size: 14px; + margin-bottom: 10px; + font-weight: normal; +} +.tiny_products .product h3.featured{ + background: url(../images/star.png) no-repeat; + background-position: left middle; + padding-left: 20px; +} + + + + + +.products { + list-style: none; + display: block; +} +.products .product{ + width: 100%; + display: block; + clear: both; + overflow: hidden; +} +.products .product .image { + text-align: center; + width: 200px; + background-color: #ffffff; + border: 1px solid #e0e0e0; + float: left; + padding: 5px; + margin: 4px 0px 20px 0px; +} +.products .product .image img{ + max-width: 200px; +} +.products .product .product_info { + float: right; + width: 450px; + margin-bottom: 40px; +} +.products .product h3 { + font-size: 20px; + margin-bottom: 5px; + font-weight: normal; +} +.products .product h3.featured{ + background: url(../images/star.png) no-repeat; + background-position: left middle; + padding-left: 20px; +} + +.products .product .annotation { + font-size: 12px; + color: #505050;; + margin-bottom: 5px; +} +#product { +float:left; +} + +#call { width:200px; + padding-left: 20px; +} +#mail_form { +padding: 0 100px 0 120px; +} + +#paymethods { margin-top: 20px; + margin-bottom: -50px; +} +/* @group */ +.comment_list { + margin-top: 15px; + list-style: none; +} +.comment_list li { + padding-bottom: 15px; +} +.comment_list li div{ + padding-bottom: 15px; +} +.comment_header { + font-size: 18px; + +} +.comment_header div { + display: block;!impact + +} +.comment_header i { + font-weight: normal; + font-style: normal; + color: #878787; + font-size: 13px; +} +/* @end */ + +/* @group */ +.comment_form { + background-color: #f3f3f3; + border: 1px solid #e0e0e0; + padding: 20px; + margin-top: 20px; + width: 90%; + overflow: hidden; +} +.comment_form h2 { + margin-bottom: 0px; +} +.comment_form .comment_textarea { + width: 100%; + height: 100px; + font-size: 12px; +} +.comment_form label { + display: block; + float: left; + width: 100px; + font-size: 18px; + margin-top: 15px; +} +.comment_form .input_name { + font-size: 16px; + width: 250px; + margin-top: 15px; +} +.comment_form .input_captcha, .cart_form .input_captcha{ + float: left; + width: 150px; + font-size: 24px; + font-weight: bold; + text-transform: uppercase; + margin-top: 15px; + height: 36px; +} +.comment_form .captcha, .cart_form .captcha { + float: left; + display: block; + margin-top: 15px; + margin-right: 10px; +} +.comment_form .button, +.feedback_form .button, +.register_form .button, +.login_form .button{ + float: right; + display: block; + margin-top: 10px; + margin-right: 0px; +} +/* @end */ + +/* @group */ +.feedback_form { + background-color: #f3f3f3; + border: 1px solid #e0e0e0; + padding: 20px; + margin-top: 20px; + width: 90%; + overflow: hidden; +} +.feedback_form .input_captcha, .register_form .input_captcha{ + float: left; + width: 150px; + font-size: 24px; + font-weight: bold; + text-transform: uppercase; + margin-top: 15px; + height: 36px; +} +.feedback_form .captcha, .register_form .captcha{ + float: left; + display: block; + margin-top: 15px; + margin-right: 10px; +} +.feedback_form .button_send { + font-size: 18px; + float: right; + margin-top: 25px; +} +/* @end */ +/* @group */ +#purchases{ + width: 100%; + +} +#purchases tr{ + border-top: 1px solid #d5d5d5; + +} +#purchases td{ + vertical-align: middle; + +} +#purchases th{ + vertical-align: top; + padding-top: 10px; + font-size: 18px; + font-weight: normal; +} +#purchases .image{ + width: 50px; + +} +#purchases .image a{ + border: 1px solid #e0e0e0; + background-color: #ffffff; + margin: 0 7px 7px 0; + display: table-cell; + vertical-align: middle; + text-align: center; + width: 50px; + +} + +#purchases .name{ + padding-left: 10px; + padding-right: 10px; + +} +#purchases td.name{ + font-size: 14px; +} +#purchases td .download_attachment{ + white-space: nowrap; + color: #3b8500; + padding: 5px 10px 7px 10px; + border-bottom-color: 1px dotted green; + background-color: #ccff72; + line-height: 30px; +} + +#purchases .price{ + padding-left: 5px; + padding-right: 5px; + white-space: nowrap; + text-align: right; +} +#purchases td.price{ + font-size: 14px; +} +#purchases .remove{ + padding-left: 15px; + +} +#purchases .amount{ + font-size: 14px; + padding-left: 5px; + padding-right: 5px; +} +#purchases .amount select{ + font-size:12px; +} + +#purchases .coupon .name{ + font-size:14px; +} +#purchases .coupon .name input.coupon_code{ + width: 200px; +} +#purchases .coupon .name input{ + font-size:16px; +} + +ul#deliveries{ + margin-top: 20px; + margin-bottom: 20px; + background-color: #ffffff; + border: 1px solid #e0e0e0; + padding: 20px 20px 0 20px; + list-style: none; +} +ul#deliveries li{ + margin-bottom: 20px; +} +ul#deliveries li div.checkbox{ + float: left; +} +ul#deliveries li h3, ul#deliveries li .description{ + display: block; + margin-left: 25px; +} + +#cart_informer{ + +} + +#adrcart{ + background-color: #ffffff; + border: 1px solid #e0e0e0; + width:60%; + padding: 10px 10px 10px 40px; +} + + +/* @end */ +/* @group */ +input[type="text"] +{ + width: 100%; + font-size: 18px; + text-align: center; + +} +input[type="password"] +{ + width: 100%; + font-size: 18px; +} +.form +{ + width:400px; + margin-bottom: 20px; +} +.form textarea +{ + width:100%; + height:100px; + font-size: 18px; +} +.form label { + display:block; + font-size: 14px; +} +.form input[type="text"]{ + display:block; + margin-bottom: 10px; +} +/* TABS */ + #tabs{ + overflow: hidden; + width: 100%; + margin: 0; + padding: 0; + list-style: none; + } + + #tabs li{ + float: left; + margin: 0 .5em 0 0; + } + + #tabs a{ + position: relative; + background: #ddd; + background-image: linear-gradient(to bottom, #fff, #ddd); + padding: .7em 1.2em; + float: left; + text-decoration: none; + color: #444; + text-shadow: 0 1px 0 rgba(255,255,255,.8); + border-radius: 5px 0 0 0; + box-shadow: 0 2px 2px rgba(0,0,0,.4); + } + + #tabs a:hover, + #tabs a:hover::after, + #tabs a:focus, + #tabs a:focus::after{ + background: #fff; + } + + #tabs a:focus{ + outline: 0; + } + + #tabs a::after{ + content:''; + position:absolute; + z-index: 1; + top: 0; + right: -.5em; + bottom: 0; + width: 1em; + background: #ddd; + background-image: linear-gradient(to bottom, #fff, #ddd); + box-shadow: 2px 2px 2px rgba(0,0,0,.4); + transform: skew(10deg); + border-radius: 0 5px 0 0; + } + + #tabs #current a, + #tabs #current a::after{ + background: #fff; + z-index: 3; + } + + #tabcontent + { + background: #fff; + padding: 20px 20px 20px 40px; + height: auto; + position: relative; + z-index: 2; + border-radius: 0 0px 0px 0px; + box-shadow: 0 0px 0px 0px rgba(0, 0, 0, .5); + display: block; + } + /* END TABS */ + +.comments { + display: block; + } +#add1 { font-size:16px; +} +#add2 { font-size: 16px; +} +#blogimg, .blogimg { +float:left; +margin-right: 20px; +} + + +/* */ +.testRater{margin-bottom:20px;} +.rater span {vertical-align:middle;font-size:16px;} +.rater-rating {margin-top:5px;} +.rater-starsOff, .rater-starsOn {display:inline-block; height:23px; background:url(../images/stars.png) repeat-x 0 0px;} +.rater-starsOn {display:block; max-width:115px; top:0; background-position: 0 -22px;} +.rater-starsHover {background-position: 0 -44px!important;} +/* @end */ + +#addcartpr{ + background: url(../images/addcartpr.png); + width: 158px; + height: 38px; +} + +#pricefon{ + background: url(../images/soprov_button.png); + width: 160px; + height: 31px; +} + +#pricetable{ + margin-left:10%; +} +#imgcat{ + vertical-align:middle; +} +#oplatainfo{ + list-style:disk; +} + +#btinfo ,.btinfo{ + list-style:disk; + line-height: 1.5; +} +.b-top {z-index:2600;position:fixed;left:0;bottom:90px;width:34%;margin-left:50%;opacity: 0.5;filter:alpha(opacity=50);} +.b-top:hover {opacity:1;filter:alpha(opacity=100);cursor:pointer;} +.b-top-but {z-index:2600;position:absolute;display:block;left:56px;bottom:0;margin:0 0 0 100%;padding:32px 12px 4px; +color:white;background:#000000 url(../images/b-j-top.png) no-repeat 50% 11px;border-radius:7px;} + +#blog_menu, .blog_menu { + list-style:none; + line-height:18px; + } +#blog_menu li, .blog_menu li{ + margin: 10px 0 0 30px; + } + +#blog { + list-style:none; +} +#b_count3 { + font-size:14px; + } +#b_sum3 { + font-size:14px; + } +#order_info { + margin: 0 auto; + line-height: 40px; + color: #000000; +} +#banright { + position: absolute; + float: right; + } + +.h2 { + margin: 0px; +padding: 0px; +border: 0px none; +outline: 0px none; +font-size: 18px; +vertical-align: baseline; +background: none repeat scroll 0% 0% transparent; +display: block; +-webkit-margin-before: 0.83em; +-webkit-margin-after: 0.83em; +-webkit-margin-start: 0px; +-webkit-margin-end: 0px; +font-weight: bold; +} + +.h22 { +margin: 0px; +padding: 0px; +border: 0px none; +outline: 0px none; +font-size: 18px; +vertical-align: baseline; +background: none repeat scroll 0% 0% transparent; +display: block; +color: #000000; +font-weight: bold; +} + +.h3 { + display: block; +font-size: 17px +-webkit-margin-before: 1em; +-webkit-margin-after: 1em; +-webkit-margin-start: 0px; +-webkit-margin-end: 0px; +font-weight: bold; +padding: 20px 0; +} + +.ttable td { + padding: 10px; + margin: 10px; +} + +.ttablew { + width: 100%; +} + +.pagination .selected { + font-weight: bold; +} \ No newline at end of file diff --git a/design/atomic/css/old/reset.css b/design/atomic/css/old/reset.css new file mode 100644 index 0000000..2e040fb --- /dev/null +++ b/design/atomic/css/old/reset.css @@ -0,0 +1,29 @@ +html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, font, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td { + margin: 0; + padding: 0; + border: 0; + outline: 0; + font-size: 100%; + background: transparent; +} +blockquote, q { + quotes: none; +} +blockquote:before, blockquote:after, q:before, q:after { + content: ''; + content: none; +} +ins { + text-decoration: none; +} +del { + text-decoration: line-through; +} +table { + border-collapse: collapse; + border-spacing: 0; +} +strong { + font-weight: bold; +} +.clear{clear: both;} diff --git a/design/atomic/css/old/style.css b/design/atomic/css/old/style.css new file mode 100644 index 0000000..d8300df --- /dev/null +++ b/design/atomic/css/old/style.css @@ -0,0 +1,1133 @@ +@import url("reset.css"); + +/* @group Общий стиль */ +html, +body { + width: 100%; + height: 100%; + font: 13px Tahoma, Arial, Helvetica, Geneva, sans-serif; + background-color: #f5f5f5; +} + +p{margin-bottom: 15px;} + +h1 { + font-size: 30px; + margin-bottom: 10px; + font-weight: normal; + text-shadow: 0px 1px 0px #fff; +} + +h2 { + clear: both; + font-size: 20px; + margin-bottom: 10px; + font-weight: normal; +} + +h3 { + font-size: 16px; + margin-top: 0px; + margin-bottom: 10px; + font-weight: normal; +} + +a { color: #0095eb; } + +a:hover { color: #e84d07; } + +e[type="button"] { + cursor:hand; + cursor:pointer; +} +/* @end — Общий стиль */ + + +/* @group Верхняя строка */ +#top_background{ + min-height: 44px; + padding-top: 10px; + width: 100%; + overflow: hidden; + padding-bottom: 5px; +} +#top{ + margin:0px auto; + width: 940px; +} +#menu{ + margin-left: -10px; + float: left; + margin-top: 7px; + max-width: 700px; +} + +#menu li{ + height: 30px; + display: block; + float: left; + list-style: none; +} +#menu li a{ + margin-right: 5px; + font-size: 12px; + display: block; + float: left; + padding: 6px 11px 6px 11px; + color: #606060; +} +#menu li.selected a, #menu li:hover a{ + border: 1px solid #d5d5d5; + background-color: #ffffff; + padding: 5px 10px 6px 10px; + border-radius: 20px; + text-decoration: none; +} + +#blog{ + list-style: none; +} + +#currencies{ + margin-bottom:15px; +} + +#currencies ul{ + margin-top: 10px; +} +#currencies ul li{ + font-size: 12px; + display: inline; + padding-right: 5px; + list-style: none; +} + +#currencies ul li a{ + white-space: nowrap; + color: #505050; +} +#currencies ul li.selected a{ + text-decoration: none; +} + +#cart_informer{ + background-color: #fff; + padding: 5px 13px 6px 13px; + border-radius: 15px; + float: right; + margin-top: 6px; + margin-left: 10px; + color: #505050; +} + + +/* @group Шапка сайта */ +#header { + margin:0px auto; + width: 940px; + overflow: hidden; + clear: both; + margin-bottom: 20px; +} + +/* @group Футкр сайта */ +#footer { + margin:0px auto; + width: 940px; + overflow: hidden; + clear: both; + height: 60px; + padding-top: 30px; + text-align: center; +} + + +#account{ + float: right; + font-size: 12px; + margin: 12px 10px 10px 0px; + margin-top: 12p + margin-right: 1e0px; + text-align: right; + color: #505050; +} +#account #login{ + padding-left: 7px; +} +#account #logout{ + padding-left: 7px; +} + + +#logo{ + margin-top: 15px; + padding-left: 0px; + float: left; + clear: left; + width: 250px; + height: 105px; +} +#logo1{ + margin-top: 15px; + padding-left: 0px; + float: left; + + width: 250px; + height: 105px; +} +#contact{ + float: right; + text-align: right; + margin-top: 15px; + margin-right: 5px; + font-sdtyle: italic; + height: 40px; + color: #505050; + font-size: 15px; + text-shadow: 0px 1px 0px #fff; + +} +#contact #phone{ + font-size: 18px; +} +#contact #phone1{ + font-size: 18px; + margin-top: 10px; +} + +#main { + margin:0px auto; + width: 100%; +} +#content { + float: right; + width: 680px; + margin-bottom: 20px; +} + +#left { + width: 260px; + float: left; + overflow: hidden; +} + + +#search{ + margin-top: 9px; + margin-bottom: 10px; + height: 28px; +} +#search .input_search{ + width: 170px; + height: 20px; + font-size: 12px; + border: 1px solid #b0b0b0; + display: block; + float: left; +} +#search .button_search { + width: 32px; + height: 28px; + background-position-y: middle; + background: url(../images/search.png) no-repeat; + border-style: none; + cursor: pointer; + cursor: hand; + display: block; + float: left; +} + + + +/* @group Меню каталога*/ +#catalog_menu { + margin-top: 10px; + margin-bottom: 10px; +} +#catalog_menu ul { + padding-left: 0px; + padding-bottom: 5px; + list-style: none; +} +#catalog_menu ul ul { + padding-left: 20px; + padding-top: 0px; + padding-bottom: 0px; +} +#catalog_menu ul li { + font-size: 16px; + margin-top: 8px; +} +#catalog_menu ul li img{ + vertical-align: middle; +} +#catalog_menu ul li a.selected{ + color: #ffffff; + background-color: #0095eb; + padding: 3px; +} +#catalog_menu ul ul li { + font-size: 14px; +} +#catalog_menu ul ul ul li { + font-size: 12px; +} +/* @end — Меню каталога*/ + + +#all_brands { + width: 220px; + margin-bottom: 15px; +} + + +/* @group Brands */ +#brands { + clear: both; + margin-bottom: 10px; + margin-top: 10px; +} +#brands a { + color: #ec0060; + font-size: 12px; + margin-right: 10px; +} +#brands img{ + vertical-align: middle; +} +#brands a:hover { + color: #000; +} +#brands a.selected { + background-color: #ec0060; + color: #fffeff; + padding: 2px 2px 2px 2px; +} +/* @end */ + +/* Хлебные крошки */ +#path{ + margin-top: -20px; + margin-bottom: 5px; + font-size: 11px; + color: #a0a0a0; +} +#path a{ + color: #a0a0a0; +} +/* @end */ + + +/* @group Товар подробно */ +.product .image { + text-align: center; + width: 300px; + background-color: #ffffff; + border: 1px solid #e0e0e0; + float: left; + padding: 5px; + margin-right: 20px; +} +.product .image img{ + max-width: 300px; +} +.product .images { + float: left; + clear: left; + width: 300px; + margin-right: 20px; + margin-bottom: 10px; + padding-top: 15px; + padding-bottom: 15px; +} +.product .images img{ + text-align: center; + width: 50px; + background-color: #ffffff; + border: 1px solid #e0e0e0; + float: left; + padding: 5px; + margin: 4px 10px 10px 0px; +} +.product .description{ + float: left; + width: 600px; +} + +.product .features { + list-style: none; + width: 100%; + display: block; + clear: both; + margin-top: 15px; + margin-bottom: 25px; + border-bottom: 1px solid #e0e0e0; +} +.product .features li { + padding: 10px 5px 10px 5px; + overflow: hidden; + border-top: 1px solid #e0e0e0; + background-color: #f0f0f0; +} +.product .features li.even{ + background-color: #e9e9e9; +} +.product .features label { + font-style: normal; + display: block; + width: 30%; + float: left; +} +.product .features p { + float: left; + display: block; + width: 70%; +} +.product .variants { + float: left; + font-size: 12px; +} +.product .variant td{ + padding-bottom: 6px; + vertical-align: middle; +} +.product .compare_price { + font-size: 14px; + text-decoration: line-through; + white-space: nowrap; + color: #707070; +} +.product .price { + font-size: 14px; + white-space: nowrap; + font-weight: bolder; +} +.product .variant_name { + float: left; + margin-right: 10px; + font-size: 12px; +} +.product .variant_radiobutton { + margin-right: 5px; + margin-left: 0px; +} +#back_forward { + font-size: 14px; + margin-bottom: 20px; + clear: both; +} +#back_forward a.prev_page_link{ + margin-right: 20px; +} +/* @end — Товар подробно*/ + + +.tiny_products { + list-style: none; + display: block; +} +.tiny_products .product{ + width: 210px; + margin-right: 10px; + margin-bottom: 30px; + display: -moz-inline-box; + display: inline-block; + *zoom: 1; + *display: inline; + word-spacing: normal; + vertical-align: top; +} +.tiny_products .product .image { + vertical-align: middle; + text-align: center; + width: 200px; + height: 200px; + line-height: 200px; + background-color: #ffffff; + border: 1px solid #e0e0e0; + padding: 5px; + margin-bottom: 10px; +} +.tiny_products .product .image img{ + vertical-align: middle; + max-width: 200px; +} +.tiny_products .product h3 { + font-size: 14px; + margin-bottom: 10px; + font-weight: normal; +} +.tiny_products .product h3.featured{ + background: url('../images/star.png') no-repeat left middle; + padding-left: 20px +} + + + + + +.products { + list-style: none; + display: block; +} +.products .product{ + width: 100%; + display: block; + clear: both; + overflow: hidden; +} +.products .product .image { + text-align: center; + width: 200px; + background-color: #ffffff; + border: 1px solid #e0e0e0; + float: left; + padding: 5px; + margin: 4px 0px 20px 0px; +} +.products .product .image img{ + max-width: 200px; +} +.products .product .product_info { + float: right; + width: 450px; + margin-bottom: 40px; +} +.products .product h3 { + font-size: 20px; + margin-bottom: 5px; + font-weight: normal; +} +.products .product h3.featured{ + background: url('../images/star.png') no-repeat left middle; + padding-left: 20px +} + +.products .product .annotation { + font-size: 12px; + color: #505050;; + margin-bottom: 5px; +} + + +/* Кнопка */ +.button { +float: left; +clear: left; +cursor: pointer; +} + +.button { + -moz-box-shadow:inset 0px 1px 0px 0px #ffffff; + -webkit-box-shadow:inset 0px 1px 0px 0px #ffffff; + box-shadow:inset 0px 1px 0px 0px #ffffff; + background:-webkit-gradient( linear, left top, left bottom, color-stop(0.05, #ededed), color-stop(1, #dfdfdf) ); + background:-moz-linear-gradient( center top, #ededed 5%, #dfdfdf 100% ); + filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ededed', endColorstr='#dfdfdf'); + background-color:#ededed; + -moz-border-radius:6px; + -webkit-border-radius:6px; + border-radius:6px; + border:1px solid #cccccc; + display:inline-block; + color:#555555; + font-family:arial; + font-size:14px; + font-weight:bold; + padding:6px 20px; + text-decoration:none; + text-shadow:1px 1px 0px #ffffff; +}.button:hover { + background:-webkit-gradient( linear, left top, left bottom, color-stop(0.05, #dfdfdf), color-stop(1, #ededed) ); + background:-moz-linear-gradient( center top, #dfdfdf 5%, #ededed 100% ); + filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#dfdfdf', endColorstr='#ededed'); + background-color:#dfdfdf; +}.button:active { + position:relative; + top:1px; +} + +/* @group Фильтр по свойствам */ +#features { + background-color: #f0f0f0; + border-top: 1px solid #d0d0d0; + border-bottom: 1px solid #d0d0d0; + margin-top: 20px; + margin-bottom: 10px; + width: 100%; +} +#features .feature_name{ + padding: 7px; +} +#features .feature_values{ + padding: 7px; +} +#features a { + padding-right: 6px; + white-space: nowrap; +} +#features a.selected { + //background-color: #4a4a4a; + color: #505050; + text-decoration: none; +} +/* @end — Фильтр по свойствам*/ + + +/* @group Сортировка */ +.sort { + color: #505050; + font-size: 12px; + margin-top: 10px; + margin-bottom: 10px; + font-weight: normal; + font-style: normal; +} +.sort a{ + margin-right: 5px; +} +.sort .selected { + color: #505050; + text-decoration: none; + margin-right: 5px; +} +/* @end */ + + +/* @group Постраничная навигация */ +.pagination { + margin-top: 5px; + margin-bottom: 5px; + font-size: 12px; + overflow: hidden; +} +.pagination a { + display: block; + float: left; + background-color: #fffeff; + margin-right: 5px; + margin-bottom: 5px; + padding: 7px 4px; + min-width: 22px; + text-align: center; + border: 1px solid #d7d7d7; + text-decoration: none; +} +.pagination a.selected:hover, +.pagination a.selected { + background-color: #18a5ff; + color: #ffffff; + border-color: #008fe9; +} +.pagination a:hover { + background-color: #f8f8f8; +} + +.pagination a.next_page_link, .pagination a.prev_page_link{ + border: none; + background: none; +} +/* @end */ + + +/* @group Просмотренные товары */ +#browsed_products{ + margin-bottom: 20px; + overflow: hidden; +} + +#browsed_products li{ + display: block; + float: left; + overflow: hidden; + border: 1px solid #e0e0e0; + background-color: #ffffff; + margin: 0 7px 7px 0; + width: 50px; + height: 50px; +} +#browsed_products li a{ + display: table-cell; + vertical-align: middle; + text-align: center; + width: 50px; + height: 50px; +} +/* @end — Просмотренные товары */ + + +/* @group Формы */ +input[type="text"], +input[type="password"] +{ + width: 100%; + font-size: 18px; +} +.form +{ + width:400px; + margin-bottom: 20px; +} +.form textarea +{ + width:100%; + height:100px; + font-size: 18px; +} +.form label { + display:block; + font-size: 14px; +} +.form input[type="text"]{ + display:block; + margin-bottom: 10px; +} + +/* @group Комментарии */ +.comment_list { + margin-top: 15px; + list-style: none; +} +.comment_list li { + padding-bottom: 15px; +} +.comment_header { + font-size: 18px; +} +.comment_header i { + font-weight: normal; + font-style: normal; + color: #878787; + font-size: 13px; +} +/* @end — Комментарии*/ + +/* @group Форма отправки комментария */ +.comment_form { + background-color: #f3f3f3; + border: 1px solid #e0e0e0; + padding: 20px; + margin-top: 20px; + width: 90%; + overflow: hidden; +} +.comment_form h2 { + margin-bottom: 0px; +} +.comment_form .comment_textarea { + width: 100%; + height: 100px; + font-size: 12px; +} +.comment_form label { + display: block; + float: left; + width: 100px; + font-size: 18px; + margin-top: 15px; +} +.comment_form .input_name { + font-size: 16px; + width: 250px; + margin-top: 15px; +} +.comment_form .input_captcha { + float: left; + width: 150px; + font-size: 24px; + font-weight: bold; + text-transform: uppercase; + margin-top: 15px; + height: 36px; +} +.comment_form .captcha { + float: left; + display: block; + margin-top: 15px; + margin-right: 10px; +} +.comment_form .button, +.feedback_form .button, +.register_form .button, +.login_form .button{ + float: right; + display: block; + margin-top: 10px; + margin-right: 0px; +} +/* @end — Форма отправки комментария */ + +/* @group Форма отправки обратной связи */ +.feedback_form { + background-color: #f3f3f3; + border: 1px solid #e0e0e0; + padding: 20px; + margin-top: 20px; + width: 90%; + overflow: hidden; +} +.feedback_form .input_captcha { + float: left; + width: 150px; + font-size: 24px; + font-weight: bold; + text-transform: uppercase; + margin-top: 15px; + height: 36px; +} +.feedback_form .captcha { + float: left; + display: block; + margin-top: 15px; + margin-right: 10px; +} +.feedback_form .button_send { + font-size: 18px; + float: right; + margin-top: 25px; +} +/* @end — Форма отправки комментария */ + + +/* @group Корзина */ +#purchases tr{ + border-top: 1px solid #d5d5d5; + height: 70px; +} +#purchases th{ + vertical-align: top; + padding-top: 10px; + font-size: 18px; + font-weight: normal; +} +#purchases .image{ + width: 50px; + text-align: center; +} +#purchases .image a{ + border: 1px solid #e0e0e0; + background-color: #ffffff; + margin: 0 7px 7px 0; + display: table-cell; + vertical-align: middle; + text-align: center; + width: 50px; + height: 50px; +} + +#purchases .name{ + padding-left: 10px; + padding-right: 10px; + text-align: left; +} +#purchases td.name{ + font-size: 14px; +} +#purchases td .download_attachment{ + white-space: nowrap; + color: #3b8500; + padding: 5px 10px 7px 10px; + border-bottom-color: 1px dotted green; + background-color: #ccff72; + line-height: 30px; +} + +#purchases .price{ + padding-left: 5px; + padding-right: 5px; + white-space: nowrap; + text-align: right; +} +#purchases td.price{ + font-size: 14px; +} +#purchases .remove{ + padding-left: 15px; + text-align: right; +} +#purchases .amount{ + font-size: 14px; + padding-left: 5px; + padding-right: 5px; +} +#purchases .amount select{ + font-size:12px; +} + +ul#deliveries{ + margin-top: 20px; + margin-bottom: 20px; + background-color: #ffffff; + border: 1px solid #e0e0e0; + padding: 20px 20px 0 20px; + list-style: none; +} +ul#deliveries li{ + margin-bottom: 20px; +} +ul#deliveries li div.checkbox{ + float: left; +} +ul#deliveries li h3, ul#deliveries li .description{ + display: block; + margin-left: 25px; +} +/* @end */ + + +/* @group Кабинет */ +#orders_history +{ + list-style: none; +} +#orders_history li +{ + margin-bottom: 10px; +} +#orders_history li a +{ + font-size: 16px; +} +/* @end — Кабинет */ + + + +/* @group Детали заказа */ +table.order_info +{ + margin-right: 20px; + margin-bottom: 20px; + background-color: #f9f9f9; +} +table.order_info td +{ + padding: 10px; + border: 1px dotted #e0e0e0; + font-size: 14px; +} +.checkout_button +{ + padding: 10px 20px 10px 20px; + border: 1px solid #51a400; + background-color: #d3ffa9; + color: #2e5e00; + font-size: 14px; +} +/* @end */ + + +/* Сообщение с ошибкой */ +.message_error{ + clear: both; + height: 18px; + padding: 10px 20px; + margin-bottom: 15px; + margin-top: 10px; + overflow: hidden; + color: red; + background-color: #ffcaca; + border: 1px dotted #ff4545; +} + +.nav2 { + text-align: center; + background-color: #00c6f1; + text-shadow: 0 1px 0 #0282c4; + -moz-box-shadow: inset 1px 1px 0 #80e6f9; + -ms-box-shadow: inset 1px 1px 0 #80e6f9; + -webkit-box-shadow: inset 1px 1px 0 #80e6f9; + box-shadow: inset 1px 1px 0 #80e6f9; + filter: progid :DXImageTransform.Microsoft.Gradient(GradientType=0,StartColorStr=#6891e7,EndColorStr=#304ea6); + background-image: -moz-linear-gradient(top,#00cdf3 0,#00b3ed 100%); + background-image: -ms-linear-gradient(top,#00cdf3 0,#00b3ed 100%); + background-image: -o-linear-gradient(top,#00cdf3 0,#00b3ed 100%); + background-image: -webkit-gradient(linear,left top,left bottom,color-stop(0,#00cdf3),color-stop(100%,#00b3ed)); + background-image: -webkit-linear-gradient(top,#00cdf3 0,#00b3ed 100%); + background-image: linear-gradient(top bottom,#00cdf3 0,#00b3ed 100%); + margin: 1px auto 4px; + padding: 11px; + border: 1px solid #1891c2; + outline: 0; + white-space: nowrap; + word-wrap: normal; + vertical-align: middle; + cursor: pointer; + -moz-border-radius: 10px; + -webkit-border-radius: 10px; + border-radius: 10px; + overflow: hidden; + +} +.nav2 li { + padding: 5px 3px; + position: relative; + float: left; + right: 50%; + border-right: 1px solid #80E6F9; + border-left: 1px solid #04A3CB; +} +#b { + position: relative; + float: left; + left: 50%; +} +.nav2 .nobr { + border-right: none; +} +.nav2 .nobl { + border-left: none; +} +.topmenulink { + color: white; + font: bold 16px Arial; + text-decoration: none; + padding: 15px 6px; +} +.topmenulink:hover, .active { + padding-top: 16px; + background: url(../images/menu_arrow.png) no-repeat center 0; + border-bottom: 3px solid #0377a3; + color: #ffff00; +} +.active2, .active2:hover { + background: #009cc6; + text-shadow: 0 1px 0 #666; + border-radius: 3px; + box-shadow: inset 0px 1px 0 #80e6f9; + border-width: 1px; + border-style: solid; + border-bottom-color: #1282af; + border-left-color: #1282af; + border-right-color: #1282af; + border-top-color: #1891c2; + padding: 8px 5px; + color: #fff; +} +/* @end */ + +/* ФИЛЬТРЫ */ +.filter{ +} + .filter .block{ + clear: both; + margin: 0 0 10px 0; + } + .filter .block h4{ + font-size: 14px; + color: rgb(0, 0, 0); + border-bottom: 1px dotted rgb(204, 204, 204); + padding: 5px 10px; + margin-bottom: 10px; + } + .filter .block.range_slider{ + } + .filter .block.range_slider{ + } + + .filter .block.range_slider div.price_inputs{ + padding: 0px 10px; + margin-bottom: 20px; + } + .filter .block.range_slider div.price_inputs label{ + + } + .filter .block.range_slider div.price_inputs input.imin{ + border: 1px solid rgb(196, 196, 196); + padding: 5px; + width: 40px; + margin: 0px 5px; + border-radius: 3px; + box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.2) inset; + } + .filter .block.range_slider div.price_inputs input.imax{ + border: 1px solid rgb(196, 196, 196); + padding: 5px; + width: 40px; + margin: 0px 5px; + border-radius: 3px; + box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.2) inset; + } + .filter .block.range_slider div.price_inputs span.saperate{ + margin: 0 20px; + } + + .filter .block ul{ + clear: both; + margin: 0 5px; + } + .filter .block ul li{ + clear: both; + } + .filter .block ul li input[type=checkbox]{ + float: left; + } + .filter .block ul li label{ + display: block; + margin-left: 20px; + } + .filter p#clearAll a{ + /* display: block; */ + text-decoration: none; + border-bottom: 1px dashed; + } + /* Ширина слайдера */ + .filter .block >.slider { + width: 250px; + margin: 0 auto 10px; + } +/* Контейнер слайдера */ +.ui-slider { + position: relative; +} +/* Ползунок */ +.ui-slider .ui-slider-handle { + position: absolute; + z-index: 2; + width: 11px; /* Задаем нужную ширину */ + height: 11px; /* и высоту */ + background: url(../images/slider.png) no-repeat; /* картинка изображающая ползунок. Или можно залить цветом, задать бордюр и скругления */ + cursor: pointer +} +.ui-slider .ui-slider-range { + position: absolute; + z-index: 1; + font-size: .7em; + display: block; + border: 0; + overflow: hidden; + box-shadow: inset 6px 0 0 #ffa95a, inset -7px 0 0 #ffa95a; +} +/* горизонтальный слайдер (сама полоса по которой бегает ползунок) */ +.ui-slider-horizontal { + height: 5px; /* задаем высоту согласно дизайна */ +} +/* позиционируем ползунки */ +.ui-slider-horizontal .ui-slider-handle { + top: -4px; + margin-left: -6px; +} +.ui-slider-horizontal .ui-slider-range { + top: 0; + height: 100%; +} +.ui-slider-horizontal .ui-slider-range-min { + left: 0; +} +.ui-slider-horizontal .ui-slider-range-max { + right: 0; +} +/* оформление полосы по которой ходит ползунок */ +.ui-widget-content { + /* border: 1px solid #D4D4D4; */ + background: #d8d8d8; +} +/* оформление активного участка (между двумя ползунками) */ +.ui-widget-header { + border: 1px solid #D4D4D4; + background-image: -webkit-gradient( linear, left top, left bottom, color-stop(0, #FF890B), color-stop(1, #FC6B03) ); background-image: -o-linear-gradient(bottom, #FF890B 0%, #FC6B03 100%); background-image: -moz-linear-gradient(bottom, #FF890B 0%, #FC6B03 100%); background-image: -webkit-linear-gradient(bottom, #FF890B 0%, #FC6B03 100%); background-image: -ms-linear-gradient(bottom, #FF890B 0%, #FC6B03 100%); background-image: linear-gradient(to bottom, #FF890B 0%, #FC6B03 100%); +} +/* скругление для полосы слайдера */ +.ui-corner-all { +} + + diff --git a/design/atomic/css/styles.css b/design/atomic/css/styles.css new file mode 100644 index 0000000..1735bb0 --- /dev/null +++ b/design/atomic/css/styles.css @@ -0,0 +1,1444 @@ +/* /*@import url(http://fonts.googleapis.com/css?family=Open+Sans:400,700&subset=latin,cyrillic); +@import url(http://fonts.googleapis.com/css?family=Russo+One&subset=latin,cyrillic);*/ +/**/ +@font-face { +font-family: HelveticaBlack; +font-display: block; +src: url("font/HelveticaBlack.otf") format("opentype"); +} +@font-face { +font-family: HelveticaNormal; +font-display: block; +src: url("font/HelveticaNormal.otf") format("opentype"); +} +.flexslider .slides li { background-size: contain !important; } +.menu-service li.active>ul{ display:block !important; } +.inner.menu-service .active ul ul {display:none; } +.breadcrumb { + background: #101115 !important; +} +.actions .badge { position:absolute; border-radius:0 !important; z-index:10; background:rgba(0,0,0,0.5);} +.actions .service-unit { + height: 370px; +} +.actions .service-box { + border-radius: 5px; + overflow: hidden; + background: #1c1e23; + height: 380px; +} + +.breadcrumb { + padding: 8px 15px; + margin-bottom: 5px; +} + + +.shum-table atermal-table table-cont { +font-weight: bold; +font-size: 18px; +color: #5fee1f; +text-align: left; +} + + + + +p { + margin: 0 0 10px; + text-align: justify; +} +.flexslider .pagination > li > a, .pagination > li > span { + position: relative; + float: left; + padding: 10px 10px; + border-radius:50% !important; + font-size:0; + line-height: 1.42857143; + text-decoration: none; + color: #ffffff; + background: transparent !important; + border: 1px solid #fff; + opacity:.4; + margin-left: -1px; + margin:3px; +} +.flexslider .flex-control-nav > li > a.flex-active, .flexslider .flex-control-nav > li > span.flex-active {background:#fff !important;} +.btn-default, .btn-danger { + background-image: none; + + background-repeat: no-repeat; +border:1px solid #5fee1f; color:#5fee1f; + filter: none; + background-color:transparent; +} + +.btn-danger:focus, .btn-danger:focus, .form-submit:active, .btn-default:active, .btn-danger:active, .btn-danger:active:focus, .btn-danger:active:hover{ + color: #ffffff; + background-color: #5fee1f; + border-color: #5fee1f; +} +.form-control:focus { + border-color: #5fee1f; + outline: 0; + -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(102,175,233,0.6); + box-shadow: inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(102,175,233,0.6); +} +.form-submit:hover, .btn-default:hover, .btn-danger:hover { + border: 1px solid #fff !important; + color: #fff; +} +.ai-callback {text-align:right;} +.well { + min-height: 20px; + padding: 19px; + margin-bottom: 20px; + background-color: #1c1e22; + border: transparent; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,0.05); + box-shadow: inset 0 1px 1px rgba(0,0,0,0.05); +} +.form-control { + display: block; + width: 100%; + height: 38px; + padding: 8px 12px; + font-size: 14px; + line-height: 1.42857143; + color: #ccc; + background-color:transparent; + background-image: none; + border: 1px solid #999; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,0.075); + box-shadow: none; + -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; +} +.inner.menu-service li a { color: #9ace82; } +.inner.menu-service li li a { color:#ccc; } + +.inner.menu-service li.active li, .inner.menu-service li.active {display:block;} +.inner.menu-service li.active> a { color:#5fee1f;} +.inner.menu-service li{ padding:0;} +.inner.menu-service li a{ padding:9px 9px; display:block;} +.inner.menu-service li li {margin: 0 12px;} +.inner.menu-service li li li {display:none; border-top:1px dotted rgba(250,250,250,.4); } +.inner.menu-service li li li a {padding:2px 9px;} +.inner.menu-service li li a {font-size:12px;} +#deliveries .form-control, .amounts.form-control { background-color:#2f3338; } +#deliveries .list-group-item { + position: relative; + display: block; + padding: 10px 15px; + margin-bottom: -1px; + background-color: #21242a; + border: none; +} + +#purchases.table-striped>tbody>tr:nth-of-type(odd) { + background-color: transparent; +} +#purchases.table { + background-color: transparent; + border-top: 2px solid rgba(250,250,250, .1); + border-left: 2px solid rgba(250,250,250, .1); +} +#purchases th, #purchases td { +border-bottom: 2px solid rgba(250,250,250, .1); +border-right: 2px solid rgba(250,250,250, .1); +} + +.form-submit { border:1px solid #5fee1f; color:#5fee1f; } +.product-box h1 {font-size:20px; text-transform:none;} +.advantage-name { text-align:center; } +.advantage svg {color:#5fee1f; width:100px;} +.advantage {padding:10px 0; clear:both; overflow;hidden;} +.advantage>div {text-align:center; padding-bottom: 10px;} +.map { border:10px solid rgba(250,250,240,.3);overflow: hidden; display: block; margin-top: 80px;} +.cart-btn { border:1px solid #fff; padding: 2px 6px;font-family: 'HelveticaNormal'; color:#fff; background:transparent;} +.cart-btn::before { content:"\f217"; color:#5fee1f; font-size:16px; margin-right:10px; font-family:FontAwesome; } +.cart-btn:hover, .ask-a-question:hover, .ask-a-zakaz:hover {border:1px solid #5fee1f; color:#5fee1f;} + +.home-output .product {background: #1c1e23;overflow: hidden; padding-bottom:4px; margin-top:5px} +.blog-unit {background: #1c1e23;overflow: hidden; padding-bottom:4px; border-radius:5px; margin-bottom:20px;} +.blog-unit span.name {display:block; text-align:center; color:#5fee1f; padding:20px 0;} +.blog-unit a:hover {text-decoration:none;} +.blog-unit a img { width:100%;} +.blog-unit a span.img {height:235px; overflow:hidden; display:block;} +.blog-annotation, .blog-annotation p { color:#b8bfd3; padding:0 20px; text-align:center; font-size:13px;} + + +.blog-article {text-align:center;} +.blog .blog-image a{ + text-align: center; display:block; min-height: 190px; +} +.a-date {display:inline-block; margin-bottom:20px; border:1px dotted #999; padding:5px 10px; font-style:italic; border-radius:5px;} + +.top-block { background: rgba(95,238,31,.1); border-radius: 3px; padding:5px; margin-bottom: 20px; margin-top: 20px; } +.top-block ul {list-style: none; padding: 0; margin: 0; margin-left:60px; } +.top-block a, .top-block .cart-links a {color:rgba(250,250,250,0.6) !important; text-decoration: none; text-transform: uppercase; font-size:12px;} +.top-block li{ padding: 0 20px; display: inline; } +.top-block .cart-links {text-align: center; color:rgba(250,250,250,0.3)} +.top-block .cart-links a {padding:0 10px;} +.container-fluid { + padding-right: 0 !important; +} +.second-line {margin-top:30px;} +.top-contacts {text-transform: uppercase; color: #fff; line-height: 30px; font-size:12px; letter-spacing: 1px; } +.top-contacts .phone { letter-spacing: 2px; font-size:18px;} +.top-contacts .phone a:hover {text-decoration: none;} +.top-contacts .email a {text-decoration: none; color:#fff; font-size:12px; letter-spacing: 1px; } +.top-contacts>div {margin-left: -16px; } +.ai-callback {position: relative; padding-top:10px;} +header .callme_viewform { + text-align: center; + border-radius: 5px; + border: 1px solid #fff; + padding: 8px 16px; + text-decoration: none; + text-transform: uppercase; + color: #fff; + font-size: 12px; + float: right; + margin-top: 20px; + background: transparent; +} +.btn { + + text-shadow:none; +} +.fancybox-outer input, .fancybox-outer textarea { color:#666; } +.fancybox-outer .btn {background:#333; border:1px solid #333; color:#fff;} +.slides li {border-radius: 5px; } +.slides li .big-font {display:block; font-size:32px; font-style: italic; font-family:'HelveticaBlack'; margin: 10px 0;} +.slides li .less-big-font {display:block; font-size:18px; font-style: italic; font-family:'HelveticaBlack'; margin: 10px 0;} +.slides li p {color:#ccc;} +.ai-more { + background: #5fee1f; + color:#000 !important; + border-radius: 10px; + padding: 8px 32px; + filter: none; + display: inline-block; + margin-top:10px; + text-align:center; + text-decoration:none; + font-size:9px; + letter-spacing: 2px; + text-transform:uppercase; + +} +.second-line>div {border-left:1px solid rgba(250,250,250,.4); text-align: center;} +.top-serch input.input-search {background: transparent; border: none; color: rgba(250,250,250,.5); } +.top-serch .glyphicon-search {color:#5fee1f;font-size:18px;} +.btn-sm { border: none; } + +.input-sm { + height: 30px; + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; + background: transparent; + border: none; + font-size: 16px; + color:#fff; +} +.bottom-nav {list-style:none; margin:0; padding:0;} +.bottom-nav a {text-decoration: none; text-transform: uppercase; font-size:11px; color: #ccc !important; line-height: 24px; cursor: pointer;} +.bottom-nav a:hover { color: #5fee1f !important; } + +.social {list-style: none; padding: 0; margin:0;} +.social li {padding: 9px 0 9px 16px; display: inline-block; } +footer .social li {padding:9px 16px 9px 0;} +footer .social li img{max-height: 30px; } +.ai-more:hover {background: #000; text-decoration:none; color:#fff !important;} +.navbar-nav>li>a { + border-right:none; + border-left: none; +} +.ai-padding {padding: 40px 0;} +.navbar-nav { + margin-bottom: 10px !important; + margin-top: 40px !important; +} +#cart_informer {position: relative;} +#cart_informer:before {color:#5fee1f; font-size:22px; content:"\f218"; font-family: FontAwesome; margin-left:-45px; position: absolute; display: inline; left:0; margin-top: 4px;} + +.navbar-nav > li:last-child > a { + padding-left: 27px !important; + padding-right: 28px !important; +} +.navbar-nav > li { +width: 16.666%; +} +.btn-danger, .panel-danger .panel-heading { + background: transparent; +} +.navbar-nav { + text-transform: uppercase; + margin: 0px; + width: 100%; + display: block; +} +.navbar-default .navbar-toggle:hover, .navbar-default .navbar-toggle:focus { + background-color: #58b030; +} +.navbar-default .navbar-toggle { + border-color: #58b030; +} +.navbar-default .navbar-nav>.active>a, +.navbar-default .navbar-nav>.active>a:hover, +.navbar-default .navbar-nav>.active>a:focus, +.navbar-nav>li>a:hover, +.navbar-default .navbar-nav>li>a:hover, +.navbar-default .navbar-nav>li>a:focus{ + color: #5fee1f !important; + background-color: transparent !important; +} +html, body { height: 100%; font-family: 'HelveticaNormal'; font-weight: 400; background: #191921 url(../images/bg.jpg) repeat-x center top; } +/*body { background: #141618 url(../images/bg-page.png) no-repeat center top; }*/ +.navbar { + background-image:none; + filter: none; + border: none; + text-shadow: none; +} +.navbar-default { + background-color: transparent; + border-color: transparent; +} + +.navbar-default .navbar-collapse, .navbar-default .navbar-form { + border-color:transparent; +} +.panel { + border:none; + border-radius: 4px; + -webkit-box-shadow: none; + box-shadow: none; + background: #101115; + padding:0; + margin-top: 20px; +} + .panel .panel-heading { color: #9ace82 !important; text-transform: uppercase; padding:25px 18px; font-size:16px;} + .panel .panel-heading a {color: #9ace82 !important;} + + .panel .v-menu ul li { padding:12px 10px; border-bottom:1px solid #ccc; } + .panel .v-menu ul li a {color:#ccc; font-size:14px;} + .panel .v-menu ul li a:hover {color:#5fee1f;} + .panel .v-menu ul li:nth-child(2n) { background: #1c1e23; } + +.home-output .product {margin-bottom: 15px;} +.home-output .product-name {color:#5fee1f; display: block; text-align: center; text-decoration: none; margin:10px 0;} +.home-output .product-price { font-size: 18px; color: #fff; line-height: 38px; white-space: nowrap; } +.home-output .product-image { text-align: center; } +.home-output .product-image img { max-width: 100%; } +.home-output .img-thumbnail {padding: 0; + line-height: 1.42857143; + background-color: #1c1e22; + border: none; + border-radius: 4px; + -webkit-transition: all .2s ease-in-out; + -o-transition: all .2s ease-in-out; + transition: all .2s ease-in-out; + display: inline-block; + max-width: 100%; + height: auto;} + + +a { cursor:pointer;} + +.navbar-nav { text-transform: uppercase; margin: 0px; } +.navbar-nav > li > a { padding-left: 10px; padding-right: 10px; text-decoration: none; color: #fff !important; } +.navbar-collapse {padding-left: 0px; padding-right: 0px;} +.navbar-right input { opacity: 0.65; border: 1px solid #333333; } +.navbar-right button, .navbar-right button:hover { border-top: 1px solid #b5000a; border-bottom: 1px solid #b5000a; border-right: 1px solid #b5000a; } +.wrapper { min-height: 100%; height: auto !important; height: 100%; margin-bottom: -290px; } + +.menu-service { background: #101115; padding:0;} +.menu-service .header { color: #9ace82 !important; text-transform: uppercase; padding:25px 18px; font-size:16px;} + .menu-service .header a{ color: #9ace82 !important; text-transform: uppercase; text-decoration:none; } +.menu-service ul {list-style: none; padding: 0; margin: 0;} +.menu-service ul li { padding: 9px 18px; border-top: 1px solid #ccc; } +.menu-service ul li a { color: #ccc; text-decoration: none; font-size: 16px; } +.menu-service ul li a:hover { color: #5fee1f; } + +.panel-danger { + border-color:none; +} + +.service-unit {height:300px;} +.service-unit a.tumb { + border-radius: 5px; + min-height:230px; + position:relative; + display: block; + overflow: hidden; + background:#000; + + } +.service-unit a.tumb:hover {background:#5fee1f;} +.service-unit a.tumb:hover img { opacity:.3; } +.service-unit a.tumb:hover::before {z-index:5; position:absolute; content:"подробнее >"; font-size:14px; color:#fff;text-transform:uppercase; display:block; top:70%; width:100%; text-align:center; } +.service-name {display:block; padding:10px; text-align:center; text-decoration:none; font-size:18px; } +.service-name:hover {color:#5fee1f;} +.service-box {border-radius:5px; overflow:hidden; background:#1c1e23; height:300px;} +.service-link a {color:#3d4047 !important; letter-spacing: 1px; font-size:18px;} +.service-link {text-align:center; padding:20px 0;} +.service-link a::after { content:"\f105"; color:#3d4047 !important; font-family:FontAwesome; font-size:22px; padding-left:5px; text-decoration:none;} +.service-link a:hover { text-decoration:none; color:#5fee1f !important; } +header { box-sizing: border-box; } +#top-cart-informer.notempty .icon { display:none !important; } +header .cart.notempty { } +header .cart.notempty .cart-info table td { color: #fff; } +header .cart .cart-enter { position: absolute; width: 100%; box-sizing: border-box; bottom: 0px; left: 0px; height: 75px; text-indent: -9999px; } +header .cart .cart-links { text-align: right; margin-right: 10px; } +header .cart .cart-info { padding: 7px 0 7px 45px; } +header .cart .cart-info .icon {display: none;} +header .cart .cart-info table { background: none !important; background-color: rgba(0,0,0,0) !important; } +header .cart .cart-info table td {text-align: left; box-sizing: border-box; color: rgb(136, 136, 136); font-size: 100%; height: 20px; line-height: 20px; } +header .top-text1 { font-size: 125%; font-family: 'HelveticaNormal'; font-weight: 400; } +header .top-text2 { color: #d0cfcf; font-size: 90%; margin-top: 7px; line-height: 1.5em; } +header .top-text3 { color: #fff; font-size: 150%; margin-top: 7px; text-align: center; } +header .city { font-size: 80%; color: #fff; line-height: 1em; padding: 0px 0px 2px 0px; } +header .link { font-size: 90%; } +header .email { font-size: 90%; } +header .logo img {max-width: 100%; height: auto;} + +footer, .push { clear: both; } +footer { background-color: #2e3338; font-size: 100%; padding:40px 0;} +footer .container { padding-top: 25px; } +footer .title { font-size: 125%; color: #c9ffff; text-shadow: -1px -1px 0 rgba(0,0,0,0.3); margin-bottom: 2px; } +footer .copyright { font-size: 90%; } +footer .copyright span { color: #95f36a; } +footer .eto-design { font-size: 80%; } +footer a { color: #fff !important; } +footer a:hover { color: #aaa !important; } +footer img.bottom-logo {width: 200px; height: auto!important;} +footer .bottom-contacts { text-transform: uppercase; line-height: 20px; color: #656569; font-size: 12px; } +footer .bottom-contacts a { text-decoration: none; color: #656569 !important; font-size:12px !important;} + +footer .ai-copyright { border-top: 1px dashed rgba(250,250,250,.3); padding-top:30px; } + +.ai-form { + background: url("../images/bg-form.jpg"); + clear: both; + overflow: hidden; + padding: 40px 0; +} +.ai-form .title {color:#9ace82; font-size:26px; text-transform: uppercase; margin-bottom:40px;} +.ai-form label { display: none; } +.ai-form input, .ai-form textarea {background: transparent; border:1px solid rgba(250,250,250,.3); padding: 12px; color:#fff; margin: 4px; font-size:16px; height: 50px} +.ai-form textarea { height: 150px; } +.ai-form .btn { background: #58b030; border: none; padding: 12px 30px; margin: 0; color: #fff; font-size: 16px; } + +.chs {text-transform: uppercase; display: block; text-align: center; color: #2716cb !important; text-shadow: 0px 0px 2px #fff, 0px 0px 2px #fff, 0px 0px 2px #fff, 0px 0px 2px #fff, 0px 0px 2px #fff, 0px 0px 2px #fff, 0px 0px 2px #fff, 0px 0px 2px #fff, 0px 0px 2px #fff, 0px 0px 2px #fff !important; font-style: italic; } +.v-menu ul { list-style: none; margin: 0px; margin-top: 7px; padding: 0px; padding-left: 15px; border-top: 1px solid rgba(0,0,0,0.3); } +.v-menu > ul { margin-top: 0px; padding-left: 0px; border-top: none; } +.v-menu li { padding: 7px 0px; border-bottom: 1px solid rgba(0,0,0,0.3); } +.v-menu li:last-child { border-bottom: none; } +.v-menu li a { color: #fff; text-decoration: none; display: block; line-height: 1.15em; } +.v-menu li a:hover, .v-menu li.active > a { color: #5fee1f !important; } + +.panel .v-menu ul li ul li { + padding: 3px 0; + border-bottom:1px solid rgba(250,250,250,0.1); + font-size:12px !important; + +} +.panel .v-menu ul li ul li a{ + font-size:13px !important; + +} +a.btn { text-decoration: none; } +.button-set a.btn-block { text-transform: uppercase; font-size: 100%; } +.button-set { width: 100%; margin: auto; margin-bottom: 25px; } +.button-set .btn-block { position: relative; } +.button-set .btn-sidebar { padding-right: 48px; padding-left: 12px; box-sizing: border-box; } +.button-set .b1, .button-set .b2, .button-set .b3 { display: inline-block; width: 72px; height: 72px; position: absolute; top: -12px; right: -12px; } +.button-set .b1 { background: url(../images/b1.png) no-repeat; } +.button-set .b2 { background: url(../images/b2.png) no-repeat; } +.button-set .b3 { background: url(../images/b3.png) no-repeat; } +.flexslider { box-sizing: border-box; width: 100%; height: 237px; position: relative; overflow: hidden; } +.flexslider .slides { position: relative; margin: 0; padding: 0; } +.flexslider .slides > li { display: block; float: left; padding: 20px 300px 20px 30px; box-sizing: border-box; width: 100%; height: 237px; } +.flexslider .flex-control-nav { display: block; position: absolute; z-index: 99; bottom: 2px; right: 28px; } +.flexslider .flex-direction-nav { display: none; } +.flexslider .flex-control-nav > li > a, +.flexslider .flex-control-nav > li > span {cursor: pointer;} +.flexslider .flex-control-nav > li > a.flex-active, +.flexslider .flex-control-nav > li > span.flex-active { background-image: -webkit-linear-gradient(#020202, #101112 40%, #191b1d); background-image: -o-linear-gradient(#020202, #101112 40%, #191b1d); background-image: -webkit-gradient(linear, left top, left bottom, from(#020202), color-stop(40%, #101112), to(#191b1d)); background-image: linear-gradient(#020202, #101112 40%, #191b1d); background-repeat: no-repeat; filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff020202', endColorstr='#ff191b1d', GradientType=0);-webkit-filter: none; filter: none; } +.b { display: block; } +.tdn { text-decoration: none; } +.drive2 { background: #ff0033; width: 100%; border: 0px; padding: 0px; margin: 0px; border-collapse: collapse; table-layout: auto; border-spacing: 0px; } +.drive2 a { display: block; width: 100%; box-sizing: border-box; text-align: center; } +.content { margin-bottom: 25px; } + +.content .title, h1 { + background: #101115; + display: block; + font-weight: 500; + line-height: 1.1; + color: #9ace82; + font-size: 18px; + margin-top: 20px; + margin-bottom: 20px; + text-transform: uppercase; + text-align: center; + padding: 16px 0; + border-radius: 5px; +} + +.content a { color: #5fee1f; } + +.well { display: block; overflow: hidden; color: #c8c8c8; } +.products { overflow: hidden; } +.products .product { overflow: hidden; padding: 15px; margin: 0px; margin-bottom: 15px; } +.products .product { background-color: rgba(220,220,220,0.05); } +.products .product:nth-child(odd) { background-color: rgba(220,220,220,0.1); } +.products .product .product-name { display: block; line-height: 1.15em; font-size: 100%; color: #fff; padding: 7px 0px; text-decoration: none !important; } +.products .product .product-price { font-size: 145%; color: #fff; line-height: 38px; white-space: nowrap; } +.products .product .product-price small { font-size: 60%;} +.products .product .product-compare-price { display: block; text-decoration: line-through; color: #d0000a; font-size: 100%; } +.products .product .product-compare-price small { font-size: 100%; } +.products .product .product-image img { max-width: 100%; } +.products .product .product-info { line-height: 1.15em; } +.products .product .product-annotation { font-size: 90%; } +.product-details { overflow: hidden; } +.product-details .product { position: relative; } +.product-details .product .product-name { display: block; line-height: 1.15em; font-size: 100%; color: #fff; padding: 7px 0px; text-decoration: none !important; } +.product-details .product .product-price { font-size: 145%; color: #fff; white-space: nowrap; } +.product-details .product .product-compare-price { display: block; text-decoration: line-through; color: #d0000a; font-size: 100%; } +.product-details .product .product-compare-price small { font-size: 100%; } +.product-details .product .product-image { margin-bottom: 15px; } +.product-details .product .product-images { margin-bottom: 15px; } + +.product-details .product .cards { + margin-bottom: 20px; +} + +.product-details .product .product-images a { +display: inline-block; +width: 80px; +height: 50px; +overflow: hidden; +border-radius: 4px; +} +.text-left, .text-left p {text-align:left !important;} + +.product-details .product .product-images img { margin-bottom: 3px; box-sizing: border-box; width:100%; } +.product-details .product .product-buttons { clear: both; width: 100%; text-align: left; } +.product-details .product .minus-plus { overflow: hidden; width: 120px; box-sizing: border-box; margin: auto; margin-bottom: 15px; display: none; } + + + +.ask-a-question, .ask-a-zakaz {border:1px solid #fff; color:#fff; border-radius:4px; background:transparent; display:inline-block; margin:5px; padding: 3px 7px;} + +.ask-a-question i, .ask-a-zakaz i { color:#5fee1f; } + +.categories .category { overflow: hidden; height: auto; margin-bottom: 15px; } +.categories .category .category-image { text-align: center; } +.categories .category .category-image img { max-height: 160px; background: transparent; } +.categories .category .category-name { display: block; text-align: center; line-height: 1.15em; font-size: 100%; color: #fff; padding: 7px 0px; text-decoration: none !important; } +.category_anons { font-size: 12px; margin-top: 4px; text-transform: lowercase; } +.category_anons span { color: red; font-weight: bold; font-size: 18px; } +.articles .article { overflow: hidden; height: auto; margin-bottom: 15px; } +.articles .article .article-image { text-align: center; } +.articles .article .article-image img { max-height: 160px; } +.articles .article .article-name { display: block; text-align: center; line-height: 1.15em; font-size: 100%; color: #fff; padding: 7px 0px; text-decoration: none !important; } +.brands .brand { overflow: hidden; height: auto; margin-bottom: 15px; } +.brands .brand .brand-image { text-align: center; } +.brands .brand .brand-image img { max-height: 160px; background: transparent; } +.brands .brand .brand-name { display: block; text-align: center; line-height: 1.15em; font-size: 100%; color: #fff; padding: 7px 0px; text-decoration: none !important; } +.blog { overflow: hidden; } +.blog .blog-article { overflow: hidden; margin-bottom: 7px; height:360px;} +.blog .blog-image { margin-bottom: 15px ; } +.blog .blog-title { display: block; line-height: 1.15em; font-size: 120%; color: #fff; padding: 7px 0px; } +.blog .blog-annotation { font-size: 90%; } +a.w, div.w, span.w, a.w img, img.w { } +a.w:hover, a.w:hover img { color: #aaa !important; } +h1 { font-size: 24px; color: #fff; } +h2 { font-size: 22px; color: #fff; } +h3 { font-size: 20px; color: #fff; } +h4 { font-size: 18px; color: #fff; } +h5 { font-size: 17px; color: #fff; } +h6 { font-size: 16px; color: #fff; } + +.category-image {text-align:center; } +.img-thumbnail { + padding: 0px; + line-height: 1.42857143; + background-color: #1c1e22; + border:none; + border-radius: 4px; + -webkit-transition: all .2s ease-in-out; + -o-transition: all .2s ease-in-out; + transition: all .2s ease-in-out; + + max-width: 100%; + height: auto; +} +.btn-danger:hover, .btn-danger[disabled] { + background: transparent; + } + +.btn-danger[disabled]:hover { + background-color: transparent; + border: 1px solid #fff !important; +} + +.cards ul { list-style:none; color:#fff; margin:20px 0; padding:0;} +.cards ul li::before {content:"\f061"; font-family:FontAwesome; font-size:12px; margin-right:10px; color:#5fee1f;} + + +.navbar .btn-danger {font-size: 11px;} +table.table { border: 0px; } +td.td { text-align: center; border: 0px; } +td.td p, td.td span { margin: 0px; padding: 0px; } +td.td a { display: block; line-height: 1.15em; font-size: 100%; padding: 7px 0px; } +.category-list ul { margin: 0px; padding: 0px; list-style: none; } +strong, b { color: #fff; font-weight: normal !important; } +label { margin: 0px; padding: 0px; font-weight: normal; } +.h22 { color: #fff; font-weight: normal !important; } +.testRater { clear: both; } +.mdh { display: none; } +input.required { border: 1px solid rgb(255,0,0) !important; box-shadow: 0px 0px 10px rgb(255,0,0) !important; } +form.variants { margin: 0px; padding: 0px; } +form.variants tr.variant { height: 24px; } +form.variants table { background: none !important; background-color: transparent !important; background-image: none !important; } +form.variants table td { padding: 10px 0; margin: 0px; } +#tabs { list-style: none outside none; margin: 0; overflow: hidden; padding: 0; width: 100%; } +#tabs li { float: left; margin: 0 0.5em 0 0; } +#tabs a { background: #22371f; border-radius: 5px 0 0; box-shadow: 0 2px 2px rgba(0, 0, 0, 0.4); float: left; padding: 0.7em 1.2em; position: relative; text-decoration: none; } +#tabs a:hover, #tabs a:hover:after, #tabs a:focus, #tabs a:focus:after { background: #1f2229; } +#tabs a:focus { outline: 0 none; } +#tabs a:after { background: #22371f; border-radius: 0 5px 0 0; bottom: 0; box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.4); content: ""; position: absolute; right: -0.5em; top: 0; transform: skew(10deg); width: 1em; z-index: 1; } +#tabs #current a, #tabs #current a:after { background: #1f2229; z-index: 3; } +#tabcontent { background: #1f2229; border-radius: 0; box-shadow: 0 0 0 0 rgba(0, 0, 0, 0.5); display: block; height: auto; padding: 15px; position: relative; z-index: 2; } +.autocomplete-w1 { position: absolute; top: 0px; right: -180px; margin: 6px 0 0 6px; } +.autocomplete { border: 1px solid #7a8288; background: #2e3338; color: #fff; cursor: default; text-align: left; overflow-x: auto; overflow-y: auto; margin: -6px 6px 6px -6px; overflow-x: hidden; } +.autocomplete .selected { background: #7a8288; color: #fff; } +.autocomplete div { padding: 2px 5px; white-space: nowrap; } +.autocomplete strong { font-weight: normal; color: #3399FF; } +.news-widget .news-date { font-size: 80%; } +.news-widget .news-title { font-size: 100%; } +.blog-menu { overflow: hidden; margin-bottom: 28px; } +.panel .collapse-button { line-height: 1em; padding: 2px 12px; border: 1px solid #cccccc; -webkit-border-radius: 3px; -moz-border-radius: 3px; border-radius: 3px;} +.panel .collapse-button .glyphicon {font-size: 16px; color: #dddddd;} +.panel .panel-footer { text-align: center; } +.panel .panel-footer a { color:#ffffff; } +.panel-body.vk { margin: 0px; padding: 0px; } +/* cart always on top */ +.always-on-top {display: block !important; position: fixed !important; z-index: 9999; left: 0; top: 0; padding: 0 !important; box-sizing: border-box; width: 100% !important; height: auto !important; padding: 2px 0px; background: rgba(46,51,56,0.9) !important; text-align: center; } +.always-on-top .cart-info .icon {display: table-cell !important; text-align: center; vertical-align: middle; width: 48px;} +.always-on-top .cart-info .icon .glyphicon {font-size: 24px; color: #e5000b;} +.always-on-top .cart-info { display: inline-block !important; padding: 0 !important; margin: 0 !important; } +.always-on-top .cart-links { display: inline-block !important; padding: 0 !important; margin: 0 !important; position: relative; top: -15px; } + +#h_email {display: none;} +.content img {max-width: 100%; height: auto;} + +footer .lh {font-size: 90%; line-height: 1.1em; margin-bottom: 8px;} + +.comment_list li{ + margin-bottom: 15px; + list-style: none; + padding: 10px; + +} + +.comment_list .comment_header { + border-bottom: 1px solid rgba(255, 255,255, 0.1); + margin-bottom: 4px; +padding-bottom: 4px; +} + +.comment_list li:nth-child(even){ + background-color: #1c1e22; +} + +.comment_list li:nth-child(odd){ + background-color: #2B2E33; +} + +.social-icons {margin: 0 0 10px 0; display: table; width: 100%; border-radius: 4px;} +.social-icons li {display: table-cell; border: 1px solid #141618; padding: 0; width: 33.33%; text-align: center;} +.social-icons a {display: block; padding: 6px 8px;} +.social-icons a .fa {font-size: 36px; color: rgb(220,220,220); text-shadow: 1px 1px 1px rgba(0,0,0,0.5);} +.social-icons li:hover a .fa {color: rgb(255,255,255);} +.social-icons li:first-child { +-webkit-border-top-left-radius: 4px; +-webkit-border-bottom-left-radius: 4px; +-moz-border-radius-topleft: 4px; +-moz-border-radius-bottomleft: 4px; +border-top-left-radius: 4px; +border-bottom-left-radius: 4px;} +.social-icons li:last-child { +-webkit-border-top-right-radius: 4px; +-webkit-border-bottom-right-radius: 4px; +-moz-border-radius-topright: 4px; +-moz-border-radius-bottomright: 4px; +border-top-right-radius: 4px; +border-bottom-right-radius: 4px;} + + +.social-lg {background: url(/images/socsprite_lg.png); width: 48px; height: 48px; overflow: hidden; display: inline-block;} +.social-lg.social-instagram {background-position: 0 0;} +.social-lg.social-youtube {background-position: -48px 0;} +.social-lg.social-vk {background-position: -96px 0;} + +.social-md {background: url(/images/socsprite_md.png); width: 36px; height: 36px; overflow: hidden; display: inline-block;} +.social-md.social-instagram {background-position: 0 0;} +.social-md.social-youtube {background-position: -36px 0;} +.social-md.social-vk {background-position: -72px 0;} + +.social-sm {background: url(/images/socsprite_sm.png); width: 32px; height: 32px; overflow: hidden; display: inline-block;} +.social-sm.social-instagram {background-position: 0 0;} +.social-sm.social-youtube {background-position: -32px 0;} +.social-sm.social-vk {background-position: -64px 0;} + +.social-xs {background: url(/images/socsprite_xs.png); width: 24px; height: 24px; overflow: hidden; display: inline-block;} +.social-xs.social-instagram {background-position: 0 0;} +.social-xs.social-youtube {background-position: -24px 0;} +.social-xs.social-vk {background-position: -48px 0;} + + + +.fileinput-btn { + position: relative; + overflow: hidden; + margin-top: 10px; +} +.fileinput-btn input { + position: absolute; + top: 0; + right: 0; + margin: 0; + opacity: 0; + -ms-filter: 'alpha(opacity=0)'; + cursor: pointer; +} + +/* Fixes for IE < 8 */ +@media screen\9 { + .fileinput-btn input { + filter: alpha(opacity=0); + font-size: 100%; + height: 100%; + } +} + +.f-preview { + float: left; + margin-right: 5px; + position: relative; +} + +.f-preview>div { + position: absolute; +top: 2px; +right: 2px; +} + +.feedback_not {border: 1px solid red;} + +.breadcrumb a {color: #fff; text-decoration: none;} + +.content .h1, .content .h2, .content .h3, .content .h4, .content .h5, .content .h6 {color: #fff !important;} +.services-view p, .service-view p, .services-view li, .service-view li {font-size: 16px;} +.services .service .service-title {line-height: 1.3em; height: 2.6em; overflow: hidden;} +.services .service .service-title a {display: block;} +.services .service .service-adt {line-height: 1em; height: 3em; overflow: hidden;} +.services .service .service-button {margin-top: 10px; padding: 0 50px;} +.services .service .service-image {text-align: center; line-height: 174px; height: 174px; overflow: hidden;} +.service-icons > div {text-align: center;} +/* sprite */ +.sprite {display: inline-block; background: url(/design/carheart/images/service-sprite.png); width: 100px; height: 80px; overflow: hidden;} +.sprite.i1 {background-position: -7px 0px;} +.sprite.i2 {background-position: -170px 0px;} +.sprite.i3 {background-position: -338px 0px;} +.sprite.i4 {background-position: -501px 0px;} +.sprite.i5 {background-position: -668px 0px;} +.sprite.i6 {background-position: -833px 0px;} +.sprite.i7 {background-position: -993px 0px;} +/* / sprite */ +.graphics {display: block; height: 144px; background: url(/design/carheart/images/graphics.jpg) no-repeat top right; padding: 20px 33% 10px 40px; overflow: hidden;} +.graphics .h3 {margin-top: 0;} +.contact-form {clear: both;} +.contact-form.well { + border: 1px solid #999; +} +.contact-form.replaced-form {margin-top: 20px;} +.contact-form .h3 {margin-top: 0; margin-bottom: 20px;} +.img-pull-left {margin:0 15px 10px 0;} +.img-pull-right {margin:0 0 10px 15px;} +.infoblock {margin-bottom: 30px;} +.infoblock img {max-width: 100% !important; height: auto !important;} +.hits .hit-title {height: 4.2em;line-height: 1.4em; text-align: center;} +.hits .hit-image {text-align: center;} +.hits .hit-image img {display: inline-block;} +.hits .hit-price {line-height: 38px; color: #fff; font-weight: 700; letter-spacing: 1px;} +.hits .hit-price small {font-weight: 400;} +.hits .hit-button {} +.other-services .oth-title {font-size: 14px; /*max-width: 208px;*/ margin-bottom: 5px; text-align: center; height: 80px; } +.other-services .oth-image img {/*max-width: 208px !important;*/ height: auto !important; width: 100%;} +.other-services .oth-image a {display: inline-block;width:100%;} +.other-services .oth-image {text-align: center;} +.related_products.hits {overflow: hidden; margin-top:30px; margin-bottom: 30px;} +img {max-width: 100%;} +.mb {margin-bottom: 30px;} +.tbl {display: table;} +.tbl > div {display: table-cell; vertical-align: middle;} + +.service-view p {text-align: justify;} + +@media screen and (max-device-width: 768px) { + .graphics p {display: none;} + .service-unit { + height: 230px; +} +.service-box { + border-radius: 5px; + overflow: hidden; + background: #1c1e23; + height: 230px; +} +} +@media screen and (min-device-width: 768px) { + .service-icons > div {width: 14.28%;} + + .service-unit a.tumb { + border-radius: 5px; + min-height: auto; + position: relative; + display: block; + overflow: hidden; + background: #000; + } + + .article-photos-block img { min-height: 270px; } + + .w12-5 { + width:12.5% !important; + } + + .sort-order { + float: right; + display: inline-block; + margin-top: 26px; + margin-left: 10px; + margin-bottom: 20px; + } + +} + +.sort-order select { + background: #191921; + border: 1px solid #ccc; + border-radius: 4px; + height: 32px; + padding: 5px; + color: #ccc; + max-width: 100%; +} + +.service-header h1 { + text-align: center; +} + +#back-top { + position: fixed; + display: flex; + align-items: center; + justify-content: center; + left: 100%; + margin-left: -190px; + bottom: 30px; + z-index: 100; + -webkit-transition: 1s; + -moz-transition: 1s; + transition: 1s; + background-color: #5fee1f; + border-radius: 50%; + width: 40px; + height: 40px; + /*padding: 8px; + padding-left: 13px;*/ + cursor: pointer; +} + +#back-top i { + color: #fff; +} + + + +#back-top a:hover span { + background-color: #777; +} +#back-top span { + width: 38px; + height: 38px; + display: block; + margin-bottom: 3px; + background: #aaa url(/design/carheart/images/up-arrow.png) no-repeat center center; + -webkit-border-radius: 7px; + -moz-border-radius: 7px; + border-radius: 7px; + -webkit-transition: 1s; + -moz-transition: 1s; + transition: 1s; + cursor: pointer; +} + +#back_forward .prev-next-title { + box-sizing: border-box; + font-size: 110%; + height: 36px; + line-height: 1em; + margin: 0; + overflow: hidden; +} + +#back_forward .cell { + float: left; + height: auto !important; + margin: 5px; + overflow: hidden; + position: inherit !important; + vertical-align: middle; +} + + +#back_forward .prev_next .cell a { + height: auto !important; + padding-bottom: 5px; + position: inherit !important; + display: block; + padding-top: 5px; + text-align: center; + width: 100%; +} + + +.flex-active-slide p {color:#fff;} + +.m_link:hover { + color:#fff; + text-decoration: none; +} +.m_link { + text-decoration: none; + text-transform: uppercase; +} + +#right-cat-btn{ + height: 184px; + right: -9.46px; + overflow: visible; + position: fixed; + top: 28%; + width: 43px; + z-index: 99990; + background: #007fc4; + display: block; + color:#fff; + text-decoration: none; + border-radius: 6px; +} + +#right-cat-btn:hover { + right: -5.46px +} + +#right-cat-btn span { + -webkit-transform: rotate(90deg); + transform: rotate(90deg); + border-radius: 6px; + color:#fff; + margin-top: 0px; + display: block; + transform-origin: left top 0; + margin-left: 30px; + width: 184px; + text-align: center; + font-size: 16px; +} + +.pdf-download { position: relative; display: table; min-height: 49px; margin-bottom: 30px; margin-top: 15px; background: #ffffff; background: -moz-linear-gradient(top, #ffffff 0%, #eeeeee 100%); background: -webkit-linear-gradient(top, #ffffff 0%, #eeeeee 100%); background: linear-gradient(to bottom, #ffffff 0%, #eeeeee 100%); border: 1px solid #dddddd; border-radius: 4px; padding-left: 95px; padding-right: 15px; padding-top: 4px; padding-bottom: 4px; } +.pdf-download:before { position: absolute; content: ''; display: block; background: url(/design/carheart/images/72.png); width: 72px; height: 72px; left: 8px; top: 50%; margin-top: -36px; } +.pdf-download > span {display: table-cell; height: 41px; vertical-align: middle; text-decoration: none;} +.pdf-download p {margin: 0; padding-top: 4px; color: #727272;} +.pdf-download a {text-decoration: none; color: #666 !important;} +.pdf-download:hover a {text-decoration: underline; color: #666 !important;} + +.pdf-views {margin-top: 20px; margin-bottom: 30px} +.pdf-views .pdf-view {margin-bottom: 15px} +.pdf-views .pdf-view img {max-width: 100%; height: auto !important} + +.news-widget .news-block {margin-bottom: 8px; padding-bottom: 8px; border-bottom: 1px solid #1c1e22;} +.news-widget .news-block:last-child {margin-bottom: 0px; padding-bottom: 0px; border-bottom: none;} + +.bx-wrapper .bx-controls-direction a { + z-index: 999 !important; +} + +.bx-wrapper { + background: #1c1e22 !important; + border: 5px solid #1c1e22 !important; +} + + + +.product-comment-date { + font-style: italic; +} + + +.b3, .b1 { + background: none !important; +} + +.social-icons.list-inline, .top-text1, .service-icons.row { + display: none !important; +} + +.flexslider .slides li { + background: rgb(0,127,196) no-repeat scroll right center !important; +} + +.help-block { + color: red; +} +.help-block.err { + display: none; +} + + + + +.pagination > li.active > a { border:1px solid #5fee1f; background: #5fee1f;} + + +.pagination > li > a, .pagination > li > span { + text-shadow: 1px 1px 1px rgba(0,0,0,0.3); + background-image: none; + background-repeat: no-repeat; + filter: none; + border-radius: 4px; + margin:4px; + +} +.pagination-sm > li > a, .pagination-sm > li > span { + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; +} +.pagination > li > a, .pagination > li > span { + position: relative; + float: left; + padding: 8px 12px; + line-height: 1.2; + text-decoration: none; + color: #ffffff; + background-color: transparent; + border: 1px solid rgba(250,250,250,0.3); + margin-left: -1px; +} +@media (max-width:468px) { + .service-box img { + max-width: 100%; + height: auto; + width: 100%; + } + .service-unit { + height: auto; + } + .service-box { + height: auto; + } + + footer .copyright { + font-size: 11px; + } +} + +.big-btn { + padding: 6px 12px; +} + +.service-recomended .hit-price { + text-align: center; +} + +.modal-forms { + width: 600px; +} + +.modal-forms .form-horizontal { + width: 550px; +} + + + +@media (max-width:768px) { +.slides li .big-font { + display: block; + font-size: 25px; + font-style: italic; + font-family: 'HelveticaBlack'; + margin: 10px 0; +} +} + + +@media (max-width:468px) { + + .modal-forms { + width: auto !important; + } + + .modal-forms .form-horizontal { + width: 90%; + } + + .navbar-nav > li:last-child > a { + padding-left: 10px !important; + padding-right: 10px !important; + } + + .ai-form { + padding-top: 0; + } + + .ai-form .title { + margin-bottom: 0; + margin-top: 20px; + } + + .ai-form .map { + margin-top: 20px; + } + +} + +.zooming2-title { + text-align: center; + margin-bottom: 5px; + font-size: 18px; +} + + + + +.page-content table { + width: 100%; + max-width: 100%; + background: transparent; +} + +.page-content table>tr, .page-content table>tbody>tr { + background: transparent; + background-color: transparent !important; +} + +.page-content table>tr:hover, .page-content table>tbody>tr:hover { + + background-color: #1f1f1f !important; +} + +.page-content table>tr>td, .page-content table>tbody>tr>td { + border: 1px solid #fff; + background: transparent; + background-color: transparent; + text-align: center; + vertical-align: middle; +} + +.page-content table td p { + display: inline; +} + +.service-form-link-header { + margin-bottom: 15px; +} + +.service-form-link-header a { + color: #398a15; +} + +.brand-hidden { + display: none; +} + +.brand-all-btn { + text-align: center; +} + +.brand-all-btn button { + color: #5fee1f !important; + letter-spacing: 1px; + font-size: 18px; + text-decoration: none; +} + +.brand-all-btn button:hover, .brand-all-btn button:active, .brand-all-btn button:focus { + text-decoration: none !important; +} + +.brand-all-btn button::after { + content: "\f105"; + color: #3d4047 !important; + font-family: FontAwesome; + font-size: 22px; + padding-left: 5px; + text-decoration: none; +} + +.main-page-body { + width: 80%; + margin: 0 auto; + text-align: center; +} + +.main-page-body p { + text-align: center !important; +} + +.bx-wrapper { + margin: 20px 0 !important; +} + + +.action-page-date { + text-align: right; + font-style: italic; +} + + +.grecaptcha-badge { + display: none; +} + +.mobile__header--phone { + display: none; +} + +.service-brands { + display: flex; + flex-wrap: wrap; + justify-content: flex-start; + margin-bottom: 2rem; +} +.brand-card { + position: relative; + text-align: center; + width: 20%; + margin-bottom: 1rem; + padding: 0 6px; +} +.brand-card.inactive { + opacity: .5; +} +.brand-card.inactive img { + -webkit-filter:grayscale(1) sepia(0.1); + filter: grayscale(1) sepia(0.1); +} +.brand-image { + height: 117px; +} +.brand-image img { + /* max-width: 117px;*/ +} +.brand-card a { + color: #5fee1f; +} +.brand-card a:hover { + color: #fff; +} + +.w-25 { width: 25% !important;} +.w-50 { width: 50% !important;} +.w-75 { width: 75% !important;} +.w-100 { width: 100% !important;} +.w-auto { width: auto !important;} +.h-25 { height: 25% !important;} +.h-50 { height: 50% !important;} +.h-75 { height: 75% !important;} +.h-100 { height: 100% !important;} +.h-auto { height: auto !important;} + +.mw-100 { max-width: 100% !important;} +.mh-100 { max-height: 100% !important;} +.min-vw-100 { min-width: 100vw !important;} +.min-vh-100 { min-height: 100vh !important;} +.vw-100 { width: 100vw !important;} +.vh-100 { height: 100vh !important;} + +.m-0 { margin: 0 !important;} +.mt-0, .my-0 { margin-top: 0 !important;} +.mr-0, .mx-0 { margin-right: 0 !important;} +.mb-0, .my-0 { margin-bottom: 0 !important;} +.ml-0, .mx-0 { margin-left: 0 !important;} +.m-1 { margin: 0.25rem !important;} +.mt-1, .my-1 { margin-top: 0.25rem !important;} +.mr-1, .mx-1 { margin-right: 0.25rem !important;} +.mb-1, .my-1 { margin-bottom: 0.25rem !important;} +.ml-1, .mx-1 { margin-left: 0.25rem !important;} +.m-2 { margin: 0.5rem !important;} +.mt-2, .my-2 { margin-top: 0.5rem !important;} +.mr-2, .mx-2 { margin-right: 0.5rem !important;} +.mb-2, .my-2 { margin-bottom: 0.5rem !important;} +.ml-2, .mx-2 { margin-left: 0.5rem !important;} +.m-3 {margin: 1rem !important;} +.mt-3, .my-3 {margin-top: 1rem !important;} +.mr-3, .mx-3 {margin-right: 1rem !important;} +.mb-3, .my-3 {margin-bottom: 1rem !important;} +.ml-3, .mx-3 {margin-left: 1rem !important;} +.m-4 {margin: 1.5rem !important;} +.mt-4, .my-4 {margin-top: 1.5rem !important;} +.mr-4, .mx-4 {margin-right: 1.5rem !important;} +.mb-4, .my-4 {margin-bottom: 1.5rem !important;} +.ml-4, .mx-4 {margin-left: 1.5rem !important;} +.m-5 {margin: 3rem !important;} +.mt-5, .my-5 {margin-top: 3rem !important;} +.mr-5, .mx-5 {margin-right: 3rem !important;} +.mb-5, .my-5 {margin-bottom: 3rem !important;} +.ml-5, .mx-5 {margin-left: 3rem !important;} + +.p-0 {padding: 0 !important;} +.pt-0,.py-0 {padding-top: 0 !important;} +.pr-0,.px-0 {padding-right: 0 !important;} +.pb-0,.py-0 {padding-bottom: 0 !important;} +.pl-0,.px-0 {padding-left: 0 !important;} +.p-1 {padding: 0.25rem !important;} +.pt-1,.py-1 {padding-top: 0.25rem !important;} +.pr-1,.px-1 {padding-right: 0.25rem !important;} +.pb-1,.py-1 {padding-bottom: 0.25rem !important;} +.pl-1,.px-1 {padding-left: 0.25rem !important;} +.p-2 {padding: 0.5rem !important;} +.pt-2,.py-2 {padding-top: 0.5rem !important;} +.pr-2,.px-2 {padding-right: 0.5rem !important;} +.pb-2,.py-2 {padding-bottom: 0.5rem !important;} +.pl-2,.px-2 {padding-left: 0.5rem !important;} +.p-3 {padding: 1rem !important;} +.pt-3,.py-3 {padding-top: 1rem !important;} +.pr-3,.px-3 {padding-right: 1rem !important;} +.pb-3,.py-3 {padding-bottom: 1rem !important;} +.pl-3,.px-3 {padding-left: 1rem !important;} +.p-4 {padding: 1.5rem !important;} +.pt-4,.py-4 {padding-top: 1.5rem !important;} +.pr-4,.px-4 {padding-right: 1.5rem !important;} +.pb-4,.py-4 {padding-bottom: 1.5rem !important;} +.pl-4,.px-4 {padding-left: 1.5rem !important;} +.p-5 {padding: 3rem !important;} +.pt-5,.py-5 {padding-top: 3rem !important;} +.pr-5,.px-5 {padding-right: 3rem !important;} +.pb-5,.py-5 {padding-bottom: 3rem !important;} +.pl-5,.px-5 {padding-left: 3rem !important;} + +.m-n1 {margin: -0.25rem !important;} +.mt-n1,.my-n1 {margin-top: -0.25rem !important;} +.mr-n1,.mx-n1 {margin-right: -0.25rem !important;} +.mb-n1,.my-n1 {margin-bottom: -0.25rem !important;} +.ml-n1,.mx-n1 {margin-left: -0.25rem !important;} +.m-n2 {margin: -0.5rem !important;} +.mt-n2,.my-n2 {margin-top: -0.5rem !important;} +.mr-n2,.mx-n2 {margin-right: -0.5rem !important;} +.mb-n2,.my-n2 {margin-bottom: -0.5rem !important;} +.ml-n2,.mx-n2 {margin-left: -0.5rem !important;} +.m-n3 {margin: -1rem !important;} +.mt-n3,.my-n3 {margin-top: -1rem !important;} +.mr-n3,.mx-n3 {margin-right: -1rem !important;} +.mb-n3,.my-n3 {margin-bottom: -1rem !important;} +.ml-n3,.mx-n3 {margin-left: -1rem !important;} +.m-n4 {margin: -1.5rem !important;} +.mt-n4,.my-n4 {margin-top: -1.5rem !important;} +.mr-n4,.mx-n4 {margin-right: -1.5rem !important;} +.mb-n4,.my-n4 {margin-bottom: -1.5rem !important;} +.ml-n4,.mx-n4 {margin-left: -1.5rem !important;} +.m-n5 {margin: -3rem !important;} +.mt-n5,.my-n5 {margin-top: -3rem !important;} +.mr-n5,.mx-n5 {margin-right: -3rem !important;} +.mb-n5,.my-n5 { margin-bottom: -3rem !important;} +.ml-n5,.mx-n5 {margin-left: -3rem !important;} +.m-auto {margin: auto !important;} +.mt-auto,.my-auto {margin-top: auto !important;} +.mr-auto,.mx-auto {margin-right: auto !important;} +.mb-auto,.my-auto {margin-bottom: auto !important;} +.ml-auto,.mx-auto {margin-left: auto !important;} + +.clearfix::after {display: block;clear: both;content: "";} +.float-left {float: left !important;} +.float-right {float: right !important;} +.float-none {float: none !important;} + +.stretched-link::after {position: absolute;top: 0;right: 0;bottom: 0;left: 0;z-index: 1;content: "";} +.position-static {position: static !important;} +.position-relative {position: relative !important;} +.position-absolute {position: absolute !important;} +.position-fixed {position: fixed !important;} + +.d-inline {display: inline !important;} +.d-inline-block {display: inline-block !important;} +.d-block {display: block !important;} +.d-grid {display: grid !important;} +.d-table {display: table !important;} +.d-table-row {display: table-row !important;} +.d-table-cell {display: table-cell !important;} +.d-flex {display: flex !important;} +.d-inline-flex {display: inline-flex !important;} +.d-none {display: none !important;} + +.flex-row {flex-direction: row !important;} +.flex-column {flex-direction: column !important;} +.flex-row-reverse {flex-direction: row-reverse !important;} +.flex-column-reverse {flex-direction: column-reverse !important;} +.flex-wrap {flex-wrap: wrap !important;} +.flex-nowrap {flex-wrap: nowrap !important;} +.flex-wrap-reverse {flex-wrap: wrap-reverse !important;} +.flex-fill {flex: 1 1 auto !important;} +.flex-grow-0 {flex-grow: 0 !important;} +.flex-grow-1 {flex-grow: 1 !important;} +.flex-shrink-0 {flex-shrink: 0 !important;} +.flex-shrink-1 {flex-shrink: 1 !important;} +.justify-content-start {justify-content: flex-start !important;} +.justify-content-end {justify-content: flex-end !important;} +.justify-content-center {justify-content: center !important;} +.justify-content-between {justify-content: space-between !important;} +.justify-content-around {justify-content: space-around !important;} +.align-items-start {align-items: flex-start !important;} +.align-items-end {align-items: flex-end !important;} +.align-items-center {align-items: center !important;} +.align-items-baseline {align-items: baseline !important;} +.align-items-stretch {align-items: stretch !important;} +.align-content-start {align-content: flex-start !important;} +.align-content-end {align-content: flex-end !important;} +.align-content-center {align-content: center !important;} +.align-content-between {align-content: space-between !important;} +.align-content-around {align-content: space-around !important;} +.align-content-stretch {align-content: stretch !important;} +.align-self-auto {align-self: auto !important;} +.align-self-start {align-self: flex-start !important;} +.align-self-end {align-self: flex-end !important;} +.align-self-center {align-self: center !important;} +.align-self-baseline {align-self: baseline !important;} +.align-self-stretch {align-self: stretch !important;} + +.img-fluid {max-width: 100%; height: auto;} + +.stretched-link::after { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1; + pointer-events: auto; + content: ""; + background-color: rgba(0, 0, 0, 0); +} \ No newline at end of file diff --git a/design/atomic/favicon.ico b/design/atomic/favicon.ico new file mode 100644 index 0000000..11ad8c2 Binary files /dev/null and b/design/atomic/favicon.ico differ diff --git a/design/atomic/favicon.png b/design/atomic/favicon.png new file mode 100644 index 0000000..39e7686 Binary files /dev/null and b/design/atomic/favicon.png differ diff --git a/design/atomic/html/.htaccess b/design/atomic/html/.htaccess new file mode 100644 index 0000000..7d324e4 --- /dev/null +++ b/design/atomic/html/.htaccess @@ -0,0 +1,2 @@ +order deny,allow +deny from all diff --git a/design/atomic/html/actions.tpl b/design/atomic/html/actions.tpl new file mode 100644 index 0000000..a0d7faa --- /dev/null +++ b/design/atomic/html/actions.tpl @@ -0,0 +1,50 @@ +{* Список записей блога *} + + + + +

{$page->header}

+{$page->body} +{include file='pagination.tpl'} + +{* + +
+ {foreach $posts as $post} +
+
+ {if $post->image}
{$post->name|escape}
{/if} +
{$post->date|date|date_format:"%e %m %Y":"":"rus"} {$post->name|escape}
+
{$post->annotation}
+
+
+ {/foreach} +
*} + + + + +
+ {foreach $posts as $post} + +
+
{$post->date|date|date_format:"%e %m %Y":"":"rus"} + + {if $post->image} + {$post->name|escape} + {else} + {$post->name|escape} + {/if} + + + {$post->name|escape}
{$post->annotation}
+
+
+ {/foreach} +
+ + +{include file='pagination.tpl'} \ No newline at end of file diff --git a/design/atomic/html/actions_post.tpl b/design/atomic/html/actions_post.tpl new file mode 100644 index 0000000..36a6cbf --- /dev/null +++ b/design/atomic/html/actions_post.tpl @@ -0,0 +1,148 @@ +{* Страница отдельной записи блога *} + + + + +

{$post->name|escape}

+

{$post->date|date|date_format:"%e %m %Y":"":"rus"}

+ + +{*if $post->image} +
+{$post->name|escape} +
+{/if*} + +{$post->text} + + + + + + +
+ {foreach from=$action_photos item=ph} +
+ + + +
+ {/foreach} +
+ + {if $action_photos || $prev_post || $next_post}

{/if} + + + +
+
+ {if $prev_post} + + +
+ ← {$prev_post->name} +
+ + {/if} +
+ {if $next_post} + + {/if} +
+ + + +
+ +

Комментарии

+ + {if $comments} + +
    + {foreach $comments as $comment} + +
  • + +
    + {$comment->name|escape} {$comment->date|date}, {$comment->date|time} + {if !$comment->approved}ожидает модерации{/if} +
    + + + + {$comment->text|escape|nl2br} + +
  • + {/foreach} +
+ + {else} +

+ Пока нет комментариев +

+ {/if} + + + + + + + + + + + +
+ Написать комментарий + {if $error} +
+ {if $error=='captcha'} + Неверно введена капча + {elseif $error=='empty_name'} + Введите имя + {elseif $error=='empty_comment'} + Введите комментарий + {/if} +
+ {/if} + + + + + + + + + +

+ +
+ +
+
+ + +
+ + +{* Скрипт для листания через ctrl → *} +{* Ссылки на соседние страницы должны иметь id PrevLink и NextLink *} + + +{literal} + +{/literal} \ No newline at end of file diff --git a/design/atomic/html/advantage.tpl b/design/atomic/html/advantage.tpl new file mode 100644 index 0000000..8046761 --- /dev/null +++ b/design/atomic/html/advantage.tpl @@ -0,0 +1,41 @@ +
+
+
+ +
Сертификаты всех видов услуг
+
+ +
+
+ +
Сохранение дилерской гарантии
+
+ + +
+
+ +
Работа с Юр. Лицами
+
+ + +
+
+ +
Гарантия на все виды услуг
+
+ + +
+
+ +
Профессиональное оборудование
+
+ + +
+
+ +
Только качественные материалы
+
+
\ No newline at end of file diff --git a/design/atomic/html/ajax_order.tpl b/design/atomic/html/ajax_order.tpl new file mode 100644 index 0000000..a09db2f --- /dev/null +++ b/design/atomic/html/ajax_order.tpl @@ -0,0 +1,16 @@ +
+{if $result} +

Заявка на предзаказ оформлена

+

Как только товар будет в наличии, менеджер магазина свяжется с Вами.

+{else} +

Ошибка

+ {if $error} +
+ {if $error == 'empty_name'}Введите Имя{/if} + {if $error == 'empty_name2'}Введите Фамилию{/if} + {if $error == 'empty_email'}Введите email{/if} + {if $error == 'empty_phone'}Введите Телефон{/if} +
+ {/if} +{/if} +
\ No newline at end of file diff --git a/design/atomic/html/ajax_price.tpl b/design/atomic/html/ajax_price.tpl new file mode 100644 index 0000000..0eafb6f --- /dev/null +++ b/design/atomic/html/ajax_price.tpl @@ -0,0 +1,6 @@ +
+

Конечная сумма доставки: {$data->rsp->price} руб.
+ Срок доставки составляет от {$data->rsp->term->min} до {$data->rsp->term->max} дней.

+ +

 

+
\ No newline at end of file diff --git a/design/atomic/html/article.tpl b/design/atomic/html/article.tpl new file mode 100644 index 0000000..a563161 --- /dev/null +++ b/design/atomic/html/article.tpl @@ -0,0 +1,199 @@ +{* Страница отдельной записи блога *} + + + + + + +

{$article->name|escape}

+
+
{$article->date|date|date_format:"%e %m %Y":"":"rus"}
+ +
+ +
+
+{*} +{if $article->image}{$article->name|escape}{/if} + +*} + + +{images_resize content=$article->text} + + + +{* +
+ {if $prev_article} + ← {$prev_article->name} + {/if} + {if $next_article} + {$next_article->name} → + {/if} +
*} + + {if $related_products} +

Связанные товары

+
    + {foreach $related_products as $p} +
  • {$p->name}
  • + {/foreach} +
+
+ + {/if} +
+ + {if $related_articles} +

Также советуем посмотреть

+
    + {foreach $related_articles as $a} +
  • + {if $a->image}{$a->name|escape}{/if} + {$a->name} +
  • + {/foreach} +
+ {/if} + + +
+ {foreach from=$article_photos item=ph key=k} +
+ + {$article->name|escape} - фото {$k + 1} + +
+ {/foreach} +
+ + {if $article_photos}
{/if} +

Количество просмотров: {$article->visited}


+
+
+ {if $prev_article} + {**} + + + {/if} +
+
+ {if $next_article} + + {**} + + {/if} +
+
+ + +
+ +

Комментарии

+ + {if $comments} + +
    + {foreach $comments as $comment} + +
  • + +
    + {$comment->name|escape} {$comment->date|date}, {$comment->date|time} + {if !$comment->approved}ожидает модерации{/if} +
    + + + + {$comment->text|escape|nl2br} + +
  • + {/foreach} +
+ + {else} +

+ Пока нет комментариев +

+ {/if} + + + + + +
Написать комментарий
+
+ {literal} + + + {/literal} +
+ {if $error} +
+ {if $error=='captcha'} + Неверно введена капча + {elseif $error=='empty_name'} + Введите имя + {elseif $error=='empty_comment'} + Введите комментарий + {/if} +
+ {/if} +
+ +
+
+
+ +
+
+ + + +
+
+ + +
+ +{include file='forms/service.tpl'} + + +{* Скрипт для листания через ctrl → *} +{* Ссылки на соседние страницы должны иметь id PrevLink и NextLink *} + + +{literal} + +{/literal} \ No newline at end of file diff --git a/design/atomic/html/articles.tpl b/design/atomic/html/articles.tpl new file mode 100644 index 0000000..05a42ed --- /dev/null +++ b/design/atomic/html/articles.tpl @@ -0,0 +1,157 @@ +{* Список записей блога *} + + + +{if $article_category}

{$article_category->name}

{/if} + +{*if in_array($article_category->id, array(3))} +
+{include file='contact_form_inline.tpl'} +
+{/if*} + + + + +{images_resize content=$article_category->description} + + +{* Костыль для статей, которые как бренды *} +{if $article_category->id == 3} + + + {if $smarty.get.page < 2}{include file='articles_like_brands.tpl'}{/if} + +{else} + + {include file='articles_like_category.tpl'} + {*if $article_category->id != 3} + {include file='articles_like_category.tpl'} + {/if*} + +{/if} + + +{*

{$article_category->name}

*} + + + + +{if $markas} +
+ {foreach from=$markas item=b key=k} + {assign var=img value="`$config->marka_images_dir``$b->image`"} +
+
+ {if $b->image} + {$b->name} + {/if} +
+ +
+ {/foreach} +
+ {if $k > 7 && $service_filter}
{/if} +{/if} + + + {include file='service_filter.tpl'} + + + {if $article_category->id == 3 && $smarty.get.page < 2} +

Все работы{if $smarty.get.page > 1} - страница {$smarty.get.page}{/if}

+ {/if} + +
{include file='pagination_articles.tpl'}
+ +
+
+ {foreach $articles as $a} +
+
+
{if $a->image} + {$a->name|escape}{/if}
+ +
{$a->annotation}
+
+
+ {/foreach} +
+ +
+
{include file='pagination_articles.tpl'}
+ +{/if} + + + {* + + {get_last_articles var=last_articles limit=5} + {if $last_articles} +
+ + {foreach $last_articles as $a} +
  • {$a->name|escape}

  • + {/foreach} +
    + {/if} + (The End) *} + + + + + +{*

    {if $page}{$page->name}{elseif $article_category}{$article_category->name}{else}Полезные статьи{/if}

    *} + + + + + + + + + + + + + diff --git a/design/atomic/html/articles.tpl.txt b/design/atomic/html/articles.tpl.txt new file mode 100644 index 0000000..a9b9dde --- /dev/null +++ b/design/atomic/html/articles.tpl.txt @@ -0,0 +1,30 @@ +{* Рекурсивная функция вывода дерева категорий *} +{function name=article_categories_tree} +{if $categories} + +{/if} +{/function} + + +{if !$article_category} +{get_article_categories var=article_categories} +
    +{article_categories_tree categories=$article_categories} +
    +{else} + + {if $article_category && ($article_category->parent_id == 5 )}

    {$article_category->name}

    {/if} + +
    +{article_categories_tree categories=$article_category->subcategories} +
    \ No newline at end of file diff --git a/design/atomic/html/articles_like_brands.tpl b/design/atomic/html/articles_like_brands.tpl new file mode 100644 index 0000000..bf836d6 --- /dev/null +++ b/design/atomic/html/articles_like_brands.tpl @@ -0,0 +1,13 @@ +{if $article_category->subcategories} +
    + {foreach from=$article_category->subcategories item=c} + {if !$c->visible}{continue}{/if} +
    +
    {if $c->image} + {$c->name}{/if}
    + +
    + {/foreach} +
    +{/if} + diff --git a/design/atomic/html/articles_like_category.tpl b/design/atomic/html/articles_like_category.tpl new file mode 100644 index 0000000..056ddb9 --- /dev/null +++ b/design/atomic/html/articles_like_category.tpl @@ -0,0 +1,13 @@ +{if $article_category->subcategories} +
    + {foreach from=$article_category->subcategories item=c} + {if $c->visible} +
    +
    {if $c->image}{$c->name}{/if}
    +
    {$c->name}
    +
    {$c->description}
    +
    + {/if} + {/foreach} +
    +{/if} diff --git a/design/atomic/html/banner/foot-left.banner.tpl b/design/atomic/html/banner/foot-left.banner.tpl new file mode 100644 index 0000000..86daebf --- /dev/null +++ b/design/atomic/html/banner/foot-left.banner.tpl @@ -0,0 +1,23 @@ +{* ASSIGN ID {assign var='group' value='ID'} *} + +{assign var='group' value='2'}{get_banners group=$group} + +{if $banners} +{literal}{/literal} +
    +
      {foreach $banners as $banner}
    • {/foreach}
    +
    +
    +{literal}{/literal} +{/if} diff --git a/design/atomic/html/banner/foot.banner.tpl b/design/atomic/html/banner/foot.banner.tpl new file mode 100644 index 0000000..2fd9f31 --- /dev/null +++ b/design/atomic/html/banner/foot.banner.tpl @@ -0,0 +1,33 @@ +{* ASSIGN ID {assign var='group' value='ID'} *} + +{assign var='group' value='2'}{get_banners group=$group} + +{if $banners} +
    + {foreach $banners as $banner} +
    + +
    + {/foreach} +
    +
    +{* +{literal}{/literal} +
    +
      {foreach $banners as $banner}
    • {/foreach}
    +
    +
    +{literal}{/literal} +*} +{/if} diff --git a/design/atomic/html/banner/left.banner.tpl b/design/atomic/html/banner/left.banner.tpl new file mode 100644 index 0000000..100932e --- /dev/null +++ b/design/atomic/html/banner/left.banner.tpl @@ -0,0 +1,30 @@ +{* ASSIGN ID {assign var='group' value='ID'} *} + +{assign var='group' value='1'}{get_banners group=$group} + +{if $banners} + {foreach $banners as $banner} +
    + {/foreach} +{* +{literal}{/literal} +
    +
      {foreach $banners as $banner}
    • {/foreach}
    +
    +
    +{literal}{/literal} +*} + + +{/if} diff --git a/design/atomic/html/blog.tpl b/design/atomic/html/blog.tpl new file mode 100644 index 0000000..7075b3a --- /dev/null +++ b/design/atomic/html/blog.tpl @@ -0,0 +1,27 @@ +{* Список записей блога *} + + + + +

    {$page->name}

    + +{include file='pagination.tpl'} + + +
    + {foreach $posts as $post} +
    +
    + {if $post->image}
    {$post->name|escape}
    {/if} +
    {$post->date|date|date_format:"%e %m %Y":"":"rus"} {$post->name|escape}
    +
    {$post->annotation}
    +
    +
    + {/foreach} +
    + + +{include file='pagination.tpl'} diff --git a/design/atomic/html/brands.tpl b/design/atomic/html/brands.tpl new file mode 100644 index 0000000..e227210 --- /dev/null +++ b/design/atomic/html/brands.tpl @@ -0,0 +1,10 @@ +{if $category->brands} +
    + {foreach from=$category->brands item=b} +
    +
    {if $b->image}{$b->name}{/if}
    + +
    + {/foreach} +
    +{/if} \ No newline at end of file diff --git a/design/atomic/html/brands_all.tpl b/design/atomic/html/brands_all.tpl new file mode 100644 index 0000000..dd11c40 --- /dev/null +++ b/design/atomic/html/brands_all.tpl @@ -0,0 +1,12 @@ +{get_brands var=all_brands} +{if $all_brands} +
    + {foreach $all_brands as $b} + {if !$b->visible}{continue}{/if} +
    +
    {if $b->image}{$b->name}{/if}
    + +
    + {/foreach} +
    +{/if} \ No newline at end of file diff --git a/design/atomic/html/callback.tpl b/design/atomic/html/callback.tpl new file mode 100644 index 0000000..94940f7 --- /dev/null +++ b/design/atomic/html/callback.tpl @@ -0,0 +1,40 @@ + + +{if $call_sent} + {literal} + + {/literal} +{/if} + +
    +
    +

    Заказ обратного звонка

    + +


    +

    Введите пожалуйста ваше имя и телефон.
    Наши менеджеры свяжутся с вами в ближайшее время.

    +
    +
    + +{literal} + +{/literal} \ No newline at end of file diff --git a/design/atomic/html/cart.tpl b/design/atomic/html/cart.tpl new file mode 100644 index 0000000..ba32140 --- /dev/null +++ b/design/atomic/html/cart.tpl @@ -0,0 +1,543 @@ +{* Шаблон корзины *} + +

    +{if $cart->purchases}В корзине {$cart->total_products} {$cart->total_products|plural:'товар':'товаров':'товара'} +{else}Корзина пуста{/if} +

    +{if $cart->purchases} +
    +{* Список покупок *} + + + + + + + + + + {literal} {/literal} +{foreach from=$cart->purchases item=purchase} +{literal} + +{/literal} +{literal} + + +{/literal} + + + {* Изображение товара *} + + {* Название товара *} + + {* Цена за единицу *} + + {* Количество *} + + {* Цена *} + + {* Удалить из корзины *} + + +{/foreach} +{if $user->discount} + + + + + + + + +{/if} +{if $coupon_request} + + + + + + +{literal} + +{/literal} +{/if} + + + + + +
    ИзображениеНаименованиеЦенаКол-воИтогоУдалить
    + {$image = $purchase->product->images|first} + {if $image} + {$product->name|escape} + {/if} + + {$purchase->product->name|escape} + {$purchase->variant->name|escape} +
    + {foreach from=$purchase->options item=opt key=ok} + {assign var=f value=$features[$ok]} + {assign var=opts value=$purchase->features[$ok]} +

    + + + {$opt} + +

    + {/foreach} +
    +
    + {($purchase->variant->price)|convert} {$currency->sign} + + + + {($purchase->variant->price*$purchase->amount)|convert} {$currency->sign} + + + + + +
    скидка + {$user->discount} % +
    Код купона или подарочного ваучера + {if $coupon_error} +
    + {if $coupon_error == 'invalid'}Купон недействителен{/if} +
    + {/if} +
    + +
    + {if $cart->coupon->min_order_price>0}(купон {$cart->coupon->code|escape} действует для заказов от {$cart->coupon->min_order_price|convert} {$currency->sign}){/if} +
    + +
    +
    + {if $cart->coupon_discount>0} + −{$cart->coupon_discount|convert} {$currency->sign} + {/if} +
    + Итого: + {$cart->total_price} +  {$currency->sign} +
    +{* Связанные товары *} +{* +{if $related_products} +

    Так же советуем посмотреть

    + +
      + {foreach $related_products as $product} + +
    • + + {if $product->image} +
      + {$product->name|escape} +
      + {/if} + + +

      {$product->name|escape}

      + + {if $product->variants|count == 1} + + + {foreach $product->variants as $v} + + + + + + {/foreach} +
      + {if $v->name}{/if} + + {if $v->compare_price > 0}{$v->compare_price|convert}{/if} + {$v->price|convert} {$currency->sign|escape} + + в корзину +
      + + {else} + Нет в наличии + {/if} +
    • + + {/foreach} +
    +{/if} +*} +{*/*order-on-one-page*/*} +{literal} + +{/literal} +{*/*/order-on-one-page*/*} +{* Доставка *} +{if $deliveries} +

    Выберите способ доставки:

    +
    + {foreach $deliveries as $delivery} +
    + + +
    + + {if $delivery->ems==1} +
    +

    Тарифы и сроки доставки можно рассчитать ниже:

    + + +
    + +
    +
    +
    +
    +
    + {else} + {if $delivery->description}
    {$delivery->description}
    {/if} + {/if} + + + {/foreach} +
    +{/if} +
    Итого: {$cart->subtotal_price|convert} {$currency->sign}
    +{*/*order-on-one-page*/*} +{if $deliveries} + {foreach $deliveries as $delivery} + {if $delivery->payment_methods} + + {/if} + {/foreach} +{/if} +{*/*/order-on-one-page*/*} +{* Выбор способа оплаты *} +{*if $payment_methods && !$payment_method} +

    Выберите способ оплаты:

    +
      + {foreach $payment_methods as $payment_method} +
    • +
      + id}> +
      +

      + {*
      + {$payment_method->description} +
      +
    • + {/foreach} +
    +{/if*} +
    Адрес получателя
    +
    +
    + {if $error} +
    + {if $error == 'empty_name'}Введите Имя{/if} + {if $error == 'empty_name2'}Введите Фамилию{/if} + {if $error == 'empty_email'}Введите email{/if} + {if $error == 'empty_phone'}Введите Телефон{/if} + {if $error == 'empty_country'}Введите Страну{/if} + {if $error == 'empty_region'}Введите Регион{/if} + {if $error == 'empty_city'}Введите Город{/if} + {if $error == 'empty_city2'}Введите город в EMS{/if} + {if $error == 'empty_indx'}Введите Индекс{/if} + {if $error == 'empty_adress'}Введите Адрес Доставки{/if} + {if $error == 'captcha'}Капча введена неверно{/if} + {if $error == 'recaptcha'}Вы не прошли проверку защиты{/if} +
    + {/if} +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    + +
    +
    +
    + + + + + +
    +
    +
    +
    +{else} + В корзине нет товаров +{/if} + + + + \ No newline at end of file diff --git a/design/atomic/html/cart_informer.tpl b/design/atomic/html/cart_informer.tpl new file mode 100644 index 0000000..87db95b --- /dev/null +++ b/design/atomic/html/cart_informer.tpl @@ -0,0 +1,31 @@ +{* Информера корзины (отдаётся аяксом) *} + +{if $cart->total_products>0} + + + + + + + + + + + + +
    товаров: {$cart->total_products} {$cart->total_products|plural:'шт':'шт':'шт'}
    на сумму: {$cart->total_price|convert} {$currency->sign|escape}
    +{else} + + + + + + + + + + + + +
    товаров: 0 шт.
    на сумму: 0 руб.
    +{/if} diff --git a/design/atomic/html/cart_payment.tpl b/design/atomic/html/cart_payment.tpl new file mode 100644 index 0000000..da87de7 --- /dev/null +++ b/design/atomic/html/cart_payment.tpl @@ -0,0 +1,11 @@ +{foreach $payment_methods as $payment_method} +
  • +
    + id}> +
    +

    +
    + {$payment_method->description} +
    +
  • + {/foreach} \ No newline at end of file diff --git a/design/atomic/html/category.tpl b/design/atomic/html/category.tpl new file mode 100644 index 0000000..be94c91 --- /dev/null +++ b/design/atomic/html/category.tpl @@ -0,0 +1,77 @@ +{if $category->id != 488 && $category->id != 556} + {if $category->subcategories && $category->how2show == 1} +
    + {foreach from=$category->subcategories item=c} + {* Показываем только видимые категории *} + {*if $c->visible && $c->menu*} + {if $c->visible} + + {/if} + {/foreach} +
    + {/if} + + {if $category->subcategories && $category->how2show == 2} +
    + {foreach from=$category->subcategories item=c} + {if $c->visible} +
    +
    + + {if $c->image} + {$c->name} + {else} + + {/if} +
    + +
    + {/if} + {/foreach} +
    + + {/if} + + {if $category->subcategories && $category->how2show == 3} +
    + {foreach from=$category->subcategories item=c} + {if $c->visible} + + {/if} + {/foreach} +
    + + {/if} + + + + +{else} +
    + {foreach from=$category->subcategories item=c} + {if $c->visible && $c->menu} +
    +
    {if $c->image} + {$c->name}{/if}
    + +
    + {/if} + {/foreach} +
    + +{/if} diff --git a/design/atomic/html/category_like_brands.tpl b/design/atomic/html/category_like_brands.tpl new file mode 100644 index 0000000..240342f --- /dev/null +++ b/design/atomic/html/category_like_brands.tpl @@ -0,0 +1,13 @@ +{if $category->subcategories} +
    + {foreach from=$category->subcategories item=c} + {if $c->visible && $c->menu} +
    +
    {if $c->image} + {$c->name}{/if}
    + +
    + {/if} + {/foreach} +
    +{/if} diff --git a/design/atomic/html/contact_form_and_social.tpl b/design/atomic/html/contact_form_and_social.tpl new file mode 100644 index 0000000..2fa8e28 --- /dev/null +++ b/design/atomic/html/contact_form_and_social.tpl @@ -0,0 +1,55 @@ +
    Сервис на карте
    +
    +
    map here
    + +
    +
    ул. Победы Коммунизма д. 1
    +
    +
    + + + + +{literal} + +{/literal} \ No newline at end of file diff --git a/design/atomic/html/contact_form_inline.tpl b/design/atomic/html/contact_form_inline.tpl new file mode 100644 index 0000000..af40a13 --- /dev/null +++ b/design/atomic/html/contact_form_inline.tpl @@ -0,0 +1,51 @@ +{literal} + + +{/literal} + +
    +
    Заказать услугу: {$page->header|escape}
    +
    + +
    + + +
    +
    + + +
    +
    + + +
    +
    + +
    + + +
    +
    +{literal} + +{/literal} + +
    + {$page->header|escape} в СПБ +Есть вопросы по услуге {$page->header|escape}? Задайте нашему эксперту ++7(921)958-90-00 | WhatsApp | Telegram +
    \ No newline at end of file diff --git a/design/atomic/html/email_order.tpl b/design/atomic/html/email_order.tpl new file mode 100644 index 0000000..3d2b121 --- /dev/null +++ b/design/atomic/html/email_order.tpl @@ -0,0 +1,187 @@ +{* Шаблон письма пользователю о заказе *} + +{$subject = "Заказ №`$order->id`" scope=parent} +

    + Ваш заказ №{$order->id} + на сумму {$order->total_price|convert:$currency->id} {$currency->sign} + {if $order->paid == 1}оплачен{else}еще не оплачен{/if}, + {if $order->status == 0}ждет обработки{elseif $order->status == 1}в обработке{elseif $order->status == 2}выполнен{/if} +

    +{if $additional_message} + {$additional_message} +{/if} + + + + + + + + + + {if $order->name} + + + + + {/if} + {if $order->email} + + + + + {/if} + {if $order->phone} + + + + + {/if} + {if $order->address} + + + + + {/if} + {if $order->comment} + + + + + {/if} + + + + +
    + Статус + + {if $order->status == 0} + ждет обработки + {elseif $order->status == 1} + в обработке + {elseif $order->status == 2} + выполнен + {/if} +
    + Оплата + + {if $order->paid == 1} + оплачен + {else} + не оплачен + {/if} +
    + Имя, фамилия + + {$order->name|escape} {$order->name2|escape} +
    + Email + + {$order->email|escape} +
    + Телефон + + {$order->phone|escape} +
    + Страна, Регион, Город, адрес доставки,индекс + + {$order->country|escape}, {$order->region|escape}, {$order->city|escape}, {$order->address|escape}, {$order->indx|escape} +
    + Комментарий + + {$order->comment|escape|nl2br} +
    + Дата + + {$order->date|date} {$order->date|time} +
    + +

    Вы заказали:

    + + + + {foreach name=purchases from=$purchases item=purchase} + + + + + + {/foreach} + + {if $order->discount} + + + + + + {/if} + + {if $order->coupon_discount>0} + + + + + + {/if} + + {if $delivery && !$order->separate_delivery} + + + + + + {/if} + + + + + + +
    + {$image = $purchase->product->images[0]} + + + {$purchase->product_name} + {$purchase->variant_name} + {if $order->paid && $purchase->variant->attachment} +
    + Скачать {$purchase->variant->attachment} + {/if} +
    + {foreach from=$purchase->options item=opt key=ok} + {assign var=f value=$features[$ok]} +

    + + + {$opt} + +

    + + {/foreach} +
    + +
    + {$purchase->amount} {$settings->units} × {$purchase->price|convert:$currency->id} {$currency->sign} +
    + Скидка + + {$order->discount} % +
    + Купон {$order->coupon_code} + + −{$order->coupon_discount} {$currency->sign} +
    + {$delivery->name} + + {$order->delivery_price|convert:$currency->id} {$currency->sign} +
    + Итого + + {$order->total_price|convert:$currency->id} {$currency->sign} +
    + +
    +Вы всегда можете проверить состояние заказа по ссылке:
    +{$config->root_url}/order/{$order->url} +
    \ No newline at end of file diff --git a/design/atomic/html/email_password_remind.tpl b/design/atomic/html/email_password_remind.tpl new file mode 100644 index 0000000..dd52dc8 --- /dev/null +++ b/design/atomic/html/email_password_remind.tpl @@ -0,0 +1,13 @@ +{* Письмо восстановления пароля *} + +{$subject = 'Новый пароль' scope=parent} + + +

    {$user->name|escape}, на сайте {$settings->site_name} был сделан запрос на восстановление вашего пароля.

    +

    Вы можете изменить пароль, перейдя по следующей ссылке:

    +

    Изменить пароль

    +

    Эта ссылка действует в течение нескольких минут.

    +

    Если это письмо пришло вам по ошибке, проигнорируйте его.

    + + + diff --git a/design/atomic/html/feedback.tpl b/design/atomic/html/feedback.tpl new file mode 100644 index 0000000..e9664a1 --- /dev/null +++ b/design/atomic/html/feedback.tpl @@ -0,0 +1,57 @@ +{literal} + + +{/literal} + +{* Страница с формой обратной связи *} +

    {$page->name|escape}

    +{$page->body} +
    Обратная связь
    +
    +{if $message_sent} + {$name|escape}, ваше сообщение отправлено. +{else} + +
    +{/if} \ No newline at end of file diff --git a/design/atomic/html/feedback/edit.tpl b/design/atomic/html/feedback/edit.tpl new file mode 100644 index 0000000..1fd3f37 --- /dev/null +++ b/design/atomic/html/feedback/edit.tpl @@ -0,0 +1,41 @@ +

    Редактировать отзыв

    +
    +
    + + +
    + +
    + + +
    + +
    + + +
    + +
    +
    + {foreach from=$feedback_imgs[$feed_row->id] item=row4 key=i} +
    + +
    + +
    + {/foreach} + +
    +
    + Добавить фото + +
    + + + + + +

    *Обязательное поле

    + + +
    \ No newline at end of file diff --git a/design/atomic/html/feedback/form.tpl b/design/atomic/html/feedback/form.tpl new file mode 100644 index 0000000..010f2e0 --- /dev/null +++ b/design/atomic/html/feedback/form.tpl @@ -0,0 +1,48 @@ +{literal} + + +{/literal} + + +
    Оставить отзыв
    +
    +
    + + +
    + +
    + + +
    + +
    + + +
    + +
    +
    +
    + Добавить фото + +
    + + + + + + + +

    + +
    + + \ No newline at end of file diff --git a/design/atomic/html/feedback/main.tpl b/design/atomic/html/feedback/main.tpl new file mode 100644 index 0000000..254b756 --- /dev/null +++ b/design/atomic/html/feedback/main.tpl @@ -0,0 +1,79 @@ + + +{foreach from=$feedback item=row} + +
    + + +
    + {$row->name} + {$row->date} + {if $smarty.session.admin == 'admin' && $row->email} [{$row->email}]{/if} +
    + + {$row->text} + +
    + {foreach from=$feedback_imgs[$row->id] item=row2} +
    + +
    + {/foreach} +
    +
    + + + + {if $smarty.session.admin == 'admin'} +
    + Изменить + Ответить + {if $row->active == 0} + + {/if} + + {/if} +
    + + + {foreach from=$feedback_replies item=row3} + {if $row3->parent_id == $row->id} +
    + + +
    + {$row3->name} + {$row3->date} +
    + + {$row3->text} + +
    + {foreach from=$feedback_imgs[$row3->id] item=row4} +
    + +
    + {/foreach} +
    +
    + + + + {if $smarty.session.admin == 'admin'} +
    + Изменить + + {/if} +
    + {/if} + {/foreach} + +{/foreach} + +{include file='pagination_new.tpl'} + +{include file='feedback/form.tpl'} + + + + \ No newline at end of file diff --git a/design/atomic/html/feedback/reply.tpl b/design/atomic/html/feedback/reply.tpl new file mode 100644 index 0000000..eabf0b7 --- /dev/null +++ b/design/atomic/html/feedback/reply.tpl @@ -0,0 +1,25 @@ +

    Ответ на отзыв

    + {$feed_row->name}
    {$feed_row->text} +
    + +
    + + +
    + +
    +
    +
    + Добавить фото + +
    + + + + +

    *Обязательное поле

    + + + + +
    \ No newline at end of file diff --git a/design/atomic/html/form_order.tpl b/design/atomic/html/form_order.tpl new file mode 100644 index 0000000..b64d252 --- /dev/null +++ b/design/atomic/html/form_order.tpl @@ -0,0 +1,61 @@ +{literal} + + +{/literal} + +{* Страница с формой обратной связи *} +
    Обратная связь
    + +{if $message_sent} + {$name|escape}, ваше сообщение отправлено. +{else} + + +{/if} \ No newline at end of file diff --git a/design/atomic/html/forms/bottom.tpl b/design/atomic/html/forms/bottom.tpl new file mode 100644 index 0000000..f014ea9 --- /dev/null +++ b/design/atomic/html/forms/bottom.tpl @@ -0,0 +1,56 @@ +{literal} + + +{/literal} + + +
    Обратная связь
    +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    Введите телефон
    +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    + +
    + +
    + + + + + + +
    + + + +
    \ No newline at end of file diff --git a/design/atomic/html/forms/callback.tpl b/design/atomic/html/forms/callback.tpl new file mode 100644 index 0000000..9a96498 --- /dev/null +++ b/design/atomic/html/forms/callback.tpl @@ -0,0 +1,52 @@ +{literal} + + +{/literal} + + \ No newline at end of file diff --git a/design/atomic/html/forms/question.tpl b/design/atomic/html/forms/question.tpl new file mode 100644 index 0000000..8d740af --- /dev/null +++ b/design/atomic/html/forms/question.tpl @@ -0,0 +1,56 @@ +{literal} + + +{/literal} + + \ No newline at end of file diff --git a/design/atomic/html/forms/service.tpl b/design/atomic/html/forms/service.tpl new file mode 100644 index 0000000..49c8a55 --- /dev/null +++ b/design/atomic/html/forms/service.tpl @@ -0,0 +1,58 @@ +{literal} + + +{/literal} + + \ No newline at end of file diff --git a/design/atomic/html/forms/zakaz.tpl b/design/atomic/html/forms/zakaz.tpl new file mode 100644 index 0000000..ec1dfbb --- /dev/null +++ b/design/atomic/html/forms/zakaz.tpl @@ -0,0 +1,71 @@ +{literal} + + +{/literal} + + \ No newline at end of file diff --git a/design/atomic/html/graphic_block_services.tpl b/design/atomic/html/graphic_block_services.tpl new file mode 100644 index 0000000..96baecd --- /dev/null +++ b/design/atomic/html/graphic_block_services.tpl @@ -0,0 +1,66 @@ +
    Преимущества работы с нами
    + + +

    + +
    +
    +
    + +
    Сертификаты всех видов услуг
    +
    + +
    +
    + +
    Сохранение дилерской гарантии
    +
    + +
    +
    + +
    Работа с Юр. Лицами
    +
    + +
    +
    + +
    Гарантия на все виды услуг
    +
    + +
    +
    + +
    Профессиональное оборудование
    +
    + +
    +
    + +
    Только качественные материалы
    +
    + + + +
    \ No newline at end of file diff --git a/design/atomic/html/hits.tpl b/design/atomic/html/hits.tpl new file mode 100644 index 0000000..a93e48c --- /dev/null +++ b/design/atomic/html/hits.tpl @@ -0,0 +1,97 @@ +{* Для того чтобы обернуть центральный блок в шаблон, отличный от index.tpl *} +{* Укажите нужный шаблон строкой ниже. Это работает и для других модулей *} +{$wrapper = 'index.tpl' scope=parent} + +{* Заголовок страницы *} + + +{* Тело страницы *} +{$page->body} + +{if $products} + +
      + + {foreach $products as $product} + +
    • + + + {if $product->image} +
      + {$product->name|escape} +
      + {/if} + + + +

      {$product->name|escape}

      + + + +
      {$product->annotation}
      + + + {if $product->variants|count > 0} + +
      + + + {* Не показывать выбор варианта, если он один и без названия *} + + + + +
      + + {if $product->variant->compare_price > 0} + {$product->variant->compare_price|convert} + {/if} + + {$product->variant->price|convert} + {$currency->sign|escape} +
      + + + + + + +
      + + {/if} + +
    • + + {/foreach} + +
    +{/if} + + + + + + +{/literal} \ No newline at end of file diff --git a/design/atomic/html/index.tpl b/design/atomic/html/index.tpl new file mode 100644 index 0000000..d994f0b --- /dev/null +++ b/design/atomic/html/index.tpl @@ -0,0 +1,640 @@ + + + + +{if !$additional_title}{assign var="additional_title" value=""}{/if} + + +{$meta_title|escape}{if !$no_additional_title}{$additional_title}{/if}{if $smarty.get.page > 1} | страница {$smarty.get.page}{/if} + + + + + + + + +{if $module == 'ProductsView' || $module == 'ProductView'}{/if} +{* + *} +{**} + + +{**} + +{**} +{**} + +{if $detect->isMobile()} + + + + + +{else} + + + + + + +{/if} + + +{*if $detect->isMobile()} + + +{else} + +{/if*} + + + + +{if $rel_canonical}{/if} + + + +
    + +
    + +
    +
    + +
    +
    +
    + +
    + + {if $user} + {$user->name}{if $group->discount>0}, ваша скидка — {$group->discount}%{/if} / выйти + {else} + вход / регистрация + {/if} + + +
    +
    +
    +
    + +
    +
    + +
    +
    + + +
    +
    +
    + + + {if $detect->isMobile()} + +
    + +
    +
    +
      +
    • Главная
    • + {foreach name=page from=$pages item=p} + {if $p->menu_id == 1 and $p->name|escape != "Главная"} + id == $p->id) or $p->url == ' '} class="active"{/if}> + {$p->name|escape} + + {/if} + {/foreach} +
    +
    +
    +
    + + {else} + + + + {/if} + + +{* MOBILE *} +{if $detect->isMobile() && !$detect->isTablet()} + + {if $services_view} + +
    + {include file='services.tpl'} +
    + {else} + +
    + {$content} + {include file='banner/foot.banner.tpl'} +
    + {/if} + +{* / MOBILE *} +{else} +{* DESKTOP *} + + {if $services_view} + {include file='services.tpl'} + {else} +
    +
    + +
    + + {$content} + +
    + +
    +
    + {/if} + +{/if} + +{* DESKTOP *} +
    + +
    +{if $smarty.server.REQUEST_URI!="/otzyvy/"} +
    +
    +
    +
    + + + {if $detect->isMobile() && !$detect->isTablet()} + + + + + {else} + + + + + {/if} + + +
    +
    + {*include file='form_order.tpl'*} + {include file='forms/bottom.tpl'} +
    +
    +
    +
    +{/if} + + + +{*if $detect->isMobile()} + + + + + + + +{/if*} + + + + + + + + + + +{**} + + + + + + + + + + + + + +{**} + + + + + + +{* + + +*} + + + + + +{if $smarty.session.admin == 'admin'} + +{/if} +{if $detect->isMobile() && !$detect->isTablet()} + +{/if} + + +{literal} + + +{/literal} + +{* + + +*} + + + + +{if !$detect->isMobile()} + + +{/if} + + + + +{if $smarty.session.admin == 'admin'}{/if} + +{* + *} + + +{include file='forms/callback.tpl'} +{literal} + + + + + + + + + +{/literal} +{* +
    + +
    + + + + +*} + +{literal} + + + + + + {/literal} + + + + {if $smarty.session.admin == 'admin'} + +{/if} + + + + + + + + + + + + \ No newline at end of file diff --git a/design/atomic/html/index_back.tpl b/design/atomic/html/index_back.tpl new file mode 100644 index 0000000..2b7b34a --- /dev/null +++ b/design/atomic/html/index_back.tpl @@ -0,0 +1,651 @@ + + + + +{if !$additional_title}{assign var="additional_title" value=""}{/if} + + +{$meta_title|escape}{if !$no_additional_title}{$additional_title}{/if}{if $smarty.get.page > 1} | страница {$smarty.get.page}{/if} + + + + + + + + +{if $module == 'ProductsView' || $module == 'ProductView'}{/if} +{* + *} +{**} + + +{**} + +{**} +{**} + +{if $detect->isMobile()} + + + + + +{else} + + + + + + +{/if} + + +{*if $detect->isMobile()} + + +{else} + +{/if*} + + + + +{if $rel_canonical}{/if} + + + +
    + +
    + +
    +
    + +
    +
    +
    + +
    + + {if $user} + {$user->name}{if $group->discount>0}, ваша скидка — {$group->discount}%{/if} / выйти + {else} + вход / регистрация + {/if} + + +
    +
    +
    +
    + +
    +
    + +
    +
    + +
    +
    + + +
    +
    +
    + + + {if $detect->isMobile()} + +
    + +
    +
    +
      +
    • Главная
    • + {foreach name=page from=$pages item=p} + {if $p->menu_id == 1 and $p->name|escape != "Главная"} + id == $p->id) or $p->url == ' '} class="active"{/if}> + {$p->name|escape} + + {/if} + {/foreach} +
    +
    +
    +
    + + {else} + + + + {/if} + + +{* MOBILE *} +{if $detect->isMobile() && !$detect->isTablet()} + + {if $services_view} + +
    + {include file='services.tpl'} +
    + {else} + +
    + {$content} + {include file='banner/foot.banner.tpl'} +
    + {/if} + +{* / MOBILE *} +{else} +{* DESKTOP *} + + {if $services_view} + {include file='services.tpl'} + {else} +
    +
    + +
    + + {$content} + +
    + +
    +
    + {/if} + +{/if} + +{* DESKTOP *} +
    + +
    +{if $smarty.server.REQUEST_URI!="/otzyvy/"} +
    +
    +
    +
    + + + {if $detect->isMobile() && !$detect->isTablet()} + + + + + {else} + + + + + {/if} + + +
    +
    + {*include file='form_order.tpl'*} + {include file='forms/bottom.tpl'} +
    +
    +
    +
    +{/if} + + + +{*if $detect->isMobile()} + + + + + + + +{/if*} + + + + + + + + + + +{**} + + + + + + + + + + + + + +{**} + + + + + + +{* + + +*} + + + + + +{if $smarty.session.admin == 'admin'} + +{/if} +{if $detect->isMobile() && !$detect->isTablet()} + +{/if} + + +{literal} + + +{/literal} + +{* + + +*} + + + + +{if !$detect->isMobile()} + + +{/if} + + + + +{if $smarty.session.admin == 'admin'}{/if} + +{* + *} + + +{include file='forms/callback.tpl'} +{literal} + + + + + + + + + +{/literal} +{* +
    + +
    + + + + +*} + +{literal} + + + + + + {/literal} + + + + {if $smarty.session.admin == 'admin'} + +{/if} + + + + + + + + + + + + \ No newline at end of file diff --git a/design/atomic/html/login.tpl b/design/atomic/html/login.tpl new file mode 100644 index 0000000..2acd5d0 --- /dev/null +++ b/design/atomic/html/login.tpl @@ -0,0 +1,39 @@ +{* Страница входа пользователя *} +{$meta_title = "Вход" scope=parent} + +{literal} + + +{/literal} + +
    Вход
    +
    +{if $error} +
    + {if $error == 'recaptcha'}Вы не прошли проверку защиты + {elseif $error == 'login_incorrect'}Неверный логин или пароль + {elseif $error == 'user_disabled'}Ваш аккаунт еще не активирован. + {else}{$error}{/if} +
    +{/if} + + +
    \ No newline at end of file diff --git a/design/atomic/html/main.tpl b/design/atomic/html/main.tpl new file mode 100644 index 0000000..f51b75b --- /dev/null +++ b/design/atomic/html/main.tpl @@ -0,0 +1,266 @@ +{* Главная страница магазина *} +{* Слайдер *} +
    + + + +
    +
    +
      + + + + + + + +
    • +

      + +  Открыт отдел автосервиса + + + +

      +
    • + + +
    +
    +
    + + +
    + + +
    +
    + {* Для того чтобы обернуть центральный блок в шаблон, отличный от index.tpl *} + {* Укажите нужный шаблон строкой ниже. Это работает и для других модулей *} + {$wrapper = 'index.tpl' scope=parent} + {* Заголовок страницы *} + {*

    $page->header

    *} + {* Тело страницы *} + {* $page->body *} + {* Рекомендуемые товары *} + {if $detect->isMobile() && !$detect->isTablet()} + {assign var="x" value=4} + {else} + {assign var="x" value=3} + {/if} + {get_featured_products var=featured_products limit=$x} + {if $featured_products} + +
    Рекомендуемые товары
    +
    + {foreach $featured_products as $product} + +
    + + {if $product->image} +
    + {$product->name|escape} +
    + {/if} + + + {$product->name|escape} + + {if $product->variants|count > 0} + + {**} + {foreach $product->variants as $v} + {if $v@first || $v->price<$pmin} + {assign var="pmin" value=$v->price} + {assign var="vmin" value=$v->id} + {assign var="nmin" value=$v->name} + {assign var="smin" value=$v->stock} + {/if} + {/foreach} +
    + + +
    + от {$pmin|convert} {$currency->sign|escape} +
    +
    + {if $smin !='0'} + + {else} + + {/if} +
    +
    + + {else} +

    Нет в наличии

    + + {/if} + +
    + + {/foreach} +
    + {/if} + + + {* Услуги на главной *} + {if $home_services} + {*
    Популярные услуги
    *} + {foreach $home_services as $top} +
    {$top->name|escape}
    +
    + {foreach $top->children as $s} + + {/foreach} +
    + + {/foreach} + {/if} + + + {if $page->body} +
    {$page->body}
    {/if} + + + {* Выбираем в переменную $last_articles последние записи *} + {get_last_articles var=last_articles limit=6} + {if $last_articles} +
    Последние выполненные работы
    +
    + {foreach $last_articles as $a} + + {/foreach} +
    + + {/if} + + + +
    +
    + {* Новинки *} + {if $detect->isMobile() && !$detect->isTablet()} + {assign var="x" value=4} + {else} + {assign var="x" value=6} + {/if} + {get_new_products var=new_products limit=$x} + {if $new_products} + +
    +
    + {/if} +
    +
    \ No newline at end of file diff --git a/design/atomic/html/main_back.tpl b/design/atomic/html/main_back.tpl new file mode 100644 index 0000000..2008a38 --- /dev/null +++ b/design/atomic/html/main_back.tpl @@ -0,0 +1,364 @@ +{* Главная страница магазина *} +{* Слайдер *} +
    + + + +
    +
    +
      + + + + + +
    • +

      + Ремонт запотевания фар + + от 3000 рублей + подробнее +

      +
    • + + +
    +
    +
    + + +
    + + +
    +
    + {* Для того чтобы обернуть центральный блок в шаблон, отличный от index.tpl *} + {* Укажите нужный шаблон строкой ниже. Это работает и для других модулей *} + {$wrapper = 'index.tpl' scope=parent} + {* Заголовок страницы *} + {*

    $page->header

    *} + {* Тело страницы *} + {* $page->body *} + {* Рекомендуемые товары *} + {if $detect->isMobile() && !$detect->isTablet()} + {assign var="x" value=4} + {else} + {assign var="x" value=3} + {/if} + {get_featured_products var=featured_products limit=$x} + {if $featured_products} + +
    Рекомендуемые товары
    +
    + {foreach $featured_products as $product} + +
    + + {if $product->image} +
    + {$product->name|escape} +
    + {/if} + + + {$product->name|escape} + + {if $product->variants|count > 0} + + {**} + {foreach $product->variants as $v} + {if $v@first || $v->price<$pmin} + {assign var="pmin" value=$v->price} + {assign var="vmin" value=$v->id} + {assign var="nmin" value=$v->name} + {assign var="smin" value=$v->stock} + {/if} + {/foreach} +
    + + +
    + от {$pmin|convert} {$currency->sign|escape} +
    +
    + {if $smin !='0'} + + {else} + + {/if} +
    +
    + + {else} +

    Нет в наличии

    + + {/if} + +
    + + {/foreach} +
    + {/if} + + + {* Услуги на главной *} + {if $home_services} + {*
    Популярные услуги
    *} + {foreach $home_services as $top} +
    {$top->name|escape}
    +
    + {foreach $top->children as $s} + + {/foreach} +
    + + {/foreach} + {/if} + + + {if $page->body} +
    {$page->body}
    {/if} + + + {* Выбираем в переменную $last_articles последние записи *} + {get_last_articles var=last_articles limit=6} + {if $last_articles} +
    Последние выполненные работы
    +
    + {foreach $last_articles as $a} + + {/foreach} +
    + + {/if} + + + +
    +
    + {include file='sidebar_catalog.tpl'} +
    +
    + {* Новинки *} + {if $detect->isMobile() && !$detect->isTablet()} + {assign var="x" value=4} + {else} + {assign var="x" value=6} + {/if} + {get_new_products var=new_products limit=$x} + {if $new_products} +
    Новинки
    + +
    + {foreach $new_products as $product} + +
    +
    + + + + + + + {$product->name|escape} + + {if $product->variants|count > 0} + + + {foreach $product->variants as $v} + {if $v@first || $v->price<$pmin} + {assign var="pmin" value=$v->price} + {assign var="vmin" value=$v->id} + {assign var="nmin" value=$v->name} + {assign var="smin" value=$v->stock} + {/if} + {/foreach} +
    + + +
    + {$pmin|convert} {$currency->sign|escape} +
    + +
    + {if $smin !='0'} + + {else} + + {/if} +
    + +
    + + {else} +

    Нет в наличии

    + + {/if} + +
    +
    + + {/foreach} +
    +
    +
    + {/if} +
    +
    + + \ No newline at end of file diff --git a/design/atomic/html/marka.tpl b/design/atomic/html/marka.tpl new file mode 100644 index 0000000..f4ca90e --- /dev/null +++ b/design/atomic/html/marka.tpl @@ -0,0 +1,43 @@ + + + +

    {$h1}

    + +{$marka->description} + +{if $models} +
    + {foreach from=$models item=b} +
    +
    + {if $b->image} + {$b->name} + {/if} +
    + +
    + {/foreach} +
    +{/if} + +{include file='service_filter.tpl'} + +
    +
    + {foreach $articles as $a} +
    +
    +
    {if $a->image} + {$a->name|escape}{/if}
    + +
    {$a->annotation}
    +
    +
    + {/foreach} +
    + +
    diff --git a/design/atomic/html/model.tpl b/design/atomic/html/model.tpl new file mode 100644 index 0000000..5f9a820 --- /dev/null +++ b/design/atomic/html/model.tpl @@ -0,0 +1,30 @@ + + + +

    {$h1}

    + +{$model->description} + +{include file='service_filter.tpl'} + + +
    +
    + {foreach $articles as $a} +
    +
    +
    {if $a->image} + {$a->name|escape}{/if}
    + +
    {$a->annotation}
    +
    +
    + {/foreach} +
    + +
    diff --git a/design/atomic/html/order.tpl b/design/atomic/html/order.tpl new file mode 100644 index 0000000..abdb1c2 --- /dev/null +++ b/design/atomic/html/order.tpl @@ -0,0 +1,280 @@ +{* Страница заказа *} + +{$meta_title = "Ваш заказ №`$order->id`" scope=parent} + +

    Ваш заказ №{$order->id} +{if $order->status == 0}принят{/if} +{if $order->status == 1}в обработке{elseif $order->status == 2}выполнен{/if} +{if $order->paid == 1}, оплачен{else}{/if} +

    + +{* Список покупок *} +{literal} {/literal} + + +{foreach $purchases as $purchase} +{literal} + +{/literal} + + {* Изображение товара *} + + + {* Название товара *} + + + {* Цена за единицу *} + + + {* Количество *} + + + {* Цена *} + + +{/foreach} +{* Скидка, если есть *} +{if $order->discount > 0} + + + + + + + +{/if} +{* Если стоимость доставки входит в сумму заказа *} +{if !$order->separate_delivery && $order->delivery_price>0} + + + + + + +{/if} +{* Итого *} + + + + + + + +{* Если стоимость доставки не входит в сумму заказа *} +{if $order->separate_delivery} + + + + + + +{/if} + +
    + {$image = $purchase->product->images|first} + {if $image} + {$product->name|escape} + {/if} + + {$purchase->product_name|escape} + {$purchase->variant_name|escape} + {if $order->paid && $purchase->variant->attachment} + скачать файл + {/if} +
    + {foreach from=$purchase->options item=opt key=ok} + {assign var=f value=$features[$ok]} +

    + + + {$opt} + +

    + + {/foreach} +
    +
    + {($purchase->price)|convert} {$currency->sign} + + × {$purchase->amount} {$settings->units} + + {($purchase->price*$purchase->amount)|convert} {$currency->sign} +
    скидка + {$order->discount} % +
    + {$delivery->name|escape} + {$order->delivery_price|convert} {$currency->sign} +
    итого + {$order->total_price|convert} {$currency->sign} +
    + {$delivery->name|escape} + {$order->delivery_price|convert} {$currency->sign} +
    +

     

    +{* Детали заказа *} +

    Детали заказа

    + + + + + + {if $order->name} + + + + + {/if} + {if $order->email} + + + + + {/if} + {if $order->phone} + + + + + {/if} + {if $order->address} + + + + + {/if} + {if $order->comment} + + + + + {/if} +
    + Дата заказа + + {$order->date|date} в + {$order->date|time} +
    + Имя + + {$order->name|escape} +
    + Email + + {$order->email|escape} +
    + Телефон + + {$order->phone|escape} +
    + Адрес доставки + + {$order->address|escape} +
    + Комментарий + + {$order->comment|escape|nl2br} +
    +

     

    + +{if !$order->paid} +{* Выбор способа оплаты *} +{if $payment_methods && !$payment_method} +
    +

    Выберите способ оплаты

    +
      + {foreach $payment_methods as $payment_method} +
    • +
      + id}> +
      +

      +
      + {$payment_method->description} +
      +
    • + {/foreach} +
    + +
    + +{* Выбраный способ оплаты *} +{elseif $payment_method} +

    Способ оплаты — {$payment_method->name} +
    +

    +

    +{$payment_method->description} +

    +

    +Итого к оплате {$order->total_price|convert:$payment_method->currency_id} {$all_currencies[$payment_method->currency_id]->sign} +

    + +{* Форма оплаты, генерируется модулем оплаты *} +{checkout_form order_id=$order->id module=$payment_method->module} +{/if} + +{/if} +{literal} + + + + +{/literal} + +{if $smarty.get.done == 1} + {literal} + + {/literal} +{/if} + + diff --git a/design/atomic/html/page.tpl b/design/atomic/html/page.tpl new file mode 100644 index 0000000..297eef5 --- /dev/null +++ b/design/atomic/html/page.tpl @@ -0,0 +1,80 @@ +{* Шаблон текстовой страницы *} + +{*
    {$page->header|escape}
    *} +

    {$page->header|escape}

    + + +{if $catalog_categories} +
    +
    +
    + +
    +
    +{* Рекурсивная функция вывода дерева категорий *} + {function name=categories_tree_index level=0} + {if $categories && $level < 2} +
      + {foreach $categories as $c} + {* Показываем только видимые категории *} + {if $c->visible && $c->menu && $c->parent_id != 488} +
    • id == $c->id} class="active"{/if}> + {$c->name} + {if in_array($category->id, $c->children)} + {categories_tree_index categories=$c->subcategories level=$level+1} + {/if} +
    • + {/if} + {/foreach} +
    • Товары по брендам
    • +
    + {/if} + {/function} + {categories_tree_index categories=$categories} +
    +
    +
    +
    +
    +{/if} + +{* Костыль для раздела - товары по маркам, выводить все бренды *} +{if in_array($page->id, array(12))} +{include file='brands_all.tpl'} +{/if} + + +{$page->body} + + {if $catalog_categories} +
    + {foreach from=$catalog_categories item=c} + {* Показываем только видимые категории *} + {if $c->visible && $c->menu} +
    +
    {if $c->image} + {$c->name} + {/if}
    +
    + {$c->name} +
    {$c->anons}
    +
    +
    + {/if} + {/foreach} +
    + {/if} + + +{if $page->id == 35} + {if $smarty.get.edit && $smarty.session.admin == 'admin'}{include file='feedback/edit.tpl'}{/if} + {if $smarty.get.reply && $smarty.session.admin == 'admin'}{include file='feedback/reply.tpl'}{/if} + {if !$smarty.get.edit && !$smarty.get.reply}{include file='feedback/main.tpl'}{/if} + +{/if} +{if $catalog_categories} +
    +
    +{/if} diff --git a/design/atomic/html/pages.tpl b/design/atomic/html/pages.tpl new file mode 100644 index 0000000..5e2a132 --- /dev/null +++ b/design/atomic/html/pages.tpl @@ -0,0 +1,2 @@ +{* Шаблон текстовой страницы *} + diff --git a/design/atomic/html/pagination.tpl b/design/atomic/html/pagination.tpl new file mode 100644 index 0000000..5f1c00c --- /dev/null +++ b/design/atomic/html/pagination.tpl @@ -0,0 +1,42 @@ +{* Постраничный вывод *} +{if $total_pages_num>1} +{* Скрипт для листания через ctrl → *} +{* Ссылки на соседние страницы должны иметь id PrevLink и NextLink *} + +{*url*} + +
      + {* Количество выводимых ссылок на страницы *} + {if !$visible_pages}{$visible_pages = 13}{/if} + {* По умолчанию начинаем вывод со страницы 1 *} + {$page_from = 1} + {* Если выбранная пользователем страница дальше середины "окна" - начинаем вывод уже не с первой *} + {if $current_page_num > floor($visible_pages/2)} + {$page_from = max(1, $current_page_num-floor($visible_pages/2)-1)} + {/if} + {* Если выбранная пользователем страница близка к концу навигации - начинаем с "конца-окно" *} + {if $current_page_num > $total_pages_num-ceil($visible_pages/2)} + {$page_from = max(1, $total_pages_num-$visible_pages-1)} + {/if} + {* До какой страницы выводить - выводим всё окно, но не более ощего количества страниц *} + {$page_to = min($page_from+$visible_pages, $total_pages_num-1)} + {* Ссылка на 1 страницу отображается всегда *} +
    • 1
    • {*$smarty.server.HTTP_HOST}{$smarty.server.REQUEST_URI*} + {* Выводим страницы нашего "окна" *} + {section name=pages loop=$page_to start=$page_from} + {* Номер текущей выводимой страницы *} + {$p = $smarty.section.pages.index+1} + {* Для крайних страниц "окна" выводим троеточие, если окно не возле границы навигации *} + {if ($p == $page_from+1 && $p!=2) || ($p == $page_to && $p != $total_pages_num-1)} +
    • ...
    • + {else} +
    • {$p}
    • + {/if} + {/section} + {* Ссылка на последнююю страницу отображается всегда *} +
    • {$total_pages_num}
    • + {if $current_page_num>1}
    • ←назад
    • {/if} + {if $current_page_num<$total_pages_num}
    • вперед→
    • {/if} +
    + +{/if} \ No newline at end of file diff --git a/design/atomic/html/pagination_articles.tpl b/design/atomic/html/pagination_articles.tpl new file mode 100644 index 0000000..24c2add --- /dev/null +++ b/design/atomic/html/pagination_articles.tpl @@ -0,0 +1,42 @@ +{* Постраничный вывод *} +{if $total_pages_num>1} +{* Скрипт для листания через ctrl → *} +{* Ссылки на соседние страницы должны иметь id PrevLink и NextLink *} + +{*url*} + +
      + {* Количество выводимых ссылок на страницы *} + {if !$visible_pages}{$visible_pages = 13}{/if} + {* По умолчанию начинаем вывод со страницы 1 *} + {$page_from = 1} + {* Если выбранная пользователем страница дальше середины "окна" - начинаем вывод уже не с первой *} + {if $current_page_num > floor($visible_pages/2)} + {$page_from = max(1, $current_page_num-floor($visible_pages/2)-1)} + {/if} + {* Если выбранная пользователем страница близка к концу навигации - начинаем с "конца-окно" *} + {if $current_page_num > $total_pages_num-ceil($visible_pages/2)} + {$page_from = max(1, $total_pages_num-$visible_pages-1)} + {/if} + {* До какой страницы выводить - выводим всё окно, но не более ощего количества страниц *} + {$page_to = min($page_from+$visible_pages, $total_pages_num-1)} + {* Ссылка на 1 страницу отображается всегда *} +
    • 1
    • {*$smarty.server.HTTP_HOST}{$smarty.server.REQUEST_URI*} + {* Выводим страницы нашего "окна" *} + {section name=pages loop=$page_to start=$page_from} + {* Номер текущей выводимой страницы *} + {$p = $smarty.section.pages.index+1} + {* Для крайних страниц "окна" выводим троеточие, если окно не возле границы навигации *} + {if ($p == $page_from+1 && $p!=2) || ($p == $page_to && $p != $total_pages_num-1)} +
    • ...
    • + {else} +
    • {$p}
    • + {/if} + {/section} + {* Ссылка на последнююю страницу отображается всегда *} +
    • {$total_pages_num}
    • + {if $current_page_num>1}
    • ←назад
    • {/if} + {if $current_page_num<$total_pages_num}
    • вперед→
    • {/if} +
    + +{/if} \ No newline at end of file diff --git a/design/atomic/html/pagination_new.tpl b/design/atomic/html/pagination_new.tpl new file mode 100644 index 0000000..06878f6 --- /dev/null +++ b/design/atomic/html/pagination_new.tpl @@ -0,0 +1,67 @@ +{* Постраничный вывод *} + +{if $total_pages_num>1} +{* Скрипт для листания через ctrl → *} +{* Ссылки на соседние страницы должны иметь id PrevLink и NextLink *} + +{*url*} + +
      + {* Количество выводимых ссылок на страницы *} + {if !$visible_pages}{$visible_pages = 13}{/if} + {* По умолчанию начинаем вывод со страницы 1 *} + {$page_from = 1} + {* Если выбранная пользователем страница дальше середины "окна" - начинаем вывод уже не с первой *} + {if $current_page_num > floor($visible_pages/2)} + {$page_from = max(1, $current_page_num-floor($visible_pages/2)-1)} + {/if} + {* Если выбранная пользователем страница близка к концу навигации - начинаем с "конца-окно" *} + {if $current_page_num > $total_pages_num-ceil($visible_pages/2)} + {$page_from = max(1, $total_pages_num-$visible_pages-1)} + {/if} + {* До какой страницы выводить - выводим всё окно, но не более ощего количества страниц *} + {$page_to = min($page_from+$visible_pages, $total_pages_num-1)} + {* Ссылка на 1 страницу отображается всегда *} +
    • 1
    • {*$smarty.server.HTTP_HOST}{$smarty.server.REQUEST_URI*} + {* Выводим страницы нашего "окна" *} + {section name=pages loop=$page_to start=$page_from} + {* Номер текущей выводимой страницы *} + {$p = $smarty.section.pages.index+1} + {* Для крайних страниц "окна" выводим троеточие, если окно не возле границы навигации *} + {if ($p == $page_from+1 && $p!=2) || ($p == $page_to && $p != $total_pages_num-1)} +
    • ...
    • + {else} +
    • {$p}
    • + {/if} + {/section} + {* Ссылка на последнююю страницу отображается всегда *} +
    • {$total_pages_num}
    • + {if $current_page_num>1}
    • ←назад
    • {/if} + {if $current_page_num<$total_pages_num}
    • вперед→
    • {/if} +
    + +{/if} + +{if !$bottomPag && $page->id != 35} +
    Сортировать по    + +
    +{/if} +
    + +{literal} + +{/literal} \ No newline at end of file diff --git a/design/atomic/html/password_remind.tpl b/design/atomic/html/password_remind.tpl new file mode 100644 index 0000000..e4c9114 --- /dev/null +++ b/design/atomic/html/password_remind.tpl @@ -0,0 +1,26 @@ +{* Письмо пользователю для восстановления пароля *} + +{if $email_sent} +

    Вам отправлено письмо

    + +

    На {$email|escape} отправлено письмо для восстановления пароля.

    +{else} +

    Напоминание пароля

    +
    +{if $error} +
    + {if $error == 'user_not_found'} + Пользователь не найден + {else}{$error}{/if} +
    +{/if} + +
    +
    + +
    +
    + +
    +
    +{/if} \ No newline at end of file diff --git a/design/atomic/html/post.tpl b/design/atomic/html/post.tpl new file mode 100644 index 0000000..4151fb9 --- /dev/null +++ b/design/atomic/html/post.tpl @@ -0,0 +1,173 @@ +{* Страница отдельной записи блога *} + + + + +

    {$post->name|escape}

    +

    {$post->date|date|date_format:"%e %m %Y":"":"rus"}

    + + +{*if $post->image} +
    +{$post->name|escape} +
    +{/if*} + +{*$post->text*} +{images_resize content=$post->text} + + +{* +
    + {if $prev_post} + ← {$prev_post->name} + {/if} + {if $next_post} + {$next_post->name} → + {/if} +
    +*} + +
    +
    + {if $prev_post} + {**} + + + {/if} +
    +
    + {if $next_post} + + {**} + + {/if} +
    +
    + + +

    Получить консультацию

    +
    +
    + + + + + + + + + + +
    + +
    + +
    +
    + + + + + +
    + +

    Комментарии

    + + {if $comments} + +
      + {foreach $comments as $comment} + +
    • + +
      + {$comment->name|escape} {$comment->date|date}, {$comment->date|time} + {if !$comment->approved}ожидает модерации{/if} +
      + + + + {$comment->text|escape|nl2br} + +
    • + {/foreach} +
    + + {else} +

    + Пока нет комментариев +

    + {/if} + + + + + + + + + + +
    +
    + Написать комментарий + {if $error} +
    + {if $error=='captcha'} + Неверно введена капча + {elseif $error=='empty_name'} + Введите имя + {elseif $error=='empty_comment'} + Введите комментарий + {/if} +
    + {/if} + + + + + + + + +
    +

    + +
    + +
    +
    + + +
    + + +{* Скрипт для листания через ctrl → *} +{* Ссылки на соседние страницы должны иметь id PrevLink и NextLink *} + + +{literal} + +{/literal} \ No newline at end of file diff --git a/design/atomic/html/product.tpl b/design/atomic/html/product.tpl new file mode 100644 index 0000000..55bc9af --- /dev/null +++ b/design/atomic/html/product.tpl @@ -0,0 +1,653 @@ +{* Страница товара *} + +{$bid = 0} +{$ccat = $category->path|count} + + +
    + + {if !$detect->isMobile()} +
    +
    + +
    +
    +{* Рекурсивная функция вывода дерева категорий *} + {function name=categories_tree_index level=0} + {if $categories && $level < 2} +
      + {foreach $categories as $c} + {* Показываем только видимые категории *} + {if $c->visible && $c->menu && $c->parent_id != 488} +
    • id == $c->id} class="active"{/if}> + {if $c->menu_name}{$c->menu_name}{else}{$c->name}{/if} + {if in_array($category->id, $c->children)} + {categories_tree_index categories=$c->subcategories level=$level+1} + {/if} +
    • + {/if} + {/foreach} +
    • Товары по брендам
    • +
    + {/if} + {/function} + {categories_tree_index categories=$categories} +
    +
    +
    +
    + {/if} + + + +
    + + + +{*

    {$product->product_h1|escape}

    *} +

    {$product->name|escape}

    +
    +
    +{$product->product_h1|escape} +
    + + {if $product->image} +
    + + {$product->name|escape} +
    + {else} +
    + {/if} + + + {if $product->images|count>1} +
    + {* cut удаляет первую фотографию, если нужно начать 2-й - пишем cut:2 и тд *} + {foreach $product->images|cut as $i=>$image} + {$product->name|escape} + {/foreach} +
    + {/if} + +
    +{literal} {/literal} +
    + + + + {if $product->variants|count > 0} + +
    + RUB +
    + + {foreach $product->variants as $v} + {literal}{/literal} + + + + + + {/foreach} +
    + variants|count<2} style="display:none;"{/if}/> + + {if $v->name}{/if} + + {if $v->price != 0.00} + {$v->price} + Цена {$v->price|convert} {$currency->sign|escape}. + {if $v->compare_price > 0} цена {$v->compare_price|convert} {$currency->sign|escape}{/if} + {/if} +
    +
    + {if $featuresvars} + {foreach $featuresvars as $fv} + {$fid = $fv->id} + {if $v->options.$fid|count > 0} +
    +
    + {/if} + {/foreach} + {literal} + + {/literal} + {/if} +
    +
    +
    +
    +
    + + + + + + + +
    +
    + {* + Кол-во + +
    + *} +

     

    + + + +
    + +
    +
    + + {else} + {/if} + +
    +
      +
    • Бесплатная доставка по СПб при заказе от 10000 рублей.
    • +
    • Доставка по всей России и СНГ.
    • +
    • Сертификат соответствия на продукцию.
    • +
    • Возможна установка в нашем сервисном центре.
    • +
    +
    + + + + + + +
    + + +{literal} + +{/literal} +{* +
    +
    + + + + + + {$product->rating|string_format:"%.1f"} (голосов {$product->votes|string_format:"%.0f"}) + + +
    +
    +*} + + + + {literal} + + {/literal} + +
    +
    + + {*Описание товара {$product->name|escape}*} +
    + {images_resize content=$product->body} +
    +
    + {if $product->annotation}{$product->annotation}{else}{$product->body}{/if} +
    + +
    + +{literal} + +{/literal} +
    + {if $related_articles} +
      + {foreach $related_articles as $a} +
    • + {if $a->image}{$a->name|escape}{/if} + {$a->name|escape} +
      {$a->annotation}
      +

      +
    • + {/foreach} +
    + {/if} +
    + + + +
    + Комментарии + {if $comments} + +
      + {foreach $comments as $comment} +
    • +

    • + +
    • + +

      + {$comment->name|escape} {$comment->date|date}, {$comment->date|time} + {if !$comment->approved}ожидает модерации{/if} +

      + + + {$comment->text|escape|nl2br} + +
    • +

    • + {/foreach} +
    + + {else} +

    + Пока нет комментариев +

    + {/if} + {literal} + + + {/literal} + +
    +
    + + Написать комментарий + {if $error} +
    + {if $error=='captcha'} + Неверно введена капча + {elseif $error=='empty_name'} + Введите имя + {elseif $error=='empty_comment'} + Введите комментарий + {/if} +
    + {/if} + + + + + + + + + + + + +
    +
    + +
    + +
    +
    Для клиентов нашего тюнинг центра по адресу: Санкт-Петербург, Кондратьевский пр. , д. 17 к2К
    + +
      +
    • Оплата наличными
    • +
    • Оплата картами Visa, Mastercard, JCB, UnionPay, American Express, МИР
    • +
    • Оплата для ЮР. лиц на расчетный счет компании
    • +
    + +
    +
    Для клиентов других регионов России и СНГ.
    + +

    В регионы товары отправляются ТОЛЬКО со 100% предоплатой, с учетом стоимости доставки.
    + При заказе услуг по доработке фар и фонарей форма оплаты обсуждается индивидуально.
    + Для получения более подробной информации обращайтесь к нашим сотрудникам по тел.: +7-921-958-91-00 или на почту info@atomicgarage.ru

    + +
      +
    • Оплата через систему Сбербанк Онлайн и отделения Сбербанка
    • +
    • Оплата через систему Альфа-Клик
    • +
    • Оплата для ЮР. лиц на расчетный счет компании
    • +
    +
    + + +
    +
    Доставка товара осуществляется по всей России и СНГ
    + +
    +
    Самовывоз в Санкт-Петербурге
    + +

    Самовывоз по адресу: Санкт-Петербург, Кондратьевский пр. , д. 17 к2К

    + +
      +
    • тел: +7 (921) 958-91-00
    • +
    • тел: +7 (921) 958-92-00
    • +
    + +

    Режим работы: Пн-Сб 10:00-20:00, Вс - выходной

    + +
    + +
    3) Курьерская служба СДЭК
    + +

    Компания СДЭК предлагает услуги экспресс-доставки грузов, посылок, документов и писем в любую точку России и мира.

    + +
      +
    • Один из лучших способов доставки при соотношение цена - качество!
    • +
    • Доставка осуществляется до адресата, по предварительной договоренности адреса и времени или до ближайшего отделения службы СДЭК.
    • +
    • Сроки поставки от 4 до 10 дней.
    • +
    • Стоимость доставки от 300 до 800 руб.
    • +
    + +

    Отправка заказов производится в день заказа, либо на следующий день. Ссылка для отслеживания

    +
    + +
    +

    Гарантийный срок на предоставляемый товар в нашем тюнинг центре Atomic Garage.

    + +

    На товарные позиции дается гарантия 6-12 месяцев, в зависимости от производителя товара.

    + +

    Гарантия не распространяется, если автомобиль на который была произведена установка имеет неисправности, такие как:

    + +
      +
    • Неисправность генератора
    • +
    • АКБ
    • +
    • Электросети
    • +
    • Негерметичные элементы
    • +
    +
    + + +
    + +
    +

    Рекомендуемые товары

    + + +
    + + +
    + + +
    +
    +
    Просмотров товара: {$product->views}
    + +{if $adminBtn} + +{/if} + +
    + + +
    + +{literal} + + +{/literal} +{literal} + +{/literal} +{literal} + + + +{/literal} +{include file='forms/question.tpl'} +{include file='forms/zakaz.tpl'} \ No newline at end of file diff --git a/design/atomic/html/products.tpl b/design/atomic/html/products.tpl new file mode 100644 index 0000000..5d49f18 --- /dev/null +++ b/design/atomic/html/products.tpl @@ -0,0 +1,328 @@ +{* Список товаров *} + + +
    + {if !$detect->isMobile()} +
    +
    + +
    +
    + {* Рекурсивная функция вывода дерева категорий *} + {function name=categories_tree_index level=0} + {if $categories && $level < 2} +
      + {foreach $categories as $c} + {* Показываем только видимые категории *} + {if $c->visible && $c->menu && $c->parent_id != 488} +
    • id == $c->id} class="active"{/if}> + {if $c->menu_name}{$c->menu_name}{else}{$c->name}{/if} + {if in_array($category->id, $c->children)} + {categories_tree_index categories=$c->subcategories level=$level+1} + {/if} +
    • + {/if} + {/foreach} + {if $level==0} +
    • Товары по брендам
    • + {/if} +
    + {/if} + {/function} + {categories_tree_index categories=$categories} +
    +
    +
    +
    + {/if} +
    + +{* Заголовок страницы *} +{if $keyword} +

    Поиск {$keyword|escape}

    + {if !$products} + Наш поиск по сайту не смог найти то, что Вы ищете.
    + Но, возможно, этот товар есть в наличии. Позвоните нам по телефонам, указанным в контактах или закажите обратный звонок на сайте, чтобы наш менеджер смог Вас проконсультировать. + {/if} +{elseif $page && $page->name} +

    {$page->name|escape}

    +{else} + {if $brand && !$category}{$td = 'Товары для тюнинга '}{else}{$td=''}{/if} + {if $category->parent_id == 488 && $brand} +

    {$category->category_h1|escape} {$keyword|escape}

    + {else} +

    + {if $category->category_h1} + {$category->category_h1|escape} {$td}{$brand->name|escape} {$keyword|escape}{if $smarty.get.page > 1} - страница {$smarty.get.page}{/if} + {else}Все товары{if $brand} для автомобилей {$brand->name}{/if}{if $smarty.get.page > 1} - страница {$smarty.get.page}{/if} + {/if} +

    + {/if} + +{/if} + +{* Описание страницы (если задана) *} +{$page->body} +{if $current_page_num==1} +{* Описание категории *} +{$category->description} +{/if} + + +{* Фильтр по брендам *} +{*include file='brands.tpl'*} + +{* Описание бренда *} +{$brand->description} +{* Фильтр по свойствам *} +{if $features} + + {foreach $features as $f} + + + + + {/foreach} +
    + {$f->name}: + + Все + {foreach $f->options as $o} + value}class="selected"{/if}>{$o->value|escape} + {/foreach} +
    +{/if} + + +{if $category->subcategories && $category->id != 24 && !$category->from_subs} {*if1*} + +{* подразделы *} + +{* Костыль для разделов, которые как бренды *} + {if in_array($category->id, array(257, 15, 50, 32, 33, 43, 415))} + + {include file='category_like_brands.tpl'} + + {else} + + {include file='category.tpl'} + + {/if} + + +{else} {* /if1*} + + +{if $category->id == 15} {*if2*} + + {include file='category_like_brands.tpl'} + +{/if} {* /if2*} + + + +{*if $category->id == 246 || $category->id == 24}{include file='category.tpl'}
    Все товары
    {/if*} +{if $category->from_subs}{include file='category.tpl'}
    Все товары
    {/if} + +{*if $category->id == 15}
    Все товары
    {/if*} + +
    {include file='pagination_new.tpl'}
    + +{literal} {/literal} +
    + {foreach $products as $product} + + +
    + + {if $product->image} +
    + {$product->name|escape} +
    + {else} +
    + {/if} + +
    + + + + +
    {$product->annotation}
    + + {if $product->variants|count > 0} + + +{assign var="pmin" value=99999999} +{assign var="priceFlag" value=0} +{foreach $product->variants as $v} +{if $v@first || $v->price<$pmin} +{assign var="pmin" value=$v->price} +{assign var="vmin" value=$v->id} +{assign var="nmin" value=$v->name} +{assign var="smin" value=$v->stock} + +{/if} +{if $v->price != $pmin && $pmin != 99999999} + {assign var="priceFlag" value=1} +{/if} +{/foreach} + +{literal} + +{/literal} + + + +
    + +
    + RUB{$pmin} + {if $priceFlag == 1}цена от{else}цена{/if} + + {$pmin|convert} {$currency->sign|escape} + {if $v->compare_price > 0} + {if $priceFlag == 1}цена от{else}цена{/if} + {$v->compare_price|convert} {$currency->sign|escape}{/if} +
    +
    + {if $smin !='0'} + в корзину + {**} + + {else} + + {/if} +
    +
    + + + {else} + Нет в наличии + {/if} + +
    +
    + + {/foreach} +
    +{assign var="bottomPag" value=1} +
    {include file='pagination_new.tpl'}
    +{/if} + +{else} +{if $category->subcategories} + {$c->name} + {/if} +{/if} + +{if $category->text_bottom} + {$category->text_bottom} +{/if} + + + +
    +
    + + +{literal} + + + + + +{/literal} diff --git a/design/atomic/html/register.tpl b/design/atomic/html/register.tpl new file mode 100644 index 0000000..21a90e3 --- /dev/null +++ b/design/atomic/html/register.tpl @@ -0,0 +1,47 @@ +{* Страница регистрации *} + +{$meta_title = "Регистрация" scope=parent} + +{literal} + + +{/literal} + +
    Регистрация
    +
    +{if $error} +
    + {if $error == 'empty_name'}Введите имя + {elseif $error == 'empty_email'}Введите email + {elseif $error == 'empty_password'}Введите пароль + {elseif $error == 'user_exists'}Пользователь с таким email уже зарегистрирован + {elseif $error == 'captcha'}Неверно введена капча + {elseif $error == 'recaptcha'}Вы не прошли проверку защиты + {else}{$error}{/if} +
    +{/if} + +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    + + +
    +
    diff --git a/design/atomic/html/search.tpl b/design/atomic/html/search.tpl new file mode 100644 index 0000000..d4a667a --- /dev/null +++ b/design/atomic/html/search.tpl @@ -0,0 +1,29 @@ +

    Поиск по сайту

    + + + +{$no_results} + + +{foreach $items as $item} + + {if $item->_header} +
    {$item->_header}
    + {continue} + {/if} +
    + +
    + {$item->annotation} +
    +
    +{/foreach} \ No newline at end of file diff --git a/design/atomic/html/service.tpl b/design/atomic/html/service.tpl new file mode 100644 index 0000000..4eee467 --- /dev/null +++ b/design/atomic/html/service.tpl @@ -0,0 +1,49 @@ +
    +
    +
    +
    +
    +
    +

    {$page->header}

    +
    +
    {$page->toptext} + +
    + {*
    + {$page->name} + {$page->toptext} + +
    *} +
    +
    + + +{include file='contact_form_inline.tpl'} +{*include file='graphic_block_services.tpl'*} +
    +
    +
    + {$page->body} +
    +
    +
    + +{if $related_products}{include file='service_products.tpl'}{/if} + +
    +
    +
    + {$page->bottext} +
    +
    +
    + +{include file='service_other.tpl'} + +{*include file='contact_form_and_social.tpl'*} +

    Количество просмотров: {$page->visited}

    +
    +
    +
    diff --git a/design/atomic/html/service_brands.tpl b/design/atomic/html/service_brands.tpl new file mode 100644 index 0000000..1162c0b --- /dev/null +++ b/design/atomic/html/service_brands.tpl @@ -0,0 +1,51 @@ +{* блок ссылок на услугу по брендам *} +{if $service_brands} +

    Работаем со всем марками автомобилей

    +
    + {foreach $service_brands as $brand} +
    +
    + {if $brand->image} + {$page->header} {$brand->name} + {/if} +
    + {if $brand->url} + {$brand->name} + {else} + {$brand->name} + {/if} +
    + {/foreach} +
    +
    +

    Почему мы?

    + +
    +
    + +
    Работаем с автомобилями любого класса
    +
    +
    + +
    Занимаемся профессионально с 2017 года
    +
    +
    + +
    Удобно добраться из любой точки в СПБ
    +
    +
    + +
    Одни из самых выгодных цен в городе
    +
    +
    + +
    Уютное пространство - комната ожидания с чашечкой кофе
    +
    +
    + +
    Профессионально выполняем тюнинг любой сложности
    +
    +
    +
    +{/if} + diff --git a/design/atomic/html/service_filter.tpl b/design/atomic/html/service_filter.tpl new file mode 100644 index 0000000..8cb6810 --- /dev/null +++ b/design/atomic/html/service_filter.tpl @@ -0,0 +1,10 @@ +
    + Фильтрация по видам услуг   + +
    +
    \ No newline at end of file diff --git a/design/atomic/html/service_other.tpl b/design/atomic/html/service_other.tpl new file mode 100644 index 0000000..ddc465d --- /dev/null +++ b/design/atomic/html/service_other.tpl @@ -0,0 +1,68 @@ +{* Услуга по брендам *} +{include file="service_brands.tpl"} + +{if $related_articles} +
    +
    works_url && $page->works_url_text}style="margin-bottom:0"{/if}> +
    +
    Примеры работ
    +
    + {foreach from=$related_articles item=related_page} + + {/foreach} +
    + {if $page->works_url && $page->works_url_text} + + {/if} +
    +{/if} + +{if $related_pages} +
    +
    +
    +
    Другие услуги
    +
    + {foreach from=$related_pages item=related_page} + + {/foreach} +
    +
    +{/if} + + +
    +
    +
    Рекомендуемые товары
    + + +
    + diff --git a/design/atomic/html/service_products.tpl b/design/atomic/html/service_products.tpl new file mode 100644 index 0000000..e69de29 diff --git a/design/atomic/html/services.tpl b/design/atomic/html/services.tpl new file mode 100644 index 0000000..8bce9d8 --- /dev/null +++ b/design/atomic/html/services.tpl @@ -0,0 +1,59 @@ +{* meta тэги *} +{if $page->meta_title} + {$meta_title=$page->meta_title|escape scope=parent} +{else} + {$meta_title="`$page->name|escape` в Санкт-Петербурге | Тюнинг центр" scope=parent} +{/if} +{if $page->meta_description} + {$meta_description=$page->meta_description scope=parent} +{else} + {$meta_description="`$page->name|escape` авто в Санкт-Петербурге | Тюнинг центр Atomic Garage - установка и тюнинг линз, фар, ПТФ, ДХО, дополнительного оборудования." scope=parent} +{/if} +{if $page->meta_keywords} + {$meta_keywords=$page->meta_keywords|escape scope=parent} +{else} + {$meta_keywords="`$page->name|lower|escape`, автомобиль, авто, санкт-петербург, установка, тюнинг центр, цена, линзы, оптика, фары, фонари, птф" scope=parent} +{/if} + +{assign var=is_mobile value=($detect->isMobile() && !$detect->isTablet())} + +{* Breadcrumbs *} + + +{* содержимое различных страниц услуг *} +
    +
    +
    + {if $is_main_page} + {* Главная страница услуг *} + {include file='services_main.tpl'} + {elseif $sub_pages} + {* Страница услуг с детьми (подуслугами) *} + {include file='services_category.tpl'} + {else} + {* Страница услуги без детей *} + {include file='services_page.tpl'} + {/if} +
    +
    +
    + + +{if !$is_mobile}{literal}{/literal}{/if} + \ No newline at end of file diff --git a/design/atomic/html/services_category.tpl b/design/atomic/html/services_category.tpl new file mode 100644 index 0000000..c42df05 --- /dev/null +++ b/design/atomic/html/services_category.tpl @@ -0,0 +1,41 @@ +{include file='advantage.tpl'} + +{if $related_products}{include file='service_products.tpl'}{/if} + +{*include file='graphic_block_services.tpl'*} +
    +
    + {if !$detect->isMobile()} + {include file='services_menu.tpl'} + {/if} +
    +
    +

    {$page->header}

    + {$page->toptext} +
    + {foreach $sub_pages as $s} + {if !$s->visible}{continue}{/if} + + {/foreach} +
    + + {include file='service_other.tpl'} + {$page->bottext} + + {*include file='contact_form_and_social.tpl'*} +
    +
    diff --git a/design/atomic/html/services_content.tpl b/design/atomic/html/services_content.tpl new file mode 100644 index 0000000..98faeb4 --- /dev/null +++ b/design/atomic/html/services_content.tpl @@ -0,0 +1,106 @@ + + +{if $sub_pages} +
    +
    +
    + {include file='advantage.tpl'} + + {if $related_products}{include file='service_products.tpl'}{/if} + + {*include file='graphic_block_services.tpl'*} +
    +
    + {if !$detect->isMobile()} + {include file='services_menu.tpl'} + {/if} +
    +
    +

    {$page->header}

    + + {$page->toptext} + + {if $page->id==28} + + {foreach $sub_pages as $top} +
    {$top->name}
    +
    + {foreach $just_service_items as $s} + {if $s->startId != $top->id}{continue}{/if} + + {/foreach} +
    + + {/foreach} + + {else} +
    + {foreach $sub_pages as $s} + {if !$s->visible}{continue}{/if} + + {/foreach} +
    + {/if} + + + {include file='service_other.tpl'} + {$page->bottext} + + {*include file='contact_form_and_social.tpl'*} +
    +
    +
    +
    +
    +{else} +
    +
    +
    +
    +
    + {if !$detect->isMobile()}{include file='services_menu.tpl'}{/if} +
    +
    + {include file='service.tpl'} +
    +
    +
    +
    +
    +{/if} \ No newline at end of file diff --git a/design/atomic/html/services_main.tpl b/design/atomic/html/services_main.tpl new file mode 100644 index 0000000..9312d33 --- /dev/null +++ b/design/atomic/html/services_main.tpl @@ -0,0 +1,32 @@ +{include file='advantage.tpl'} +
    + {if !$detect->isMobile()}{include file='services_menu.tpl'}{/if} +
    +
    + + {foreach $home_services as $top} +
    {$top->name|escape}
    +
    + {foreach $top->children as $s} + + {/foreach} +
    + + {/foreach} + +
    + diff --git a/design/atomic/html/services_menu.tpl b/design/atomic/html/services_menu.tpl new file mode 100644 index 0000000..8fdb58f --- /dev/null +++ b/design/atomic/html/services_menu.tpl @@ -0,0 +1,36 @@ +{* Меню услуг *} +{if $services_tree} + {function name=services_tree level=0} + {if $services} +
      + {foreach $services as $s} + {if !$s->visible}{continue}{/if} + id==$s->id or in_array($page->id,$s->descendants)} class="active"{/if}> + {$s->name|escape} + {if $s->children or in_array($page->id,$s->descendants)} + {services_tree services=$s->children level=$level+1} + {/if} + + {/foreach} +
    + {/if} + {/function} + + {if $detect->isMobile()} +
    + +
    +
    + {services_tree services=$services_tree} +
    +
    +
    + {else} + + {/if} +{/if} \ No newline at end of file diff --git a/design/atomic/html/services_page.tpl b/design/atomic/html/services_page.tpl new file mode 100644 index 0000000..26169b0 --- /dev/null +++ b/design/atomic/html/services_page.tpl @@ -0,0 +1,79 @@ +
    +
    + {if !$detect->isMobile()}{include file='services_menu.tpl'}{/if} +
    +
    +
    +
    +
    +

    {$page->header}

    +
    +
    {$page->toptext} + +
    + {*
    + {$page->name} + {$page->toptext} + +
    *} +
    +
    + + + + + {include file='contact_form_inline.tpl'} + +
    + + {include file='graphic_block_services.tpl'} + +
    +
    +
    + {$page->body} +
    +
    +
    + + + + {if $related_products}{include file='service_products.tpl'}{/if} + + +
    +
    +
    + {$page->bottext} +
    +
    +
    + + + + {include file='service_other.tpl'} + + + + + + {*include file='contact_form_and_social.tpl'*} +

    Количество просмотров: {$page->visited}

    +
    +
    \ No newline at end of file diff --git a/design/atomic/html/sidebar_catalog.tpl b/design/atomic/html/sidebar_catalog.tpl new file mode 100644 index 0000000..cd2b02d --- /dev/null +++ b/design/atomic/html/sidebar_catalog.tpl @@ -0,0 +1,3 @@ + {if $detect->isMobile()} + {include file='services_menu.tpl'} + {/if} diff --git a/design/atomic/html/sidebar_catalog_back.tpl b/design/atomic/html/sidebar_catalog_back.tpl new file mode 100644 index 0000000..242997a --- /dev/null +++ b/design/atomic/html/sidebar_catalog_back.tpl @@ -0,0 +1,36 @@ +
    + +
    +
    + {* Рекурсивная функция вывода дерева категорий *} + {function name=categories_tree_index level=0} + {if $categories && $level < 2} + + {/if} + {/function} + {categories_tree_index categories=$categories} +
    +
    +
    + + {if $detect->isMobile()} + {include file='services_menu.tpl'} + {/if} diff --git a/design/atomic/html/styles.css b/design/atomic/html/styles.css new file mode 100644 index 0000000..785705f --- /dev/null +++ b/design/atomic/html/styles.css @@ -0,0 +1,810 @@ +/* /*@import url(http://fonts.googleapis.com/css?family=Open+Sans:400,700&subset=latin,cyrillic); +@import url(http://fonts.googleapis.com/css?family=Russo+One&subset=latin,cyrillic);*/ +/**/ +@font-face { +font-family: HelveticaBlack; +src: url("font/HelveticaBlack.otf") format("opentype"); +} +@font-face { +font-family: HelveticaNormal; +src: url("font/HelveticaNormal.otf") format("opentype"); +} + +.breadcrumb { + background: #101115 !important; +} + +.flexslider .slides li { background-size: contain !important; } +.advantage-name { text-align:center; } +.advantage svg {color:#5fee1f; width:100px;} +.advantage {margin-top:30px;} +.advantage div {text-align:center;} +.map { border:10px solid rgba(250,250,240,.3); overflow: hidden; display: block; margin-top: 80px;} +.cart-btn { border:1px solid #fff; padding: 2px 6px;font-family: 'HelveticaNormal'; color:#fff; background:transparent;} +.cart-btn::before { content:"\f217"; color:#5fee1f; font-size:16px; margin-right:10px; font-family:FontAwesome; } +.cart-btn:hover {border:1px solid #5fee1f; color:#5fee1f;} + +.home-output .product {background: #1c1e23;overflow: hidden; padding-bottom:4px; margin-top:5px} +.blog-unit {background: #1c1e23;overflow: hidden; padding-bottom:4px; border-radius:5px; margin-bottom:20px;} +.blog-unit span.name {display:block; text-align:center; color:#5fee1f; padding:20px 0;} +.blog-unit a:hover {text-decoration:none;} +.blog-unit a img { width:100%;} +.blog-unit a span.img {height:235px; overflow:hidden; display:block;} +.blog-annotation { color:#b8bfd3; padding:0 20px; text-align:center; text-transform:uppercase; font-size:12px;} + +.top-block { background: rgba(95,238,31,.1); border-radius: 3px; padding:5px; margin-bottom: 20px; margin-top: 20px; } +.top-block ul {list-style: none; padding: 0; margin: 0; margin-left:60px; } +.top-block a, .top-block .cart-links a {color:rgba(250,250,250,0.6) !important; text-decoration: none; text-transform: uppercase; font-size:12px;} +.top-block li{ padding: 0 20px; display: inline; } +.top-block .cart-links {text-align: center; color:rgba(250,250,250,0.3)} +.top-block .cart-links a {padding:0 10px;} +.container-fluid { + padding-right: 0 !important; +} +.second-line {margin-top:30px;} +.top-contacts {text-transform: uppercase; color: #fff; line-height: 30px; font-size:12px; letter-spacing: 1px; } +.top-contacts .phone { letter-spacing: 2px; font-size:18px;} +.top-contacts .phone a:hover {text-decoration: none;} +.top-contacts .email a {text-decoration: none; color:#fff; font-size:12px; letter-spacing: 1px; } +.top-contacts>div {margin-left: -16px; } +.ai-callback {position: relative;} +header .callme_viewform { + text-align: center; + border-radius: 5px; + border: 1px solid #fff; + padding: 8px 16px; + text-decoration: none; + text-transform: uppercase; + color: #fff; + font-size: 12px; + float: right; + margin-top: 80px; +} +.slides li {border-radius: 5px; } +.slides li .big-font {display:block; font-size:32px; font-style: italic; font-family:'HelveticaBlack'; margin: 10px 0;} +.slides li p {color:#ccc;} +.ai-more { + background: #5fee1f; + color:#000 !important; + border-radius: 10px; + padding: 8px 32px; + filter: none; + display: inline-block; + margin-top:10px; + text-align:center; + text-decoration:none; + font-size:9px; + letter-spacing: 2px; + text-transform:uppercase; + +} +.second-line>div {border-left:1px solid rgba(250,250,250,.4); text-align: center;} +.top-serch input.input-search {background: transparent; border: none; color: rgba(250,250,250,.5); } +.top-serch .glyphicon-search {color:#5fee1f;font-size:18px;} +.btn-sm { border: none; } + +.input-sm { + height: 30px; + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; + background: transparent; + border: none; + font-size: 16px; + color:#fff; +} +.bottom-nav {list-style:none; margin:0; padding:0;} +.bottom-nav a {text-decoration: none; text-transform: uppercase; font-size:11px; color: #ccc !important; line-height: 24px; cursor: pointer;} +.bottom-nav a:hover { color: #5fee1f !important; } + +.social {list-style: none; padding: 0; margin:0;} +.social li {padding: 9px 0 9px 16px; display: inline-block; } +footer .social li {padding:9px 16px 9px 0;} +footer .social li img{max-height: 30px; } +.ai-more:hover {background: #000; text-decoration:none; color:#fff !important;} +.navbar-nav>li>a { + border-right:none; + border-left: none; +} +.ai-padding {padding: 40px 0;} +.navbar-nav { + margin-bottom: 10px !important; + margin-top: 40px !important; +} +#cart_informer {position: relative;} +#cart_informer:before {color:#5fee1f; font-size:22px; content:"\f218"; font-family: FontAwesome; margin-left:-45px; position: absolute; display: inline; left:0; margin-top: 4px;} + +.navbar-nav > li:last-child > a { + padding-left: 27px !important; + padding-right: 28px !important; +} +.navbar-nav > li { +width: 16.666%; +} +.btn-danger, .panel-danger .panel-heading { + background: transparent; +} +.navbar-nav { + text-transform: uppercase; + margin: 0px; + width: 100%; + display: block; +} +.navbar-default .navbar-toggle:hover, .navbar-default .navbar-toggle:focus { + background-color: #58b030; +} +.navbar-default .navbar-toggle { + border-color: #58b030; +} +.navbar-default .navbar-nav>.active>a, +.navbar-default .navbar-nav>.active>a:hover, +.navbar-default .navbar-nav>.active>a:focus, +.navbar-nav>li>a:hover, +.navbar-default .navbar-nav>li>a:hover, +.navbar-default .navbar-nav>li>a:focus{ + color: #5fee1f !important; + background-color: transparent !important; +} +html, body { height: 100%; font-family: 'HelveticaNormal'; font-weight: 400; background: #191921 url(../images/bg.jpg) repeat-x center top; } +/*body { background: #141618 url(../images/bg-page.png) no-repeat center top; }*/ +.navbar { + background-image:none; + filter: none; + border: none; + text-shadow: none; +} +.navbar-default { + background-color: transparent; + border-color: transparent; +} + +.navbar-default .navbar-collapse, .navbar-default .navbar-form { + border-color:transparent; +} +.panel { + border:none; + border-radius: 4px; + -webkit-box-shadow: none; + box-shadow: none; + background: #101115; + padding:0; + margin-top: 20px; +} + .panel .panel-heading { color: #9ace82 !important; text-transform: uppercase; padding:25px 18px; font-size:16px;} + .panel .panel-heading a {color: #9ace82 !important;} + + .panel .v-menu ul li { padding:12px 10px; border-bottom:1px solid #ccc; } + .panel .v-menu ul li a {color:#ccc; font-size:14px;} + .panel .v-menu ul li a:hover {color:#5fee1f;} + .panel .v-menu ul li:nth-child(2n) { background: #1c1e23; } + +.home-output .product {margin-bottom: 15px;} +.home-output .product-name {color:#5fee1f; display: block; text-align: center; text-decoration: none; margin:10px 0;} +.home-output .product-price { font-size: 18px; color: #fff; line-height: 38px; white-space: nowrap; } +.home-output .product-image { text-align: center; } +.home-output .product-image img { max-width: 100%; } +.home-output .img-thumbnail {padding: 0; + line-height: 1.42857143; + background-color: #1c1e22; + border: none; + border-radius: 4px; + -webkit-transition: all .2s ease-in-out; + -o-transition: all .2s ease-in-out; + transition: all .2s ease-in-out; + display: inline-block; + max-width: 100%; + height: auto;} + + +a { cursor:pointer;} + +.navbar-nav { text-transform: uppercase; margin: 0px; } +.navbar-nav > li > a { padding-left: 10px; padding-right: 10px; text-decoration: none; color: #fff !important; } +.navbar-collapse {padding-left: 0px; padding-right: 0px;} +.navbar-right input { opacity: 0.65; border: 1px solid #333333; } +.navbar-right button, .navbar-right button:hover { border-top: 1px solid #b5000a; border-bottom: 1px solid #b5000a; border-right: 1px solid #b5000a; } +.wrapper { min-height: 100%; height: auto !important; height: 100%; margin-bottom: -290px; } + +.menu-service { background: #101115; padding:0;} +.menu-service .header { color: #9ace82 !important; text-transform: uppercase; padding:25px 18px; font-size:16px;} +.menu-service ul {list-style: none; padding: 0; margin: 0;} +.menu-service ul li { padding: 9px 18px; border-top: 1px solid #ccc; } +.menu-service ul li a { color: #ccc; text-decoration: none; font-size: 16px; } +.menu-service ul li a:hover { color: #5fee1f; } + +.panel-danger { + border-color:none; +} + +.service-unit {height:300px;} +.service-unit a.tumb { + border-radius: 5px; + min-height:230px; + position:relative; + display: block; + overflow: hidden; + background:#000; + + } +.service-unit a.tumb:hover {background:#5fee1f;} +.service-unit a.tumb:hover img { opacity:.3; } +.service-unit a.tumb:hover::before {z-index:5; position:absolute; content:"подробнее >"; font-size:14px; color:#fff;text-transform:uppercase; display:block; top:70%; width:100%; text-align:center; } +.service-name {display:block; padding:10px; text-align:center; text-decoration:none; font-size:18px; } +.service-name:hover {color:#5fee1f;} +.service-box {border-radius:5px; overflow:hidden; background:#1c1e23; height:300px;} +.service-link a {color:#3d4047 !important; letter-spacing: 1px; font-size:18px;} +.service-link {text-align:center; padding:20px 0;} +.service-link a::after { content:"\f105"; color:#3d4047 !important; font-family:FontAwesome; font-size:22px; padding-left:5px; text-decoration:none;} +.service-link a:hover { text-decoration:none; color:#5fee1f !important; } +header { box-sizing: border-box; } +#top-cart-informer.notempty .icon { display:none !important; } +header .cart.notempty { } +header .cart.notempty .cart-info table td { color: #fff; } +header .cart .cart-enter { position: absolute; width: 100%; box-sizing: border-box; bottom: 0px; left: 0px; height: 75px; text-indent: -9999px; } +header .cart .cart-links { text-align: right; margin-right: 10px; } +header .cart .cart-info { padding: 7px 0 7px 45px; } +header .cart .cart-info .icon {display: none;} +header .cart .cart-info table { background: none !important; background-color: rgba(0,0,0,0) !important; } +header .cart .cart-info table td {text-align: left; box-sizing: border-box; color: rgb(136, 136, 136); font-size: 100%; height: 20px; line-height: 20px; } +header .top-text1 { font-size: 125%; font-family: 'HelveticaNormal'; font-weight: 400; } +header .top-text2 { color: #d0cfcf; font-size: 90%; margin-top: 7px; line-height: 1.5em; } +header .top-text3 { color: #fff; font-size: 150%; margin-top: 7px; text-align: center; } +header .city { font-size: 80%; color: #fff; line-height: 1em; padding: 0px 0px 2px 0px; } +header .link { font-size: 90%; } +header .email { font-size: 90%; } +header .logo img {max-width: 100%; height: auto;} + +footer, .push { clear: both; } +footer { background-color: #2e3338; font-size: 100%; padding:40px 0;} +footer .container { padding-top: 25px; } +footer .title { font-size: 125%; color: #c9ffff; text-shadow: -1px -1px 0 rgba(0,0,0,0.3); margin-bottom: 2px; } +footer .copyright { font-size: 90%; } +footer .copyright span { color: #95f36a; } +footer .eto-design { font-size: 80%; } +footer a { color: #fff !important; } +footer a:hover { color: #aaa !important; } +footer img.bottom-logo {width: 200px; height: auto!important;} +footer .bottom-contacts { text-transform: uppercase; line-height: 20px; color: #656569; font-size: 12px; } +footer .bottom-contacts a { text-decoration: none; color: #656569 !important; font-size:12px !important;} + +footer .ai-copyright { border-top: 1px dashed rgba(250,250,250,.3); padding-top:30px; } + +.ai-form { + background: url("../images/bg-form.jpg"); + clear: both; + overflow: hidden; + padding: 40px 0; +} +.ai-form .title {color:#9ace82; font-size:26px; text-transform: uppercase; margin-bottom:40px;} +.ai-form label { display: none; } +.ai-form input, .ai-form textarea {background: transparent; border:1px solid rgba(250,250,250,.3); padding: 12px; color:#fff; margin: 4px; font-size:16px; height: 50px} +.ai-form textarea { height: 150px; } +.ai-form .btn { background: #58b030; border: none; padding: 12px 30px; margin: 0; } + +.chs {text-transform: uppercase; display: block; text-align: center; color: #2716cb !important; text-shadow: 0px 0px 2px #fff, 0px 0px 2px #fff, 0px 0px 2px #fff, 0px 0px 2px #fff, 0px 0px 2px #fff, 0px 0px 2px #fff, 0px 0px 2px #fff, 0px 0px 2px #fff, 0px 0px 2px #fff, 0px 0px 2px #fff !important; font-style: italic; } +.v-menu ul { list-style: none; margin: 0px; margin-top: 7px; padding: 0px; padding-left: 15px; border-top: 1px solid rgba(0,0,0,0.3); } +.v-menu > ul { margin-top: 0px; padding-left: 0px; border-top: none; } +.v-menu li { padding: 7px 0px; border-bottom: 1px solid rgba(0,0,0,0.3); } +.v-menu li:last-child { border-bottom: none; } +.v-menu li a { color: #fff; text-decoration: none; display: block; line-height: 1.15em; } +.v-menu li a:hover, .v-menu li.active > a { color: #5fee1f !important; } + +.panel .v-menu ul li ul li { + padding: 3px 0; + border-bottom:1px solid rgba(250,250,250,0.1); + font-size:12px !important; + +} +.panel .v-menu ul li ul li a{ + font-size:11px !important; + +} +a.btn { text-decoration: none; } +.button-set a.btn-block { text-transform: uppercase; font-size: 100%; } +.button-set { width: 100%; margin: auto; margin-bottom: 25px; } +.button-set .btn-block { position: relative; } +.button-set .btn-sidebar { padding-right: 48px; padding-left: 12px; box-sizing: border-box; } +.button-set .b1, .button-set .b2, .button-set .b3 { display: inline-block; width: 72px; height: 72px; position: absolute; top: -12px; right: -12px; } +.button-set .b1 { background: url(../images/b1.png) no-repeat; } +.button-set .b2 { background: url(../images/b2.png) no-repeat; } +.button-set .b3 { background: url(../images/b3.png) no-repeat; } +.flexslider { box-sizing: border-box; width: 100%; height: 237px; position: relative; overflow: hidden; } +.flexslider .slides { position: relative; margin: 0; padding: 0; } +.flexslider .slides > li { display: block; float: left; padding: 20px 300px 20px 30px; box-sizing: border-box; width: 100%; height: 237px; } +.flexslider .flex-control-nav { display: block; position: absolute; z-index: 99; bottom: 2px; right: 28px; } +.flexslider .flex-direction-nav { display: none; } +.flexslider .flex-control-nav > li > a, +.flexslider .flex-control-nav > li > span {cursor: pointer;} +.flexslider .flex-control-nav > li > a.flex-active, +.flexslider .flex-control-nav > li > span.flex-active { background-image: -webkit-linear-gradient(#020202, #101112 40%, #191b1d); background-image: -o-linear-gradient(#020202, #101112 40%, #191b1d); background-image: -webkit-gradient(linear, left top, left bottom, from(#020202), color-stop(40%, #101112), to(#191b1d)); background-image: linear-gradient(#020202, #101112 40%, #191b1d); background-repeat: no-repeat; filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff020202', endColorstr='#ff191b1d', GradientType=0);-webkit-filter: none; filter: none; } +.b { display: block; } +.tdn { text-decoration: none; } +.drive2 { background: #ff0033; width: 100%; border: 0px; padding: 0px; margin: 0px; border-collapse: collapse; table-layout: auto; border-spacing: 0px; } +.drive2 a { display: block; width: 100%; box-sizing: border-box; text-align: center; } +.content { margin-bottom: 25px; } + +.content .title, h1 { + background: #101115; + display: block; + font-weight: 500; + line-height: 1.1; + color: #9ace82; + font-size: 18px; + margin-top: 20px; + margin-bottom: 20px; + text-transform: uppercase; + text-align: center; + padding: 16px 0; + border-radius: 5px; +} + +.content a { color: #5fee1f; } + +.well { display: block; overflow: hidden; color: #c8c8c8; } +.products { overflow: hidden; } +.products .product { overflow: hidden; padding: 15px; margin: 0px; margin-bottom: 15px; } +.products .product { background-color: #49515a; } +.products .product:nth-child(odd) { background-color: #353a41; } +.products .product .product-name { display: block; line-height: 1.15em; font-size: 100%; color: #fff; padding: 7px 0px; text-decoration: none !important; } +.products .product .product-price { font-size: 145%; color: #fff; line-height: 38px; white-space: nowrap; } +.products .product .product-price small { font-size: 60%;} +.products .product .product-compare-price { display: block; text-decoration: line-through; color: #d0000a; font-size: 100%; } +.products .product .product-compare-price small { font-size: 100%; } +.products .product .product-image img { max-width: 100%; } +.products .product .product-info { line-height: 1.15em; } +.products .product .product-annotation { font-size: 90%; } +.product-details { overflow: hidden; } +.product-details .product { position: relative; } +.product-details .product .product-name { display: block; line-height: 1.15em; font-size: 100%; color: #fff; padding: 7px 0px; text-decoration: none !important; } +.product-details .product .product-price { font-size: 145%; color: #fff; white-space: nowrap; } +.product-details .product .product-compare-price { display: block; text-decoration: line-through; color: #d0000a; font-size: 100%; } +.product-details .product .product-compare-price small { font-size: 100%; } +.product-details .product .product-image { margin-bottom: 15px; } +.product-details .product .product-images { margin-bottom: 15px; } + + +.product-details .product .product-images a { +display: inline-block; +width: 80px; +height: 50px; +overflow: hidden; +border-radius: 4px; +} +.text-left, .text-left p {text-align:left !important;} + +.product-details .product .product-images img { margin-bottom: 3px; box-sizing: border-box; width:100%; } +.product-details .product .product-buttons { clear: both; width: 100%; text-align: left; } +.product-details .product .minus-plus { overflow: hidden; width: 120px; box-sizing: border-box; margin: auto; margin-bottom: 15px; display: none; } + + + +.ask-a-question, .ask-a-zakaz {border:1px solid #fff; color:#fff; border-radius:4px; background:transparent; display:inline-block; margin:5px; padding: 3px 7px;} + +.ask-a-question i, .ask-a-zakaz i { color:#5fee1f; } + +.categories .category { overflow: hidden; height: auto; margin-bottom: 15px; } +.categories .category .category-image { text-align: center; } +.categories .category .category-image img { max-height: 160px; } +.categories .category .category-name { display: block; text-align: center; line-height: 1.15em; font-size: 100%; color: #fff; padding: 7px 0px; text-decoration: none !important; } +.category_anons { font-size: 12px; margin-top: 4px; text-transform: lowercase; } +.category_anons span { color: red; font-weight: bold; font-size: 18px; } +.articles .article { overflow: hidden; height: auto; margin-bottom: 15px; } +.articles .article .article-image { text-align: center; } +.articles .article .article-image img { max-height: 160px; } +.articles .article .article-name { display: block; text-align: center; line-height: 1.15em; font-size: 100%; color: #fff; padding: 7px 0px; text-decoration: none !important; } +.brands .brand { overflow: hidden; height: auto; margin-bottom: 15px; } +.brands .brand .brand-image { text-align: center; } +.brands .brand .brand-image img { max-height: 160px; } +.brands .brand .brand-name { display: block; text-align: center; line-height: 1.15em; font-size: 100%; color: #fff; padding: 7px 0px; text-decoration: none !important; } +.blog { overflow: hidden; } +.blog .blog-article { overflow: hidden; margin-bottom: 7px; } +.blog .blog-image { float: left; margin: 0px 15px 5px 0px; } +.blog .blog-title { display: block; line-height: 1.15em; font-size: 100%; color: #fff; padding: 7px 0px; } +.blog .blog-annotation { font-size: 90%; } +a.w, div.w, span.w, a.w img, img.w { } +a.w:hover, a.w:hover img { color: #aaa !important; } +h1 { font-size: 24px; color: #fff; } +h2 { font-size: 22px; color: #fff; } +h3 { font-size: 20px; color: #fff; } +h4 { font-size: 18px; color: #fff; } +h5 { font-size: 17px; color: #fff; } +h6 { font-size: 16px; color: #fff; } + +.product-box h1 {text-transform:normal; font-size:22px;} +.category-image {text-align:center; } +.img-thumbnail { + padding: 0px; + line-height: 1.42857143; + background-color: #1c1e22; + border:none; + border-radius: 4px; + -webkit-transition: all .2s ease-in-out; + -o-transition: all .2s ease-in-out; + transition: all .2s ease-in-out; + + max-width: 100%; + height: auto; +} +.btn-danger:hover { + background: transparent; + } + + +.cards ul { list-style:none; color:#fff; margin:20px 0; padding:0;} +.cards ul li::before {content:"\f061"; font-family:FontAwesome; font-size:12px; margin-right:10px; color:#5fee1f;} + + +.navbar .btn-danger {font-size: 11px;} +table.table { border: 0px; } +td.td { text-align: center; border: 0px; } +td.td p, td.td span { margin: 0px; padding: 0px; } +td.td a { display: block; line-height: 1.15em; font-size: 100%; padding: 7px 0px; } +.category-list ul { margin: 0px; padding: 0px; list-style: none; } +strong, b { color: #fff; font-weight: normal !important; } +label { margin: 0px; padding: 0px; font-weight: normal; } +.h22 { color: #fff; font-weight: normal !important; } +.testRater { clear: both; } +.mdh { display: none; } +input.required { border: 1px solid rgb(255,0,0) !important; box-shadow: 0px 0px 10px rgb(255,0,0) !important; } +form.variants { margin: 0px; padding: 0px; } +form.variants tr.variant { height: 24px; } +form.variants table { background: none !important; background-color: transparent !important; background-image: none !important; } +form.variants table td { padding: 10px 0; margin: 0px; } +#tabs { list-style: none outside none; margin: 0; overflow: hidden; padding: 0; width: 100%; } +#tabs li { float: left; margin: 0 0.5em 0 0; } +#tabs a { background: #22371f; border-radius: 5px 0 0; box-shadow: 0 2px 2px rgba(0, 0, 0, 0.4); float: left; padding: 0.7em 1.2em; position: relative; text-decoration: none; } +#tabs a:hover, #tabs a:hover:after, #tabs a:focus, #tabs a:focus:after { background: #1f2229; } +#tabs a:focus { outline: 0 none; } +#tabs a:after { background: #22371f; border-radius: 0 5px 0 0; bottom: 0; box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.4); content: ""; position: absolute; right: -0.5em; top: 0; transform: skew(10deg); width: 1em; z-index: 1; } +#tabs #current a, #tabs #current a:after { background: #1f2229; z-index: 3; } +#tabcontent { background: #1f2229; border-radius: 0; box-shadow: 0 0 0 0 rgba(0, 0, 0, 0.5); display: block; height: auto; padding: 15px; position: relative; z-index: 2; } +.autocomplete-w1 { position: absolute; top: 0px; right: -180px; margin: 6px 0 0 6px; } +.autocomplete { border: 1px solid #7a8288; background: #2e3338; color: #fff; cursor: default; text-align: left; overflow-x: auto; overflow-y: auto; margin: -6px 6px 6px -6px; overflow-x: hidden; } +.autocomplete .selected { background: #7a8288; color: #fff; } +.autocomplete div { padding: 2px 5px; white-space: nowrap; } +.autocomplete strong { font-weight: normal; color: #3399FF; } +.news-widget .news-date { font-size: 80%; } +.news-widget .news-title { font-size: 100%; } +.blog-menu { overflow: hidden; margin-bottom: 28px; } +.panel .collapse-button { line-height: 1em; padding: 2px 12px; border: 1px solid #cccccc; -webkit-border-radius: 3px; -moz-border-radius: 3px; border-radius: 3px;} +.panel .collapse-button .glyphicon {font-size: 16px; color: #dddddd;} +.panel .panel-footer { text-align: center; } +.panel .panel-footer a { color:#ffffff; } +.panel-body.vk { margin: 0px; padding: 0px; } +/* cart always on top */ +.always-on-top {display: block !important; position: fixed !important; z-index: 9999; left: 0; top: 0; padding: 0 !important; box-sizing: border-box; width: 100% !important; height: auto !important; padding: 2px 0px; background: rgba(46,51,56,0.9) !important; text-align: center; } +.always-on-top .cart-info .icon {display: table-cell !important; text-align: center; vertical-align: middle; width: 48px;} +.always-on-top .cart-info .icon .glyphicon {font-size: 24px; color: #e5000b;} +.always-on-top .cart-info { display: inline-block !important; padding: 0 !important; margin: 0 !important; } +.always-on-top .cart-links { display: inline-block !important; padding: 0 !important; margin: 0 !important; position: relative; top: -15px; } + +#h_email {display: none;} +.content img {max-width: 100%; height: auto;} + +footer .lh {font-size: 90%; line-height: 1.1em; margin-bottom: 8px;} + +.comment_list li{ + margin-bottom: 15px; + list-style: none; + padding: 10px; + +} + +.comment_list .comment_header { + border-bottom: 1px solid rgba(255, 255,255, 0.1); + margin-bottom: 4px; +padding-bottom: 4px; +} + +.comment_list li:nth-child(even){ + background-color: #1c1e22; +} + +.comment_list li:nth-child(odd){ + background-color: #2B2E33; +} + +.social-icons {margin: 0 0 10px 0; display: table; width: 100%; border-radius: 4px;} +.social-icons li {display: table-cell; border: 1px solid #141618; padding: 0; width: 33.33%; text-align: center;} +.social-icons a {display: block; padding: 6px 8px;} +.social-icons a .fa {font-size: 36px; color: rgb(220,220,220); text-shadow: 1px 1px 1px rgba(0,0,0,0.5);} +.social-icons li:hover a .fa {color: rgb(255,255,255);} +.social-icons li:first-child { +-webkit-border-top-left-radius: 4px; +-webkit-border-bottom-left-radius: 4px; +-moz-border-radius-topleft: 4px; +-moz-border-radius-bottomleft: 4px; +border-top-left-radius: 4px; +border-bottom-left-radius: 4px;} +.social-icons li:last-child { +-webkit-border-top-right-radius: 4px; +-webkit-border-bottom-right-radius: 4px; +-moz-border-radius-topright: 4px; +-moz-border-radius-bottomright: 4px; +border-top-right-radius: 4px; +border-bottom-right-radius: 4px;} + + +.social-lg {background: url(/images/socsprite_lg.png); width: 48px; height: 48px; overflow: hidden; display: inline-block;} +.social-lg.social-instagram {background-position: 0 0;} +.social-lg.social-youtube {background-position: -48px 0;} +.social-lg.social-vk {background-position: -96px 0;} + +.social-md {background: url(/images/socsprite_md.png); width: 36px; height: 36px; overflow: hidden; display: inline-block;} +.social-md.social-instagram {background-position: 0 0;} +.social-md.social-youtube {background-position: -36px 0;} +.social-md.social-vk {background-position: -72px 0;} + +.social-sm {background: url(/images/socsprite_sm.png); width: 32px; height: 32px; overflow: hidden; display: inline-block;} +.social-sm.social-instagram {background-position: 0 0;} +.social-sm.social-youtube {background-position: -32px 0;} +.social-sm.social-vk {background-position: -64px 0;} + +.social-xs {background: url(/images/socsprite_xs.png); width: 24px; height: 24px; overflow: hidden; display: inline-block;} +.social-xs.social-instagram {background-position: 0 0;} +.social-xs.social-youtube {background-position: -24px 0;} +.social-xs.social-vk {background-position: -48px 0;} + + + +.fileinput-btn { + position: relative; + overflow: hidden; + margin-top: 10px; +} +.fileinput-btn input { + position: absolute; + top: 0; + right: 0; + margin: 0; + opacity: 0; + -ms-filter: 'alpha(opacity=0)'; + cursor: pointer; +} + +/* Fixes for IE < 8 */ +@media screen\9 { + .fileinput-btn input { + filter: alpha(opacity=0); + font-size: 100%; + height: 100%; + } +} + +.f-preview { + float: left; + margin-right: 5px; + position: relative; +} + +.f-preview>div { + position: absolute; +top: 2px; +right: 2px; +} + +.feedback_not {border: 1px solid red;} + +.breadcrumb a {color: #fff; text-decoration: none;} + +.content .h1, .content .h2, .content .h3, .content .h4, .content .h5, .content .h6 {color: #fff !important;} +.services-view p, .service-view p, .services-view li, .service-view li {font-size: 16px;} +.services .service .service-title {line-height: 1.3em; height: 2.6em; overflow: hidden;} +.services .service .service-title a {display: block;} +.services .service .service-adt {line-height: 1em; height: 3em; overflow: hidden;} +.services .service .service-button {margin-top: 10px; padding: 0 50px;} +.services .service .service-image {text-align: center; line-height: 174px; height: 174px; overflow: hidden;} +.service-icons > div {text-align: center;} +/* sprite */ +.sprite {display: inline-block; background: url(/design/carheart/images/service-sprite.png); width: 100px; height: 80px; overflow: hidden;} +.sprite.i1 {background-position: -7px 0px;} +.sprite.i2 {background-position: -170px 0px;} +.sprite.i3 {background-position: -338px 0px;} +.sprite.i4 {background-position: -501px 0px;} +.sprite.i5 {background-position: -668px 0px;} +.sprite.i6 {background-position: -833px 0px;} +.sprite.i7 {background-position: -993px 0px;} +/* / sprite */ +.graphics {display: block; height: 144px; background: url(/design/carheart/images/graphics.jpg) no-repeat top right; padding: 20px 33% 10px 40px; overflow: hidden;} +.graphics .h3 {margin-top: 0;} +.contact-form {clear: both;} +.contact-form.replaced-form {margin-top: 20px;} +.contact-form .h3 {margin-top: 0; margin-bottom: 20px;} +.img-pull-left {margin:0 15px 10px 0;} +.img-pull-right {margin:0 0 10px 15px;} +.infoblock {margin-bottom: 30px;} +.infoblock img {max-width: 100% !important; height: auto !important;} +.hits .hit-title {height: 4.2em;line-height: 1.4em;} +.hits .hit-image {text-align: center;} +.hits .hit-image img {display: inline-block;} +.hits .hit-price {line-height: 38px; color: #fff; font-weight: 700; letter-spacing: 1px;} +.hits .hit-price small {font-weight: 400;} +.hits .hit-button {} +.other-services .oth-title {font-size: 14px; max-width: 208px; margin-bottom: 20px; text-align: center; height: 80px; } +.other-services .oth-image img {max-width: 208px !important; height: auto !important;} +.related_products.hits {overflow: hidden; margin-top:30px; margin-bottom: 30px;} +img {max-width: 100%;} +.mb {margin-bottom: 30px;} +.tbl {display: table;} +.tbl > div {display: table-cell; vertical-align: middle;} + +.service-view p {text-align: justify;} + +@media screen and (max-device-width: 768px) { + .graphics p {display: none;} +} +@media screen and (min-device-width: 768px) { + .service-icons > div {width: 14.28%;} +} + +.service-header h1 { + text-align: center; +} + +#back-top { + position: fixed; + left: 100%; + margin-left: -100px; + bottom: 30px; + z-index: 100; + -webkit-transition: 1s; + -moz-transition: 1s; + transition: 1s; +} +#back-top a:hover span { + background-color: #777; +} +#back-top span { + width: 38px; + height: 38px; + display: block; + margin-bottom: 3px; + background: #aaa url(/design/carheart/images/up-arrow.png) no-repeat center center; + -webkit-border-radius: 7px; + -moz-border-radius: 7px; + border-radius: 7px; + -webkit-transition: 1s; + -moz-transition: 1s; + transition: 1s; + cursor: pointer; +} + +#back_forward .prev-next-title { + box-sizing: border-box; + font-size: 110%; + height: 36px; + line-height: 1em; + margin: 0; + overflow: hidden; +} + +#back_forward .cell { + float: left; + height: auto !important; + margin: 5px; + overflow: hidden; + position: inherit !important; + vertical-align: middle; +} + + +#back_forward .prev_next .cell a { + height: auto !important; + padding-bottom: 5px; + position: inherit !important; + display: block; + padding-top: 5px; + text-align: center; + width: 100%; +} + + +.flex-active-slide p {color:#fff;} + +.m_link:hover { + color:#fff; + text-decoration: none; +} +.m_link { + text-decoration: none; + text-transform: uppercase; +} + +#right-cat-btn{ + height: 184px; + right: -9.46px; + overflow: visible; + position: fixed; + top: 28%; + width: 43px; + z-index: 99990; + background: #007fc4; + display: block; + color:#fff; + text-decoration: none; + border-radius: 6px; +} + +#right-cat-btn:hover { + right: -5.46px +} + +#right-cat-btn span { + -webkit-transform: rotate(90deg); + transform: rotate(90deg); + border-radius: 6px; + color:#fff; + margin-top: 0px; + display: block; + transform-origin: left top 0; + margin-left: 30px; + width: 184px; + text-align: center; + font-size: 16px; +} + +.pdf-download { position: relative; display: table; min-height: 49px; margin-bottom: 30px; margin-top: 15px; background: #ffffff; background: -moz-linear-gradient(top, #ffffff 0%, #eeeeee 100%); background: -webkit-linear-gradient(top, #ffffff 0%, #eeeeee 100%); background: linear-gradient(to bottom, #ffffff 0%, #eeeeee 100%); border: 1px solid #dddddd; border-radius: 4px; padding-left: 95px; padding-right: 15px; padding-top: 4px; padding-bottom: 4px; } +.pdf-download:before { position: absolute; content: ''; display: block; background: url(/design/carheart/images/72.png); width: 72px; height: 72px; left: 8px; top: 50%; margin-top: -36px; } +.pdf-download > span {display: table-cell; height: 41px; vertical-align: middle; text-decoration: none;} +.pdf-download p {margin: 0; padding-top: 4px; color: #727272;} +.pdf-download a {text-decoration: none; color: #666 !important;} +.pdf-download:hover a {text-decoration: underline; color: #666 !important;} + +.pdf-views {margin-top: 20px; margin-bottom: 30px} +.pdf-views .pdf-view {margin-bottom: 15px} +.pdf-views .pdf-view img {max-width: 100%; height: auto !important} + +.news-widget .news-block {margin-bottom: 8px; padding-bottom: 8px; border-bottom: 1px solid #1c1e22;} +.news-widget .news-block:last-child {margin-bottom: 0px; padding-bottom: 0px; border-bottom: none;} + +.bx-wrapper .bx-controls-direction a { + z-index: 999 !important; +} + +.bx-wrapper { + background: #1c1e22 !important; + border: 5px solid #1c1e22 !important; +} + +.sort-order { + float: right; + display: inline-block; + margin-top: 20px; + margin-left: 10px; + margin-bottom: 20px; +} + +.sort-order select { + background: #353a41; +border: 2px solid #353a41; +border-radius: 2px; +height: 29px; +} + +.product-comment-date { + font-style: italic; +} + +.btn-danger:hover { + border: none !important; +} + +.b3, .b1 { + background: none !important; +} + +.social-icons.list-inline, .top-text1, .service-icons.row { + display: none !important; +} + +.flexslider .slides li { + background: rgb(0,127,196) no-repeat scroll right center !important; +} + +.help-block { + color: red; +} +.help-block.err { + display: none; +} \ No newline at end of file diff --git a/design/atomic/html/sub_pages.tpl b/design/atomic/html/sub_pages.tpl new file mode 100644 index 0000000..f49adb7 --- /dev/null +++ b/design/atomic/html/sub_pages.tpl @@ -0,0 +1,5 @@ + {foreach $sub_pages as $sub_page} + + {/foreach} \ No newline at end of file diff --git a/design/atomic/html/user.tpl b/design/atomic/html/user.tpl new file mode 100644 index 0000000..6518496 --- /dev/null +++ b/design/atomic/html/user.tpl @@ -0,0 +1,81 @@ +{* Шаблон страницы зарегистрированного пользователя *} + +{if $smarty.get.page && ($smarty.get.page == 'mailing' || $smarty.get.page == 'mailing_settings')}

    ПОДПИСКА

    + {if $smarty.post.mailing_email && !$error} + Вы успешно подписаны на рыссылку новостей. + {/if} + {if $smarty.get.unsubscribe && !$error}Вы успешно отписаны от рыссылки.{/if} + {if $error}
    {if $error == 'email_syntax'}Некорректно введён email.{elseif $error == '00001'}Вы не подписаны на рассылку.{/if}
    {/if} +{else}

    {$user->name|escape}

    {/if} + +{if $error} +
    + {if $error == 'empty_name'}Введите имя + {elseif $error == 'empty_name2'}Введите фамилию + {elseif $error == 'empty_email'}Введите email + {elseif $error == 'empty_password'}Введите пароль + {elseif $error == 'empty_phone'}Введите Телефон + {elseif $error == 'empty_country'}Введите Страну + {elseif $error == 'empty_region'}Введите Регион + {elseif $error == 'empty_city'}Введите Город + {elseif $error == 'empty_indx'}Введите Индекс + {elseif $error == 'empty_adress'}Введите Адрес Доставки + {elseif $error == 'user_exists'}Пользователь с таким email уже зарегистрирован + {else}{$error}{/if} +
    +{/if} +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    + +
    + +
    +
    +{if $orders} +

    Ваши заказы

    +
      +{foreach name=orders item=order from=$orders} +
    • + {$order->date|date} Заказ №{$order->id} + {if $order->paid == 1}оплачен,{/if} + {if $order->status == 0}ждет обработки{elseif $order->status == 1}в обработке{elseif $order->status == 2}выполнен{/if} +
    • +{/foreach} +
    +{/if} \ No newline at end of file diff --git a/design/atomic/html/vopros.tpl b/design/atomic/html/vopros.tpl new file mode 100644 index 0000000..1a1bba4 --- /dev/null +++ b/design/atomic/html/vopros.tpl @@ -0,0 +1,66 @@ + +
    +
    +
    *
    + +

    + +
    email*
    + +
    Te
    + +
    *
    + +
    +
    +
    +* , +'.$err[$num].'

    '; + show_form(); + exit(); +} + +if (!empty($_POST['submit'])) complete_mail(); +else show_form(); +?> \ No newline at end of file diff --git a/design/atomic/images/0626hq6.png b/design/atomic/images/0626hq6.png new file mode 100644 index 0000000..e027537 Binary files /dev/null and b/design/atomic/images/0626hq6.png differ diff --git a/design/atomic/images/72.png b/design/atomic/images/72.png new file mode 100644 index 0000000..a2e6d8d Binary files /dev/null and b/design/atomic/images/72.png differ diff --git a/design/atomic/images/Red-Icons-Of-Food-Baskets-And-Carts-A-Vector-Illustration-14d1f6a.jpg b/design/atomic/images/Red-Icons-Of-Food-Baskets-And-Carts-A-Vector-Illustration-14d1f6a.jpg new file mode 100644 index 0000000..7e55bb4 Binary files /dev/null and b/design/atomic/images/Red-Icons-Of-Food-Baskets-And-Carts-A-Vector-Illustration-14d1f6a.jpg differ diff --git a/design/atomic/images/Sales.gif b/design/atomic/images/Sales.gif new file mode 100644 index 0000000..bc70408 Binary files /dev/null and b/design/atomic/images/Sales.gif differ diff --git a/design/atomic/images/Thumbs.db b/design/atomic/images/Thumbs.db new file mode 100644 index 0000000..e2f9c99 Binary files /dev/null and b/design/atomic/images/Thumbs.db differ diff --git a/design/atomic/images/VKontakte.png b/design/atomic/images/VKontakte.png new file mode 100644 index 0000000..e965440 Binary files /dev/null and b/design/atomic/images/VKontakte.png differ diff --git a/design/atomic/images/_bg-form.jpg b/design/atomic/images/_bg-form.jpg new file mode 100644 index 0000000..0bbc46e Binary files /dev/null and b/design/atomic/images/_bg-form.jpg differ diff --git a/design/atomic/images/_bg.jpg b/design/atomic/images/_bg.jpg new file mode 100644 index 0000000..2cc463c Binary files /dev/null and b/design/atomic/images/_bg.jpg differ diff --git a/design/atomic/images/addcartpr.png b/design/atomic/images/addcartpr.png new file mode 100644 index 0000000..dd18c46 Binary files /dev/null and b/design/atomic/images/addcartpr.png differ diff --git a/design/atomic/images/auth_bg.png b/design/atomic/images/auth_bg.png new file mode 100644 index 0000000..13899eb Binary files /dev/null and b/design/atomic/images/auth_bg.png differ diff --git a/design/atomic/images/avroservice.jpg b/design/atomic/images/avroservice.jpg new file mode 100644 index 0000000..3b50867 Binary files /dev/null and b/design/atomic/images/avroservice.jpg differ diff --git a/design/atomic/images/avroservice1.jpg b/design/atomic/images/avroservice1.jpg new file mode 100644 index 0000000..873cf93 Binary files /dev/null and b/design/atomic/images/avroservice1.jpg differ diff --git a/design/atomic/images/avtoservice.jpg b/design/atomic/images/avtoservice.jpg new file mode 100644 index 0000000..873da4c Binary files /dev/null and b/design/atomic/images/avtoservice.jpg differ diff --git a/design/atomic/images/b-j-top.png b/design/atomic/images/b-j-top.png new file mode 100644 index 0000000..2745c48 Binary files /dev/null and b/design/atomic/images/b-j-top.png differ diff --git a/design/atomic/images/b1.png b/design/atomic/images/b1.png new file mode 100644 index 0000000..e0de4dd Binary files /dev/null and b/design/atomic/images/b1.png differ diff --git a/design/atomic/images/b2.png b/design/atomic/images/b2.png new file mode 100644 index 0000000..54adcb7 Binary files /dev/null and b/design/atomic/images/b2.png differ diff --git a/design/atomic/images/b3.png b/design/atomic/images/b3.png new file mode 100644 index 0000000..05070e2 Binary files /dev/null and b/design/atomic/images/b3.png differ diff --git a/design/atomic/images/b_corner2.png b/design/atomic/images/b_corner2.png new file mode 100644 index 0000000..e96a55a Binary files /dev/null and b/design/atomic/images/b_corner2.png differ diff --git a/design/atomic/images/bg-form.jpg b/design/atomic/images/bg-form.jpg new file mode 100644 index 0000000..7655e5b Binary files /dev/null and b/design/atomic/images/bg-form.jpg differ diff --git a/design/atomic/images/bg-page.png b/design/atomic/images/bg-page.png new file mode 100644 index 0000000..e551c72 Binary files /dev/null and b/design/atomic/images/bg-page.png differ diff --git a/design/atomic/images/bg.jpg b/design/atomic/images/bg.jpg new file mode 100644 index 0000000..3b1531d Binary files /dev/null and b/design/atomic/images/bg.jpg differ diff --git a/design/atomic/images/bg2.gif b/design/atomic/images/bg2.gif new file mode 100644 index 0000000..9262617 Binary files /dev/null and b/design/atomic/images/bg2.gif differ diff --git a/design/atomic/images/bg_top.png b/design/atomic/images/bg_top.png new file mode 100644 index 0000000..65531be Binary files /dev/null and b/design/atomic/images/bg_top.png differ diff --git a/design/atomic/images/bottom_bg.png b/design/atomic/images/bottom_bg.png new file mode 100644 index 0000000..aa525e9 Binary files /dev/null and b/design/atomic/images/bottom_bg.png differ diff --git a/design/atomic/images/button (1).png b/design/atomic/images/button (1).png new file mode 100644 index 0000000..492b6ab Binary files /dev/null and b/design/atomic/images/button (1).png differ diff --git a/design/atomic/images/button (2).png b/design/atomic/images/button (2).png new file mode 100644 index 0000000..e40e174 Binary files /dev/null and b/design/atomic/images/button (2).png differ diff --git a/design/atomic/images/button (3).png b/design/atomic/images/button (3).png new file mode 100644 index 0000000..52a8c6f Binary files /dev/null and b/design/atomic/images/button (3).png differ diff --git a/design/atomic/images/button.png b/design/atomic/images/button.png new file mode 100644 index 0000000..c74f73f Binary files /dev/null and b/design/atomic/images/button.png differ diff --git a/design/atomic/images/button2.png b/design/atomic/images/button2.png new file mode 100644 index 0000000..f4eebc5 Binary files /dev/null and b/design/atomic/images/button2.png differ diff --git a/design/atomic/images/button3.png b/design/atomic/images/button3.png new file mode 100644 index 0000000..0e41e22 Binary files /dev/null and b/design/atomic/images/button3.png differ diff --git a/design/atomic/images/button4.png b/design/atomic/images/button4.png new file mode 100644 index 0000000..963c786 Binary files /dev/null and b/design/atomic/images/button4.png differ diff --git a/design/atomic/images/button5.png b/design/atomic/images/button5.png new file mode 100644 index 0000000..8b8e320 Binary files /dev/null and b/design/atomic/images/button5.png differ diff --git a/design/atomic/images/bx_loader.gif b/design/atomic/images/bx_loader.gif new file mode 100644 index 0000000..f4ff40e Binary files /dev/null and b/design/atomic/images/bx_loader.gif differ diff --git a/design/atomic/images/callme.png b/design/atomic/images/callme.png new file mode 100644 index 0000000..afd7d70 Binary files /dev/null and b/design/atomic/images/callme.png differ diff --git a/design/atomic/images/card-icons.png b/design/atomic/images/card-icons.png new file mode 100644 index 0000000..0f3f02d Binary files /dev/null and b/design/atomic/images/card-icons.png differ diff --git a/design/atomic/images/cart.png b/design/atomic/images/cart.png new file mode 100644 index 0000000..ae3a829 Binary files /dev/null and b/design/atomic/images/cart.png differ diff --git a/design/atomic/images/cart_not_empty.png b/design/atomic/images/cart_not_empty.png new file mode 100644 index 0000000..c341785 Binary files /dev/null and b/design/atomic/images/cart_not_empty.png differ diff --git a/design/atomic/images/ch-logo.png b/design/atomic/images/ch-logo.png new file mode 100644 index 0000000..73e027a Binary files /dev/null and b/design/atomic/images/ch-logo.png differ diff --git a/design/atomic/images/controls.png b/design/atomic/images/controls.png new file mode 100644 index 0000000..28918dd Binary files /dev/null and b/design/atomic/images/controls.png differ diff --git a/design/atomic/images/d-logo.png b/design/atomic/images/d-logo.png new file mode 100644 index 0000000..6697ce2 Binary files /dev/null and b/design/atomic/images/d-logo.png differ diff --git a/design/atomic/images/default.jpeg b/design/atomic/images/default.jpeg new file mode 100644 index 0000000..ca94b9f Binary files /dev/null and b/design/atomic/images/default.jpeg differ diff --git a/design/atomic/images/delete.png b/design/atomic/images/delete.png new file mode 100644 index 0000000..0db86f6 Binary files /dev/null and b/design/atomic/images/delete.png differ diff --git a/design/atomic/images/drive2.png b/design/atomic/images/drive2.png new file mode 100644 index 0000000..7a7ae60 Binary files /dev/null and b/design/atomic/images/drive2.png differ diff --git a/design/atomic/images/fara-darken-new.jpg b/design/atomic/images/fara-darken-new.jpg new file mode 100644 index 0000000..30187db Binary files /dev/null and b/design/atomic/images/fara-darken-new.jpg differ diff --git a/design/atomic/images/fara-darken.jpg b/design/atomic/images/fara-darken.jpg new file mode 100644 index 0000000..5ab2912 Binary files /dev/null and b/design/atomic/images/fara-darken.jpg differ diff --git a/design/atomic/images/fara.jpg b/design/atomic/images/fara.jpg new file mode 100644 index 0000000..c9f1e92 Binary files /dev/null and b/design/atomic/images/fara.jpg differ diff --git a/design/atomic/images/favicon.ico b/design/atomic/images/favicon.ico new file mode 100644 index 0000000..a426007 Binary files /dev/null and b/design/atomic/images/favicon.ico differ diff --git a/design/atomic/images/filter_gray.png b/design/atomic/images/filter_gray.png new file mode 100644 index 0000000..1eff8c4 Binary files /dev/null and b/design/atomic/images/filter_gray.png differ diff --git a/design/atomic/images/footer_logos2.gif b/design/atomic/images/footer_logos2.gif new file mode 100644 index 0000000..421c886 Binary files /dev/null and b/design/atomic/images/footer_logos2.gif differ diff --git a/design/atomic/images/graphics.jpg b/design/atomic/images/graphics.jpg new file mode 100644 index 0000000..94740e5 Binary files /dev/null and b/design/atomic/images/graphics.jpg differ diff --git a/design/atomic/images/header_bg2.png b/design/atomic/images/header_bg2.png new file mode 100644 index 0000000..d7dd945 Binary files /dev/null and b/design/atomic/images/header_bg2.png differ diff --git a/design/atomic/images/hit.gif b/design/atomic/images/hit.gif new file mode 100644 index 0000000..3a1e660 Binary files /dev/null and b/design/atomic/images/hit.gif differ diff --git a/design/atomic/images/hit.png b/design/atomic/images/hit.png new file mode 100644 index 0000000..8f8aef9 Binary files /dev/null and b/design/atomic/images/hit.png differ diff --git a/design/atomic/images/icons.gif b/design/atomic/images/icons.gif new file mode 100644 index 0000000..93e69ac Binary files /dev/null and b/design/atomic/images/icons.gif differ diff --git a/design/atomic/images/instagram-logo.png b/design/atomic/images/instagram-logo.png new file mode 100644 index 0000000..9711850 Binary files /dev/null and b/design/atomic/images/instagram-logo.png differ diff --git a/design/atomic/images/konkurs.png b/design/atomic/images/konkurs.png new file mode 100644 index 0000000..14dc0e5 Binary files /dev/null and b/design/atomic/images/konkurs.png differ diff --git a/design/atomic/images/large.jpg b/design/atomic/images/large.jpg new file mode 100644 index 0000000..21cc5b7 Binary files /dev/null and b/design/atomic/images/large.jpg differ diff --git a/design/atomic/images/loading.gif b/design/atomic/images/loading.gif new file mode 100644 index 0000000..f4fc554 Binary files /dev/null and b/design/atomic/images/loading.gif differ diff --git a/design/atomic/images/logo (1).png b/design/atomic/images/logo (1).png new file mode 100644 index 0000000..4a5053d Binary files /dev/null and b/design/atomic/images/logo (1).png differ diff --git a/design/atomic/images/logo.png-pacman b/design/atomic/images/logo.png-pacman new file mode 100644 index 0000000..a6ac1ac Binary files /dev/null and b/design/atomic/images/logo.png-pacman differ diff --git a/design/atomic/images/main_img2.jpg b/design/atomic/images/main_img2.jpg new file mode 100644 index 0000000..eff7b39 Binary files /dev/null and b/design/atomic/images/main_img2.jpg differ diff --git a/design/atomic/images/market.gif b/design/atomic/images/market.gif new file mode 100644 index 0000000..9dc3373 Binary files /dev/null and b/design/atomic/images/market.gif differ diff --git a/design/atomic/images/menu_arrow.png b/design/atomic/images/menu_arrow.png new file mode 100644 index 0000000..399d341 Binary files /dev/null and b/design/atomic/images/menu_arrow.png differ diff --git a/design/atomic/images/oplata.png b/design/atomic/images/oplata.png new file mode 100644 index 0000000..ba5139f Binary files /dev/null and b/design/atomic/images/oplata.png differ diff --git a/design/atomic/images/oplata2.png b/design/atomic/images/oplata2.png new file mode 100644 index 0000000..962aafe Binary files /dev/null and b/design/atomic/images/oplata2.png differ diff --git a/design/atomic/images/oplata3.jpg b/design/atomic/images/oplata3.jpg new file mode 100644 index 0000000..261593b Binary files /dev/null and b/design/atomic/images/oplata3.jpg differ diff --git a/design/atomic/images/oplata3.png b/design/atomic/images/oplata3.png new file mode 100644 index 0000000..2773435 Binary files /dev/null and b/design/atomic/images/oplata3.png differ diff --git a/design/atomic/images/page_unit.jpg b/design/atomic/images/page_unit.jpg new file mode 100644 index 0000000..2da63d3 Binary files /dev/null and b/design/atomic/images/page_unit.jpg differ diff --git a/design/atomic/images/page_unit.png b/design/atomic/images/page_unit.png new file mode 100644 index 0000000..60f5a13 Binary files /dev/null and b/design/atomic/images/page_unit.png differ diff --git a/design/atomic/images/payment.png b/design/atomic/images/payment.png new file mode 100644 index 0000000..6346424 Binary files /dev/null and b/design/atomic/images/payment.png differ diff --git a/design/atomic/images/pereezd.jpg b/design/atomic/images/pereezd.jpg new file mode 100644 index 0000000..1e2f656 Binary files /dev/null and b/design/atomic/images/pereezd.jpg differ diff --git a/design/atomic/images/pereezd.png b/design/atomic/images/pereezd.png new file mode 100644 index 0000000..db2e1fa Binary files /dev/null and b/design/atomic/images/pereezd.png differ diff --git a/design/atomic/images/photo_2022-10-18_11-25-02.jpg b/design/atomic/images/photo_2022-10-18_11-25-02.jpg new file mode 100644 index 0000000..5dd10e0 Binary files /dev/null and b/design/atomic/images/photo_2022-10-18_11-25-02.jpg differ diff --git a/design/atomic/images/platezhnye-systemy.png b/design/atomic/images/platezhnye-systemy.png new file mode 100644 index 0000000..9f18768 Binary files /dev/null and b/design/atomic/images/platezhnye-systemy.png differ diff --git a/design/atomic/images/plus.png b/design/atomic/images/plus.png new file mode 100644 index 0000000..4ce2816 Binary files /dev/null and b/design/atomic/images/plus.png differ diff --git a/design/atomic/images/polirovka-kuzova-akciya.jpg b/design/atomic/images/polirovka-kuzova-akciya.jpg new file mode 100644 index 0000000..066c631 Binary files /dev/null and b/design/atomic/images/polirovka-kuzova-akciya.jpg differ diff --git a/design/atomic/images/price_bg.png b/design/atomic/images/price_bg.png new file mode 100644 index 0000000..f3d6af2 Binary files /dev/null and b/design/atomic/images/price_bg.png differ diff --git a/design/atomic/images/s1.png b/design/atomic/images/s1.png new file mode 100644 index 0000000..90056ff Binary files /dev/null and b/design/atomic/images/s1.png differ diff --git a/design/atomic/images/s2.png b/design/atomic/images/s2.png new file mode 100644 index 0000000..c53cd4f Binary files /dev/null and b/design/atomic/images/s2.png differ diff --git a/design/atomic/images/s3.png b/design/atomic/images/s3.png new file mode 100644 index 0000000..bb9a5fe Binary files /dev/null and b/design/atomic/images/s3.png differ diff --git a/design/atomic/images/search.png b/design/atomic/images/search.png new file mode 100644 index 0000000..7aaa17a Binary files /dev/null and b/design/atomic/images/search.png differ diff --git a/design/atomic/images/search_bg.png b/design/atomic/images/search_bg.png new file mode 100644 index 0000000..7af370c Binary files /dev/null and b/design/atomic/images/search_bg.png differ diff --git a/design/atomic/images/search_button.png b/design/atomic/images/search_button.png new file mode 100644 index 0000000..2f87d9e Binary files /dev/null and b/design/atomic/images/search_button.png differ diff --git a/design/atomic/images/service-sprite.png b/design/atomic/images/service-sprite.png new file mode 100644 index 0000000..3f00883 Binary files /dev/null and b/design/atomic/images/service-sprite.png differ diff --git a/design/atomic/images/service_img.png b/design/atomic/images/service_img.png new file mode 100644 index 0000000..64ff0e2 Binary files /dev/null and b/design/atomic/images/service_img.png differ diff --git a/design/atomic/images/slider-1.jpg b/design/atomic/images/slider-1.jpg new file mode 100644 index 0000000..024f308 Binary files /dev/null and b/design/atomic/images/slider-1.jpg differ diff --git a/design/atomic/images/slider-2.jpg b/design/atomic/images/slider-2.jpg new file mode 100644 index 0000000..a86cf69 Binary files /dev/null and b/design/atomic/images/slider-2.jpg differ diff --git a/design/atomic/images/slider-2.png b/design/atomic/images/slider-2.png new file mode 100644 index 0000000..2a96973 Binary files /dev/null and b/design/atomic/images/slider-2.png differ diff --git a/design/atomic/images/slider-3.jpg b/design/atomic/images/slider-3.jpg new file mode 100644 index 0000000..a4f45fd Binary files /dev/null and b/design/atomic/images/slider-3.jpg differ diff --git a/design/atomic/images/slider-3.png b/design/atomic/images/slider-3.png new file mode 100644 index 0000000..7edb0e4 Binary files /dev/null and b/design/atomic/images/slider-3.png differ diff --git a/design/atomic/images/slider.png b/design/atomic/images/slider.png new file mode 100644 index 0000000..a919bf5 Binary files /dev/null and b/design/atomic/images/slider.png differ diff --git a/design/atomic/images/small.jpg b/design/atomic/images/small.jpg new file mode 100644 index 0000000..eecf08d Binary files /dev/null and b/design/atomic/images/small.jpg differ diff --git a/design/atomic/images/social.png b/design/atomic/images/social.png new file mode 100644 index 0000000..654a517 Binary files /dev/null and b/design/atomic/images/social.png differ diff --git a/design/atomic/images/soprov_button.png b/design/atomic/images/soprov_button.png new file mode 100644 index 0000000..461f664 Binary files /dev/null and b/design/atomic/images/soprov_button.png differ diff --git a/design/atomic/images/star.png b/design/atomic/images/star.png new file mode 100644 index 0000000..05de7a3 Binary files /dev/null and b/design/atomic/images/star.png differ diff --git a/design/atomic/images/stars.png b/design/atomic/images/stars.png new file mode 100644 index 0000000..57ba3d5 Binary files /dev/null and b/design/atomic/images/stars.png differ diff --git a/design/atomic/images/thumbs/847/pereezd.png b/design/atomic/images/thumbs/847/pereezd.png new file mode 100644 index 0000000..6102fb4 Binary files /dev/null and b/design/atomic/images/thumbs/847/pereezd.png differ diff --git a/design/atomic/images/thumbs/850/pereezd.png b/design/atomic/images/thumbs/850/pereezd.png new file mode 100644 index 0000000..5295aba Binary files /dev/null and b/design/atomic/images/thumbs/850/pereezd.png differ diff --git a/design/atomic/images/top50.jpg b/design/atomic/images/top50.jpg new file mode 100644 index 0000000..c57a1d4 Binary files /dev/null and b/design/atomic/images/top50.jpg differ diff --git a/design/atomic/images/up-arrow.png b/design/atomic/images/up-arrow.png new file mode 100644 index 0000000..7b3bea9 Binary files /dev/null and b/design/atomic/images/up-arrow.png differ diff --git a/design/atomic/images/up.png b/design/atomic/images/up.png new file mode 100644 index 0000000..6431105 Binary files /dev/null and b/design/atomic/images/up.png differ diff --git a/design/atomic/images/vent.jpg b/design/atomic/images/vent.jpg new file mode 100644 index 0000000..bf90a78 Binary files /dev/null and b/design/atomic/images/vent.jpg differ diff --git a/design/atomic/images/vk-logo.png b/design/atomic/images/vk-logo.png new file mode 100644 index 0000000..764575a Binary files /dev/null and b/design/atomic/images/vk-logo.png differ diff --git a/design/atomic/images/youtube-logo.png b/design/atomic/images/youtube-logo.png new file mode 100644 index 0000000..6f7371a Binary files /dev/null and b/design/atomic/images/youtube-logo.png differ diff --git a/design/atomic/images/zag2.png b/design/atomic/images/zag2.png new file mode 100644 index 0000000..934ebb5 Binary files /dev/null and b/design/atomic/images/zag2.png differ diff --git a/design/atomic/index.html b/design/atomic/index.html new file mode 100644 index 0000000..6f2369c --- /dev/null +++ b/design/atomic/index.html @@ -0,0 +1,213 @@ + + + + +Товары для тюнинга автомобильной оптики в интернет-магазине CarHeart | Санкт-Петербург + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    ВИЗУАЛЬНЫЙ ТЮНИНГ АВТО
    +
    биксеноновые линзы, светодиодные фонари, + диодные автолампы, ходовые огни, + ангельские глазки
    +
    +
    +
    + +
    +
    товаров: 0 шт
    +
    на сумму: 0 руб
    +
    +
    +
    +
    +
    Санкт-Петербург
    +
    +7 (921) 961-29-25
    + + +
    +
    +
    + +
    + +
    +
    +
    +
    + Добро пожаловать в магазин CarHeart. ru! +

    Основное направление нашей деятельности — тюнинг автомобильной оптики любой сложности.

    +
    +
    + Реализация ваших идей! +

    Индивидуальный подход к каждому клиенту и широкий ассортимент предлагаемой продукции позволит разработать эксклюзивный проект для вашего автомобиля и реализовать любую Вашу идею.

    +
    +
    + Запчасти в наличии и под заказ! +

    Интересующего Вас товара нет на сайте? Не беда — привезем под заказ! Находитесь в другом городе? Нам часто присылают детали на переделку. Мы любим свою работу и знаем, что хорошее отношение зачастую важнее денег.

    +
    +
    +
    + + + +
    +
    +
    +
    + + + + + + + + + diff --git a/design/atomic/js/SortedTable3_2.js b/design/atomic/js/SortedTable3_2.js new file mode 100644 index 0000000..bdea949 --- /dev/null +++ b/design/atomic/js/SortedTable3_2.js @@ -0,0 +1,1071 @@ +function addEvent(obj,type,fn) { + if (obj.addEventListener) obj.addEventListener(type,fn,false); + else if (obj.attachEvent) { + obj["e"+type+fn] = fn; + obj[type+fn] = function() {obj["e"+type+fn](window.event);} + obj.attachEvent("on"+type, obj[type+fn]); + } +} + +function removeEvent(obj,type,fn) { + if (obj.removeEventListener) obj.removeEventListener(type,fn,false); + else if (obj.detachEvent) { + obj.detachEvent("on"+type, obj[type+fn]); + obj[type+fn] = null; + obj["e"+type+fn] = null; + } +} + + + +SortedTable = function(id) { + this.table = null; + if (!document.getElementById || !document.getElementsByTagName) return false; + if (id) this.init(document.getElementById(id)); + else this.init(this.findTable()); + this.prep(); + if (!id && this.findTable()) new SortedTable(); +} + +// static +SortedTable.tables = new Array(); +SortedTable.move = function(d,elm) { + var st = SortedTable.getSortedTable(elm); + if (st) st.move(d,elm); +} +SortedTable.moveSelected = function(d,elm) { + var st = SortedTable.getSortedTable(elm); + if (st) st.move(d); +} +SortedTable.findParent = function(elm,tag) { + while (elm && elm.tagName && elm.tagName.toLowerCase()!=tag) elm = elm.parentNode; + return elm; +} +SortedTable.getEventElement = function(e) { + if (!e) e = window.event; + return (e.target)? e.target : e.srcElement; +} +SortedTable.getSortedTable = function(elm) { + elm = SortedTable.findParent(elm,'table'); + for (var i=0;i0;i--) { + var trs = tbs[i].getElementsByTagName('tr'); + for (var j=trs.length-1;j>=0;j--) { + this.body.appendChild(trs[j]); + } + this.table.removeChild(tbs[i]); + } + }, +// helpers + trim:function(str) { + while (str.substr(0,1)==' ') str = str.substr(1); + while (str.substr(str.length-1,1)==' ') str = str.substr(0,str.length-1); + return str; + }, + hasClass:function(elm,findclass) { + if (!elm) return null; + return (' '+elm.className+' ').indexOf(' '+findclass+' ')+1; + }, + changeClass:function(elm,oldclass,newclass) { + if (!elm) return null; + var c = elm.className.split(' '); + for (var i=0;iv2[i]) return 1; + else if (v1[i]v2) return 1 + else if (v10) moving.reverse(); + for (var i=0;i0) { + parent.removeChild(elm); + parent.insertBefore(elm,sibling); + } else { + parent.removeChild(elm); + if (sibling.nextSibling) parent.insertBefore(elm,sibling.nextSibling); + else parent.appendChild(elm); + } + }, + canMove:function(d,elm) { + if (d>0) return elm.previousSibling; + else return elm.nextSibling; + } +}; + + + + + + + + + + +/* + * FancyBox - simple jQuery plugin for fancy image zooming + * Examples and documentation at: http://fancy.klade.lv/ + * Version: 1.0.0 (25/04/2008) + * Copyright (c) 2008 Janis Skarnelis + * Licensed under the MIT License: http://www.opensource.org/licenses/mit-license.php + * Requires: jQuery v1.2.1 or later +*/ +(function($) { + var opts = {}, + imgPreloader = new Image, imgTypes = ['png', 'jpg', 'jpeg', 'gif'], + loadingTimer, loadingFrame = 1; + + $.fn.fancybox = function(settings) { + opts.settings = $.extend({}, $.fn.fancybox.defaults, settings); + + $.fn.fancybox.init(); + + return this.each(function() { + var $this = $(this); + var o = $.metadata ? $.extend({}, opts.settings, $this.metadata()) : opts.settings; + + $this.unbind('click').click(function() { + $.fn.fancybox.start(this, o); return false; + }); + }); + }; + + $.fn.fancybox.start = function(el, o) { + if (opts.animating) return false; + + if (o.overlayShow) { + $("#fancy_wrap").prepend('
    '); + $("#fancy_overlay").css({'width': $(window).width(), 'height': $(document).height(), 'opacity': o.overlayOpacity}); + + if ($.browser.msie) { + $("#fancy_wrap").prepend(''); + $("#fancy_bigIframe").css({'width': $(window).width(), 'height': $(document).height(), 'opacity': 0}); + } + + $("#fancy_overlay").click($.fn.fancybox.close); + } + + opts.itemArray = []; + opts.itemNum = 0; + + if (jQuery.isFunction(o.itemLoadCallback)) { + o.itemLoadCallback.apply(this, [opts]); + + var c = $(el).children("img:first").length ? $(el).children("img:first") : $(el); + var tmp = {'width': c.width(), 'height': c.height(), 'pos': $.fn.fancybox.getPosition(c)} + + for (var i = 0; i < opts.itemArray.length; i++) { + opts.itemArray[i].o = $.extend({}, o, opts.itemArray[i].o); + + if (o.zoomSpeedIn > 0 || o.zoomSpeedOut > 0) { + opts.itemArray[i].orig = tmp; + } + } + + } else { + if (!el.rel || el.rel == '') { + var item = {url: el.href, title: el.title, o: o}; + + if (o.zoomSpeedIn > 0 || o.zoomSpeedOut > 0) { + var c = $(el).children("img:first").length ? $(el).children("img:first") : $(el); + item.orig = {'width': c.width(), 'height': c.height(), 'pos': $.fn.fancybox.getPosition(c)} + } + + opts.itemArray.push(item); + + } else { + var arr = $("a[rel=" + el.rel + "]").get(); + + for (var i = 0; i < arr.length; i++) { + var tmp = $.metadata ? $.extend({}, o, $(arr[i]).metadata()) : o; + var item = {url: arr[i].href, title: arr[i].title, o: tmp}; + + if (o.zoomSpeedIn > 0 || o.zoomSpeedOut > 0) { + var c = $(arr[i]).children("img:first").length ? $(arr[i]).children("img:first") : $(el); + + item.orig = {'width': c.width(), 'height': c.height(), 'pos': $.fn.fancybox.getPosition(c)} + } + + if (arr[i].href == el.href) opts.itemNum = i; + + opts.itemArray.push(item); + } + } + } + + $.fn.fancybox.changeItem(opts.itemNum); + }; + + $.fn.fancybox.changeItem = function(n) { + $.fn.fancybox.showLoading(); + + opts.itemNum = n; + + $("#fancy_nav").empty(); + $("#fancy_outer").stop(); + $("#fancy_title").hide(); + $(document).unbind("keydown"); + + imgRegExp = imgTypes.join('|'); + imgRegExp = new RegExp('\.' + imgRegExp + '$', 'i'); + + var url = opts.itemArray[n].url; + + if (url.match(/#/)) { + var target = window.location.href.split('#')[0]; target = url.replace(target,''); + + $.fn.fancybox.showItem('
    ' + $(target).html() + '
    '); + + $("#fancy_loading").hide(); + + } else if (url.match(imgRegExp)) { + $(imgPreloader).unbind('load').bind('load', function() { + $("#fancy_loading").hide(); + + opts.itemArray[n].o.frameWidth = imgPreloader.width; + opts.itemArray[n].o.frameHeight = imgPreloader.height; + + $.fn.fancybox.showItem(''); + + }).attr('src', url + '?rand=' + Math.floor(Math.random() * 999999999) ); + + } else { + $.fn.fancybox.showItem(''); + } + }; + + $.fn.fancybox.showIframe = function() { + $("#fancy_loading").hide(); + $("#fancy_frame").show(); + }; + + $.fn.fancybox.showItem = function(val) { + $.fn.fancybox.preloadNeighborImages(); + + var viewportPos = $.fn.fancybox.getViewport(); + var itemSize = $.fn.fancybox.getMaxSize(viewportPos[0] - 50, viewportPos[1] - 100, opts.itemArray[opts.itemNum].o.frameWidth, opts.itemArray[opts.itemNum].o.frameHeight); + + var itemLeft = viewportPos[2] + Math.round((viewportPos[0] - itemSize[0]) / 2) - 20; + var itemTop = viewportPos[3] + Math.round((viewportPos[1] - itemSize[1]) / 2) - 40; + + var itemOpts = { + 'left': itemLeft, + 'top': itemTop, + 'width': itemSize[0] + 'px', + 'height': itemSize[1] + 'px' + } + + if (opts.active) { + $('#fancy_content').fadeOut("normal", function() { + $("#fancy_content").empty(); + + $("#fancy_outer").animate(itemOpts, "normal", function() { + $("#fancy_content").append($(val)).fadeIn("normal"); + $.fn.fancybox.updateDetails(); + }); + }); + + } else { + opts.active = true; + + $("#fancy_content").empty(); + + if ($("#fancy_content").is(":animated")) { + console.info('animated!'); + } + + if (opts.itemArray[opts.itemNum].o.zoomSpeedIn > 0) { + opts.animating = true; + itemOpts.opacity = "show"; + + $("#fancy_outer").css({ + 'top': opts.itemArray[opts.itemNum].orig.pos.top - 18, + 'left': opts.itemArray[opts.itemNum].orig.pos.left - 18, + 'height': opts.itemArray[opts.itemNum].orig.height, + 'width': opts.itemArray[opts.itemNum].orig.width + }); + + $("#fancy_content").append($(val)).show(); + + $("#fancy_outer").animate(itemOpts, opts.itemArray[opts.itemNum].o.zoomSpeedIn, function() { + opts.animating = false; + $.fn.fancybox.updateDetails(); + }); + + } else { + $("#fancy_content").append($(val)).show(); + $("#fancy_outer").css(itemOpts).show(); + $.fn.fancybox.updateDetails(); + } + } + }; + + $.fn.fancybox.updateDetails = function() { + $("#fancy_bg,#fancy_close").show(); + + if (opts.itemArray[opts.itemNum].title !== undefined && opts.itemArray[opts.itemNum].title !== '') { + $('#fancy_title div').html(opts.itemArray[opts.itemNum].title); + $('#fancy_title').show(); + } + + if (opts.itemArray[opts.itemNum].o.hideOnContentClick) { + $("#fancy_content").click($.fn.fancybox.close); + } else { + $("#fancy_content").unbind('click'); + } + + if (opts.itemNum != 0) { + $("#fancy_nav").append(''); + + $('#fancy_left').click(function() { + $.fn.fancybox.changeItem(opts.itemNum - 1); return false; + }); + } + + if (opts.itemNum != (opts.itemArray.length - 1)) { + $("#fancy_nav").append(''); + + $('#fancy_right').click(function(){ + $.fn.fancybox.changeItem(opts.itemNum + 1); return false; + }); + } + + $(document).keydown(function(event) { + if (event.keyCode == 27) { + $.fn.fancybox.close(); + + } else if(event.keyCode == 37 && opts.itemNum != 0) { + $.fn.fancybox.changeItem(opts.itemNum - 1); + + } else if(event.keyCode == 39 && opts.itemNum != (opts.itemArray.length - 1)) { + $.fn.fancybox.changeItem(opts.itemNum + 1); + } + }); + }; + + $.fn.fancybox.preloadNeighborImages = function() { + if ((opts.itemArray.length - 1) > opts.itemNum) { + preloadNextImage = new Image(); + preloadNextImage.src = opts.itemArray[opts.itemNum + 1].url; + } + + if (opts.itemNum > 0) { + preloadPrevImage = new Image(); + preloadPrevImage.src = opts.itemArray[opts.itemNum - 1].url; + } + }; + + $.fn.fancybox.close = function() { + if (opts.animating) return false; + + $(imgPreloader).unbind('load'); + $(document).unbind("keydown"); + + $("#fancy_loading,#fancy_title,#fancy_close,#fancy_bg").hide(); + + $("#fancy_nav").empty(); + + opts.active = false; + + if (opts.itemArray[opts.itemNum].o.zoomSpeedOut > 0) { + var itemOpts = { + 'top': opts.itemArray[opts.itemNum].orig.pos.top - 18, + 'left': opts.itemArray[opts.itemNum].orig.pos.left - 18, + 'height': opts.itemArray[opts.itemNum].orig.height, + 'width': opts.itemArray[opts.itemNum].orig.width, + 'opacity': 'hide' + }; + + opts.animating = true; + + $("#fancy_outer").animate(itemOpts, opts.itemArray[opts.itemNum].o.zoomSpeedOut, function() { + $("#fancy_content").hide().empty(); + $("#fancy_overlay,#fancy_bigIframe").remove(); + opts.animating = false; + }); + + } else { + $("#fancy_outer").hide(); + $("#fancy_content").hide().empty(); + $("#fancy_overlay,#fancy_bigIframe").fadeOut("fast").remove(); + } + }; + + $.fn.fancybox.showLoading = function() { + clearInterval(loadingTimer); + + var pos = $.fn.fancybox.getViewport(); + + $("#fancy_loading").css({'left': ((pos[0] - 40) / 2 + pos[2]), 'top': ((pos[1] - 40) / 2 + pos[3])}).show(); + $("#fancy_loading").bind('click', $.fn.fancybox.close); + + loadingTimer = setInterval($.fn.fancybox.animateLoading, 66); + }; + + $.fn.fancybox.animateLoading = function(el, o) { + if (!$("#fancy_loading").is(':visible')){ + clearInterval(loadingTimer); + return; + } + + $("#fancy_loading > div").css('top', (loadingFrame * -40) + 'px'); + + loadingFrame = (loadingFrame + 1) % 12; + }; + + $.fn.fancybox.init = function() { + if (!$('#fancy_wrap').length) { + $('
    ').appendTo("body"); + $('
    ').prependTo("#fancy_inner"); + + $('
    ').appendTo('#fancy_title'); + } + + if ($.browser.msie) { + $("#fancy_inner").prepend(''); + } + + if (jQuery.fn.pngFix) $(document).pngFix(); + + $("#fancy_close").click($.fn.fancybox.close); + }; + + $.fn.fancybox.getPosition = function(el) { + var pos = el.offset(); + + pos.top += $.fn.fancybox.num(el, 'paddingTop'); + pos.top += $.fn.fancybox.num(el, 'borderTopWidth'); + + pos.left += $.fn.fancybox.num(el, 'paddingLeft'); + pos.left += $.fn.fancybox.num(el, 'borderLeftWidth'); + + return pos; + }; + + $.fn.fancybox.num = function (el, prop) { + return parseInt($.curCSS(el.jquery?el[0]:el,prop,true))||0; + }; + + $.fn.fancybox.getPageScroll = function() { + var xScroll, yScroll; + + if (self.pageYOffset) { + yScroll = self.pageYOffset; + xScroll = self.pageXOffset; + } else if (document.documentElement && document.documentElement.scrollTop) { + yScroll = document.documentElement.scrollTop; + xScroll = document.documentElement.scrollLeft; + } else if (document.body) { + yScroll = document.body.scrollTop; + xScroll = document.body.scrollLeft; + } + + return [xScroll, yScroll]; + }; + + $.fn.fancybox.getViewport = function() { + var scroll = $.fn.fancybox.getPageScroll(); + + return [$(window).width(), $(window).height(), scroll[0], scroll[1]]; + }; + + $.fn.fancybox.getMaxSize = function(maxWidth, maxHeight, imageWidth, imageHeight) { + var r = Math.min(Math.min(maxWidth, imageWidth) / imageWidth, Math.min(maxHeight, imageHeight) / imageHeight); + + return [Math.round(r * imageWidth), Math.round(r * imageHeight)]; + }; + + $.fn.fancybox.defaults = { + padding : 10, + imageScale : true, + zoomOpacity : false, + zoomSpeedIn : 0, + zoomSpeedOut : 0, + zoomSpeedChange : 300, + easingIn : 'swing', + easingOut : 'swing', + easingChange : 'swing', + frameWidth : 425, + frameHeight : 355, + overlayShow : true, + overlayOpacity : 0.3, + hideOnContentClick : true, + centerOnScroll : true, + itemArray : [], + callbackOnStart : null, + callbackOnShow : null, + callbackOnClose : null + }; +})(jQuery); + + + $(document).ready(function() { + $("#gallery a.test").fancybox({ + hideOnContentClick: true, + overlayShow: true, + overlayOpacity: 0.6, + zoomSpeedIn: 600, + zoomSpeedOut:400 + }); + + + // автоматическое появление картинки в fancybox + var gaspari = $('#filhit'); + gaspari.fancybox({ + hideOnContentClick: true, + overlayShow: true, + overlayOpacity: 0.5, + zoomSpeedIn: 600, + zoomSpeedOut:400 + }); + gaspari.click(); + // \\ автоматическое появление картинки в fancybox + + +// оповещение о поступлении на склад + + + $('.mail_ico, .mail_ico2').toggle(function(){ + var id = $(this).attr('id'); + var form_inform = $(this).next(); + //var name = $(this).attr('title'); + var val_email = $('#email_inform').val(); + if(!val_email) val_email = 'Введите свой E-mail'; + var form_inform_print = "
    "; + //if ($(this).attr('class') != 'mail_ico2') form_inform_print += "Оповестить, когда появится"; + form_inform_print += "
    " + + "" + + "" + + "" + + "
    " + + "
    "; + if(form_inform.html()) { + form_inform.fadeIn(); + } else { + form_inform.hide().html(form_inform_print).fadeIn(); + } + + if ($(this).attr('class') != 'mail_ico2'){ + $(this).fadeOut(250, function(){ + $(this).css('background-position', '-47px -21px').attr('title', 'Закрыть форму'); + }).fadeIn(250); + } + }, function(){ + if ($(this).attr('class') != 'mail_ico2'){ + $(this).fadeOut(250,function(){ + $(this).css('background-position', '-47px -51px').attr('title', 'Оповестить по E-mail при поступлении на склад'); + }).fadeIn(250); + } + + var form_inform = $(this).next(); + form_inform.fadeOut(); + }); + + + + $('.go_inform').live('click', function(){ + + var input = $(this).parent().find("[name='pid']").val(); + var email = $(this).parent().find("[type='text']").val(); + var outPut = $(this).parent().find("[class='status_message']"); + + //alert(email); + //return false; + $.ajax({ + type: 'GET', + url: '/includes/inform_ajax.php', + data: 'q=' + input + '&email=' + encodeURIComponent(email), + dataType: 'json', + beforeSend: function() + { + outPut.html('').fadeIn(); + }, + success: function(msg){ + if(msg.error){ + var out = '
    '+ msg.error +'
    '; + } else { + var out = '
    '+ msg.ok +'
    ' + } + outPut.html(out); + //outPut.html(msg); + + } + }); // конец аякса + + + }); //\\ оповещение о поступлении на склад + + +// наши награды + var imageList = [ + {url: "/img/awards/fbfr2.gif", title: "Чемпионат Москвы по бодибилдингу"}, + {url: "/img/awards/fbfr3.gif", title: "Okfit - генеральный спонсор Чемпионата России по бодибилдингу"}, + {url: "/img/awards/mioff.jpg", title: "Mioff"}, + + {url: "/img/awards/okfit.gif", title: "Okfit"}, + {url: "/img/awards/muscl.gif", title: "Muscletech"}, + {url: "/img/awards/prolab.gif", title: "Prolab"}, + {url: "/img/awards/WC.gif", title: "World Class"} + ]; + + function getGroupItems(opts) { + jQuery.each(imageList, function(i, val) { + opts.itemArray.push(val); + }); + } + + $(".awards_link").fancybox({ + // itemLoadCallback: getGroupItems, + + "zoomSpeedIn" : 1000, + "zoomSpeedOut" : 1000, + "frameWidth" : 1000, + "frameHeight" : 800, + "overlayOpacity" : 0.8, + "hideOnContentClick" :false + }); +// \\наши награды + +// сравнение товаров +$('.cmp_del_img').live('click', function(e){ +e.preventDefault(); +var pid2 = $(this).attr('href'); +var cur_cmp_link = $(this); + $.ajax({ + type: 'POST', + url: '/includes/compare/compare_ajax.php', + data: 'pid=' + pid2 + '&op=del', + dataType: 'json', + + success: function(msg){ + if(msg.error == 4) { + cur_cmp_link.fadeOut(400).remove(); + //$('#cmp_' + pid2).attr('checked', ''); + var cur_box = $('#cmp_' + pid2); + cur_box.removeAttr('checked'); + cur_box.next('span').removeClass('checked'); // это span от idealForm + } + + if(msg.error2 != 3) { + $('.button_none').hide(); + } + } + }); // конец аякса +}); + + $('.hndl_submit_prds_cmp').fancybox({ + zoomSpeedIn: 0, + zoomSpeedOut:0, + frameWidth: 1200, + frameHeight: 800 + }).click(function (e) { + e.preventDefault(); + $('#compare_mask, .window').hide(); + }); + + + $('.compare').click(function(){ + + var id = $('#compare_box'); + var maskHeight = $(document).height(); + var maskWidth = $(window).width(); + var mask2 = $('#compare_mask'); + mask2.css({'width':maskWidth,'height':maskHeight}); + mask2.css('opacity', 0.6).show(); + var winH = $(window).height(); + var winW = $(window).width(); + id.css('top', winH/2-id.height()/2 + id.offset().top + 'px'); + id.css('left', winW/2-id.width()/2 + 'px'); + id.fadeIn(1); + + var pid = $(this).val(); + var outPut = id.children('.modal_out'); + var button_none = $('.button_none'); + var button_none2 = $('#compare_box .button_none'); + + if($(this).is(':checked')) { + + var item_checkbox = $(this); // чтобы было видно в ajax + + $.ajax({ + type: 'POST', + url: '/includes/compare/compare_ajax.php', + data: 'pid=' + pid + '&op=add', + dataType: 'json', + + beforeSend: function() + { + button_none2.hide(); + outPut.html('').fadeIn(); + }, + + success: function(msg){ + outPut.html(msg.msg + '
    ' + msg.error3); + if(msg.error == 1) item_checkbox.removeAttr('checked'); + if(msg.error2 == 3) { + button_none.show(); + } else { + button_none.hide(); + } + } + }); // конец аякса + + + + } else { + $.ajax({ + type: 'POST', + url: '/includes/compare/compare_ajax.php', + data: 'pid=' + pid + '&op=del', + dataType: 'json', + + beforeSend: function() + { + button_none2.hide(); + outPut.html('').fadeIn(); + }, + + success: function(msg){ + outPut.html(msg.msg + '
    ' + msg.error3); + if(msg.error2 == 3) { + button_none.show(); + } else { + button_none.hide(); + } + } + }); // конец аякса + } + }); +//\\ сравнение товаров конец + + + + + + + }); // конец ready diff --git a/design/atomic/js/ajax_cart.js b/design/atomic/js/ajax_cart.js new file mode 100644 index 0000000..bd2727b --- /dev/null +++ b/design/atomic/js/ajax_cart.js @@ -0,0 +1,143 @@ +// корзина +$('form.variants').live('submit', function(e) { + e.preventDefault();// return; + button = $(this).find('input[type="submit"]'); + button2 = $(this).find('button[type="submit"]'); + if($(this).find('input[name=variant]:checked').size()>0) + variant = $(this).find('input[name=variant]:checked').val(); + if($(this).find('select[name=variant]').size()>0) + variant = $(this).find('select').val(); + var fav = ''; + var favs = $(this).find('#params input, #params select'); + if($(favs).length > 0){ + fav = $(favs).serialize(); + } + yandexReachGoal('korzina'); + $.ajax({ + url: "ajax/cart.php", + /*data: {variant: variant},*/ + data: {variant: variant,amount: $(this).find('select[name="amount"]').val(),feature: fav}, + dataType: 'json', + success: function(data){ console.log(button2); + $('#cart_informer').html(data); + $('#top-shopcart').addClass('notempty'); + if(button.length && button.attr('data-result-text')) button.val(button.attr('data-result-text')); + if(button2.length && button2.attr('data-result-text')) button2.text(button2.attr('data-result-text')).attr('disabled', true); + + + $(document).trigger( "update.shopcart" ); //событие добавления в корзину + + } + }); + var o1 = $(this).offset(); + var o2 = $('#cart_informer').offset(); + var dx = o1.left - o2.left; + var dy = o1.top - o2.top; + var distance = Math.sqrt(dx * dx + dy * dy); + $(this).closest('.product').find('.image img').effect("transfer", { to: $("#cart_informer"), className: "transfer_class" }, distance); + $('.transfer_class').html($(this).closest('.product').find('.image').html()); + $('.transfer_class').find('img').css('height', '100%'); + return false; +}); + + +$(document).ready(function() { + $('.keypress').on('keypress', function(event){ + var key, keyChar; + if(!event) var event = window.event; + if (event.keyCode) key = event.keyCode; + else if(event.which) key = event.which; + if(key==null || key==0 || key==8 || key==13 || key==9 || key==46 || key==37 || key==39 ) return true; + keyChar=String.fromCharCode(key); + if(!/\d/.test(keyChar)) + return false; + }); + $('.filter .block.range_slider').each(function(){ + var th = this; + + var min = parseFloat($(th).find('input.min').val()); + var max = parseFloat($(th).find('input.max').val()); + var current_min = parseFloat($(th).find('input.current_min').val()); + var current_max = parseFloat($(th).find('input.current_max').val()); + $(th).find("div.slider").slider({ + range: true, + min: min, + max: max, + values:[current_min,current_max], + range:true, + slide:function(event, ui){ + $(th).find("input.imin").val($(th).find("div.slider").slider("values",0)); + $(th).find("input.imax").val($(th).find("div.slider").slider("values",1)); + }, + stop: function(event, ui) { + $(th).find("input.imin").val($(th).find("div.slider").slider("values",0)); + $(th).find("input.imax").val($(th).find("div.slider").slider("values",1)); + } + }); + $(th).find("input.imin").change(function(){ + var value1=$(th).find("input.imin").val(); + var value2=$(th).find("input.imax").val(); + if(parseInt(value1) > parseInt(value2)){ + value1 = value2; + $(th).find("input.min").val(value1); + } + $(th).find("div.slider").slider("values",0,value1); + }); + $(th).find("input.imax").change(function(){ + var value1=$(th).find("input.imin").val(); + var value2=$(th).find("input.imax").val(); + if(parseInt(value1) > parseInt(value2)){ + value2 = value1; + $(th).find("input.max").val(value2); + } + $(th).find("div.slider").slider("values",1,value2); + }); + + + }); + +function ajaxFormRequest(form, callback, callbackbf) { + jQuery.ajax({ + url: form.action, + type: form.method, + dataType: "html", + data: jQuery(form).serialize(), + success: callback, + beforeSend: callbackbf + }); +} +jQuery('form.ajaxform').submit(function(e){ + e.preventDefault(); + var form = this; + var p = $(form).find('input[name=phone]'); + if(p.val().length < 5){ + p.after('

    Введите телефон

    '); + return false; + } + ajaxFormRequest(form, function(dat){ + jQuery(form)[0].reset(); + // jQuery.fancybox.hideActivity(); + jQuery.fancybox(dat); + }, function(){ + //$.fancybox.showActivity(); + } + ); + + return false; +}); + + jQuery('input.preorder').click(function (e) { + var th = this; + var varik = $(th).attr('data-id'); + jQuery.fancybox({ + href: '#amount'+varik, + onComplete: function(){ + jQuery('#fancybox-content').css('border-width',0); + jQuery('#fancybox-outer').css('background','none'); + } + }); + e.preventDefault(); + + }) + +}); diff --git a/design/atomic/js/bxslider/images/bx_loader.gif b/design/atomic/js/bxslider/images/bx_loader.gif new file mode 100644 index 0000000..f4ff40e Binary files /dev/null and b/design/atomic/js/bxslider/images/bx_loader.gif differ diff --git a/design/atomic/js/bxslider/images/controls.png b/design/atomic/js/bxslider/images/controls.png new file mode 100644 index 0000000..28918dd Binary files /dev/null and b/design/atomic/js/bxslider/images/controls.png differ diff --git a/design/atomic/js/bxslider/jquery.bxslider.css b/design/atomic/js/bxslider/jquery.bxslider.css new file mode 100644 index 0000000..2afc0f3 --- /dev/null +++ b/design/atomic/js/bxslider/jquery.bxslider.css @@ -0,0 +1,177 @@ +/** VARIABLES +===================================*/ +/** RESET AND LAYOUT +===================================*/ +.bx-wrapper { + position: relative; + margin-bottom: 60px; + padding: 0; + *zoom: 1; + -ms-touch-action: pan-y; + touch-action: pan-y; +} +.bx-wrapper img { + max-width: 100%; + display: block; +} +.bxslider { + margin: 0; + padding: 0; +} +ul.bxslider { + list-style: none; +} +.bx-viewport { + /*fix other elements on the page moving (on Chrome)*/ + -webkit-transform: translatez(0); +} +/** THEME +===================================*/ +.bx-wrapper { + -moz-box-shadow: 0 0 5px #ccc; + -webkit-box-shadow: 0 0 5px #ccc; + box-shadow: 0 0 5px #ccc; + border: 5px solid #fff; + background: #fff; +} +.bx-wrapper .bx-pager, +.bx-wrapper .bx-controls-auto { + position: absolute; + bottom: -30px; + width: 100%; +} +/* LOADER */ +.bx-wrapper .bx-loading { + min-height: 50px; + background: url('images/bx_loader.gif') center center no-repeat #ffffff; + height: 100%; + width: 100%; + position: absolute; + top: 0; + left: 0; + z-index: 2000; +} +/* PAGER */ +.bx-wrapper .bx-pager { + text-align: center; + font-size: .85em; + font-family: Arial; + font-weight: bold; + color: #666; + padding-top: 20px; +} +.bx-wrapper .bx-pager.bx-default-pager a { + background: #666; + text-indent: -9999px; + display: block; + width: 10px; + height: 10px; + margin: 0 5px; + outline: 0; + -moz-border-radius: 5px; + -webkit-border-radius: 5px; + border-radius: 5px; +} +.bx-wrapper .bx-pager.bx-default-pager a:hover, +.bx-wrapper .bx-pager.bx-default-pager a.active, +.bx-wrapper .bx-pager.bx-default-pager a:focus { + background: #000; +} +.bx-wrapper .bx-pager-item, +.bx-wrapper .bx-controls-auto .bx-controls-auto-item { + display: inline-block; + vertical-align: bottom; + *zoom: 1; + *display: inline; +} +.bx-wrapper .bx-pager-item { + font-size: 0; + line-height: 0; +} +/* DIRECTION CONTROLS (NEXT / PREV) */ +.bx-wrapper .bx-prev { + left: 10px; + background: url('images/controls.png') no-repeat 0 -32px; +} +.bx-wrapper .bx-prev:hover, +.bx-wrapper .bx-prev:focus { + background-position: 0 0; +} +.bx-wrapper .bx-next { + right: 10px; + background: url('images/controls.png') no-repeat -43px -32px; +} +.bx-wrapper .bx-next:hover, +.bx-wrapper .bx-next:focus { + background-position: -43px 0; +} +.bx-wrapper .bx-controls-direction a { + position: absolute; + top: 50%; + margin-top: -16px; + outline: 0; + width: 32px; + height: 32px; + text-indent: -9999px; + z-index: 9999; +} +.bx-wrapper .bx-controls-direction a.disabled { + display: none; +} +/* AUTO CONTROLS (START / STOP) */ +.bx-wrapper .bx-controls-auto { + text-align: center; +} +.bx-wrapper .bx-controls-auto .bx-start { + display: block; + text-indent: -9999px; + width: 10px; + height: 11px; + outline: 0; + background: url('images/controls.png') -86px -11px no-repeat; + margin: 0 3px; +} +.bx-wrapper .bx-controls-auto .bx-start:hover, +.bx-wrapper .bx-controls-auto .bx-start.active, +.bx-wrapper .bx-controls-auto .bx-start:focus { + background-position: -86px 0; +} +.bx-wrapper .bx-controls-auto .bx-stop { + display: block; + text-indent: -9999px; + width: 9px; + height: 11px; + outline: 0; + background: url('images/controls.png') -86px -44px no-repeat; + margin: 0 3px; +} +.bx-wrapper .bx-controls-auto .bx-stop:hover, +.bx-wrapper .bx-controls-auto .bx-stop.active, +.bx-wrapper .bx-controls-auto .bx-stop:focus { + background-position: -86px -33px; +} +/* PAGER WITH AUTO-CONTROLS HYBRID LAYOUT */ +.bx-wrapper .bx-controls.bx-has-controls-auto.bx-has-pager .bx-pager { + text-align: left; + width: 80%; +} +.bx-wrapper .bx-controls.bx-has-controls-auto.bx-has-pager .bx-controls-auto { + right: 0; + width: 35px; +} +/* IMAGE CAPTIONS */ +.bx-wrapper .bx-caption { + position: absolute; + bottom: 0; + left: 0; + background: #666; + background: rgba(80, 80, 80, 0.75); + width: 100%; +} +.bx-wrapper .bx-caption span { + color: #fff; + font-family: Arial; + display: block; + font-size: .85em; + padding: 10px; +} diff --git a/design/atomic/js/bxslider/jquery.bxslider.js b/design/atomic/js/bxslider/jquery.bxslider.js new file mode 100644 index 0000000..67ac4d8 --- /dev/null +++ b/design/atomic/js/bxslider/jquery.bxslider.js @@ -0,0 +1,1607 @@ +/** + * bxSlider v4.2.12 + * Copyright 2013-2015 Steven Wanderski + * Written while drinking Belgian ales and listening to jazz + * Licensed under MIT (http://opensource.org/licenses/MIT) + */ + +;(function($) { + + var defaults = { + + // GENERAL + mode: 'horizontal', + slideSelector: '', + infiniteLoop: true, + hideControlOnEnd: false, + speed: 500, + easing: null, + slideMargin: 0, + startSlide: 0, + randomStart: false, + captions: false, + ticker: false, + tickerHover: false, + adaptiveHeight: false, + adaptiveHeightSpeed: 500, + video: false, + useCSS: true, + preloadImages: 'visible', + responsive: true, + slideZIndex: 50, + wrapperClass: 'bx-wrapper', + + // TOUCH + touchEnabled: true, + swipeThreshold: 50, + oneToOneTouch: true, + preventDefaultSwipeX: true, + preventDefaultSwipeY: false, + + // ACCESSIBILITY + ariaLive: true, + ariaHidden: true, + + // KEYBOARD + keyboardEnabled: false, + + // PAGER + pager: true, + pagerType: 'full', + pagerShortSeparator: ' / ', + pagerSelector: null, + buildPager: null, + pagerCustom: null, + + // CONTROLS + controls: true, + nextText: 'Next', + prevText: 'Prev', + nextSelector: null, + prevSelector: null, + autoControls: false, + startText: 'Start', + stopText: 'Stop', + autoControlsCombine: false, + autoControlsSelector: null, + + // AUTO + auto: false, + pause: 4000, + autoStart: true, + autoDirection: 'next', + stopAutoOnClick: false, + autoHover: false, + autoDelay: 0, + autoSlideForOnePage: false, + + // CAROUSEL + minSlides: 1, + maxSlides: 1, + moveSlides: 0, + slideWidth: 0, + shrinkItems: false, + + // CALLBACKS + onSliderLoad: function() { return true; }, + onSlideBefore: function() { return true; }, + onSlideAfter: function() { return true; }, + onSlideNext: function() { return true; }, + onSlidePrev: function() { return true; }, + onSliderResize: function() { return true; } + }; + + $.fn.bxSlider = function(options) { + + if (this.length === 0) { + return this; + } + + // support multiple elements + if (this.length > 1) { + this.each(function() { + $(this).bxSlider(options); + }); + return this; + } + + // create a namespace to be used throughout the plugin + var slider = {}, + // set a reference to our slider element + el = this, + // get the original window dimens (thanks a lot IE) + windowWidth = $(window).width(), + windowHeight = $(window).height(); + + // Return if slider is already initialized + if ($(el).data('bxSlider')) { return; } + + /** + * =================================================================================== + * = PRIVATE FUNCTIONS + * =================================================================================== + */ + + /** + * Initializes namespace settings to be used throughout plugin + */ + var init = function() { + // Return if slider is already initialized + if ($(el).data('bxSlider')) { return; } + // merge user-supplied options with the defaults + slider.settings = $.extend({}, defaults, options); + // parse slideWidth setting + slider.settings.slideWidth = parseInt(slider.settings.slideWidth); + // store the original children + slider.children = el.children(slider.settings.slideSelector); + // check if actual number of slides is less than minSlides / maxSlides + if (slider.children.length < slider.settings.minSlides) { slider.settings.minSlides = slider.children.length; } + if (slider.children.length < slider.settings.maxSlides) { slider.settings.maxSlides = slider.children.length; } + // if random start, set the startSlide setting to random number + if (slider.settings.randomStart) { slider.settings.startSlide = Math.floor(Math.random() * slider.children.length); } + // store active slide information + slider.active = { index: slider.settings.startSlide }; + // store if the slider is in carousel mode (displaying / moving multiple slides) + slider.carousel = slider.settings.minSlides > 1 || slider.settings.maxSlides > 1 ? true : false; + // if carousel, force preloadImages = 'all' + if (slider.carousel) { slider.settings.preloadImages = 'all'; } + // calculate the min / max width thresholds based on min / max number of slides + // used to setup and update carousel slides dimensions + slider.minThreshold = (slider.settings.minSlides * slider.settings.slideWidth) + ((slider.settings.minSlides - 1) * slider.settings.slideMargin); + slider.maxThreshold = (slider.settings.maxSlides * slider.settings.slideWidth) + ((slider.settings.maxSlides - 1) * slider.settings.slideMargin); + // store the current state of the slider (if currently animating, working is true) + slider.working = false; + // initialize the controls object + slider.controls = {}; + // initialize an auto interval + slider.interval = null; + // determine which property to use for transitions + slider.animProp = slider.settings.mode === 'vertical' ? 'top' : 'left'; + // determine if hardware acceleration can be used + slider.usingCSS = slider.settings.useCSS && slider.settings.mode !== 'fade' && (function() { + // create our test div element + var div = document.createElement('div'), + // css transition properties + props = ['WebkitPerspective', 'MozPerspective', 'OPerspective', 'msPerspective']; + // test for each property + for (var i = 0; i < props.length; i++) { + if (div.style[props[i]] !== undefined) { + slider.cssPrefix = props[i].replace('Perspective', '').toLowerCase(); + slider.animProp = '-' + slider.cssPrefix + '-transform'; + return true; + } + } + return false; + }()); + // if vertical mode always make maxSlides and minSlides equal + if (slider.settings.mode === 'vertical') { slider.settings.maxSlides = slider.settings.minSlides; } + // save original style data + el.data('origStyle', el.attr('style')); + el.children(slider.settings.slideSelector).each(function() { + $(this).data('origStyle', $(this).attr('style')); + }); + + // perform all DOM / CSS modifications + setup(); + }; + + /** + * Performs all DOM and CSS modifications + */ + var setup = function() { + var preloadSelector = slider.children.eq(slider.settings.startSlide); // set the default preload selector (visible) + + // wrap el in a wrapper + el.wrap('
    '); + // store a namespace reference to .bx-viewport + slider.viewport = el.parent(); + + // add aria-live if the setting is enabled and ticker mode is disabled + if (slider.settings.ariaLive && !slider.settings.ticker) { + slider.viewport.attr('aria-live', 'polite'); + } + // add a loading div to display while images are loading + slider.loader = $('
    '); + slider.viewport.prepend(slider.loader); + // set el to a massive width, to hold any needed slides + // also strip any margin and padding from el + el.css({ + width: slider.settings.mode === 'horizontal' ? (slider.children.length * 1000 + 215) + '%' : 'auto', + position: 'relative' + }); + // if using CSS, add the easing property + if (slider.usingCSS && slider.settings.easing) { + el.css('-' + slider.cssPrefix + '-transition-timing-function', slider.settings.easing); + // if not using CSS and no easing value was supplied, use the default JS animation easing (swing) + } else if (!slider.settings.easing) { + slider.settings.easing = 'swing'; + } + // make modifications to the viewport (.bx-viewport) + slider.viewport.css({ + width: '100%', + overflow: 'hidden', + position: 'relative' + }); + slider.viewport.parent().css({ + maxWidth: getViewportMaxWidth() + }); + // apply css to all slider children + slider.children.css({ + float: slider.settings.mode === 'horizontal' ? 'left' : 'none', + listStyle: 'none', + position: 'relative' + }); + // apply the calculated width after the float is applied to prevent scrollbar interference + slider.children.css('width', getSlideWidth()); + // if slideMargin is supplied, add the css + if (slider.settings.mode === 'horizontal' && slider.settings.slideMargin > 0) { slider.children.css('marginRight', slider.settings.slideMargin); } + if (slider.settings.mode === 'vertical' && slider.settings.slideMargin > 0) { slider.children.css('marginBottom', slider.settings.slideMargin); } + // if "fade" mode, add positioning and z-index CSS + if (slider.settings.mode === 'fade') { + slider.children.css({ + position: 'absolute', + zIndex: 0, + display: 'none' + }); + // prepare the z-index on the showing element + slider.children.eq(slider.settings.startSlide).css({zIndex: slider.settings.slideZIndex, display: 'block'}); + } + // create an element to contain all slider controls (pager, start / stop, etc) + slider.controls.el = $('
    '); + // if captions are requested, add them + if (slider.settings.captions) { appendCaptions(); } + // check if startSlide is last slide + slider.active.last = slider.settings.startSlide === getPagerQty() - 1; + // if video is true, set up the fitVids plugin + if (slider.settings.video) { el.fitVids(); } + if (slider.settings.preloadImages === 'all' || slider.settings.ticker) { preloadSelector = slider.children; } + // only check for control addition if not in "ticker" mode + if (!slider.settings.ticker) { + // if controls are requested, add them + if (slider.settings.controls) { appendControls(); } + // if auto is true, and auto controls are requested, add them + if (slider.settings.auto && slider.settings.autoControls) { appendControlsAuto(); } + // if pager is requested, add it + if (slider.settings.pager) { appendPager(); } + // if any control option is requested, add the controls wrapper + if (slider.settings.controls || slider.settings.autoControls || slider.settings.pager) { slider.viewport.after(slider.controls.el); } + // if ticker mode, do not allow a pager + } else { + slider.settings.pager = false; + } + loadElements(preloadSelector, start); + }; + + var loadElements = function(selector, callback) { + var total = selector.find('img:not([src=""]), iframe').length, + count = 0; + if (total === 0) { + callback(); + return; + } + selector.find('img:not([src=""]), iframe').each(function() { + $(this).one('load error', function() { + if (++count === total) { callback(); } + }).each(function() { + if (this.complete) { $(this).trigger('load'); } + }); + }); + }; + + /** + * Start the slider + */ + var start = function() { + // if infinite loop, prepare additional slides + if (slider.settings.infiniteLoop && slider.settings.mode !== 'fade' && !slider.settings.ticker) { + var slice = slider.settings.mode === 'vertical' ? slider.settings.minSlides : slider.settings.maxSlides, + sliceAppend = slider.children.slice(0, slice).clone(true).addClass('bx-clone'), + slicePrepend = slider.children.slice(-slice).clone(true).addClass('bx-clone'); + if (slider.settings.ariaHidden) { + sliceAppend.attr('aria-hidden', true); + slicePrepend.attr('aria-hidden', true); + } + el.append(sliceAppend).prepend(slicePrepend); + } + // remove the loading DOM element + slider.loader.remove(); + // set the left / top position of "el" + setSlidePosition(); + // if "vertical" mode, always use adaptiveHeight to prevent odd behavior + if (slider.settings.mode === 'vertical') { slider.settings.adaptiveHeight = true; } + // set the viewport height + slider.viewport.height(getViewportHeight()); + // make sure everything is positioned just right (same as a window resize) + el.redrawSlider(); + // onSliderLoad callback + slider.settings.onSliderLoad.call(el, slider.active.index); + // slider has been fully initialized + slider.initialized = true; + // bind the resize call to the window + if (slider.settings.responsive) { $(window).bind('resize', resizeWindow); } + // if auto is true and has more than 1 page, start the show + if (slider.settings.auto && slider.settings.autoStart && (getPagerQty() > 1 || slider.settings.autoSlideForOnePage)) { initAuto(); } + // if ticker is true, start the ticker + if (slider.settings.ticker) { initTicker(); } + // if pager is requested, make the appropriate pager link active + if (slider.settings.pager) { updatePagerActive(slider.settings.startSlide); } + // check for any updates to the controls (like hideControlOnEnd updates) + if (slider.settings.controls) { updateDirectionControls(); } + // if touchEnabled is true, setup the touch events + if (slider.settings.touchEnabled && !slider.settings.ticker) { initTouch(); } + // if keyboardEnabled is true, setup the keyboard events + if (slider.settings.keyboardEnabled && !slider.settings.ticker) { + $(document).keydown(keyPress); + } + }; + + /** + * Returns the calculated height of the viewport, used to determine either adaptiveHeight or the maxHeight value + */ + var getViewportHeight = function() { + var height = 0; + // first determine which children (slides) should be used in our height calculation + var children = $(); + // if mode is not "vertical" and adaptiveHeight is false, include all children + if (slider.settings.mode !== 'vertical' && !slider.settings.adaptiveHeight) { + children = slider.children; + } else { + // if not carousel, return the single active child + if (!slider.carousel) { + children = slider.children.eq(slider.active.index); + // if carousel, return a slice of children + } else { + // get the individual slide index + var currentIndex = slider.settings.moveSlides === 1 ? slider.active.index : slider.active.index * getMoveBy(); + // add the current slide to the children + children = slider.children.eq(currentIndex); + // cycle through the remaining "showing" slides + for (i = 1; i <= slider.settings.maxSlides - 1; i++) { + // if looped back to the start + if (currentIndex + i >= slider.children.length) { + children = children.add(slider.children.eq(i - 1)); + } else { + children = children.add(slider.children.eq(currentIndex + i)); + } + } + } + } + // if "vertical" mode, calculate the sum of the heights of the children + if (slider.settings.mode === 'vertical') { + children.each(function(index) { + height += $(this).outerHeight(); + }); + // add user-supplied margins + if (slider.settings.slideMargin > 0) { + height += slider.settings.slideMargin * (slider.settings.minSlides - 1); + } + // if not "vertical" mode, calculate the max height of the children + } else { + height = Math.max.apply(Math, children.map(function() { + return $(this).outerHeight(false); + }).get()); + } + + if (slider.viewport.css('box-sizing') === 'border-box') { + height += parseFloat(slider.viewport.css('padding-top')) + parseFloat(slider.viewport.css('padding-bottom')) + + parseFloat(slider.viewport.css('border-top-width')) + parseFloat(slider.viewport.css('border-bottom-width')); + } else if (slider.viewport.css('box-sizing') === 'padding-box') { + height += parseFloat(slider.viewport.css('padding-top')) + parseFloat(slider.viewport.css('padding-bottom')); + } + + return height; + }; + + /** + * Returns the calculated width to be used for the outer wrapper / viewport + */ + var getViewportMaxWidth = function() { + var width = '100%'; + if (slider.settings.slideWidth > 0) { + if (slider.settings.mode === 'horizontal') { + width = (slider.settings.maxSlides * slider.settings.slideWidth) + ((slider.settings.maxSlides - 1) * slider.settings.slideMargin); + } else { + width = slider.settings.slideWidth; + } + } + return width; + }; + + /** + * Returns the calculated width to be applied to each slide + */ + var getSlideWidth = function() { + var newElWidth = slider.settings.slideWidth, // start with any user-supplied slide width + wrapWidth = slider.viewport.width(); // get the current viewport width + // if slide width was not supplied, or is larger than the viewport use the viewport width + if (slider.settings.slideWidth === 0 || + (slider.settings.slideWidth > wrapWidth && !slider.carousel) || + slider.settings.mode === 'vertical') { + newElWidth = wrapWidth; + // if carousel, use the thresholds to determine the width + } else if (slider.settings.maxSlides > 1 && slider.settings.mode === 'horizontal') { + if (wrapWidth > slider.maxThreshold) { + return newElWidth; + } else if (wrapWidth < slider.minThreshold) { + newElWidth = (wrapWidth - (slider.settings.slideMargin * (slider.settings.minSlides - 1))) / slider.settings.minSlides; + } else if (slider.settings.shrinkItems) { + newElWidth = Math.floor((wrapWidth + slider.settings.slideMargin) / (Math.ceil((wrapWidth + slider.settings.slideMargin) / (newElWidth + slider.settings.slideMargin))) - slider.settings.slideMargin); + } + } + return newElWidth; + }; + + /** + * Returns the number of slides currently visible in the viewport (includes partially visible slides) + */ + var getNumberSlidesShowing = function() { + var slidesShowing = 1, + childWidth = null; + if (slider.settings.mode === 'horizontal' && slider.settings.slideWidth > 0) { + // if viewport is smaller than minThreshold, return minSlides + if (slider.viewport.width() < slider.minThreshold) { + slidesShowing = slider.settings.minSlides; + // if viewport is larger than maxThreshold, return maxSlides + } else if (slider.viewport.width() > slider.maxThreshold) { + slidesShowing = slider.settings.maxSlides; + // if viewport is between min / max thresholds, divide viewport width by first child width + } else { + childWidth = slider.children.first().width() + slider.settings.slideMargin; + slidesShowing = Math.floor((slider.viewport.width() + + slider.settings.slideMargin) / childWidth); + } + // if "vertical" mode, slides showing will always be minSlides + } else if (slider.settings.mode === 'vertical') { + slidesShowing = slider.settings.minSlides; + } + return slidesShowing; + }; + + /** + * Returns the number of pages (one full viewport of slides is one "page") + */ + var getPagerQty = function() { + var pagerQty = 0, + breakPoint = 0, + counter = 0; + // if moveSlides is specified by the user + if (slider.settings.moveSlides > 0) { + if (slider.settings.infiniteLoop) { + pagerQty = Math.ceil(slider.children.length / getMoveBy()); + } else { + // when breakpoint goes above children length, counter is the number of pages + while (breakPoint < slider.children.length) { + ++pagerQty; + breakPoint = counter + getNumberSlidesShowing(); + counter += slider.settings.moveSlides <= getNumberSlidesShowing() ? slider.settings.moveSlides : getNumberSlidesShowing(); + } + } + // if moveSlides is 0 (auto) divide children length by sides showing, then round up + } else { + pagerQty = Math.ceil(slider.children.length / getNumberSlidesShowing()); + } + return pagerQty; + }; + + /** + * Returns the number of individual slides by which to shift the slider + */ + var getMoveBy = function() { + // if moveSlides was set by the user and moveSlides is less than number of slides showing + if (slider.settings.moveSlides > 0 && slider.settings.moveSlides <= getNumberSlidesShowing()) { + return slider.settings.moveSlides; + } + // if moveSlides is 0 (auto) + return getNumberSlidesShowing(); + }; + + /** + * Sets the slider's (el) left or top position + */ + var setSlidePosition = function() { + var position, lastChild, lastShowingIndex; + // if last slide, not infinite loop, and number of children is larger than specified maxSlides + if (slider.children.length > slider.settings.maxSlides && slider.active.last && !slider.settings.infiniteLoop) { + if (slider.settings.mode === 'horizontal') { + // get the last child's position + lastChild = slider.children.last(); + position = lastChild.position(); + // set the left position + setPositionProperty(-(position.left - (slider.viewport.width() - lastChild.outerWidth())), 'reset', 0); + } else if (slider.settings.mode === 'vertical') { + // get the last showing index's position + lastShowingIndex = slider.children.length - slider.settings.minSlides; + position = slider.children.eq(lastShowingIndex).position(); + // set the top position + setPositionProperty(-position.top, 'reset', 0); + } + // if not last slide + } else { + // get the position of the first showing slide + position = slider.children.eq(slider.active.index * getMoveBy()).position(); + // check for last slide + if (slider.active.index === getPagerQty() - 1) { slider.active.last = true; } + // set the respective position + if (position !== undefined) { + if (slider.settings.mode === 'horizontal') { setPositionProperty(-position.left, 'reset', 0); } + else if (slider.settings.mode === 'vertical') { setPositionProperty(-position.top, 'reset', 0); } + } + } + }; + + /** + * Sets the el's animating property position (which in turn will sometimes animate el). + * If using CSS, sets the transform property. If not using CSS, sets the top / left property. + * + * @param value (int) + * - the animating property's value + * + * @param type (string) 'slide', 'reset', 'ticker' + * - the type of instance for which the function is being + * + * @param duration (int) + * - the amount of time (in ms) the transition should occupy + * + * @param params (array) optional + * - an optional parameter containing any variables that need to be passed in + */ + var setPositionProperty = function(value, type, duration, params) { + var animateObj, propValue; + // use CSS transform + if (slider.usingCSS) { + // determine the translate3d value + propValue = slider.settings.mode === 'vertical' ? 'translate3d(0, ' + value + 'px, 0)' : 'translate3d(' + value + 'px, 0, 0)'; + // add the CSS transition-duration + el.css('-' + slider.cssPrefix + '-transition-duration', duration / 1000 + 's'); + if (type === 'slide') { + // set the property value + el.css(slider.animProp, propValue); + if (duration !== 0) { + // bind a callback method - executes when CSS transition completes + el.bind('transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd', function(e) { + //make sure it's the correct one + if (!$(e.target).is(el)) { return; } + // unbind the callback + el.unbind('transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd'); + updateAfterSlideTransition(); + }); + } else { //duration = 0 + updateAfterSlideTransition(); + } + } else if (type === 'reset') { + el.css(slider.animProp, propValue); + } else if (type === 'ticker') { + // make the transition use 'linear' + el.css('-' + slider.cssPrefix + '-transition-timing-function', 'linear'); + el.css(slider.animProp, propValue); + if (duration !== 0) { + el.bind('transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd', function(e) { + //make sure it's the correct one + if (!$(e.target).is(el)) { return; } + // unbind the callback + el.unbind('transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd'); + // reset the position + setPositionProperty(params.resetValue, 'reset', 0); + // start the loop again + tickerLoop(); + }); + } else { //duration = 0 + setPositionProperty(params.resetValue, 'reset', 0); + tickerLoop(); + } + } + // use JS animate + } else { + animateObj = {}; + animateObj[slider.animProp] = value; + if (type === 'slide') { + el.animate(animateObj, duration, slider.settings.easing, function() { + updateAfterSlideTransition(); + }); + } else if (type === 'reset') { + el.css(slider.animProp, value); + } else if (type === 'ticker') { + el.animate(animateObj, duration, 'linear', function() { + setPositionProperty(params.resetValue, 'reset', 0); + // run the recursive loop after animation + tickerLoop(); + }); + } + } + }; + + /** + * Populates the pager with proper amount of pages + */ + var populatePager = function() { + var pagerHtml = '', + linkContent = '', + pagerQty = getPagerQty(); + // loop through each pager item + for (var i = 0; i < pagerQty; i++) { + linkContent = ''; + // if a buildPager function is supplied, use it to get pager link value, else use index + 1 + if (slider.settings.buildPager && $.isFunction(slider.settings.buildPager) || slider.settings.pagerCustom) { + linkContent = slider.settings.buildPager(i); + slider.pagerEl.addClass('bx-custom-pager'); + } else { + linkContent = i + 1; + slider.pagerEl.addClass('bx-default-pager'); + } + // var linkContent = slider.settings.buildPager && $.isFunction(slider.settings.buildPager) ? slider.settings.buildPager(i) : i + 1; + // add the markup to the string + pagerHtml += ''; + } + // populate the pager element with pager links + slider.pagerEl.html(pagerHtml); + }; + + /** + * Appends the pager to the controls element + */ + var appendPager = function() { + if (!slider.settings.pagerCustom) { + // create the pager DOM element + slider.pagerEl = $('
    '); + // if a pager selector was supplied, populate it with the pager + if (slider.settings.pagerSelector) { + $(slider.settings.pagerSelector).html(slider.pagerEl); + // if no pager selector was supplied, add it after the wrapper + } else { + slider.controls.el.addClass('bx-has-pager').append(slider.pagerEl); + } + // populate the pager + populatePager(); + } else { + slider.pagerEl = $(slider.settings.pagerCustom); + } + // assign the pager click binding + slider.pagerEl.on('click touchend', 'a', clickPagerBind); + }; + + /** + * Appends prev / next controls to the controls element + */ + var appendControls = function() { + slider.controls.next = $('' + slider.settings.nextText + ''); + slider.controls.prev = $('' + slider.settings.prevText + ''); + // bind click actions to the controls + slider.controls.next.bind('click touchend', clickNextBind); + slider.controls.prev.bind('click touchend', clickPrevBind); + // if nextSelector was supplied, populate it + if (slider.settings.nextSelector) { + $(slider.settings.nextSelector).append(slider.controls.next); + } + // if prevSelector was supplied, populate it + if (slider.settings.prevSelector) { + $(slider.settings.prevSelector).append(slider.controls.prev); + } + // if no custom selectors were supplied + if (!slider.settings.nextSelector && !slider.settings.prevSelector) { + // add the controls to the DOM + slider.controls.directionEl = $('
    '); + // add the control elements to the directionEl + slider.controls.directionEl.append(slider.controls.prev).append(slider.controls.next); + // slider.viewport.append(slider.controls.directionEl); + slider.controls.el.addClass('bx-has-controls-direction').append(slider.controls.directionEl); + } + }; + + /** + * Appends start / stop auto controls to the controls element + */ + var appendControlsAuto = function() { + slider.controls.start = $(''); + slider.controls.stop = $(''); + // add the controls to the DOM + slider.controls.autoEl = $('
    '); + // bind click actions to the controls + slider.controls.autoEl.on('click', '.bx-start', clickStartBind); + slider.controls.autoEl.on('click', '.bx-stop', clickStopBind); + // if autoControlsCombine, insert only the "start" control + if (slider.settings.autoControlsCombine) { + slider.controls.autoEl.append(slider.controls.start); + // if autoControlsCombine is false, insert both controls + } else { + slider.controls.autoEl.append(slider.controls.start).append(slider.controls.stop); + } + // if auto controls selector was supplied, populate it with the controls + if (slider.settings.autoControlsSelector) { + $(slider.settings.autoControlsSelector).html(slider.controls.autoEl); + // if auto controls selector was not supplied, add it after the wrapper + } else { + slider.controls.el.addClass('bx-has-controls-auto').append(slider.controls.autoEl); + } + // update the auto controls + updateAutoControls(slider.settings.autoStart ? 'stop' : 'start'); + }; + + /** + * Appends image captions to the DOM + */ + var appendCaptions = function() { + // cycle through each child + slider.children.each(function(index) { + // get the image title attribute + var title = $(this).find('img:first').attr('title'); + // append the caption + if (title !== undefined && ('' + title).length) { + $(this).append('
    ' + title + '
    '); + } + }); + }; + + /** + * Click next binding + * + * @param e (event) + * - DOM event object + */ + var clickNextBind = function(e) { + e.preventDefault(); + if (slider.controls.el.hasClass('disabled')) { return; } + // if auto show is running, stop it + if (slider.settings.auto && slider.settings.stopAutoOnClick) { el.stopAuto(); } + el.goToNextSlide(); + }; + + /** + * Click prev binding + * + * @param e (event) + * - DOM event object + */ + var clickPrevBind = function(e) { + e.preventDefault(); + if (slider.controls.el.hasClass('disabled')) { return; } + // if auto show is running, stop it + if (slider.settings.auto && slider.settings.stopAutoOnClick) { el.stopAuto(); } + el.goToPrevSlide(); + }; + + /** + * Click start binding + * + * @param e (event) + * - DOM event object + */ + var clickStartBind = function(e) { + el.startAuto(); + e.preventDefault(); + }; + + /** + * Click stop binding + * + * @param e (event) + * - DOM event object + */ + var clickStopBind = function(e) { + el.stopAuto(); + e.preventDefault(); + }; + + /** + * Click pager binding + * + * @param e (event) + * - DOM event object + */ + var clickPagerBind = function(e) { + var pagerLink, pagerIndex; + e.preventDefault(); + if (slider.controls.el.hasClass('disabled')) { + return; + } + // if auto show is running, stop it + if (slider.settings.auto && slider.settings.stopAutoOnClick) { el.stopAuto(); } + pagerLink = $(e.currentTarget); + if (pagerLink.attr('data-slide-index') !== undefined) { + pagerIndex = parseInt(pagerLink.attr('data-slide-index')); + // if clicked pager link is not active, continue with the goToSlide call + if (pagerIndex !== slider.active.index) { el.goToSlide(pagerIndex); } + } + }; + + /** + * Updates the pager links with an active class + * + * @param slideIndex (int) + * - index of slide to make active + */ + var updatePagerActive = function(slideIndex) { + // if "short" pager type + var len = slider.children.length; // nb of children + if (slider.settings.pagerType === 'short') { + if (slider.settings.maxSlides > 1) { + len = Math.ceil(slider.children.length / slider.settings.maxSlides); + } + slider.pagerEl.html((slideIndex + 1) + slider.settings.pagerShortSeparator + len); + return; + } + // remove all pager active classes + slider.pagerEl.find('a').removeClass('active'); + // apply the active class for all pagers + slider.pagerEl.each(function(i, el) { $(el).find('a').eq(slideIndex).addClass('active'); }); + }; + + /** + * Performs needed actions after a slide transition + */ + var updateAfterSlideTransition = function() { + // if infinite loop is true + if (slider.settings.infiniteLoop) { + var position = ''; + // first slide + if (slider.active.index === 0) { + // set the new position + position = slider.children.eq(0).position(); + // carousel, last slide + } else if (slider.active.index === getPagerQty() - 1 && slider.carousel) { + position = slider.children.eq((getPagerQty() - 1) * getMoveBy()).position(); + // last slide + } else if (slider.active.index === slider.children.length - 1) { + position = slider.children.eq(slider.children.length - 1).position(); + } + if (position) { + if (slider.settings.mode === 'horizontal') { setPositionProperty(-position.left, 'reset', 0); } + else if (slider.settings.mode === 'vertical') { setPositionProperty(-position.top, 'reset', 0); } + } + } + // declare that the transition is complete + slider.working = false; + // onSlideAfter callback + slider.settings.onSlideAfter.call(el, slider.children.eq(slider.active.index), slider.oldIndex, slider.active.index); + }; + + /** + * Updates the auto controls state (either active, or combined switch) + * + * @param state (string) "start", "stop" + * - the new state of the auto show + */ + var updateAutoControls = function(state) { + // if autoControlsCombine is true, replace the current control with the new state + if (slider.settings.autoControlsCombine) { + slider.controls.autoEl.html(slider.controls[state]); + // if autoControlsCombine is false, apply the "active" class to the appropriate control + } else { + slider.controls.autoEl.find('a').removeClass('active'); + slider.controls.autoEl.find('a:not(.bx-' + state + ')').addClass('active'); + } + }; + + /** + * Updates the direction controls (checks if either should be hidden) + */ + var updateDirectionControls = function() { + if (getPagerQty() === 1) { + slider.controls.prev.addClass('disabled'); + slider.controls.next.addClass('disabled'); + } else if (!slider.settings.infiniteLoop && slider.settings.hideControlOnEnd) { + // if first slide + if (slider.active.index === 0) { + slider.controls.prev.addClass('disabled'); + slider.controls.next.removeClass('disabled'); + // if last slide + } else if (slider.active.index === getPagerQty() - 1) { + slider.controls.next.addClass('disabled'); + slider.controls.prev.removeClass('disabled'); + // if any slide in the middle + } else { + slider.controls.prev.removeClass('disabled'); + slider.controls.next.removeClass('disabled'); + } + } + }; + + /** + * Initializes the auto process + */ + var initAuto = function() { + // if autoDelay was supplied, launch the auto show using a setTimeout() call + if (slider.settings.autoDelay > 0) { + var timeout = setTimeout(el.startAuto, slider.settings.autoDelay); + // if autoDelay was not supplied, start the auto show normally + } else { + el.startAuto(); + + //add focus and blur events to ensure its running if timeout gets paused + $(window).focus(function() { + el.startAuto(); + }).blur(function() { + el.stopAuto(); + }); + } + // if autoHover is requested + if (slider.settings.autoHover) { + // on el hover + el.hover(function() { + // if the auto show is currently playing (has an active interval) + if (slider.interval) { + // stop the auto show and pass true argument which will prevent control update + el.stopAuto(true); + // create a new autoPaused value which will be used by the relative "mouseout" event + slider.autoPaused = true; + } + }, function() { + // if the autoPaused value was created be the prior "mouseover" event + if (slider.autoPaused) { + // start the auto show and pass true argument which will prevent control update + el.startAuto(true); + // reset the autoPaused value + slider.autoPaused = null; + } + }); + } + }; + + /** + * Initializes the ticker process + */ + var initTicker = function() { + var startPosition = 0, + position, transform, value, idx, ratio, property, newSpeed, totalDimens; + // if autoDirection is "next", append a clone of the entire slider + if (slider.settings.autoDirection === 'next') { + el.append(slider.children.clone().addClass('bx-clone')); + // if autoDirection is "prev", prepend a clone of the entire slider, and set the left position + } else { + el.prepend(slider.children.clone().addClass('bx-clone')); + position = slider.children.first().position(); + startPosition = slider.settings.mode === 'horizontal' ? -position.left : -position.top; + } + setPositionProperty(startPosition, 'reset', 0); + // do not allow controls in ticker mode + slider.settings.pager = false; + slider.settings.controls = false; + slider.settings.autoControls = false; + // if autoHover is requested + if (slider.settings.tickerHover) { + if (slider.usingCSS) { + idx = slider.settings.mode === 'horizontal' ? 4 : 5; + slider.viewport.hover(function() { + transform = el.css('-' + slider.cssPrefix + '-transform'); + value = parseFloat(transform.split(',')[idx]); + setPositionProperty(value, 'reset', 0); + }, function() { + totalDimens = 0; + slider.children.each(function(index) { + totalDimens += slider.settings.mode === 'horizontal' ? $(this).outerWidth(true) : $(this).outerHeight(true); + }); + // calculate the speed ratio (used to determine the new speed to finish the paused animation) + ratio = slider.settings.speed / totalDimens; + // determine which property to use + property = slider.settings.mode === 'horizontal' ? 'left' : 'top'; + // calculate the new speed + newSpeed = ratio * (totalDimens - (Math.abs(parseInt(value)))); + tickerLoop(newSpeed); + }); + } else { + // on el hover + slider.viewport.hover(function() { + el.stop(); + }, function() { + // calculate the total width of children (used to calculate the speed ratio) + totalDimens = 0; + slider.children.each(function(index) { + totalDimens += slider.settings.mode === 'horizontal' ? $(this).outerWidth(true) : $(this).outerHeight(true); + }); + // calculate the speed ratio (used to determine the new speed to finish the paused animation) + ratio = slider.settings.speed / totalDimens; + // determine which property to use + property = slider.settings.mode === 'horizontal' ? 'left' : 'top'; + // calculate the new speed + newSpeed = ratio * (totalDimens - (Math.abs(parseInt(el.css(property))))); + tickerLoop(newSpeed); + }); + } + } + // start the ticker loop + tickerLoop(); + }; + + /** + * Runs a continuous loop, news ticker-style + */ + var tickerLoop = function(resumeSpeed) { + var speed = resumeSpeed ? resumeSpeed : slider.settings.speed, + position = {left: 0, top: 0}, + reset = {left: 0, top: 0}, + animateProperty, resetValue, params; + + // if "next" animate left position to last child, then reset left to 0 + if (slider.settings.autoDirection === 'next') { + position = el.find('.bx-clone').first().position(); + // if "prev" animate left position to 0, then reset left to first non-clone child + } else { + reset = slider.children.first().position(); + } + animateProperty = slider.settings.mode === 'horizontal' ? -position.left : -position.top; + resetValue = slider.settings.mode === 'horizontal' ? -reset.left : -reset.top; + params = {resetValue: resetValue}; + setPositionProperty(animateProperty, 'ticker', speed, params); + }; + + /** + * Check if el is on screen + */ + var isOnScreen = function(el) { + var win = $(window), + viewport = { + top: win.scrollTop(), + left: win.scrollLeft() + }, + bounds = el.offset(); + + viewport.right = viewport.left + win.width(); + viewport.bottom = viewport.top + win.height(); + bounds.right = bounds.left + el.outerWidth(); + bounds.bottom = bounds.top + el.outerHeight(); + + return (!(viewport.right < bounds.left || viewport.left > bounds.right || viewport.bottom < bounds.top || viewport.top > bounds.bottom)); + }; + + /** + * Initializes keyboard events + */ + var keyPress = function(e) { + var activeElementTag = document.activeElement.tagName.toLowerCase(), + tagFilters = 'input|textarea', + p = new RegExp(activeElementTag,['i']), + result = p.exec(tagFilters); + + if (result == null && isOnScreen(el)) { + if (e.keyCode === 39) { + clickNextBind(e); + return false; + } else if (e.keyCode === 37) { + clickPrevBind(e); + return false; + } + } + }; + + /** + * Initializes touch events + */ + var initTouch = function() { + // initialize object to contain all touch values + slider.touch = { + start: {x: 0, y: 0}, + end: {x: 0, y: 0} + }; + slider.viewport.bind('touchstart MSPointerDown pointerdown', onTouchStart); + + //for browsers that have implemented pointer events and fire a click after + //every pointerup regardless of whether pointerup is on same screen location as pointerdown or not + slider.viewport.on('click', '.bxslider a', function(e) { + if (slider.viewport.hasClass('click-disabled')) { + e.preventDefault(); + slider.viewport.removeClass('click-disabled'); + } + }); + }; + + /** + * Event handler for "touchstart" + * + * @param e (event) + * - DOM event object + */ + var onTouchStart = function(e) { + //disable slider controls while user is interacting with slides to avoid slider freeze that happens on touch devices when a slide swipe happens immediately after interacting with slider controls + slider.controls.el.addClass('disabled'); + + if (slider.working) { + e.preventDefault(); + slider.controls.el.removeClass('disabled'); + } else { + // record the original position when touch starts + slider.touch.originalPos = el.position(); + var orig = e.originalEvent, + touchPoints = (typeof orig.changedTouches !== 'undefined') ? orig.changedTouches : [orig]; + // record the starting touch x, y coordinates + slider.touch.start.x = touchPoints[0].pageX; + slider.touch.start.y = touchPoints[0].pageY; + + if (slider.viewport.get(0).setPointerCapture) { + slider.pointerId = orig.pointerId; + slider.viewport.get(0).setPointerCapture(slider.pointerId); + } + // bind a "touchmove" event to the viewport + slider.viewport.bind('touchmove MSPointerMove pointermove', onTouchMove); + // bind a "touchend" event to the viewport + slider.viewport.bind('touchend MSPointerUp pointerup', onTouchEnd); + slider.viewport.bind('MSPointerCancel pointercancel', onPointerCancel); + } + }; + + /** + * Cancel Pointer for Windows Phone + * + * @param e (event) + * - DOM event object + */ + var onPointerCancel = function(e) { + /* onPointerCancel handler is needed to deal with situations when a touchend + doesn't fire after a touchstart (this happens on windows phones only) */ + setPositionProperty(slider.touch.originalPos.left, 'reset', 0); + + //remove handlers + slider.controls.el.removeClass('disabled'); + slider.viewport.unbind('MSPointerCancel pointercancel', onPointerCancel); + slider.viewport.unbind('touchmove MSPointerMove pointermove', onTouchMove); + slider.viewport.unbind('touchend MSPointerUp pointerup', onTouchEnd); + if (slider.viewport.get(0).releasePointerCapture) { + slider.viewport.get(0).releasePointerCapture(slider.pointerId); + } + }; + + /** + * Event handler for "touchmove" + * + * @param e (event) + * - DOM event object + */ + var onTouchMove = function(e) { + var orig = e.originalEvent, + touchPoints = (typeof orig.changedTouches !== 'undefined') ? orig.changedTouches : [orig], + // if scrolling on y axis, do not prevent default + xMovement = Math.abs(touchPoints[0].pageX - slider.touch.start.x), + yMovement = Math.abs(touchPoints[0].pageY - slider.touch.start.y), + value = 0, + change = 0; + + // x axis swipe + if ((xMovement * 3) > yMovement && slider.settings.preventDefaultSwipeX) { + e.preventDefault(); + // y axis swipe + } else if ((yMovement * 3) > xMovement && slider.settings.preventDefaultSwipeY) { + e.preventDefault(); + } + if (slider.settings.mode !== 'fade' && slider.settings.oneToOneTouch) { + // if horizontal, drag along x axis + if (slider.settings.mode === 'horizontal') { + change = touchPoints[0].pageX - slider.touch.start.x; + value = slider.touch.originalPos.left + change; + // if vertical, drag along y axis + } else { + change = touchPoints[0].pageY - slider.touch.start.y; + value = slider.touch.originalPos.top + change; + } + setPositionProperty(value, 'reset', 0); + } + }; + + /** + * Event handler for "touchend" + * + * @param e (event) + * - DOM event object + */ + var onTouchEnd = function(e) { + slider.viewport.unbind('touchmove MSPointerMove pointermove', onTouchMove); + //enable slider controls as soon as user stops interacing with slides + slider.controls.el.removeClass('disabled'); + var orig = e.originalEvent, + touchPoints = (typeof orig.changedTouches !== 'undefined') ? orig.changedTouches : [orig], + value = 0, + distance = 0; + // record end x, y positions + slider.touch.end.x = touchPoints[0].pageX; + slider.touch.end.y = touchPoints[0].pageY; + // if fade mode, check if absolute x distance clears the threshold + if (slider.settings.mode === 'fade') { + distance = Math.abs(slider.touch.start.x - slider.touch.end.x); + if (distance >= slider.settings.swipeThreshold) { + if (slider.touch.start.x > slider.touch.end.x) { + el.goToNextSlide(); + } else { + el.goToPrevSlide(); + } + el.stopAuto(); + } + // not fade mode + } else { + // calculate distance and el's animate property + if (slider.settings.mode === 'horizontal') { + distance = slider.touch.end.x - slider.touch.start.x; + value = slider.touch.originalPos.left; + } else { + distance = slider.touch.end.y - slider.touch.start.y; + value = slider.touch.originalPos.top; + } + // if not infinite loop and first / last slide, do not attempt a slide transition + if (!slider.settings.infiniteLoop && ((slider.active.index === 0 && distance > 0) || (slider.active.last && distance < 0))) { + setPositionProperty(value, 'reset', 200); + } else { + // check if distance clears threshold + if (Math.abs(distance) >= slider.settings.swipeThreshold) { + if (distance < 0) { + el.goToNextSlide(); + } else { + el.goToPrevSlide(); + } + el.stopAuto(); + } else { + // el.animate(property, 200); + setPositionProperty(value, 'reset', 200); + } + } + } + slider.viewport.unbind('touchend MSPointerUp pointerup', onTouchEnd); + if (slider.viewport.get(0).releasePointerCapture) { + slider.viewport.get(0).releasePointerCapture(slider.pointerId); + } + }; + + /** + * Window resize event callback + */ + var resizeWindow = function(e) { + // don't do anything if slider isn't initialized. + if (!slider.initialized) { return; } + // Delay if slider working. + if (slider.working) { + window.setTimeout(resizeWindow, 10); + } else { + // get the new window dimens (again, thank you IE) + var windowWidthNew = $(window).width(), + windowHeightNew = $(window).height(); + // make sure that it is a true window resize + // *we must check this because our dinosaur friend IE fires a window resize event when certain DOM elements + // are resized. Can you just die already?* + if (windowWidth !== windowWidthNew || windowHeight !== windowHeightNew) { + // set the new window dimens + windowWidth = windowWidthNew; + windowHeight = windowHeightNew; + // update all dynamic elements + el.redrawSlider(); + // Call user resize handler + slider.settings.onSliderResize.call(el, slider.active.index); + } + } + }; + + /** + * Adds an aria-hidden=true attribute to each element + * + * @param startVisibleIndex (int) + * - the first visible element's index + */ + var applyAriaHiddenAttributes = function(startVisibleIndex) { + var numberOfSlidesShowing = getNumberSlidesShowing(); + // only apply attributes if the setting is enabled and not in ticker mode + if (slider.settings.ariaHidden && !slider.settings.ticker) { + // add aria-hidden=true to all elements + slider.children.attr('aria-hidden', 'true'); + // get the visible elements and change to aria-hidden=false + slider.children.slice(startVisibleIndex, startVisibleIndex + numberOfSlidesShowing).attr('aria-hidden', 'false'); + } + }; + + /** + * Returns index according to present page range + * + * @param slideOndex (int) + * - the desired slide index + */ + var setSlideIndex = function(slideIndex) { + if (slideIndex < 0) { + if (slider.settings.infiniteLoop) { + return getPagerQty() - 1; + }else { + //we don't go to undefined slides + return slider.active.index; + } + // if slideIndex is greater than children length, set active index to 0 (this happens during infinite loop) + } else if (slideIndex >= getPagerQty()) { + if (slider.settings.infiniteLoop) { + return 0; + } else { + //we don't move to undefined pages + return slider.active.index; + } + // set active index to requested slide + } else { + return slideIndex; + } + }; + + /** + * =================================================================================== + * = PUBLIC FUNCTIONS + * =================================================================================== + */ + + /** + * Performs slide transition to the specified slide + * + * @param slideIndex (int) + * - the destination slide's index (zero-based) + * + * @param direction (string) + * - INTERNAL USE ONLY - the direction of travel ("prev" / "next") + */ + el.goToSlide = function(slideIndex, direction) { + // onSlideBefore, onSlideNext, onSlidePrev callbacks + // Allow transition canceling based on returned value + var performTransition = true, + moveBy = 0, + position = {left: 0, top: 0}, + lastChild = null, + lastShowingIndex, eq, value, requestEl; + // store the old index + slider.oldIndex = slider.active.index; + //set new index + slider.active.index = setSlideIndex(slideIndex); + + // if plugin is currently in motion, ignore request + if (slider.working || slider.active.index === slider.oldIndex) { return; } + // declare that plugin is in motion + slider.working = true; + + performTransition = slider.settings.onSlideBefore.call(el, slider.children.eq(slider.active.index), slider.oldIndex, slider.active.index); + + // If transitions canceled, reset and return + if (typeof (performTransition) !== 'undefined' && !performTransition) { + slider.active.index = slider.oldIndex; // restore old index + slider.working = false; // is not in motion + return; + } + + if (direction === 'next') { + // Prevent canceling in future functions or lack there-of from negating previous commands to cancel + if (!slider.settings.onSlideNext.call(el, slider.children.eq(slider.active.index), slider.oldIndex, slider.active.index)) { + performTransition = false; + } + } else if (direction === 'prev') { + // Prevent canceling in future functions or lack there-of from negating previous commands to cancel + if (!slider.settings.onSlidePrev.call(el, slider.children.eq(slider.active.index), slider.oldIndex, slider.active.index)) { + performTransition = false; + } + } + + // check if last slide + slider.active.last = slider.active.index >= getPagerQty() - 1; + // update the pager with active class + if (slider.settings.pager || slider.settings.pagerCustom) { updatePagerActive(slider.active.index); } + // // check for direction control update + if (slider.settings.controls) { updateDirectionControls(); } + // if slider is set to mode: "fade" + if (slider.settings.mode === 'fade') { + // if adaptiveHeight is true and next height is different from current height, animate to the new height + if (slider.settings.adaptiveHeight && slider.viewport.height() !== getViewportHeight()) { + slider.viewport.animate({height: getViewportHeight()}, slider.settings.adaptiveHeightSpeed); + } + // fade out the visible child and reset its z-index value + slider.children.filter(':visible').fadeOut(slider.settings.speed).css({zIndex: 0}); + // fade in the newly requested slide + slider.children.eq(slider.active.index).css('zIndex', slider.settings.slideZIndex + 1).fadeIn(slider.settings.speed, function() { + $(this).css('zIndex', slider.settings.slideZIndex); + updateAfterSlideTransition(); + }); + // slider mode is not "fade" + } else { + // if adaptiveHeight is true and next height is different from current height, animate to the new height + if (slider.settings.adaptiveHeight && slider.viewport.height() !== getViewportHeight()) { + slider.viewport.animate({height: getViewportHeight()}, slider.settings.adaptiveHeightSpeed); + } + // if carousel and not infinite loop + if (!slider.settings.infiniteLoop && slider.carousel && slider.active.last) { + if (slider.settings.mode === 'horizontal') { + // get the last child position + lastChild = slider.children.eq(slider.children.length - 1); + position = lastChild.position(); + // calculate the position of the last slide + moveBy = slider.viewport.width() - lastChild.outerWidth(); + } else { + // get last showing index position + lastShowingIndex = slider.children.length - slider.settings.minSlides; + position = slider.children.eq(lastShowingIndex).position(); + } + // horizontal carousel, going previous while on first slide (infiniteLoop mode) + } else if (slider.carousel && slider.active.last && direction === 'prev') { + // get the last child position + eq = slider.settings.moveSlides === 1 ? slider.settings.maxSlides - getMoveBy() : ((getPagerQty() - 1) * getMoveBy()) - (slider.children.length - slider.settings.maxSlides); + lastChild = el.children('.bx-clone').eq(eq); + position = lastChild.position(); + // if infinite loop and "Next" is clicked on the last slide + } else if (direction === 'next' && slider.active.index === 0) { + // get the last clone position + position = el.find('> .bx-clone').eq(slider.settings.maxSlides).position(); + slider.active.last = false; + // normal non-zero requests + } else if (slideIndex >= 0) { + //parseInt is applied to allow floats for slides/page + requestEl = slideIndex * parseInt(getMoveBy()); + position = slider.children.eq(requestEl).position(); + } + + /* If the position doesn't exist + * (e.g. if you destroy the slider on a next click), + * it doesn't throw an error. + */ + if (typeof (position) !== 'undefined') { + value = slider.settings.mode === 'horizontal' ? -(position.left - moveBy) : -position.top; + // plugin values to be animated + setPositionProperty(value, 'slide', slider.settings.speed); + } else { + slider.working = false; + } + } + if (slider.settings.ariaHidden) { applyAriaHiddenAttributes(slider.active.index * getMoveBy()); } + }; + + /** + * Transitions to the next slide in the show + */ + el.goToNextSlide = function() { + // if infiniteLoop is false and last page is showing, disregard call + if (!slider.settings.infiniteLoop && slider.active.last) { return; } + var pagerIndex = parseInt(slider.active.index) + 1; + el.goToSlide(pagerIndex, 'next'); + }; + + /** + * Transitions to the prev slide in the show + */ + el.goToPrevSlide = function() { + // if infiniteLoop is false and last page is showing, disregard call + if (!slider.settings.infiniteLoop && slider.active.index === 0) { return; } + var pagerIndex = parseInt(slider.active.index) - 1; + el.goToSlide(pagerIndex, 'prev'); + }; + + /** + * Starts the auto show + * + * @param preventControlUpdate (boolean) + * - if true, auto controls state will not be updated + */ + el.startAuto = function(preventControlUpdate) { + // if an interval already exists, disregard call + if (slider.interval) { return; } + // create an interval + slider.interval = setInterval(function() { + if (slider.settings.autoDirection === 'next') { + el.goToNextSlide(); + } else { + el.goToPrevSlide(); + } + }, slider.settings.pause); + // if auto controls are displayed and preventControlUpdate is not true + if (slider.settings.autoControls && preventControlUpdate !== true) { updateAutoControls('stop'); } + }; + + /** + * Stops the auto show + * + * @param preventControlUpdate (boolean) + * - if true, auto controls state will not be updated + */ + el.stopAuto = function(preventControlUpdate) { + // if no interval exists, disregard call + if (!slider.interval) { return; } + // clear the interval + clearInterval(slider.interval); + slider.interval = null; + // if auto controls are displayed and preventControlUpdate is not true + if (slider.settings.autoControls && preventControlUpdate !== true) { updateAutoControls('start'); } + }; + + /** + * Returns current slide index (zero-based) + */ + el.getCurrentSlide = function() { + return slider.active.index; + }; + + /** + * Returns current slide element + */ + el.getCurrentSlideElement = function() { + return slider.children.eq(slider.active.index); + }; + + /** + * Returns a slide element + * @param index (int) + * - The index (zero-based) of the element you want returned. + */ + el.getSlideElement = function(index) { + return slider.children.eq(index); + }; + + /** + * Returns number of slides in show + */ + el.getSlideCount = function() { + return slider.children.length; + }; + + /** + * Return slider.working variable + */ + el.isWorking = function() { + return slider.working; + }; + + /** + * Update all dynamic slider elements + */ + el.redrawSlider = function() { + // resize all children in ratio to new screen size + slider.children.add(el.find('.bx-clone')).outerWidth(getSlideWidth()); + // adjust the height + slider.viewport.css('height', getViewportHeight()); + // update the slide position + if (!slider.settings.ticker) { setSlidePosition(); } + // if active.last was true before the screen resize, we want + // to keep it last no matter what screen size we end on + if (slider.active.last) { slider.active.index = getPagerQty() - 1; } + // if the active index (page) no longer exists due to the resize, simply set the index as last + if (slider.active.index >= getPagerQty()) { slider.active.last = true; } + // if a pager is being displayed and a custom pager is not being used, update it + if (slider.settings.pager && !slider.settings.pagerCustom) { + populatePager(); + updatePagerActive(slider.active.index); + } + if (slider.settings.ariaHidden) { applyAriaHiddenAttributes(slider.active.index * getMoveBy()); } + }; + + /** + * Destroy the current instance of the slider (revert everything back to original state) + */ + el.destroySlider = function() { + // don't do anything if slider has already been destroyed + if (!slider.initialized) { return; } + slider.initialized = false; + $('.bx-clone', this).remove(); + slider.children.each(function() { + if ($(this).data('origStyle') !== undefined) { + $(this).attr('style', $(this).data('origStyle')); + } else { + $(this).removeAttr('style'); + } + }); + if ($(this).data('origStyle') !== undefined) { + this.attr('style', $(this).data('origStyle')); + } else { + $(this).removeAttr('style'); + } + $(this).unwrap().unwrap(); + if (slider.controls.el) { slider.controls.el.remove(); } + if (slider.controls.next) { slider.controls.next.remove(); } + if (slider.controls.prev) { slider.controls.prev.remove(); } + if (slider.pagerEl && slider.settings.controls && !slider.settings.pagerCustom) { slider.pagerEl.remove(); } + $('.bx-caption', this).remove(); + if (slider.controls.autoEl) { slider.controls.autoEl.remove(); } + clearInterval(slider.interval); + if (slider.settings.responsive) { $(window).unbind('resize', resizeWindow); } + if (slider.settings.keyboardEnabled) { $(document).unbind('keydown', keyPress); } + //remove self reference in data + $(this).removeData('bxSlider'); + }; + + /** + * Reload the slider (revert all DOM changes, and re-initialize) + */ + el.reloadSlider = function(settings) { + if (settings !== undefined) { options = settings; } + el.destroySlider(); + init(); + //store reference to self in order to access public functions later + $(el).data('bxSlider', this); + }; + + init(); + + $(el).data('bxSlider', this); + + // returns the current jQuery object + return this; + }; + +})(jQuery); diff --git a/design/atomic/js/bxslider/jquery.bxslider.min.css b/design/atomic/js/bxslider/jquery.bxslider.min.css new file mode 100644 index 0000000..a91cb96 --- /dev/null +++ b/design/atomic/js/bxslider/jquery.bxslider.min.css @@ -0,0 +1 @@ +.bx-wrapper{position:relative;margin-bottom:60px;padding:0;-ms-touch-action:pan-y;touch-action:pan-y;-moz-box-shadow:0 0 5px #ccc;-webkit-box-shadow:0 0 5px #ccc;box-shadow:0 0 5px #ccc;border:5px solid #fff;background:#fff}.bx-wrapper img{max-width:100%;display:block}.bxslider{margin:0;padding:0}ul.bxslider{list-style:none}.bx-viewport{-webkit-transform:translatez(0)}.bx-wrapper .bx-controls-auto,.bx-wrapper .bx-pager{position:absolute;bottom:-30px;width:100%}.bx-wrapper .bx-loading{min-height:50px;background:url(images/bx_loader.gif) center center no-repeat #fff;height:100%;width:100%;position:absolute;top:0;left:0;z-index:2000}.bx-wrapper .bx-pager{text-align:center;font-size:.85em;font-family:Arial;font-weight:700;color:#666;padding-top:20px}.bx-wrapper .bx-pager.bx-default-pager a{background:#666;text-indent:-9999px;display:block;width:10px;height:10px;margin:0 5px;outline:0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.bx-wrapper .bx-pager.bx-default-pager a.active,.bx-wrapper .bx-pager.bx-default-pager a:focus,.bx-wrapper .bx-pager.bx-default-pager a:hover{background:#000}.bx-wrapper .bx-controls-auto .bx-controls-auto-item,.bx-wrapper .bx-pager-item{display:inline-block;vertical-align:bottom}.bx-wrapper .bx-pager-item{font-size:0;line-height:0}.bx-wrapper .bx-prev{left:10px;background:url(images/controls.png) 0 -32px no-repeat}.bx-wrapper .bx-prev:focus,.bx-wrapper .bx-prev:hover{background-position:0 0}.bx-wrapper .bx-next{right:10px;background:url(images/controls.png) -43px -32px no-repeat}.bx-wrapper .bx-next:focus,.bx-wrapper .bx-next:hover{background-position:-43px 0}.bx-wrapper .bx-controls-direction a{position:absolute;top:50%;margin-top:-16px;outline:0;width:32px;height:32px;text-indent:-9999px;z-index:9999}.bx-wrapper .bx-controls-direction a.disabled{display:none}.bx-wrapper .bx-controls-auto{text-align:center}.bx-wrapper .bx-controls-auto .bx-start{display:block;text-indent:-9999px;width:10px;height:11px;outline:0;background:url(images/controls.png) -86px -11px no-repeat;margin:0 3px}.bx-wrapper .bx-controls-auto .bx-start.active,.bx-wrapper .bx-controls-auto .bx-start:focus,.bx-wrapper .bx-controls-auto .bx-start:hover{background-position:-86px 0}.bx-wrapper .bx-controls-auto .bx-stop{display:block;text-indent:-9999px;width:9px;height:11px;outline:0;background:url(images/controls.png) -86px -44px no-repeat;margin:0 3px}.bx-wrapper .bx-controls-auto .bx-stop.active,.bx-wrapper .bx-controls-auto .bx-stop:focus,.bx-wrapper .bx-controls-auto .bx-stop:hover{background-position:-86px -33px}.bx-wrapper .bx-controls.bx-has-controls-auto.bx-has-pager .bx-pager{text-align:left;width:80%}.bx-wrapper .bx-controls.bx-has-controls-auto.bx-has-pager .bx-controls-auto{right:0;width:35px}.bx-wrapper .bx-caption{position:absolute;bottom:0;left:0;background:#666;background:rgba(80,80,80,.75);width:100%}.bx-wrapper .bx-caption span{color:#fff;font-family:Arial;display:block;font-size:.85em;padding:10px} \ No newline at end of file diff --git a/design/atomic/js/bxslider/jquery.bxslider.min.js b/design/atomic/js/bxslider/jquery.bxslider.min.js new file mode 100644 index 0000000..16e64c0 --- /dev/null +++ b/design/atomic/js/bxslider/jquery.bxslider.min.js @@ -0,0 +1,7 @@ +/** + * bxSlider v4.2.12 + * Copyright 2013-2015 Steven Wanderski + * Written while drinking Belgian ales and listening to jazz + * Licensed under MIT (http://opensource.org/licenses/MIT) + */ +!function(t){var e={mode:"horizontal",slideSelector:"",infiniteLoop:!0,hideControlOnEnd:!1,speed:500,easing:null,slideMargin:0,startSlide:0,randomStart:!1,captions:!1,ticker:!1,tickerHover:!1,adaptiveHeight:!1,adaptiveHeightSpeed:500,video:!1,useCSS:!0,preloadImages:"visible",responsive:!0,slideZIndex:50,wrapperClass:"bx-wrapper",touchEnabled:!0,swipeThreshold:50,oneToOneTouch:!0,preventDefaultSwipeX:!0,preventDefaultSwipeY:!1,ariaLive:!0,ariaHidden:!0,keyboardEnabled:!1,pager:!0,pagerType:"full",pagerShortSeparator:" / ",pagerSelector:null,buildPager:null,pagerCustom:null,controls:!0,nextText:"Next",prevText:"Prev",nextSelector:null,prevSelector:null,autoControls:!1,startText:"Start",stopText:"Stop",autoControlsCombine:!1,autoControlsSelector:null,auto:!1,pause:4e3,autoStart:!0,autoDirection:"next",stopAutoOnClick:!1,autoHover:!1,autoDelay:0,autoSlideForOnePage:!1,minSlides:1,maxSlides:1,moveSlides:0,slideWidth:0,shrinkItems:!1,onSliderLoad:function(){return!0},onSlideBefore:function(){return!0},onSlideAfter:function(){return!0},onSlideNext:function(){return!0},onSlidePrev:function(){return!0},onSliderResize:function(){return!0}};t.fn.bxSlider=function(n){if(0===this.length)return this;if(this.length>1)return this.each(function(){t(this).bxSlider(n)}),this;var s={},o=this,r=t(window).width(),a=t(window).height();if(!t(o).data("bxSlider")){var l=function(){t(o).data("bxSlider")||(s.settings=t.extend({},e,n),s.settings.slideWidth=parseInt(s.settings.slideWidth),s.children=o.children(s.settings.slideSelector),s.children.length1||s.settings.maxSlides>1,s.carousel&&(s.settings.preloadImages="all"),s.minThreshold=s.settings.minSlides*s.settings.slideWidth+(s.settings.minSlides-1)*s.settings.slideMargin,s.maxThreshold=s.settings.maxSlides*s.settings.slideWidth+(s.settings.maxSlides-1)*s.settings.slideMargin,s.working=!1,s.controls={},s.interval=null,s.animProp="vertical"===s.settings.mode?"top":"left",s.usingCSS=s.settings.useCSS&&"fade"!==s.settings.mode&&function(){for(var t=document.createElement("div"),e=["WebkitPerspective","MozPerspective","OPerspective","msPerspective"],i=0;i
    '),s.viewport=o.parent(),s.settings.ariaLive&&!s.settings.ticker&&s.viewport.attr("aria-live","polite"),s.loader=t('
    '),s.viewport.prepend(s.loader),o.css({width:"horizontal"===s.settings.mode?1e3*s.children.length+215+"%":"auto",position:"relative"}),s.usingCSS&&s.settings.easing?o.css("-"+s.cssPrefix+"-transition-timing-function",s.settings.easing):s.settings.easing||(s.settings.easing="swing"),s.viewport.css({width:"100%",overflow:"hidden",position:"relative"}),s.viewport.parent().css({maxWidth:u()}),s.children.css({float:"horizontal"===s.settings.mode?"left":"none",listStyle:"none",position:"relative"}),s.children.css("width",h()),"horizontal"===s.settings.mode&&s.settings.slideMargin>0&&s.children.css("marginRight",s.settings.slideMargin),"vertical"===s.settings.mode&&s.settings.slideMargin>0&&s.children.css("marginBottom",s.settings.slideMargin),"fade"===s.settings.mode&&(s.children.css({position:"absolute",zIndex:0,display:"none"}),s.children.eq(s.settings.startSlide).css({zIndex:s.settings.slideZIndex,display:"block"})),s.controls.el=t('
    '),s.settings.captions&&P(),s.active.last=s.settings.startSlide===f()-1,s.settings.video&&o.fitVids(),("all"===s.settings.preloadImages||s.settings.ticker)&&(e=s.children),s.settings.ticker?s.settings.pager=!1:(s.settings.controls&&C(),s.settings.auto&&s.settings.autoControls&&T(),s.settings.pager&&w(),(s.settings.controls||s.settings.autoControls||s.settings.pager)&&s.viewport.after(s.controls.el)),c(e,g)},c=function(e,i){var n=e.find('img:not([src=""]), iframe').length,s=0;return 0===n?void i():void e.find('img:not([src=""]), iframe').each(function(){t(this).one("load error",function(){++s===n&&i()}).each(function(){this.complete&&t(this).trigger("load")})})},g=function(){if(s.settings.infiniteLoop&&"fade"!==s.settings.mode&&!s.settings.ticker){var e="vertical"===s.settings.mode?s.settings.minSlides:s.settings.maxSlides,i=s.children.slice(0,e).clone(!0).addClass("bx-clone"),n=s.children.slice(-e).clone(!0).addClass("bx-clone");s.settings.ariaHidden&&(i.attr("aria-hidden",!0),n.attr("aria-hidden",!0)),o.append(i).prepend(n)}s.loader.remove(),m(),"vertical"===s.settings.mode&&(s.settings.adaptiveHeight=!0),s.viewport.height(p()),o.redrawSlider(),s.settings.onSliderLoad.call(o,s.active.index),s.initialized=!0,s.settings.responsive&&t(window).bind("resize",Z),s.settings.auto&&s.settings.autoStart&&(f()>1||s.settings.autoSlideForOnePage)&&H(),s.settings.ticker&&W(),s.settings.pager&&I(s.settings.startSlide),s.settings.controls&&D(),s.settings.touchEnabled&&!s.settings.ticker&&N(),s.settings.keyboardEnabled&&!s.settings.ticker&&t(document).keydown(F)},p=function(){var e=0,n=t();if("vertical"===s.settings.mode||s.settings.adaptiveHeight)if(s.carousel){var o=1===s.settings.moveSlides?s.active.index:s.active.index*x();for(n=s.children.eq(o),i=1;i<=s.settings.maxSlides-1;i++)n=o+i>=s.children.length?n.add(s.children.eq(i-1)):n.add(s.children.eq(o+i))}else n=s.children.eq(s.active.index);else n=s.children;return"vertical"===s.settings.mode?(n.each(function(i){e+=t(this).outerHeight()}),s.settings.slideMargin>0&&(e+=s.settings.slideMargin*(s.settings.minSlides-1))):e=Math.max.apply(Math,n.map(function(){return t(this).outerHeight(!1)}).get()),"border-box"===s.viewport.css("box-sizing")?e+=parseFloat(s.viewport.css("padding-top"))+parseFloat(s.viewport.css("padding-bottom"))+parseFloat(s.viewport.css("border-top-width"))+parseFloat(s.viewport.css("border-bottom-width")):"padding-box"===s.viewport.css("box-sizing")&&(e+=parseFloat(s.viewport.css("padding-top"))+parseFloat(s.viewport.css("padding-bottom"))),e},u=function(){var t="100%";return s.settings.slideWidth>0&&(t="horizontal"===s.settings.mode?s.settings.maxSlides*s.settings.slideWidth+(s.settings.maxSlides-1)*s.settings.slideMargin:s.settings.slideWidth),t},h=function(){var t=s.settings.slideWidth,e=s.viewport.width();if(0===s.settings.slideWidth||s.settings.slideWidth>e&&!s.carousel||"vertical"===s.settings.mode)t=e;else if(s.settings.maxSlides>1&&"horizontal"===s.settings.mode){if(e>s.maxThreshold)return t;e0?s.viewport.width()s.maxThreshold?t=s.settings.maxSlides:(e=s.children.first().width()+s.settings.slideMargin,t=Math.floor((s.viewport.width()+s.settings.slideMargin)/e)):"vertical"===s.settings.mode&&(t=s.settings.minSlides),t},f=function(){var t=0,e=0,i=0;if(s.settings.moveSlides>0)if(s.settings.infiniteLoop)t=Math.ceil(s.children.length/x());else for(;e0&&s.settings.moveSlides<=v()?s.settings.moveSlides:v()},m=function(){var t,e,i;s.children.length>s.settings.maxSlides&&s.active.last&&!s.settings.infiniteLoop?"horizontal"===s.settings.mode?(e=s.children.last(),t=e.position(),S(-(t.left-(s.viewport.width()-e.outerWidth())),"reset",0)):"vertical"===s.settings.mode&&(i=s.children.length-s.settings.minSlides,t=s.children.eq(i).position(),S(-t.top,"reset",0)):(t=s.children.eq(s.active.index*x()).position(),s.active.index===f()-1&&(s.active.last=!0),void 0!==t&&("horizontal"===s.settings.mode?S(-t.left,"reset",0):"vertical"===s.settings.mode&&S(-t.top,"reset",0)))},S=function(e,i,n,r){var a,l;s.usingCSS?(l="vertical"===s.settings.mode?"translate3d(0, "+e+"px, 0)":"translate3d("+e+"px, 0, 0)",o.css("-"+s.cssPrefix+"-transition-duration",n/1e3+"s"),"slide"===i?(o.css(s.animProp,l),0!==n?o.bind("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd",function(e){t(e.target).is(o)&&(o.unbind("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd"),q())}):q()):"reset"===i?o.css(s.animProp,l):"ticker"===i&&(o.css("-"+s.cssPrefix+"-transition-timing-function","linear"),o.css(s.animProp,l),0!==n?o.bind("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd",function(e){t(e.target).is(o)&&(o.unbind("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd"),S(r.resetValue,"reset",0),L())}):(S(r.resetValue,"reset",0),L()))):(a={},a[s.animProp]=e,"slide"===i?o.animate(a,n,s.settings.easing,function(){q()}):"reset"===i?o.css(s.animProp,e):"ticker"===i&&o.animate(a,n,"linear",function(){S(r.resetValue,"reset",0),L()}))},b=function(){for(var e="",i="",n=f(),o=0;o'+i+"
    ";s.pagerEl.html(e)},w=function(){s.settings.pagerCustom?s.pagerEl=t(s.settings.pagerCustom):(s.pagerEl=t('
    '),s.settings.pagerSelector?t(s.settings.pagerSelector).html(s.pagerEl):s.controls.el.addClass("bx-has-pager").append(s.pagerEl),b()),s.pagerEl.on("click touchend","a",z)},C=function(){s.controls.next=t(''+s.settings.nextText+""),s.controls.prev=t(''+s.settings.prevText+""),s.controls.next.bind("click touchend",E),s.controls.prev.bind("click touchend",k),s.settings.nextSelector&&t(s.settings.nextSelector).append(s.controls.next),s.settings.prevSelector&&t(s.settings.prevSelector).append(s.controls.prev),s.settings.nextSelector||s.settings.prevSelector||(s.controls.directionEl=t('
    '),s.controls.directionEl.append(s.controls.prev).append(s.controls.next),s.controls.el.addClass("bx-has-controls-direction").append(s.controls.directionEl))},T=function(){s.controls.start=t('"),s.controls.stop=t('"),s.controls.autoEl=t('
    '),s.controls.autoEl.on("click",".bx-start",M),s.controls.autoEl.on("click",".bx-stop",y),s.settings.autoControlsCombine?s.controls.autoEl.append(s.controls.start):s.controls.autoEl.append(s.controls.start).append(s.controls.stop),s.settings.autoControlsSelector?t(s.settings.autoControlsSelector).html(s.controls.autoEl):s.controls.el.addClass("bx-has-controls-auto").append(s.controls.autoEl),A(s.settings.autoStart?"stop":"start")},P=function(){s.children.each(function(e){var i=t(this).find("img:first").attr("title");void 0!==i&&(""+i).length&&t(this).append('
    '+i+"
    ")})},E=function(t){t.preventDefault(),s.controls.el.hasClass("disabled")||(s.settings.auto&&s.settings.stopAutoOnClick&&o.stopAuto(),o.goToNextSlide())},k=function(t){t.preventDefault(),s.controls.el.hasClass("disabled")||(s.settings.auto&&s.settings.stopAutoOnClick&&o.stopAuto(),o.goToPrevSlide())},M=function(t){o.startAuto(),t.preventDefault()},y=function(t){o.stopAuto(),t.preventDefault()},z=function(e){var i,n;e.preventDefault(),s.controls.el.hasClass("disabled")||(s.settings.auto&&s.settings.stopAutoOnClick&&o.stopAuto(),i=t(e.currentTarget),void 0!==i.attr("data-slide-index")&&(n=parseInt(i.attr("data-slide-index")),n!==s.active.index&&o.goToSlide(n)))},I=function(e){var i=s.children.length;return"short"===s.settings.pagerType?(s.settings.maxSlides>1&&(i=Math.ceil(s.children.length/s.settings.maxSlides)),void s.pagerEl.html(e+1+s.settings.pagerShortSeparator+i)):(s.pagerEl.find("a").removeClass("active"),void s.pagerEl.each(function(i,n){t(n).find("a").eq(e).addClass("active")}))},q=function(){if(s.settings.infiniteLoop){var t="";0===s.active.index?t=s.children.eq(0).position():s.active.index===f()-1&&s.carousel?t=s.children.eq((f()-1)*x()).position():s.active.index===s.children.length-1&&(t=s.children.eq(s.children.length-1).position()),t&&("horizontal"===s.settings.mode?S(-t.left,"reset",0):"vertical"===s.settings.mode&&S(-t.top,"reset",0))}s.working=!1,s.settings.onSlideAfter.call(o,s.children.eq(s.active.index),s.oldIndex,s.active.index)},A=function(t){s.settings.autoControlsCombine?s.controls.autoEl.html(s.controls[t]):(s.controls.autoEl.find("a").removeClass("active"),s.controls.autoEl.find("a:not(.bx-"+t+")").addClass("active"))},D=function(){1===f()?(s.controls.prev.addClass("disabled"),s.controls.next.addClass("disabled")):!s.settings.infiniteLoop&&s.settings.hideControlOnEnd&&(0===s.active.index?(s.controls.prev.addClass("disabled"),s.controls.next.removeClass("disabled")):s.active.index===f()-1?(s.controls.next.addClass("disabled"),s.controls.prev.removeClass("disabled")):(s.controls.prev.removeClass("disabled"),s.controls.next.removeClass("disabled")))},H=function(){if(s.settings.autoDelay>0){setTimeout(o.startAuto,s.settings.autoDelay)}else o.startAuto(),t(window).focus(function(){o.startAuto()}).blur(function(){o.stopAuto()});s.settings.autoHover&&o.hover(function(){s.interval&&(o.stopAuto(!0),s.autoPaused=!0)},function(){s.autoPaused&&(o.startAuto(!0),s.autoPaused=null)})},W=function(){var e,i,n,r,a,l,d,c,g=0;"next"===s.settings.autoDirection?o.append(s.children.clone().addClass("bx-clone")):(o.prepend(s.children.clone().addClass("bx-clone")),e=s.children.first().position(),g="horizontal"===s.settings.mode?-e.left:-e.top),S(g,"reset",0),s.settings.pager=!1,s.settings.controls=!1,s.settings.autoControls=!1,s.settings.tickerHover&&(s.usingCSS?(r="horizontal"===s.settings.mode?4:5,s.viewport.hover(function(){i=o.css("-"+s.cssPrefix+"-transform"),n=parseFloat(i.split(",")[r]),S(n,"reset",0)},function(){c=0,s.children.each(function(e){c+="horizontal"===s.settings.mode?t(this).outerWidth(!0):t(this).outerHeight(!0)}),a=s.settings.speed/c,l="horizontal"===s.settings.mode?"left":"top",d=a*(c-Math.abs(parseInt(n))),L(d)})):s.viewport.hover(function(){o.stop()},function(){c=0,s.children.each(function(e){c+="horizontal"===s.settings.mode?t(this).outerWidth(!0):t(this).outerHeight(!0)}),a=s.settings.speed/c,l="horizontal"===s.settings.mode?"left":"top",d=a*(c-Math.abs(parseInt(o.css(l)))),L(d)})),L()},L=function(t){var e,i,n,r=t?t:s.settings.speed,a={left:0,top:0},l={left:0,top:0};"next"===s.settings.autoDirection?a=o.find(".bx-clone").first().position():l=s.children.first().position(),e="horizontal"===s.settings.mode?-a.left:-a.top,i="horizontal"===s.settings.mode?-l.left:-l.top,n={resetValue:i},S(e,"ticker",r,n)},O=function(e){var i=t(window),n={top:i.scrollTop(),left:i.scrollLeft()},s=e.offset();return n.right=n.left+i.width(),n.bottom=n.top+i.height(),s.right=s.left+e.outerWidth(),s.bottom=s.top+e.outerHeight(),!(n.rights.right||n.bottoms.bottom)},F=function(t){var e=document.activeElement.tagName.toLowerCase(),i="input|textarea",n=new RegExp(e,["i"]),s=n.exec(i);if(null==s&&O(o)){if(39===t.keyCode)return E(t),!1;if(37===t.keyCode)return k(t),!1}},N=function(){s.touch={start:{x:0,y:0},end:{x:0,y:0}},s.viewport.bind("touchstart MSPointerDown pointerdown",X),s.viewport.on("click",".bxslider a",function(t){s.viewport.hasClass("click-disabled")&&(t.preventDefault(),s.viewport.removeClass("click-disabled"))})},X=function(t){if(s.controls.el.addClass("disabled"),s.working)t.preventDefault(),s.controls.el.removeClass("disabled");else{s.touch.originalPos=o.position();var e=t.originalEvent,i="undefined"!=typeof e.changedTouches?e.changedTouches:[e];s.touch.start.x=i[0].pageX,s.touch.start.y=i[0].pageY,s.viewport.get(0).setPointerCapture&&(s.pointerId=e.pointerId,s.viewport.get(0).setPointerCapture(s.pointerId)),s.viewport.bind("touchmove MSPointerMove pointermove",V),s.viewport.bind("touchend MSPointerUp pointerup",R),s.viewport.bind("MSPointerCancel pointercancel",Y)}},Y=function(t){S(s.touch.originalPos.left,"reset",0),s.controls.el.removeClass("disabled"),s.viewport.unbind("MSPointerCancel pointercancel",Y),s.viewport.unbind("touchmove MSPointerMove pointermove",V),s.viewport.unbind("touchend MSPointerUp pointerup",R),s.viewport.get(0).releasePointerCapture&&s.viewport.get(0).releasePointerCapture(s.pointerId)},V=function(t){var e=t.originalEvent,i="undefined"!=typeof e.changedTouches?e.changedTouches:[e],n=Math.abs(i[0].pageX-s.touch.start.x),o=Math.abs(i[0].pageY-s.touch.start.y),r=0,a=0;3*n>o&&s.settings.preventDefaultSwipeX?t.preventDefault():3*o>n&&s.settings.preventDefaultSwipeY&&t.preventDefault(),"fade"!==s.settings.mode&&s.settings.oneToOneTouch&&("horizontal"===s.settings.mode?(a=i[0].pageX-s.touch.start.x,r=s.touch.originalPos.left+a):(a=i[0].pageY-s.touch.start.y,r=s.touch.originalPos.top+a),S(r,"reset",0))},R=function(t){s.viewport.unbind("touchmove MSPointerMove pointermove",V),s.controls.el.removeClass("disabled");var e=t.originalEvent,i="undefined"!=typeof e.changedTouches?e.changedTouches:[e],n=0,r=0;s.touch.end.x=i[0].pageX,s.touch.end.y=i[0].pageY,"fade"===s.settings.mode?(r=Math.abs(s.touch.start.x-s.touch.end.x),r>=s.settings.swipeThreshold&&(s.touch.start.x>s.touch.end.x?o.goToNextSlide():o.goToPrevSlide(),o.stopAuto())):("horizontal"===s.settings.mode?(r=s.touch.end.x-s.touch.start.x,n=s.touch.originalPos.left):(r=s.touch.end.y-s.touch.start.y,n=s.touch.originalPos.top),!s.settings.infiniteLoop&&(0===s.active.index&&r>0||s.active.last&&r<0)?S(n,"reset",200):Math.abs(r)>=s.settings.swipeThreshold?(r<0?o.goToNextSlide():o.goToPrevSlide(),o.stopAuto()):S(n,"reset",200)),s.viewport.unbind("touchend MSPointerUp pointerup",R),s.viewport.get(0).releasePointerCapture&&s.viewport.get(0).releasePointerCapture(s.pointerId)},Z=function(e){if(s.initialized)if(s.working)window.setTimeout(Z,10);else{var i=t(window).width(),n=t(window).height();r===i&&a===n||(r=i,a=n,o.redrawSlider(),s.settings.onSliderResize.call(o,s.active.index))}},B=function(t){var e=v();s.settings.ariaHidden&&!s.settings.ticker&&(s.children.attr("aria-hidden","true"),s.children.slice(t,t+e).attr("aria-hidden","false"))},U=function(t){return t<0?s.settings.infiniteLoop?f()-1:s.active.index:t>=f()?s.settings.infiniteLoop?0:s.active.index:t};return o.goToSlide=function(e,i){var n,r,a,l,d=!0,c=0,g={left:0,top:0},u=null;if(s.oldIndex=s.active.index,s.active.index=U(e),!s.working&&s.active.index!==s.oldIndex){if(s.working=!0,d=s.settings.onSlideBefore.call(o,s.children.eq(s.active.index),s.oldIndex,s.active.index),"undefined"!=typeof d&&!d)return s.active.index=s.oldIndex,void(s.working=!1);"next"===i?s.settings.onSlideNext.call(o,s.children.eq(s.active.index),s.oldIndex,s.active.index)||(d=!1):"prev"===i&&(s.settings.onSlidePrev.call(o,s.children.eq(s.active.index),s.oldIndex,s.active.index)||(d=!1)),s.active.last=s.active.index>=f()-1,(s.settings.pager||s.settings.pagerCustom)&&I(s.active.index),s.settings.controls&&D(),"fade"===s.settings.mode?(s.settings.adaptiveHeight&&s.viewport.height()!==p()&&s.viewport.animate({height:p()},s.settings.adaptiveHeightSpeed),s.children.filter(":visible").fadeOut(s.settings.speed).css({zIndex:0}),s.children.eq(s.active.index).css("zIndex",s.settings.slideZIndex+1).fadeIn(s.settings.speed,function(){t(this).css("zIndex",s.settings.slideZIndex),q()})):(s.settings.adaptiveHeight&&s.viewport.height()!==p()&&s.viewport.animate({height:p()},s.settings.adaptiveHeightSpeed),!s.settings.infiniteLoop&&s.carousel&&s.active.last?"horizontal"===s.settings.mode?(u=s.children.eq(s.children.length-1),g=u.position(),c=s.viewport.width()-u.outerWidth()):(n=s.children.length-s.settings.minSlides,g=s.children.eq(n).position()):s.carousel&&s.active.last&&"prev"===i?(r=1===s.settings.moveSlides?s.settings.maxSlides-x():(f()-1)*x()-(s.children.length-s.settings.maxSlides),u=o.children(".bx-clone").eq(r),g=u.position()):"next"===i&&0===s.active.index?(g=o.find("> .bx-clone").eq(s.settings.maxSlides).position(),s.active.last=!1):e>=0&&(l=e*parseInt(x()),g=s.children.eq(l).position()),"undefined"!=typeof g?(a="horizontal"===s.settings.mode?-(g.left-c):-g.top,S(a,"slide",s.settings.speed)):s.working=!1),s.settings.ariaHidden&&B(s.active.index*x())}},o.goToNextSlide=function(){if(s.settings.infiniteLoop||!s.active.last){var t=parseInt(s.active.index)+1;o.goToSlide(t,"next")}},o.goToPrevSlide=function(){if(s.settings.infiniteLoop||0!==s.active.index){var t=parseInt(s.active.index)-1;o.goToSlide(t,"prev")}},o.startAuto=function(t){s.interval||(s.interval=setInterval(function(){"next"===s.settings.autoDirection?o.goToNextSlide():o.goToPrevSlide()},s.settings.pause),s.settings.autoControls&&t!==!0&&A("stop"))},o.stopAuto=function(t){s.interval&&(clearInterval(s.interval),s.interval=null,s.settings.autoControls&&t!==!0&&A("start"))},o.getCurrentSlide=function(){return s.active.index},o.getCurrentSlideElement=function(){return s.children.eq(s.active.index)},o.getSlideElement=function(t){return s.children.eq(t)},o.getSlideCount=function(){return s.children.length},o.isWorking=function(){return s.working},o.redrawSlider=function(){s.children.add(o.find(".bx-clone")).outerWidth(h()),s.viewport.css("height",p()),s.settings.ticker||m(),s.active.last&&(s.active.index=f()-1),s.active.index>=f()&&(s.active.last=!0),s.settings.pager&&!s.settings.pagerCustom&&(b(),I(s.active.index)),s.settings.ariaHidden&&B(s.active.index*x())},o.destroySlider=function(){s.initialized&&(s.initialized=!1,t(".bx-clone",this).remove(),s.children.each(function(){void 0!==t(this).data("origStyle")?t(this).attr("style",t(this).data("origStyle")):t(this).removeAttr("style")}),void 0!==t(this).data("origStyle")?this.attr("style",t(this).data("origStyle")):t(this).removeAttr("style"),t(this).unwrap().unwrap(),s.controls.el&&s.controls.el.remove(),s.controls.next&&s.controls.next.remove(),s.controls.prev&&s.controls.prev.remove(),s.pagerEl&&s.settings.controls&&!s.settings.pagerCustom&&s.pagerEl.remove(),t(".bx-caption",this).remove(),s.controls.autoEl&&s.controls.autoEl.remove(),clearInterval(s.interval),s.settings.responsive&&t(window).unbind("resize",Z),s.settings.keyboardEnabled&&t(document).unbind("keydown",F),t(this).removeData("bxSlider"))},o.reloadSlider=function(e){void 0!==e&&(n=e),o.destroySlider(),l(),t(o).data("bxSlider",this)},l(),t(o).data("bxSlider",this),this}}}(jQuery); \ No newline at end of file diff --git a/design/atomic/js/collapse-panel.js b/design/atomic/js/collapse-panel.js new file mode 100644 index 0000000..635e9bb --- /dev/null +++ b/design/atomic/js/collapse-panel.js @@ -0,0 +1,48 @@ +(function($) { + $.fn.panels = function() { + $this = $(this); console.log($this) + $(this).find('.panel-body').hide(); + $(this).find('.panel-title').prepend('
    '); + $(this).each(function() { + $(this).find('.collapse-button').css('cursor','pointer').click(function() { + $this.find('.panel-body').slideToggle('fast'); + }); + }); + }; +})(jQuery); + + +$(document).ready(function() { + //$('.collapse-panel').panels(); + + $('.collapse-panel').each(function(){ + var $el = $(this); + $el.find('.panel-body').hide(); + $el.find('.panel-title').prepend('
    '); + + $el.find('.collapse-button').css('cursor','pointer').click(function() { + $el.find('.panel-body').slideToggle('fast'); + }); + }); + + + if ($('.container').width() < 940){ + $('.panel-body').hide(); + } else { + $('.panel-body').show(); + } + + if($('.services-mobile-menu li.active').length){ + $('.services-mobile-menu .panel-body').show(); + $('.services-mobile-menu li.active>ul').show(); + } + +}); + +//$(window).resize(function() { +// if ($('.container').width() < 940){ +// $('.panel-body').hide(); +// } else { +// $('.panel-body').show(); +// } +//}); \ No newline at end of file diff --git a/design/atomic/js/common7_3_3.js b/design/atomic/js/common7_3_3.js new file mode 100644 index 0000000..aaeffca --- /dev/null +++ b/design/atomic/js/common7_3_3.js @@ -0,0 +1,884 @@ +$(function(){ + + $('.set_idealform, #cmp_box2').idealforms(); + $('#site-select').change(function(){ + document.location = 'brands/'+$(this).val(); + }); + + var sideLeft_sel = $('#sideLeft .idealselect'); + sideLeft_sel.width('226px'); + sideLeft_sel.find('ul').width('224px'); + + // подкорректируем пункты меню с подменю + var topnav = $('#topnav'); + topnav.find('li:first a').css('border-top', 'none'); + topnav.find('li:last a').css('border-bottom', 'none'); + $('.sub ul', topnav).each(function(){ + $(this).find('a:last').css('border-bottom', 'none'); + }); + + // скрытие value в форме авторизации при фокусе + var auth_form_input = $('#authfotm2 input[type="text"], #authfotm2 input[type="password"], #s_query, .qnt_text'); + auth_form_input.focus(function(){ + if($(this).val() == this.defaultValue){ + $(this).val(''); + } + }); + + auth_form_input.blur(function(){ + if($(this).val() == ''){ + $(this).val(this.defaultValue); + } + }); + + // \\ скрытие value в форме авторизации при фокусе + + + + $(function() { + $.fn.scrollToTop = function() { + $(this).hide().removeAttr("href"); + if ($(window).scrollTop() != "0") { + $(this).fadeIn("slow") + } + var scrollDiv = $(this); + $(window).scroll(function() { + if ($(window).scrollTop() == "0") { + $(scrollDiv).fadeOut("slow") + } else { + $(scrollDiv).fadeIn("slow") + } + }); + $(this).click(function() { + $("html, body").animate({ + scrollTop: 0 + }, "slow") + }) + } + }); + $(function() { + $("#w2b-StoTop").scrollToTop(); + }); + +}); + +// LazyLoad - медленная загрузка изображений http://www.appelsiini.net/projects/lazyload +(function(a,b){$window=a(b),a.fn.lazyload=function(c){function f(){var b=0;d.each(function(){var c=a(this);if(e.skip_invisible&&!c.is(":visible"))return;if(!a.abovethetop(this,e)&&!a.leftofbegin(this,e))if(!a.belowthefold(this,e)&&!a.rightoffold(this,e))c.trigger("appear");else if(++b>e.failure_limit)return!1})}var d=this,e={threshold:0,failure_limit:0,event:"scroll",effect:"show",container:b,data_attribute:"original",skip_invisible:!0,appear:null,load:null};return c&&(undefined!==c.failurelimit&&(c.failure_limit=c.failurelimit,delete c.failurelimit),undefined!==c.effectspeed&&(c.effect_speed=c.effectspeed,delete c.effectspeed),a.extend(e,c)),$container=e.container===undefined||e.container===b?$window:a(e.container),0===e.event.indexOf("scroll")&&$container.bind(e.event,function(a){return f()}),this.each(function(){var b=this,c=a(b);b.loaded=!1,c.one("appear",function(){if(!this.loaded){if(e.appear){var f=d.length;e.appear.call(b,f,e)}a("").bind("load",function(){c.hide().attr("src",c.data(e.data_attribute))[e.effect](e.effect_speed),b.loaded=!0;var f=a.grep(d,function(a){return!a.loaded});d=a(f);if(e.load){var g=d.length;e.load.call(b,g,e)}}).attr("src",c.data(e.data_attribute))}}),0!==e.event.indexOf("scroll")&&c.bind(e.event,function(a){b.loaded||c.trigger("appear")})}),$window.bind("resize",function(a){f()}),f(),this},a.belowthefold=function(c,d){var e;return d.container===undefined||d.container===b?e=$window.height()+$window.scrollTop():e=$container.offset().top+$container.height(),e<=a(c).offset().top-d.threshold},a.rightoffold=function(c,d){var e;return d.container===undefined||d.container===b?e=$window.width()+$window.scrollLeft():e=$container.offset().left+$container.width(),e<=a(c).offset().left-d.threshold},a.abovethetop=function(c,d){var e;return d.container===undefined||d.container===b?e=$window.scrollTop():e=$container.offset().top,e>=a(c).offset().top+d.threshold+a(c).height()},a.leftofbegin=function(c,d){var e;return d.container===undefined||d.container===b?e=$window.scrollLeft():e=$container.offset().left,e>=a(c).offset().left+d.threshold+a(c).width()},a.inviewport=function(b,c){return!a.rightofscreen(b,c)&&!a.leftofscreen(b,c)&&!a.belowthefold(b,c)&&!a.abovethetop(b,c)},a.extend(a.expr[":"],{"below-the-fold":function(c){return a.belowthefold(c,{threshold:0,container:b})},"above-the-top":function(c){return!a.belowthefold(c,{threshold:0,container:b})},"right-of-screen":function(c){return a.rightoffold(c,{threshold:0,container:b})},"left-of-screen":function(c){return!a.rightoffold(c,{threshold:0,container:b})},"in-viewport":function(c){return!a.inviewport(c,{threshold:0,container:b})},"above-the-fold":function(c){return!a.belowthefold(c,{threshold:0,container:b})},"right-of-fold":function(c){return a.rightoffold(c,{threshold:0,container:b})},"left-of-fold":function(c){return!a.rightoffold(c,{threshold:0,container:b})}})})(jQuery,window) + + +if(typeof deconcept=="undefined"){var deconcept={};}if(typeof deconcept.util=="undefined"){deconcept.util={};}if(typeof deconcept.SWFObjectUtil=="undefined"){deconcept.SWFObjectUtil={};}deconcept.SWFObject=function(_1,id,w,h,_5,c,_7,_8,_9,_a){if(!document.getElementById){return;}this.DETECT_KEY=_a?_a:"detectflash";this.skipDetect=deconcept.util.getRequestParameter(this.DETECT_KEY);this.params={};this.variables={};this.attributes=[];if(_1){this.setAttribute("swf",_1);}if(id){this.setAttribute("id",id);}if(w){this.setAttribute("width",w);}if(h){this.setAttribute("height",h);}if(_5){this.setAttribute("version",new deconcept.PlayerVersion(_5.toString().split(".")));}this.installedVer=deconcept.SWFObjectUtil.getPlayerVersion();if(!window.opera&&document.all&&this.installedVer.major>7){if(!deconcept.unloadSet){deconcept.SWFObjectUtil.prepUnload=function(){__flash_unloadHandler=function(){};__flash_savedUnloadHandler=function(){};window.attachEvent("onunload",deconcept.SWFObjectUtil.cleanupSWFs);};window.attachEvent("onbeforeunload",deconcept.SWFObjectUtil.prepUnload);deconcept.unloadSet=true;}}if(c){this.addParam("bgcolor",c);}var q=_7?_7:"high";this.addParam("quality",q);this.setAttribute("useExpressInstall",false);this.setAttribute("doExpressInstall",false);var _c=(_8)?_8:window.location;this.setAttribute("xiRedirectUrl",_c);this.setAttribute("redirectUrl","");if(_9){this.setAttribute("redirectUrl",_9);}};deconcept.SWFObject.prototype={useExpressInstall:function(_d){this.xiSWFPath=!_d?"expressinstall.swf":_d;this.setAttribute("useExpressInstall",true);},setAttribute:function(_e,_f){this.attributes[_e]=_f;},getAttribute:function(_10){return this.attributes[_10]||"";},addParam:function(_11,_12){this.params[_11]=_12;},getParams:function(){return this.params;},addVariable:function(_13,_14){this.variables[_13]=_14;},getVariable:function(_15){return this.variables[_15]||"";},getVariables:function(){return this.variables;},getVariablePairs:function(){var _16=[];var key;var _18=this.getVariables();for(key in _18){_16[_16.length]=key+"="+_18[key];}return _16;},getSWFHTML:function(){var _19="";if(navigator.plugins&&navigator.mimeTypes&&navigator.mimeTypes.length){if(this.getAttribute("doExpressInstall")){this.addVariable("MMplayerType","PlugIn");this.setAttribute("swf",this.xiSWFPath);}_19="0){_19+="flashvars=\""+_1c+"\"";}_19+="/>";}else{if(this.getAttribute("doExpressInstall")){this.addVariable("MMplayerType","ActiveX");this.setAttribute("swf",this.xiSWFPath);}_19="";_19+="";var _1d=this.getParams();for(var key in _1d){_19+="";}var _1f=this.getVariablePairs().join("&");if(_1f.length>0){_19+="";}_19+="";}return _19;},write:function(_20){if(this.getAttribute("useExpressInstall")){var _21=new deconcept.PlayerVersion([6,0,65]);if(this.installedVer.versionIsValid(_21)&&!this.installedVer.versionIsValid(this.getAttribute("version"))){this.setAttribute("doExpressInstall",true);this.addVariable("MMredirectURL",escape(this.getAttribute("xiRedirectUrl")));document.title=document.title.slice(0,47)+" - Flash Player Installation";this.addVariable("MMdoctitle",document.title);}}if(this.skipDetect||this.getAttribute("doExpressInstall")||this.installedVer.versionIsValid(this.getAttribute("version"))){var n=(typeof _20=="string")?document.getElementById(_20):_20;n.innerHTML=this.getSWFHTML();return true;}else{if(this.getAttribute("redirectUrl")!=""){document.location.replace(this.getAttribute("redirectUrl"));}}return false;}};deconcept.SWFObjectUtil.getPlayerVersion=function(){var _23=new deconcept.PlayerVersion([0,0,0]);if(navigator.plugins&&navigator.mimeTypes.length){var x=navigator.plugins["Shockwave Flash"];if(x&&x.description){_23=new deconcept.PlayerVersion(x.description.replace(/([a-zA-Z]|\s)+/,"").replace(/(\s+r|\s+b[0-9]+)/,".").split("."));}}else{if(navigator.userAgent&&navigator.userAgent.indexOf("Windows CE")>=0){var axo=1;var _26=3;while(axo){try{_26++;axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash."+_26);_23=new deconcept.PlayerVersion([_26,0,0]);}catch(e){axo=null;}}}else{try{var axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");}catch(e){try{var axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");_23=new deconcept.PlayerVersion([6,0,21]);axo.AllowScriptAccess="always";}catch(e){if(_23.major==6){return _23;}}try{axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash");}catch(e){}}if(axo!=null){_23=new deconcept.PlayerVersion(axo.GetVariable("$version").split(" ")[1].split(","));}}}return _23;};deconcept.PlayerVersion=function(_29){this.major=_29[0]!=null?parseInt(_29[0]):0;this.minor=_29[1]!=null?parseInt(_29[1]):0;this.rev=_29[2]!=null?parseInt(_29[2]):0;};deconcept.PlayerVersion.prototype.versionIsValid=function(fv){if(this.majorfv.major){return true;}if(this.minorfv.minor){return true;}if(this.rev=0;i--){_2f[i].style.display="none";for(var x in _2f[i]){if(typeof _2f[i][x]=="function"){_2f[i][x]=function(){};}}}};if(!document.getElementById&&document.all){document.getElementById=function(id){return document.all[id];};}var getQueryParamValue=deconcept.util.getRequestParameter;var FlashObject=deconcept.SWFObject;var SWFObject=deconcept.SWFObject; + + +(function($){$.fn.easyTooltip=function(options){var defaults={xOffset:10,yOffset:25,tooltipId:"easyTooltip",clickRemove:false,content:"",useElement:""};var options=$.extend(defaults,options);var content;this.each(function(){var title=$(this).attr("title");$(this).hover(function(e){content=(options.content!="")?options.content:title;content=(options.useElement!="")?$("#"+options.useElement).html():content;$(this).attr("title","");if(content!=""&&content!=undefined){$("body").append("
    "+content+"
    ");$("#"+options.tooltipId).css("position","absolute").css("top",(e.pageY-options.yOffset)+"px").css("left",(e.pageX+options.xOffset)+"px").css("display","none").fadeIn("slow")}},function(){$("#"+options.tooltipId).remove();$(this).attr("title",title)});$(this).mousemove(function(e){$("#"+options.tooltipId).css("top",(e.pageY-options.yOffset)+"px").css("left",(e.pageX+options.xOffset)+"px")});if(options.clickRemove){$(this).mousedown(function(e){$("#"+options.tooltipId).remove();$(this).attr("title",title)})}})}})(jQuery); +$(document).ready(function(){ + var options_tooltip = { + xOffset : 20, + yOffset : 40 + } + $('a, .any').easyTooltip(options_tooltip); + $('.b_imgage').each(function(){ + $(this).easyTooltip + ({ + tooltipId : 'easyTooltip2', + content : $(this).next().html(), + xOffset : 40, + yOffset : 60 + }); + }); + + $('.b_img').each(function(){ + $(this).easyTooltip + ({ + tooltipId : 'easyTooltip3', + content : $(this).next().html(), + xOffset : 40, + yOffset : 60 + }); + }); + + $(".lazy").lazyload({ + effect : "fadeIn", + threshold : 500 + }); + + +}); + + + +//Ajax-form submit + (function($) { +$.fn.ajaxSubmit = function(options) { + if (typeof options == 'function') + options = { success: options }; + + options = $.extend({ + url: this.attr('action') || window.location.toString(), + type: this.attr('method') || 'GET' + }, options || {}); + + var veto = {}; + this.trigger('form-pre-serialize', [this, options, veto]); + if (veto.veto) return this; + + var a = this.formToArray(options.semantic); + if (options.data) { + for (var n in options.data) + a.push( { name: n, value: options.data[n] } ); + } + + if (options.beforeSubmit && options.beforeSubmit(a, this, options) === false) return this; + + this.trigger('form-submit-validate', [a, this, options, veto]); + if (veto.veto) return this; + + var q = $.param(a); + + if (options.type.toUpperCase() == 'GET') { + options.url += (options.url.indexOf('?') >= 0 ? '&' : '?') + q; + options.data = null; + } + else + options.data = q; + + var $form = this, callbacks = []; + if (options.resetForm) callbacks.push(function() { $form.resetForm(); }); + if (options.clearForm) callbacks.push(function() { $form.clearForm(); }); + + if (!options.dataType && options.target) { + var oldSuccess = options.success || function(){}; + callbacks.push(function(data) { + $(options.target).fadeIn(300); + $(options.target).html(data).each(oldSuccess, arguments); + + }); + } + else if (options.success) + callbacks.push(options.success); + + options.success = function(data, status) { + for (var i=0, max=callbacks.length; i < max; i++) + callbacks[i](data, status, $form); + }; + + var files = $('input:file', this).fieldValue(); + var found = false; + for (var j=0; j < files.length; j++) + if (files[j]) + found = true; + + if (options.iframe || found) { + if ($.browser.safari && options.closeKeepAlive) + $.get(options.closeKeepAlive, fileUpload); + else + fileUpload(); + } + else + $.ajax(options); + + this.trigger('form-submit-notify', [this, options]); + return this; + function fileUpload() { + var form = $form[0]; + var opts = $.extend({}, $.ajaxSettings, options); + + var id = 'jqFormIO' + (new Date().getTime()); + var $io = $(''); + $("#fancy_bigIframe").css({'width': $(window).width(), 'height': $(document).height(), 'opacity': 0}); + } + + $("#fancy_overlay").click($.fn.fancybox.close); + } + + opts.itemArray = []; + opts.itemNum = 0; + + if (jQuery.isFunction(o.itemLoadCallback)) { + o.itemLoadCallback.apply(this, [opts]); + + var c = $(el).children("img:first").length ? $(el).children("img:first") : $(el); + var tmp = {'width': c.width(), 'height': c.height(), 'pos': $.fn.fancybox.getPosition(c)} + + for (var i = 0; i < opts.itemArray.length; i++) { + opts.itemArray[i].o = $.extend({}, o, opts.itemArray[i].o); + + if (o.zoomSpeedIn > 0 || o.zoomSpeedOut > 0) { + opts.itemArray[i].orig = tmp; + } + } + + } else { + if (!el.rel || el.rel == '') { + var item = {url: el.href, title: el.title, o: o}; + + if (o.zoomSpeedIn > 0 || o.zoomSpeedOut > 0) { + var c = $(el).children("img:first").length ? $(el).children("img:first") : $(el); + item.orig = {'width': c.width(), 'height': c.height(), 'pos': $.fn.fancybox.getPosition(c)} + } + + opts.itemArray.push(item); + + } else { + var arr = $("a[rel=" + el.rel + "]").get(); + + for (var i = 0; i < arr.length; i++) { + var tmp = $.metadata ? $.extend({}, o, $(arr[i]).metadata()) : o; + var item = {url: arr[i].href, title: arr[i].title, o: tmp}; + + if (o.zoomSpeedIn > 0 || o.zoomSpeedOut > 0) { + var c = $(arr[i]).children("img:first").length ? $(arr[i]).children("img:first") : $(el); + + item.orig = {'width': c.width(), 'height': c.height(), 'pos': $.fn.fancybox.getPosition(c)} + } + + if (arr[i].href == el.href) opts.itemNum = i; + + opts.itemArray.push(item); + } + } + } + + $.fn.fancybox.changeItem(opts.itemNum); + }; + + $.fn.fancybox.changeItem = function(n) { + $.fn.fancybox.showLoading(); + + opts.itemNum = n; + + $("#fancy_nav").empty(); + $("#fancy_outer").stop(); + $("#fancy_title").hide(); + $(document).unbind("keydown"); + + imgRegExp = imgTypes.join('|'); + imgRegExp = new RegExp('\.' + imgRegExp + '$', 'i'); + + var url = opts.itemArray[n].url; + + if (url.match(/#/)) { + var target = window.location.href.split('#')[0]; target = url.replace(target,''); + + $.fn.fancybox.showItem('
    ' + $(target).html() + '
    '); + + $("#fancy_loading").hide(); + + } else if (url.match(imgRegExp)) { + $(imgPreloader).unbind('load').bind('load', function() { + $("#fancy_loading").hide(); + + opts.itemArray[n].o.frameWidth = imgPreloader.width; + opts.itemArray[n].o.frameHeight = imgPreloader.height; + + $.fn.fancybox.showItem(''); + + }).attr('src', url + '?rand=' + Math.floor(Math.random() * 999999999) ); + + } else { + $.fn.fancybox.showItem(''); + } + }; + + $.fn.fancybox.showIframe = function() { + $("#fancy_loading").hide(); + $("#fancy_frame").show(); + }; + + $.fn.fancybox.showItem = function(val) { + $.fn.fancybox.preloadNeighborImages(); + + var viewportPos = $.fn.fancybox.getViewport(); + var itemSize = $.fn.fancybox.getMaxSize(viewportPos[0] - 50, viewportPos[1] - 100, opts.itemArray[opts.itemNum].o.frameWidth, opts.itemArray[opts.itemNum].o.frameHeight); + + var itemLeft = viewportPos[2] + Math.round((viewportPos[0] - itemSize[0]) / 2) - 20; + var itemTop = viewportPos[3] + Math.round((viewportPos[1] - itemSize[1]) / 2) - 40; + + var itemOpts = { + 'left': itemLeft, + 'top': itemTop, + 'width': itemSize[0] + 'px', + 'height': itemSize[1] + 'px' + } + + if (opts.active) { + $('#fancy_content').fadeOut("normal", function() { + $("#fancy_content").empty(); + + $("#fancy_outer").animate(itemOpts, "normal", function() { + $("#fancy_content").append($(val)).fadeIn("normal"); + $.fn.fancybox.updateDetails(); + }); + }); + + } else { + opts.active = true; + + $("#fancy_content").empty(); + + if ($("#fancy_content").is(":animated")) { + console.info('animated!'); + } + + if (opts.itemArray[opts.itemNum].o.zoomSpeedIn > 0) { + opts.animating = true; + itemOpts.opacity = "show"; + + $("#fancy_outer").css({ + 'top': opts.itemArray[opts.itemNum].orig.pos.top - 18, + 'left': opts.itemArray[opts.itemNum].orig.pos.left - 18, + 'height': opts.itemArray[opts.itemNum].orig.height, + 'width': opts.itemArray[opts.itemNum].orig.width + }); + + $("#fancy_content").append($(val)).show(); + + $("#fancy_outer").animate(itemOpts, opts.itemArray[opts.itemNum].o.zoomSpeedIn, function() { + opts.animating = false; + $.fn.fancybox.updateDetails(); + }); + + } else { + $("#fancy_content").append($(val)).show(); + $("#fancy_outer").css(itemOpts).show(); + $.fn.fancybox.updateDetails(); + } + } + }; + + $.fn.fancybox.updateDetails = function() { + $("#fancy_bg,#fancy_close").show(); + + if (opts.itemArray[opts.itemNum].title !== undefined && opts.itemArray[opts.itemNum].title !== '') { + $('#fancy_title div').html(opts.itemArray[opts.itemNum].title); + $('#fancy_title').show(); + } + + if (opts.itemArray[opts.itemNum].o.hideOnContentClick) { + $("#fancy_content").click($.fn.fancybox.close); + } else { + $("#fancy_content").unbind('click'); + } + + if (opts.itemNum != 0) { + $("#fancy_nav").append(''); + + $('#fancy_left').click(function() { + $.fn.fancybox.changeItem(opts.itemNum - 1); return false; + }); + } + + if (opts.itemNum != (opts.itemArray.length - 1)) { + $("#fancy_nav").append(''); + + $('#fancy_right').click(function(){ + $.fn.fancybox.changeItem(opts.itemNum + 1); return false; + }); + } + + $(document).keydown(function(event) { + if (event.keyCode == 27) { + $.fn.fancybox.close(); + + } else if(event.keyCode == 37 && opts.itemNum != 0) { + $.fn.fancybox.changeItem(opts.itemNum - 1); + + } else if(event.keyCode == 39 && opts.itemNum != (opts.itemArray.length - 1)) { + $.fn.fancybox.changeItem(opts.itemNum + 1); + } + }); + }; + + $.fn.fancybox.preloadNeighborImages = function() { + if ((opts.itemArray.length - 1) > opts.itemNum) { + preloadNextImage = new Image(); + preloadNextImage.src = opts.itemArray[opts.itemNum + 1].url; + } + + if (opts.itemNum > 0) { + preloadPrevImage = new Image(); + preloadPrevImage.src = opts.itemArray[opts.itemNum - 1].url; + } + }; + + $.fn.fancybox.close = function() { + if (opts.animating) return false; + + $(imgPreloader).unbind('load'); + $(document).unbind("keydown"); + + $("#fancy_loading,#fancy_title,#fancy_close,#fancy_bg").hide(); + + $("#fancy_nav").empty(); + + opts.active = false; + + if (opts.itemArray[opts.itemNum].o.zoomSpeedOut > 0) { + var itemOpts = { + 'top': opts.itemArray[opts.itemNum].orig.pos.top - 18, + 'left': opts.itemArray[opts.itemNum].orig.pos.left - 18, + 'height': opts.itemArray[opts.itemNum].orig.height, + 'width': opts.itemArray[opts.itemNum].orig.width, + 'opacity': 'hide' + }; + + opts.animating = true; + + $("#fancy_outer").animate(itemOpts, opts.itemArray[opts.itemNum].o.zoomSpeedOut, function() { + $("#fancy_content").hide().empty(); + $("#fancy_overlay,#fancy_bigIframe").remove(); + opts.animating = false; + }); + + } else { + $("#fancy_outer").hide(); + $("#fancy_content").hide().empty(); + $("#fancy_overlay,#fancy_bigIframe").fadeOut("fast").remove(); + } + }; + + $.fn.fancybox.showLoading = function() { + clearInterval(loadingTimer); + + var pos = $.fn.fancybox.getViewport(); + + $("#fancy_loading").css({'left': ((pos[0] - 40) / 2 + pos[2]), 'top': ((pos[1] - 40) / 2 + pos[3])}).show(); + $("#fancy_loading").bind('click', $.fn.fancybox.close); + + loadingTimer = setInterval($.fn.fancybox.animateLoading, 66); + }; + + $.fn.fancybox.animateLoading = function(el, o) { + if (!$("#fancy_loading").is(':visible')){ + clearInterval(loadingTimer); + return; + } + + $("#fancy_loading > div").css('top', (loadingFrame * -40) + 'px'); + + loadingFrame = (loadingFrame + 1) % 12; + }; + + $.fn.fancybox.init = function() { + if (!$('#fancy_wrap').length) { + $('
    ').appendTo("body"); + $('
    ').prependTo("#fancy_inner"); + + $('
    ').appendTo('#fancy_title'); + } + + if ($.browser.msie) { + $("#fancy_inner").prepend(''); + } + + if (jQuery.fn.pngFix) $(document).pngFix(); + + $("#fancy_close").click($.fn.fancybox.close); + }; + + $.fn.fancybox.getPosition = function(el) { + var pos = el.offset(); + + pos.top += $.fn.fancybox.num(el, 'paddingTop'); + pos.top += $.fn.fancybox.num(el, 'borderTopWidth'); + + pos.left += $.fn.fancybox.num(el, 'paddingLeft'); + pos.left += $.fn.fancybox.num(el, 'borderLeftWidth'); + + return pos; + }; + + $.fn.fancybox.num = function (el, prop) { + return parseInt($.curCSS(el.jquery?el[0]:el,prop,true))||0; + }; + + $.fn.fancybox.getPageScroll = function() { + var xScroll, yScroll; + + if (self.pageYOffset) { + yScroll = self.pageYOffset; + xScroll = self.pageXOffset; + } else if (document.documentElement && document.documentElement.scrollTop) { + yScroll = document.documentElement.scrollTop; + xScroll = document.documentElement.scrollLeft; + } else if (document.body) { + yScroll = document.body.scrollTop; + xScroll = document.body.scrollLeft; + } + + return [xScroll, yScroll]; + }; + + $.fn.fancybox.getViewport = function() { + var scroll = $.fn.fancybox.getPageScroll(); + + return [$(window).width(), $(window).height(), scroll[0], scroll[1]]; + }; + + $.fn.fancybox.getMaxSize = function(maxWidth, maxHeight, imageWidth, imageHeight) { + var r = Math.min(Math.min(maxWidth, imageWidth) / imageWidth, Math.min(maxHeight, imageHeight) / imageHeight); + + return [Math.round(r * imageWidth), Math.round(r * imageHeight)]; + }; + + $.fn.fancybox.defaults = { + padding : 10, + imageScale : true, + zoomOpacity : false, + zoomSpeedIn : 0, + zoomSpeedOut : 0, + zoomSpeedChange : 300, + easingIn : 'swing', + easingOut : 'swing', + easingChange : 'swing', + frameWidth : 425, + frameHeight : 355, + overlayShow : true, + overlayOpacity : 0.3, + hideOnContentClick : true, + centerOnScroll : true, + itemArray : [], + callbackOnStart : null, + callbackOnShow : null, + callbackOnClose : null + }; +})(jQuery); + + + $(document).ready(function() { + $("#gallery a.test").fancybox({ + hideOnContentClick: true, + overlayShow: true, + overlayOpacity: 0.6, + zoomSpeedIn: 600, + zoomSpeedOut:400 + }); + + + // автоматическое появление картинки в fancybox + var gaspari = $('#filhit'); + gaspari.fancybox({ + hideOnContentClick: true, + overlayShow: true, + overlayOpacity: 0.5, + zoomSpeedIn: 600, + zoomSpeedOut:400 + }); + gaspari.click(); + // \\ автоматическое появление картинки в fancybox + + +// оповещение о поступлении на склад + + + $('.mail_ico, .mail_ico2').toggle(function(){ + var id = $(this).attr('id'); + var form_inform = $(this).next(); + //var name = $(this).attr('title'); + var val_email = $('#email_inform').val(); + if(!val_email) val_email = 'Введите свой E-mail'; + var form_inform_print = "
    "; + //if ($(this).attr('class') != 'mail_ico2') form_inform_print += "Оповестить, когда появится"; + form_inform_print += "
    " + + "" + + "" + + "" + + "
    " + + "
    "; + if(form_inform.html()) { + form_inform.fadeIn(); + } else { + form_inform.hide().html(form_inform_print).fadeIn(); + } + + if ($(this).attr('class') != 'mail_ico2'){ + $(this).fadeOut(250, function(){ + $(this).css('background-position', '-47px -21px').attr('title', 'Закрыть форму'); + }).fadeIn(250); + } + }, function(){ + if ($(this).attr('class') != 'mail_ico2'){ + $(this).fadeOut(250,function(){ + $(this).css('background-position', '-47px -51px').attr('title', 'Оповестить по E-mail при поступлении на склад'); + }).fadeIn(250); + } + + var form_inform = $(this).next(); + form_inform.fadeOut(); + }); + + + + $('.go_inform').live('click', function(){ + + var input = $(this).parent().find("[name='pid']").val(); + var email = $(this).parent().find("[type='text']").val(); + var outPut = $(this).parent().find("[class='status_message']"); + + //alert(email); + //return false; + $.ajax({ + type: 'GET', + url: '/includes/inform_ajax.php', + data: 'q=' + input + '&email=' + encodeURIComponent(email), + dataType: 'json', + beforeSend: function() + { + outPut.html('').fadeIn(); + }, + success: function(msg){ + if(msg.error){ + var out = '
    '+ msg.error +'
    '; + } else { + var out = '
    '+ msg.ok +'
    ' + } + outPut.html(out); + //outPut.html(msg); + + } + }); // конец аякса + + + }); //\\ оповещение о поступлении на склад + + +// наши награды + var imageList = [ + {url: "/img/awards/fbfr2.gif", title: "Чемпионат Москвы по бодибилдингу"}, + {url: "/img/awards/fbfr3.gif", title: "Okfit - генеральный спонсор Чемпионата России по бодибилдингу"}, + {url: "/img/awards/mioff.jpg", title: "Mioff"}, + + {url: "/img/awards/okfit.gif", title: "Okfit"}, + {url: "/img/awards/muscl.gif", title: "Muscletech"}, + {url: "/img/awards/prolab.gif", title: "Prolab"}, + {url: "/img/awards/WC.gif", title: "World Class"} + ]; + + function getGroupItems(opts) { + jQuery.each(imageList, function(i, val) { + opts.itemArray.push(val); + }); + } + + $(".awards_link").fancybox({ + // itemLoadCallback: getGroupItems, + + "zoomSpeedIn" : 1000, + "zoomSpeedOut" : 1000, + "frameWidth" : 1000, + "frameHeight" : 800, + "overlayOpacity" : 0.8, + "hideOnContentClick" :false + }); +// \\наши награды + +// сравнение товаров +$('.cmp_del_img').live('click', function(e){ +e.preventDefault(); +var pid2 = $(this).attr('href'); +var cur_cmp_link = $(this); + $.ajax({ + type: 'POST', + url: '/includes/compare/compare_ajax.php', + data: 'pid=' + pid2 + '&op=del', + dataType: 'json', + + success: function(msg){ + if(msg.error == 4) { + cur_cmp_link.fadeOut(400).remove(); + //$('#cmp_' + pid2).attr('checked', ''); + var cur_box = $('#cmp_' + pid2); + cur_box.removeAttr('checked'); + cur_box.next('span').removeClass('checked'); // это span от idealForm + } + + if(msg.error2 != 3) { + $('.button_none').hide(); + } + } + }); // конец аякса +}); + + $('.hndl_submit_prds_cmp').fancybox({ + zoomSpeedIn: 0, + zoomSpeedOut:0, + frameWidth: 1200, + frameHeight: 800 + }).click(function (e) { + e.preventDefault(); + $('#compare_mask, .window').hide(); + }); + + + $('.compare').click(function(){ + + var id = $('#compare_box'); + var maskHeight = $(document).height(); + var maskWidth = $(window).width(); + var mask2 = $('#compare_mask'); + mask2.css({'width':maskWidth,'height':maskHeight}); + mask2.css('opacity', 0.6).show(); + var winH = $(window).height(); + var winW = $(window).width(); + id.css('top', winH/2-id.height()/2 + id.offset().top + 'px'); + id.css('left', winW/2-id.width()/2 + 'px'); + id.fadeIn(1); + + var pid = $(this).val(); + var outPut = id.children('.modal_out'); + var button_none = $('.button_none'); + var button_none2 = $('#compare_box .button_none'); + + if($(this).is(':checked')) { + + var item_checkbox = $(this); // чтобы было видно в ajax + + $.ajax({ + type: 'POST', + url: '/includes/compare/compare_ajax.php', + data: 'pid=' + pid + '&op=add', + dataType: 'json', + + beforeSend: function() + { + button_none2.hide(); + outPut.html('').fadeIn(); + }, + + success: function(msg){ + outPut.html(msg.msg + '
    ' + msg.error3); + if(msg.error == 1) item_checkbox.removeAttr('checked'); + if(msg.error2 == 3) { + button_none.show(); + } else { + button_none.hide(); + } + } + }); // конец аякса + + + + } else { + $.ajax({ + type: 'POST', + url: '/includes/compare/compare_ajax.php', + data: 'pid=' + pid + '&op=del', + dataType: 'json', + + beforeSend: function() + { + button_none2.hide(); + outPut.html('').fadeIn(); + }, + + success: function(msg){ + outPut.html(msg.msg + '
    ' + msg.error3); + if(msg.error2 == 3) { + button_none.show(); + } else { + button_none.hide(); + } + } + }); // конец аякса + } + }); +//\\ сравнение товаров конец + + + + + + + }); // конец ready diff --git a/design/carheart/js/ajax_cart.js b/design/carheart/js/ajax_cart.js new file mode 100644 index 0000000..f363978 --- /dev/null +++ b/design/carheart/js/ajax_cart.js @@ -0,0 +1,139 @@ +// корзина +$('form.variants').live('submit', function(e) { + e.preventDefault();// return; + button = $(this).find('input[type="submit"]'); + if($(this).find('input[name=variant]:checked').size()>0) + variant = $(this).find('input[name=variant]:checked').val(); + if($(this).find('select[name=variant]').size()>0) + variant = $(this).find('select').val(); + var fav = ''; + var favs = $(this).find('#params input, #params select'); + if($(favs).length > 0){ + fav = $(favs).serialize(); + } + $.ajax({ + url: "ajax/cart.php", + /*data: {variant: variant},*/ + data: {variant: variant,amount: $(this).find('select[name="amount"]').val(),feature: fav}, + dataType: 'json', + success: function(data){ + $('#cart_informer').html(data); + $('#top-shopcart').addClass('notempty'); + if(button.attr('data-result-text')) { button.val(button.attr('data-result-text')); } + + $(document).trigger( "update.shopcart" ); //событие добавления в корзину + + } + }); + var o1 = $(this).offset(); + var o2 = $('#cart_informer').offset(); + var dx = o1.left - o2.left; + var dy = o1.top - o2.top; + var distance = Math.sqrt(dx * dx + dy * dy); + $(this).closest('.product').find('.image img').effect("transfer", { to: $("#cart_informer"), className: "transfer_class" }, distance); + $('.transfer_class').html($(this).closest('.product').find('.image').html()); + $('.transfer_class').find('img').css('height', '100%'); + return false; +}); + + +$(document).ready(function() { + $('.keypress').on('keypress', function(event){ + var key, keyChar; + if(!event) var event = window.event; + if (event.keyCode) key = event.keyCode; + else if(event.which) key = event.which; + if(key==null || key==0 || key==8 || key==13 || key==9 || key==46 || key==37 || key==39 ) return true; + keyChar=String.fromCharCode(key); + if(!/\d/.test(keyChar)) + return false; + }); + $('.filter .block.range_slider').each(function(){ + var th = this; + + var min = parseFloat($(th).find('input.min').val()); + var max = parseFloat($(th).find('input.max').val()); + var current_min = parseFloat($(th).find('input.current_min').val()); + var current_max = parseFloat($(th).find('input.current_max').val()); + $(th).find("div.slider").slider({ + range: true, + min: min, + max: max, + values:[current_min,current_max], + range:true, + slide:function(event, ui){ + $(th).find("input.imin").val($(th).find("div.slider").slider("values",0)); + $(th).find("input.imax").val($(th).find("div.slider").slider("values",1)); + }, + stop: function(event, ui) { + $(th).find("input.imin").val($(th).find("div.slider").slider("values",0)); + $(th).find("input.imax").val($(th).find("div.slider").slider("values",1)); + } + }); + $(th).find("input.imin").change(function(){ + var value1=$(th).find("input.imin").val(); + var value2=$(th).find("input.imax").val(); + if(parseInt(value1) > parseInt(value2)){ + value1 = value2; + $(th).find("input.min").val(value1); + } + $(th).find("div.slider").slider("values",0,value1); + }); + $(th).find("input.imax").change(function(){ + var value1=$(th).find("input.imin").val(); + var value2=$(th).find("input.imax").val(); + if(parseInt(value1) > parseInt(value2)){ + value2 = value1; + $(th).find("input.max").val(value2); + } + $(th).find("div.slider").slider("values",1,value2); + }); + + + }); + +function ajaxFormRequest(form, callback, callbackbf) { + jQuery.ajax({ + url: form.action, + type: form.method, + dataType: "html", + data: jQuery(form).serialize(), + success: callback, + beforeSend: callbackbf + }); +} +jQuery('form.ajaxform').submit(function(e){ + e.preventDefault(); + var form = this; + var p = $(form).find('input[name=phone]'); + if(p.val().length < 5){ + p.after('

    Введите телефон

    '); + return false; + } + ajaxFormRequest(form, function(dat){ + jQuery(form)[0].reset(); + // jQuery.fancybox.hideActivity(); + jQuery.fancybox(dat); + }, function(){ + //$.fancybox.showActivity(); + } + ); + + return false; +}); + + jQuery('input.preorder').click(function (e) { + var th = this; + var varik = $(th).attr('data-id'); + jQuery.fancybox({ + href: '#amount'+varik, + onComplete: function(){ + jQuery('#fancybox-content').css('border-width',0); + jQuery('#fancybox-outer').css('background','none'); + } + }); + e.preventDefault(); + + }) + +}); diff --git a/design/carheart/js/bxslider/images/bx_loader.gif b/design/carheart/js/bxslider/images/bx_loader.gif new file mode 100644 index 0000000..f4ff40e Binary files /dev/null and b/design/carheart/js/bxslider/images/bx_loader.gif differ diff --git a/design/carheart/js/bxslider/images/controls.png b/design/carheart/js/bxslider/images/controls.png new file mode 100644 index 0000000..28918dd Binary files /dev/null and b/design/carheart/js/bxslider/images/controls.png differ diff --git a/design/carheart/js/bxslider/jquery.bxslider.css b/design/carheart/js/bxslider/jquery.bxslider.css new file mode 100644 index 0000000..2afc0f3 --- /dev/null +++ b/design/carheart/js/bxslider/jquery.bxslider.css @@ -0,0 +1,177 @@ +/** VARIABLES +===================================*/ +/** RESET AND LAYOUT +===================================*/ +.bx-wrapper { + position: relative; + margin-bottom: 60px; + padding: 0; + *zoom: 1; + -ms-touch-action: pan-y; + touch-action: pan-y; +} +.bx-wrapper img { + max-width: 100%; + display: block; +} +.bxslider { + margin: 0; + padding: 0; +} +ul.bxslider { + list-style: none; +} +.bx-viewport { + /*fix other elements on the page moving (on Chrome)*/ + -webkit-transform: translatez(0); +} +/** THEME +===================================*/ +.bx-wrapper { + -moz-box-shadow: 0 0 5px #ccc; + -webkit-box-shadow: 0 0 5px #ccc; + box-shadow: 0 0 5px #ccc; + border: 5px solid #fff; + background: #fff; +} +.bx-wrapper .bx-pager, +.bx-wrapper .bx-controls-auto { + position: absolute; + bottom: -30px; + width: 100%; +} +/* LOADER */ +.bx-wrapper .bx-loading { + min-height: 50px; + background: url('images/bx_loader.gif') center center no-repeat #ffffff; + height: 100%; + width: 100%; + position: absolute; + top: 0; + left: 0; + z-index: 2000; +} +/* PAGER */ +.bx-wrapper .bx-pager { + text-align: center; + font-size: .85em; + font-family: Arial; + font-weight: bold; + color: #666; + padding-top: 20px; +} +.bx-wrapper .bx-pager.bx-default-pager a { + background: #666; + text-indent: -9999px; + display: block; + width: 10px; + height: 10px; + margin: 0 5px; + outline: 0; + -moz-border-radius: 5px; + -webkit-border-radius: 5px; + border-radius: 5px; +} +.bx-wrapper .bx-pager.bx-default-pager a:hover, +.bx-wrapper .bx-pager.bx-default-pager a.active, +.bx-wrapper .bx-pager.bx-default-pager a:focus { + background: #000; +} +.bx-wrapper .bx-pager-item, +.bx-wrapper .bx-controls-auto .bx-controls-auto-item { + display: inline-block; + vertical-align: bottom; + *zoom: 1; + *display: inline; +} +.bx-wrapper .bx-pager-item { + font-size: 0; + line-height: 0; +} +/* DIRECTION CONTROLS (NEXT / PREV) */ +.bx-wrapper .bx-prev { + left: 10px; + background: url('images/controls.png') no-repeat 0 -32px; +} +.bx-wrapper .bx-prev:hover, +.bx-wrapper .bx-prev:focus { + background-position: 0 0; +} +.bx-wrapper .bx-next { + right: 10px; + background: url('images/controls.png') no-repeat -43px -32px; +} +.bx-wrapper .bx-next:hover, +.bx-wrapper .bx-next:focus { + background-position: -43px 0; +} +.bx-wrapper .bx-controls-direction a { + position: absolute; + top: 50%; + margin-top: -16px; + outline: 0; + width: 32px; + height: 32px; + text-indent: -9999px; + z-index: 9999; +} +.bx-wrapper .bx-controls-direction a.disabled { + display: none; +} +/* AUTO CONTROLS (START / STOP) */ +.bx-wrapper .bx-controls-auto { + text-align: center; +} +.bx-wrapper .bx-controls-auto .bx-start { + display: block; + text-indent: -9999px; + width: 10px; + height: 11px; + outline: 0; + background: url('images/controls.png') -86px -11px no-repeat; + margin: 0 3px; +} +.bx-wrapper .bx-controls-auto .bx-start:hover, +.bx-wrapper .bx-controls-auto .bx-start.active, +.bx-wrapper .bx-controls-auto .bx-start:focus { + background-position: -86px 0; +} +.bx-wrapper .bx-controls-auto .bx-stop { + display: block; + text-indent: -9999px; + width: 9px; + height: 11px; + outline: 0; + background: url('images/controls.png') -86px -44px no-repeat; + margin: 0 3px; +} +.bx-wrapper .bx-controls-auto .bx-stop:hover, +.bx-wrapper .bx-controls-auto .bx-stop.active, +.bx-wrapper .bx-controls-auto .bx-stop:focus { + background-position: -86px -33px; +} +/* PAGER WITH AUTO-CONTROLS HYBRID LAYOUT */ +.bx-wrapper .bx-controls.bx-has-controls-auto.bx-has-pager .bx-pager { + text-align: left; + width: 80%; +} +.bx-wrapper .bx-controls.bx-has-controls-auto.bx-has-pager .bx-controls-auto { + right: 0; + width: 35px; +} +/* IMAGE CAPTIONS */ +.bx-wrapper .bx-caption { + position: absolute; + bottom: 0; + left: 0; + background: #666; + background: rgba(80, 80, 80, 0.75); + width: 100%; +} +.bx-wrapper .bx-caption span { + color: #fff; + font-family: Arial; + display: block; + font-size: .85em; + padding: 10px; +} diff --git a/design/carheart/js/bxslider/jquery.bxslider.js b/design/carheart/js/bxslider/jquery.bxslider.js new file mode 100644 index 0000000..67ac4d8 --- /dev/null +++ b/design/carheart/js/bxslider/jquery.bxslider.js @@ -0,0 +1,1607 @@ +/** + * bxSlider v4.2.12 + * Copyright 2013-2015 Steven Wanderski + * Written while drinking Belgian ales and listening to jazz + * Licensed under MIT (http://opensource.org/licenses/MIT) + */ + +;(function($) { + + var defaults = { + + // GENERAL + mode: 'horizontal', + slideSelector: '', + infiniteLoop: true, + hideControlOnEnd: false, + speed: 500, + easing: null, + slideMargin: 0, + startSlide: 0, + randomStart: false, + captions: false, + ticker: false, + tickerHover: false, + adaptiveHeight: false, + adaptiveHeightSpeed: 500, + video: false, + useCSS: true, + preloadImages: 'visible', + responsive: true, + slideZIndex: 50, + wrapperClass: 'bx-wrapper', + + // TOUCH + touchEnabled: true, + swipeThreshold: 50, + oneToOneTouch: true, + preventDefaultSwipeX: true, + preventDefaultSwipeY: false, + + // ACCESSIBILITY + ariaLive: true, + ariaHidden: true, + + // KEYBOARD + keyboardEnabled: false, + + // PAGER + pager: true, + pagerType: 'full', + pagerShortSeparator: ' / ', + pagerSelector: null, + buildPager: null, + pagerCustom: null, + + // CONTROLS + controls: true, + nextText: 'Next', + prevText: 'Prev', + nextSelector: null, + prevSelector: null, + autoControls: false, + startText: 'Start', + stopText: 'Stop', + autoControlsCombine: false, + autoControlsSelector: null, + + // AUTO + auto: false, + pause: 4000, + autoStart: true, + autoDirection: 'next', + stopAutoOnClick: false, + autoHover: false, + autoDelay: 0, + autoSlideForOnePage: false, + + // CAROUSEL + minSlides: 1, + maxSlides: 1, + moveSlides: 0, + slideWidth: 0, + shrinkItems: false, + + // CALLBACKS + onSliderLoad: function() { return true; }, + onSlideBefore: function() { return true; }, + onSlideAfter: function() { return true; }, + onSlideNext: function() { return true; }, + onSlidePrev: function() { return true; }, + onSliderResize: function() { return true; } + }; + + $.fn.bxSlider = function(options) { + + if (this.length === 0) { + return this; + } + + // support multiple elements + if (this.length > 1) { + this.each(function() { + $(this).bxSlider(options); + }); + return this; + } + + // create a namespace to be used throughout the plugin + var slider = {}, + // set a reference to our slider element + el = this, + // get the original window dimens (thanks a lot IE) + windowWidth = $(window).width(), + windowHeight = $(window).height(); + + // Return if slider is already initialized + if ($(el).data('bxSlider')) { return; } + + /** + * =================================================================================== + * = PRIVATE FUNCTIONS + * =================================================================================== + */ + + /** + * Initializes namespace settings to be used throughout plugin + */ + var init = function() { + // Return if slider is already initialized + if ($(el).data('bxSlider')) { return; } + // merge user-supplied options with the defaults + slider.settings = $.extend({}, defaults, options); + // parse slideWidth setting + slider.settings.slideWidth = parseInt(slider.settings.slideWidth); + // store the original children + slider.children = el.children(slider.settings.slideSelector); + // check if actual number of slides is less than minSlides / maxSlides + if (slider.children.length < slider.settings.minSlides) { slider.settings.minSlides = slider.children.length; } + if (slider.children.length < slider.settings.maxSlides) { slider.settings.maxSlides = slider.children.length; } + // if random start, set the startSlide setting to random number + if (slider.settings.randomStart) { slider.settings.startSlide = Math.floor(Math.random() * slider.children.length); } + // store active slide information + slider.active = { index: slider.settings.startSlide }; + // store if the slider is in carousel mode (displaying / moving multiple slides) + slider.carousel = slider.settings.minSlides > 1 || slider.settings.maxSlides > 1 ? true : false; + // if carousel, force preloadImages = 'all' + if (slider.carousel) { slider.settings.preloadImages = 'all'; } + // calculate the min / max width thresholds based on min / max number of slides + // used to setup and update carousel slides dimensions + slider.minThreshold = (slider.settings.minSlides * slider.settings.slideWidth) + ((slider.settings.minSlides - 1) * slider.settings.slideMargin); + slider.maxThreshold = (slider.settings.maxSlides * slider.settings.slideWidth) + ((slider.settings.maxSlides - 1) * slider.settings.slideMargin); + // store the current state of the slider (if currently animating, working is true) + slider.working = false; + // initialize the controls object + slider.controls = {}; + // initialize an auto interval + slider.interval = null; + // determine which property to use for transitions + slider.animProp = slider.settings.mode === 'vertical' ? 'top' : 'left'; + // determine if hardware acceleration can be used + slider.usingCSS = slider.settings.useCSS && slider.settings.mode !== 'fade' && (function() { + // create our test div element + var div = document.createElement('div'), + // css transition properties + props = ['WebkitPerspective', 'MozPerspective', 'OPerspective', 'msPerspective']; + // test for each property + for (var i = 0; i < props.length; i++) { + if (div.style[props[i]] !== undefined) { + slider.cssPrefix = props[i].replace('Perspective', '').toLowerCase(); + slider.animProp = '-' + slider.cssPrefix + '-transform'; + return true; + } + } + return false; + }()); + // if vertical mode always make maxSlides and minSlides equal + if (slider.settings.mode === 'vertical') { slider.settings.maxSlides = slider.settings.minSlides; } + // save original style data + el.data('origStyle', el.attr('style')); + el.children(slider.settings.slideSelector).each(function() { + $(this).data('origStyle', $(this).attr('style')); + }); + + // perform all DOM / CSS modifications + setup(); + }; + + /** + * Performs all DOM and CSS modifications + */ + var setup = function() { + var preloadSelector = slider.children.eq(slider.settings.startSlide); // set the default preload selector (visible) + + // wrap el in a wrapper + el.wrap('
    '); + // store a namespace reference to .bx-viewport + slider.viewport = el.parent(); + + // add aria-live if the setting is enabled and ticker mode is disabled + if (slider.settings.ariaLive && !slider.settings.ticker) { + slider.viewport.attr('aria-live', 'polite'); + } + // add a loading div to display while images are loading + slider.loader = $('
    '); + slider.viewport.prepend(slider.loader); + // set el to a massive width, to hold any needed slides + // also strip any margin and padding from el + el.css({ + width: slider.settings.mode === 'horizontal' ? (slider.children.length * 1000 + 215) + '%' : 'auto', + position: 'relative' + }); + // if using CSS, add the easing property + if (slider.usingCSS && slider.settings.easing) { + el.css('-' + slider.cssPrefix + '-transition-timing-function', slider.settings.easing); + // if not using CSS and no easing value was supplied, use the default JS animation easing (swing) + } else if (!slider.settings.easing) { + slider.settings.easing = 'swing'; + } + // make modifications to the viewport (.bx-viewport) + slider.viewport.css({ + width: '100%', + overflow: 'hidden', + position: 'relative' + }); + slider.viewport.parent().css({ + maxWidth: getViewportMaxWidth() + }); + // apply css to all slider children + slider.children.css({ + float: slider.settings.mode === 'horizontal' ? 'left' : 'none', + listStyle: 'none', + position: 'relative' + }); + // apply the calculated width after the float is applied to prevent scrollbar interference + slider.children.css('width', getSlideWidth()); + // if slideMargin is supplied, add the css + if (slider.settings.mode === 'horizontal' && slider.settings.slideMargin > 0) { slider.children.css('marginRight', slider.settings.slideMargin); } + if (slider.settings.mode === 'vertical' && slider.settings.slideMargin > 0) { slider.children.css('marginBottom', slider.settings.slideMargin); } + // if "fade" mode, add positioning and z-index CSS + if (slider.settings.mode === 'fade') { + slider.children.css({ + position: 'absolute', + zIndex: 0, + display: 'none' + }); + // prepare the z-index on the showing element + slider.children.eq(slider.settings.startSlide).css({zIndex: slider.settings.slideZIndex, display: 'block'}); + } + // create an element to contain all slider controls (pager, start / stop, etc) + slider.controls.el = $('
    '); + // if captions are requested, add them + if (slider.settings.captions) { appendCaptions(); } + // check if startSlide is last slide + slider.active.last = slider.settings.startSlide === getPagerQty() - 1; + // if video is true, set up the fitVids plugin + if (slider.settings.video) { el.fitVids(); } + if (slider.settings.preloadImages === 'all' || slider.settings.ticker) { preloadSelector = slider.children; } + // only check for control addition if not in "ticker" mode + if (!slider.settings.ticker) { + // if controls are requested, add them + if (slider.settings.controls) { appendControls(); } + // if auto is true, and auto controls are requested, add them + if (slider.settings.auto && slider.settings.autoControls) { appendControlsAuto(); } + // if pager is requested, add it + if (slider.settings.pager) { appendPager(); } + // if any control option is requested, add the controls wrapper + if (slider.settings.controls || slider.settings.autoControls || slider.settings.pager) { slider.viewport.after(slider.controls.el); } + // if ticker mode, do not allow a pager + } else { + slider.settings.pager = false; + } + loadElements(preloadSelector, start); + }; + + var loadElements = function(selector, callback) { + var total = selector.find('img:not([src=""]), iframe').length, + count = 0; + if (total === 0) { + callback(); + return; + } + selector.find('img:not([src=""]), iframe').each(function() { + $(this).one('load error', function() { + if (++count === total) { callback(); } + }).each(function() { + if (this.complete) { $(this).trigger('load'); } + }); + }); + }; + + /** + * Start the slider + */ + var start = function() { + // if infinite loop, prepare additional slides + if (slider.settings.infiniteLoop && slider.settings.mode !== 'fade' && !slider.settings.ticker) { + var slice = slider.settings.mode === 'vertical' ? slider.settings.minSlides : slider.settings.maxSlides, + sliceAppend = slider.children.slice(0, slice).clone(true).addClass('bx-clone'), + slicePrepend = slider.children.slice(-slice).clone(true).addClass('bx-clone'); + if (slider.settings.ariaHidden) { + sliceAppend.attr('aria-hidden', true); + slicePrepend.attr('aria-hidden', true); + } + el.append(sliceAppend).prepend(slicePrepend); + } + // remove the loading DOM element + slider.loader.remove(); + // set the left / top position of "el" + setSlidePosition(); + // if "vertical" mode, always use adaptiveHeight to prevent odd behavior + if (slider.settings.mode === 'vertical') { slider.settings.adaptiveHeight = true; } + // set the viewport height + slider.viewport.height(getViewportHeight()); + // make sure everything is positioned just right (same as a window resize) + el.redrawSlider(); + // onSliderLoad callback + slider.settings.onSliderLoad.call(el, slider.active.index); + // slider has been fully initialized + slider.initialized = true; + // bind the resize call to the window + if (slider.settings.responsive) { $(window).bind('resize', resizeWindow); } + // if auto is true and has more than 1 page, start the show + if (slider.settings.auto && slider.settings.autoStart && (getPagerQty() > 1 || slider.settings.autoSlideForOnePage)) { initAuto(); } + // if ticker is true, start the ticker + if (slider.settings.ticker) { initTicker(); } + // if pager is requested, make the appropriate pager link active + if (slider.settings.pager) { updatePagerActive(slider.settings.startSlide); } + // check for any updates to the controls (like hideControlOnEnd updates) + if (slider.settings.controls) { updateDirectionControls(); } + // if touchEnabled is true, setup the touch events + if (slider.settings.touchEnabled && !slider.settings.ticker) { initTouch(); } + // if keyboardEnabled is true, setup the keyboard events + if (slider.settings.keyboardEnabled && !slider.settings.ticker) { + $(document).keydown(keyPress); + } + }; + + /** + * Returns the calculated height of the viewport, used to determine either adaptiveHeight or the maxHeight value + */ + var getViewportHeight = function() { + var height = 0; + // first determine which children (slides) should be used in our height calculation + var children = $(); + // if mode is not "vertical" and adaptiveHeight is false, include all children + if (slider.settings.mode !== 'vertical' && !slider.settings.adaptiveHeight) { + children = slider.children; + } else { + // if not carousel, return the single active child + if (!slider.carousel) { + children = slider.children.eq(slider.active.index); + // if carousel, return a slice of children + } else { + // get the individual slide index + var currentIndex = slider.settings.moveSlides === 1 ? slider.active.index : slider.active.index * getMoveBy(); + // add the current slide to the children + children = slider.children.eq(currentIndex); + // cycle through the remaining "showing" slides + for (i = 1; i <= slider.settings.maxSlides - 1; i++) { + // if looped back to the start + if (currentIndex + i >= slider.children.length) { + children = children.add(slider.children.eq(i - 1)); + } else { + children = children.add(slider.children.eq(currentIndex + i)); + } + } + } + } + // if "vertical" mode, calculate the sum of the heights of the children + if (slider.settings.mode === 'vertical') { + children.each(function(index) { + height += $(this).outerHeight(); + }); + // add user-supplied margins + if (slider.settings.slideMargin > 0) { + height += slider.settings.slideMargin * (slider.settings.minSlides - 1); + } + // if not "vertical" mode, calculate the max height of the children + } else { + height = Math.max.apply(Math, children.map(function() { + return $(this).outerHeight(false); + }).get()); + } + + if (slider.viewport.css('box-sizing') === 'border-box') { + height += parseFloat(slider.viewport.css('padding-top')) + parseFloat(slider.viewport.css('padding-bottom')) + + parseFloat(slider.viewport.css('border-top-width')) + parseFloat(slider.viewport.css('border-bottom-width')); + } else if (slider.viewport.css('box-sizing') === 'padding-box') { + height += parseFloat(slider.viewport.css('padding-top')) + parseFloat(slider.viewport.css('padding-bottom')); + } + + return height; + }; + + /** + * Returns the calculated width to be used for the outer wrapper / viewport + */ + var getViewportMaxWidth = function() { + var width = '100%'; + if (slider.settings.slideWidth > 0) { + if (slider.settings.mode === 'horizontal') { + width = (slider.settings.maxSlides * slider.settings.slideWidth) + ((slider.settings.maxSlides - 1) * slider.settings.slideMargin); + } else { + width = slider.settings.slideWidth; + } + } + return width; + }; + + /** + * Returns the calculated width to be applied to each slide + */ + var getSlideWidth = function() { + var newElWidth = slider.settings.slideWidth, // start with any user-supplied slide width + wrapWidth = slider.viewport.width(); // get the current viewport width + // if slide width was not supplied, or is larger than the viewport use the viewport width + if (slider.settings.slideWidth === 0 || + (slider.settings.slideWidth > wrapWidth && !slider.carousel) || + slider.settings.mode === 'vertical') { + newElWidth = wrapWidth; + // if carousel, use the thresholds to determine the width + } else if (slider.settings.maxSlides > 1 && slider.settings.mode === 'horizontal') { + if (wrapWidth > slider.maxThreshold) { + return newElWidth; + } else if (wrapWidth < slider.minThreshold) { + newElWidth = (wrapWidth - (slider.settings.slideMargin * (slider.settings.minSlides - 1))) / slider.settings.minSlides; + } else if (slider.settings.shrinkItems) { + newElWidth = Math.floor((wrapWidth + slider.settings.slideMargin) / (Math.ceil((wrapWidth + slider.settings.slideMargin) / (newElWidth + slider.settings.slideMargin))) - slider.settings.slideMargin); + } + } + return newElWidth; + }; + + /** + * Returns the number of slides currently visible in the viewport (includes partially visible slides) + */ + var getNumberSlidesShowing = function() { + var slidesShowing = 1, + childWidth = null; + if (slider.settings.mode === 'horizontal' && slider.settings.slideWidth > 0) { + // if viewport is smaller than minThreshold, return minSlides + if (slider.viewport.width() < slider.minThreshold) { + slidesShowing = slider.settings.minSlides; + // if viewport is larger than maxThreshold, return maxSlides + } else if (slider.viewport.width() > slider.maxThreshold) { + slidesShowing = slider.settings.maxSlides; + // if viewport is between min / max thresholds, divide viewport width by first child width + } else { + childWidth = slider.children.first().width() + slider.settings.slideMargin; + slidesShowing = Math.floor((slider.viewport.width() + + slider.settings.slideMargin) / childWidth); + } + // if "vertical" mode, slides showing will always be minSlides + } else if (slider.settings.mode === 'vertical') { + slidesShowing = slider.settings.minSlides; + } + return slidesShowing; + }; + + /** + * Returns the number of pages (one full viewport of slides is one "page") + */ + var getPagerQty = function() { + var pagerQty = 0, + breakPoint = 0, + counter = 0; + // if moveSlides is specified by the user + if (slider.settings.moveSlides > 0) { + if (slider.settings.infiniteLoop) { + pagerQty = Math.ceil(slider.children.length / getMoveBy()); + } else { + // when breakpoint goes above children length, counter is the number of pages + while (breakPoint < slider.children.length) { + ++pagerQty; + breakPoint = counter + getNumberSlidesShowing(); + counter += slider.settings.moveSlides <= getNumberSlidesShowing() ? slider.settings.moveSlides : getNumberSlidesShowing(); + } + } + // if moveSlides is 0 (auto) divide children length by sides showing, then round up + } else { + pagerQty = Math.ceil(slider.children.length / getNumberSlidesShowing()); + } + return pagerQty; + }; + + /** + * Returns the number of individual slides by which to shift the slider + */ + var getMoveBy = function() { + // if moveSlides was set by the user and moveSlides is less than number of slides showing + if (slider.settings.moveSlides > 0 && slider.settings.moveSlides <= getNumberSlidesShowing()) { + return slider.settings.moveSlides; + } + // if moveSlides is 0 (auto) + return getNumberSlidesShowing(); + }; + + /** + * Sets the slider's (el) left or top position + */ + var setSlidePosition = function() { + var position, lastChild, lastShowingIndex; + // if last slide, not infinite loop, and number of children is larger than specified maxSlides + if (slider.children.length > slider.settings.maxSlides && slider.active.last && !slider.settings.infiniteLoop) { + if (slider.settings.mode === 'horizontal') { + // get the last child's position + lastChild = slider.children.last(); + position = lastChild.position(); + // set the left position + setPositionProperty(-(position.left - (slider.viewport.width() - lastChild.outerWidth())), 'reset', 0); + } else if (slider.settings.mode === 'vertical') { + // get the last showing index's position + lastShowingIndex = slider.children.length - slider.settings.minSlides; + position = slider.children.eq(lastShowingIndex).position(); + // set the top position + setPositionProperty(-position.top, 'reset', 0); + } + // if not last slide + } else { + // get the position of the first showing slide + position = slider.children.eq(slider.active.index * getMoveBy()).position(); + // check for last slide + if (slider.active.index === getPagerQty() - 1) { slider.active.last = true; } + // set the respective position + if (position !== undefined) { + if (slider.settings.mode === 'horizontal') { setPositionProperty(-position.left, 'reset', 0); } + else if (slider.settings.mode === 'vertical') { setPositionProperty(-position.top, 'reset', 0); } + } + } + }; + + /** + * Sets the el's animating property position (which in turn will sometimes animate el). + * If using CSS, sets the transform property. If not using CSS, sets the top / left property. + * + * @param value (int) + * - the animating property's value + * + * @param type (string) 'slide', 'reset', 'ticker' + * - the type of instance for which the function is being + * + * @param duration (int) + * - the amount of time (in ms) the transition should occupy + * + * @param params (array) optional + * - an optional parameter containing any variables that need to be passed in + */ + var setPositionProperty = function(value, type, duration, params) { + var animateObj, propValue; + // use CSS transform + if (slider.usingCSS) { + // determine the translate3d value + propValue = slider.settings.mode === 'vertical' ? 'translate3d(0, ' + value + 'px, 0)' : 'translate3d(' + value + 'px, 0, 0)'; + // add the CSS transition-duration + el.css('-' + slider.cssPrefix + '-transition-duration', duration / 1000 + 's'); + if (type === 'slide') { + // set the property value + el.css(slider.animProp, propValue); + if (duration !== 0) { + // bind a callback method - executes when CSS transition completes + el.bind('transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd', function(e) { + //make sure it's the correct one + if (!$(e.target).is(el)) { return; } + // unbind the callback + el.unbind('transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd'); + updateAfterSlideTransition(); + }); + } else { //duration = 0 + updateAfterSlideTransition(); + } + } else if (type === 'reset') { + el.css(slider.animProp, propValue); + } else if (type === 'ticker') { + // make the transition use 'linear' + el.css('-' + slider.cssPrefix + '-transition-timing-function', 'linear'); + el.css(slider.animProp, propValue); + if (duration !== 0) { + el.bind('transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd', function(e) { + //make sure it's the correct one + if (!$(e.target).is(el)) { return; } + // unbind the callback + el.unbind('transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd'); + // reset the position + setPositionProperty(params.resetValue, 'reset', 0); + // start the loop again + tickerLoop(); + }); + } else { //duration = 0 + setPositionProperty(params.resetValue, 'reset', 0); + tickerLoop(); + } + } + // use JS animate + } else { + animateObj = {}; + animateObj[slider.animProp] = value; + if (type === 'slide') { + el.animate(animateObj, duration, slider.settings.easing, function() { + updateAfterSlideTransition(); + }); + } else if (type === 'reset') { + el.css(slider.animProp, value); + } else if (type === 'ticker') { + el.animate(animateObj, duration, 'linear', function() { + setPositionProperty(params.resetValue, 'reset', 0); + // run the recursive loop after animation + tickerLoop(); + }); + } + } + }; + + /** + * Populates the pager with proper amount of pages + */ + var populatePager = function() { + var pagerHtml = '', + linkContent = '', + pagerQty = getPagerQty(); + // loop through each pager item + for (var i = 0; i < pagerQty; i++) { + linkContent = ''; + // if a buildPager function is supplied, use it to get pager link value, else use index + 1 + if (slider.settings.buildPager && $.isFunction(slider.settings.buildPager) || slider.settings.pagerCustom) { + linkContent = slider.settings.buildPager(i); + slider.pagerEl.addClass('bx-custom-pager'); + } else { + linkContent = i + 1; + slider.pagerEl.addClass('bx-default-pager'); + } + // var linkContent = slider.settings.buildPager && $.isFunction(slider.settings.buildPager) ? slider.settings.buildPager(i) : i + 1; + // add the markup to the string + pagerHtml += ''; + } + // populate the pager element with pager links + slider.pagerEl.html(pagerHtml); + }; + + /** + * Appends the pager to the controls element + */ + var appendPager = function() { + if (!slider.settings.pagerCustom) { + // create the pager DOM element + slider.pagerEl = $('
    '); + // if a pager selector was supplied, populate it with the pager + if (slider.settings.pagerSelector) { + $(slider.settings.pagerSelector).html(slider.pagerEl); + // if no pager selector was supplied, add it after the wrapper + } else { + slider.controls.el.addClass('bx-has-pager').append(slider.pagerEl); + } + // populate the pager + populatePager(); + } else { + slider.pagerEl = $(slider.settings.pagerCustom); + } + // assign the pager click binding + slider.pagerEl.on('click touchend', 'a', clickPagerBind); + }; + + /** + * Appends prev / next controls to the controls element + */ + var appendControls = function() { + slider.controls.next = $('' + slider.settings.nextText + ''); + slider.controls.prev = $('' + slider.settings.prevText + ''); + // bind click actions to the controls + slider.controls.next.bind('click touchend', clickNextBind); + slider.controls.prev.bind('click touchend', clickPrevBind); + // if nextSelector was supplied, populate it + if (slider.settings.nextSelector) { + $(slider.settings.nextSelector).append(slider.controls.next); + } + // if prevSelector was supplied, populate it + if (slider.settings.prevSelector) { + $(slider.settings.prevSelector).append(slider.controls.prev); + } + // if no custom selectors were supplied + if (!slider.settings.nextSelector && !slider.settings.prevSelector) { + // add the controls to the DOM + slider.controls.directionEl = $('
    '); + // add the control elements to the directionEl + slider.controls.directionEl.append(slider.controls.prev).append(slider.controls.next); + // slider.viewport.append(slider.controls.directionEl); + slider.controls.el.addClass('bx-has-controls-direction').append(slider.controls.directionEl); + } + }; + + /** + * Appends start / stop auto controls to the controls element + */ + var appendControlsAuto = function() { + slider.controls.start = $(''); + slider.controls.stop = $(''); + // add the controls to the DOM + slider.controls.autoEl = $('
    '); + // bind click actions to the controls + slider.controls.autoEl.on('click', '.bx-start', clickStartBind); + slider.controls.autoEl.on('click', '.bx-stop', clickStopBind); + // if autoControlsCombine, insert only the "start" control + if (slider.settings.autoControlsCombine) { + slider.controls.autoEl.append(slider.controls.start); + // if autoControlsCombine is false, insert both controls + } else { + slider.controls.autoEl.append(slider.controls.start).append(slider.controls.stop); + } + // if auto controls selector was supplied, populate it with the controls + if (slider.settings.autoControlsSelector) { + $(slider.settings.autoControlsSelector).html(slider.controls.autoEl); + // if auto controls selector was not supplied, add it after the wrapper + } else { + slider.controls.el.addClass('bx-has-controls-auto').append(slider.controls.autoEl); + } + // update the auto controls + updateAutoControls(slider.settings.autoStart ? 'stop' : 'start'); + }; + + /** + * Appends image captions to the DOM + */ + var appendCaptions = function() { + // cycle through each child + slider.children.each(function(index) { + // get the image title attribute + var title = $(this).find('img:first').attr('title'); + // append the caption + if (title !== undefined && ('' + title).length) { + $(this).append('
    ' + title + '
    '); + } + }); + }; + + /** + * Click next binding + * + * @param e (event) + * - DOM event object + */ + var clickNextBind = function(e) { + e.preventDefault(); + if (slider.controls.el.hasClass('disabled')) { return; } + // if auto show is running, stop it + if (slider.settings.auto && slider.settings.stopAutoOnClick) { el.stopAuto(); } + el.goToNextSlide(); + }; + + /** + * Click prev binding + * + * @param e (event) + * - DOM event object + */ + var clickPrevBind = function(e) { + e.preventDefault(); + if (slider.controls.el.hasClass('disabled')) { return; } + // if auto show is running, stop it + if (slider.settings.auto && slider.settings.stopAutoOnClick) { el.stopAuto(); } + el.goToPrevSlide(); + }; + + /** + * Click start binding + * + * @param e (event) + * - DOM event object + */ + var clickStartBind = function(e) { + el.startAuto(); + e.preventDefault(); + }; + + /** + * Click stop binding + * + * @param e (event) + * - DOM event object + */ + var clickStopBind = function(e) { + el.stopAuto(); + e.preventDefault(); + }; + + /** + * Click pager binding + * + * @param e (event) + * - DOM event object + */ + var clickPagerBind = function(e) { + var pagerLink, pagerIndex; + e.preventDefault(); + if (slider.controls.el.hasClass('disabled')) { + return; + } + // if auto show is running, stop it + if (slider.settings.auto && slider.settings.stopAutoOnClick) { el.stopAuto(); } + pagerLink = $(e.currentTarget); + if (pagerLink.attr('data-slide-index') !== undefined) { + pagerIndex = parseInt(pagerLink.attr('data-slide-index')); + // if clicked pager link is not active, continue with the goToSlide call + if (pagerIndex !== slider.active.index) { el.goToSlide(pagerIndex); } + } + }; + + /** + * Updates the pager links with an active class + * + * @param slideIndex (int) + * - index of slide to make active + */ + var updatePagerActive = function(slideIndex) { + // if "short" pager type + var len = slider.children.length; // nb of children + if (slider.settings.pagerType === 'short') { + if (slider.settings.maxSlides > 1) { + len = Math.ceil(slider.children.length / slider.settings.maxSlides); + } + slider.pagerEl.html((slideIndex + 1) + slider.settings.pagerShortSeparator + len); + return; + } + // remove all pager active classes + slider.pagerEl.find('a').removeClass('active'); + // apply the active class for all pagers + slider.pagerEl.each(function(i, el) { $(el).find('a').eq(slideIndex).addClass('active'); }); + }; + + /** + * Performs needed actions after a slide transition + */ + var updateAfterSlideTransition = function() { + // if infinite loop is true + if (slider.settings.infiniteLoop) { + var position = ''; + // first slide + if (slider.active.index === 0) { + // set the new position + position = slider.children.eq(0).position(); + // carousel, last slide + } else if (slider.active.index === getPagerQty() - 1 && slider.carousel) { + position = slider.children.eq((getPagerQty() - 1) * getMoveBy()).position(); + // last slide + } else if (slider.active.index === slider.children.length - 1) { + position = slider.children.eq(slider.children.length - 1).position(); + } + if (position) { + if (slider.settings.mode === 'horizontal') { setPositionProperty(-position.left, 'reset', 0); } + else if (slider.settings.mode === 'vertical') { setPositionProperty(-position.top, 'reset', 0); } + } + } + // declare that the transition is complete + slider.working = false; + // onSlideAfter callback + slider.settings.onSlideAfter.call(el, slider.children.eq(slider.active.index), slider.oldIndex, slider.active.index); + }; + + /** + * Updates the auto controls state (either active, or combined switch) + * + * @param state (string) "start", "stop" + * - the new state of the auto show + */ + var updateAutoControls = function(state) { + // if autoControlsCombine is true, replace the current control with the new state + if (slider.settings.autoControlsCombine) { + slider.controls.autoEl.html(slider.controls[state]); + // if autoControlsCombine is false, apply the "active" class to the appropriate control + } else { + slider.controls.autoEl.find('a').removeClass('active'); + slider.controls.autoEl.find('a:not(.bx-' + state + ')').addClass('active'); + } + }; + + /** + * Updates the direction controls (checks if either should be hidden) + */ + var updateDirectionControls = function() { + if (getPagerQty() === 1) { + slider.controls.prev.addClass('disabled'); + slider.controls.next.addClass('disabled'); + } else if (!slider.settings.infiniteLoop && slider.settings.hideControlOnEnd) { + // if first slide + if (slider.active.index === 0) { + slider.controls.prev.addClass('disabled'); + slider.controls.next.removeClass('disabled'); + // if last slide + } else if (slider.active.index === getPagerQty() - 1) { + slider.controls.next.addClass('disabled'); + slider.controls.prev.removeClass('disabled'); + // if any slide in the middle + } else { + slider.controls.prev.removeClass('disabled'); + slider.controls.next.removeClass('disabled'); + } + } + }; + + /** + * Initializes the auto process + */ + var initAuto = function() { + // if autoDelay was supplied, launch the auto show using a setTimeout() call + if (slider.settings.autoDelay > 0) { + var timeout = setTimeout(el.startAuto, slider.settings.autoDelay); + // if autoDelay was not supplied, start the auto show normally + } else { + el.startAuto(); + + //add focus and blur events to ensure its running if timeout gets paused + $(window).focus(function() { + el.startAuto(); + }).blur(function() { + el.stopAuto(); + }); + } + // if autoHover is requested + if (slider.settings.autoHover) { + // on el hover + el.hover(function() { + // if the auto show is currently playing (has an active interval) + if (slider.interval) { + // stop the auto show and pass true argument which will prevent control update + el.stopAuto(true); + // create a new autoPaused value which will be used by the relative "mouseout" event + slider.autoPaused = true; + } + }, function() { + // if the autoPaused value was created be the prior "mouseover" event + if (slider.autoPaused) { + // start the auto show and pass true argument which will prevent control update + el.startAuto(true); + // reset the autoPaused value + slider.autoPaused = null; + } + }); + } + }; + + /** + * Initializes the ticker process + */ + var initTicker = function() { + var startPosition = 0, + position, transform, value, idx, ratio, property, newSpeed, totalDimens; + // if autoDirection is "next", append a clone of the entire slider + if (slider.settings.autoDirection === 'next') { + el.append(slider.children.clone().addClass('bx-clone')); + // if autoDirection is "prev", prepend a clone of the entire slider, and set the left position + } else { + el.prepend(slider.children.clone().addClass('bx-clone')); + position = slider.children.first().position(); + startPosition = slider.settings.mode === 'horizontal' ? -position.left : -position.top; + } + setPositionProperty(startPosition, 'reset', 0); + // do not allow controls in ticker mode + slider.settings.pager = false; + slider.settings.controls = false; + slider.settings.autoControls = false; + // if autoHover is requested + if (slider.settings.tickerHover) { + if (slider.usingCSS) { + idx = slider.settings.mode === 'horizontal' ? 4 : 5; + slider.viewport.hover(function() { + transform = el.css('-' + slider.cssPrefix + '-transform'); + value = parseFloat(transform.split(',')[idx]); + setPositionProperty(value, 'reset', 0); + }, function() { + totalDimens = 0; + slider.children.each(function(index) { + totalDimens += slider.settings.mode === 'horizontal' ? $(this).outerWidth(true) : $(this).outerHeight(true); + }); + // calculate the speed ratio (used to determine the new speed to finish the paused animation) + ratio = slider.settings.speed / totalDimens; + // determine which property to use + property = slider.settings.mode === 'horizontal' ? 'left' : 'top'; + // calculate the new speed + newSpeed = ratio * (totalDimens - (Math.abs(parseInt(value)))); + tickerLoop(newSpeed); + }); + } else { + // on el hover + slider.viewport.hover(function() { + el.stop(); + }, function() { + // calculate the total width of children (used to calculate the speed ratio) + totalDimens = 0; + slider.children.each(function(index) { + totalDimens += slider.settings.mode === 'horizontal' ? $(this).outerWidth(true) : $(this).outerHeight(true); + }); + // calculate the speed ratio (used to determine the new speed to finish the paused animation) + ratio = slider.settings.speed / totalDimens; + // determine which property to use + property = slider.settings.mode === 'horizontal' ? 'left' : 'top'; + // calculate the new speed + newSpeed = ratio * (totalDimens - (Math.abs(parseInt(el.css(property))))); + tickerLoop(newSpeed); + }); + } + } + // start the ticker loop + tickerLoop(); + }; + + /** + * Runs a continuous loop, news ticker-style + */ + var tickerLoop = function(resumeSpeed) { + var speed = resumeSpeed ? resumeSpeed : slider.settings.speed, + position = {left: 0, top: 0}, + reset = {left: 0, top: 0}, + animateProperty, resetValue, params; + + // if "next" animate left position to last child, then reset left to 0 + if (slider.settings.autoDirection === 'next') { + position = el.find('.bx-clone').first().position(); + // if "prev" animate left position to 0, then reset left to first non-clone child + } else { + reset = slider.children.first().position(); + } + animateProperty = slider.settings.mode === 'horizontal' ? -position.left : -position.top; + resetValue = slider.settings.mode === 'horizontal' ? -reset.left : -reset.top; + params = {resetValue: resetValue}; + setPositionProperty(animateProperty, 'ticker', speed, params); + }; + + /** + * Check if el is on screen + */ + var isOnScreen = function(el) { + var win = $(window), + viewport = { + top: win.scrollTop(), + left: win.scrollLeft() + }, + bounds = el.offset(); + + viewport.right = viewport.left + win.width(); + viewport.bottom = viewport.top + win.height(); + bounds.right = bounds.left + el.outerWidth(); + bounds.bottom = bounds.top + el.outerHeight(); + + return (!(viewport.right < bounds.left || viewport.left > bounds.right || viewport.bottom < bounds.top || viewport.top > bounds.bottom)); + }; + + /** + * Initializes keyboard events + */ + var keyPress = function(e) { + var activeElementTag = document.activeElement.tagName.toLowerCase(), + tagFilters = 'input|textarea', + p = new RegExp(activeElementTag,['i']), + result = p.exec(tagFilters); + + if (result == null && isOnScreen(el)) { + if (e.keyCode === 39) { + clickNextBind(e); + return false; + } else if (e.keyCode === 37) { + clickPrevBind(e); + return false; + } + } + }; + + /** + * Initializes touch events + */ + var initTouch = function() { + // initialize object to contain all touch values + slider.touch = { + start: {x: 0, y: 0}, + end: {x: 0, y: 0} + }; + slider.viewport.bind('touchstart MSPointerDown pointerdown', onTouchStart); + + //for browsers that have implemented pointer events and fire a click after + //every pointerup regardless of whether pointerup is on same screen location as pointerdown or not + slider.viewport.on('click', '.bxslider a', function(e) { + if (slider.viewport.hasClass('click-disabled')) { + e.preventDefault(); + slider.viewport.removeClass('click-disabled'); + } + }); + }; + + /** + * Event handler for "touchstart" + * + * @param e (event) + * - DOM event object + */ + var onTouchStart = function(e) { + //disable slider controls while user is interacting with slides to avoid slider freeze that happens on touch devices when a slide swipe happens immediately after interacting with slider controls + slider.controls.el.addClass('disabled'); + + if (slider.working) { + e.preventDefault(); + slider.controls.el.removeClass('disabled'); + } else { + // record the original position when touch starts + slider.touch.originalPos = el.position(); + var orig = e.originalEvent, + touchPoints = (typeof orig.changedTouches !== 'undefined') ? orig.changedTouches : [orig]; + // record the starting touch x, y coordinates + slider.touch.start.x = touchPoints[0].pageX; + slider.touch.start.y = touchPoints[0].pageY; + + if (slider.viewport.get(0).setPointerCapture) { + slider.pointerId = orig.pointerId; + slider.viewport.get(0).setPointerCapture(slider.pointerId); + } + // bind a "touchmove" event to the viewport + slider.viewport.bind('touchmove MSPointerMove pointermove', onTouchMove); + // bind a "touchend" event to the viewport + slider.viewport.bind('touchend MSPointerUp pointerup', onTouchEnd); + slider.viewport.bind('MSPointerCancel pointercancel', onPointerCancel); + } + }; + + /** + * Cancel Pointer for Windows Phone + * + * @param e (event) + * - DOM event object + */ + var onPointerCancel = function(e) { + /* onPointerCancel handler is needed to deal with situations when a touchend + doesn't fire after a touchstart (this happens on windows phones only) */ + setPositionProperty(slider.touch.originalPos.left, 'reset', 0); + + //remove handlers + slider.controls.el.removeClass('disabled'); + slider.viewport.unbind('MSPointerCancel pointercancel', onPointerCancel); + slider.viewport.unbind('touchmove MSPointerMove pointermove', onTouchMove); + slider.viewport.unbind('touchend MSPointerUp pointerup', onTouchEnd); + if (slider.viewport.get(0).releasePointerCapture) { + slider.viewport.get(0).releasePointerCapture(slider.pointerId); + } + }; + + /** + * Event handler for "touchmove" + * + * @param e (event) + * - DOM event object + */ + var onTouchMove = function(e) { + var orig = e.originalEvent, + touchPoints = (typeof orig.changedTouches !== 'undefined') ? orig.changedTouches : [orig], + // if scrolling on y axis, do not prevent default + xMovement = Math.abs(touchPoints[0].pageX - slider.touch.start.x), + yMovement = Math.abs(touchPoints[0].pageY - slider.touch.start.y), + value = 0, + change = 0; + + // x axis swipe + if ((xMovement * 3) > yMovement && slider.settings.preventDefaultSwipeX) { + e.preventDefault(); + // y axis swipe + } else if ((yMovement * 3) > xMovement && slider.settings.preventDefaultSwipeY) { + e.preventDefault(); + } + if (slider.settings.mode !== 'fade' && slider.settings.oneToOneTouch) { + // if horizontal, drag along x axis + if (slider.settings.mode === 'horizontal') { + change = touchPoints[0].pageX - slider.touch.start.x; + value = slider.touch.originalPos.left + change; + // if vertical, drag along y axis + } else { + change = touchPoints[0].pageY - slider.touch.start.y; + value = slider.touch.originalPos.top + change; + } + setPositionProperty(value, 'reset', 0); + } + }; + + /** + * Event handler for "touchend" + * + * @param e (event) + * - DOM event object + */ + var onTouchEnd = function(e) { + slider.viewport.unbind('touchmove MSPointerMove pointermove', onTouchMove); + //enable slider controls as soon as user stops interacing with slides + slider.controls.el.removeClass('disabled'); + var orig = e.originalEvent, + touchPoints = (typeof orig.changedTouches !== 'undefined') ? orig.changedTouches : [orig], + value = 0, + distance = 0; + // record end x, y positions + slider.touch.end.x = touchPoints[0].pageX; + slider.touch.end.y = touchPoints[0].pageY; + // if fade mode, check if absolute x distance clears the threshold + if (slider.settings.mode === 'fade') { + distance = Math.abs(slider.touch.start.x - slider.touch.end.x); + if (distance >= slider.settings.swipeThreshold) { + if (slider.touch.start.x > slider.touch.end.x) { + el.goToNextSlide(); + } else { + el.goToPrevSlide(); + } + el.stopAuto(); + } + // not fade mode + } else { + // calculate distance and el's animate property + if (slider.settings.mode === 'horizontal') { + distance = slider.touch.end.x - slider.touch.start.x; + value = slider.touch.originalPos.left; + } else { + distance = slider.touch.end.y - slider.touch.start.y; + value = slider.touch.originalPos.top; + } + // if not infinite loop and first / last slide, do not attempt a slide transition + if (!slider.settings.infiniteLoop && ((slider.active.index === 0 && distance > 0) || (slider.active.last && distance < 0))) { + setPositionProperty(value, 'reset', 200); + } else { + // check if distance clears threshold + if (Math.abs(distance) >= slider.settings.swipeThreshold) { + if (distance < 0) { + el.goToNextSlide(); + } else { + el.goToPrevSlide(); + } + el.stopAuto(); + } else { + // el.animate(property, 200); + setPositionProperty(value, 'reset', 200); + } + } + } + slider.viewport.unbind('touchend MSPointerUp pointerup', onTouchEnd); + if (slider.viewport.get(0).releasePointerCapture) { + slider.viewport.get(0).releasePointerCapture(slider.pointerId); + } + }; + + /** + * Window resize event callback + */ + var resizeWindow = function(e) { + // don't do anything if slider isn't initialized. + if (!slider.initialized) { return; } + // Delay if slider working. + if (slider.working) { + window.setTimeout(resizeWindow, 10); + } else { + // get the new window dimens (again, thank you IE) + var windowWidthNew = $(window).width(), + windowHeightNew = $(window).height(); + // make sure that it is a true window resize + // *we must check this because our dinosaur friend IE fires a window resize event when certain DOM elements + // are resized. Can you just die already?* + if (windowWidth !== windowWidthNew || windowHeight !== windowHeightNew) { + // set the new window dimens + windowWidth = windowWidthNew; + windowHeight = windowHeightNew; + // update all dynamic elements + el.redrawSlider(); + // Call user resize handler + slider.settings.onSliderResize.call(el, slider.active.index); + } + } + }; + + /** + * Adds an aria-hidden=true attribute to each element + * + * @param startVisibleIndex (int) + * - the first visible element's index + */ + var applyAriaHiddenAttributes = function(startVisibleIndex) { + var numberOfSlidesShowing = getNumberSlidesShowing(); + // only apply attributes if the setting is enabled and not in ticker mode + if (slider.settings.ariaHidden && !slider.settings.ticker) { + // add aria-hidden=true to all elements + slider.children.attr('aria-hidden', 'true'); + // get the visible elements and change to aria-hidden=false + slider.children.slice(startVisibleIndex, startVisibleIndex + numberOfSlidesShowing).attr('aria-hidden', 'false'); + } + }; + + /** + * Returns index according to present page range + * + * @param slideOndex (int) + * - the desired slide index + */ + var setSlideIndex = function(slideIndex) { + if (slideIndex < 0) { + if (slider.settings.infiniteLoop) { + return getPagerQty() - 1; + }else { + //we don't go to undefined slides + return slider.active.index; + } + // if slideIndex is greater than children length, set active index to 0 (this happens during infinite loop) + } else if (slideIndex >= getPagerQty()) { + if (slider.settings.infiniteLoop) { + return 0; + } else { + //we don't move to undefined pages + return slider.active.index; + } + // set active index to requested slide + } else { + return slideIndex; + } + }; + + /** + * =================================================================================== + * = PUBLIC FUNCTIONS + * =================================================================================== + */ + + /** + * Performs slide transition to the specified slide + * + * @param slideIndex (int) + * - the destination slide's index (zero-based) + * + * @param direction (string) + * - INTERNAL USE ONLY - the direction of travel ("prev" / "next") + */ + el.goToSlide = function(slideIndex, direction) { + // onSlideBefore, onSlideNext, onSlidePrev callbacks + // Allow transition canceling based on returned value + var performTransition = true, + moveBy = 0, + position = {left: 0, top: 0}, + lastChild = null, + lastShowingIndex, eq, value, requestEl; + // store the old index + slider.oldIndex = slider.active.index; + //set new index + slider.active.index = setSlideIndex(slideIndex); + + // if plugin is currently in motion, ignore request + if (slider.working || slider.active.index === slider.oldIndex) { return; } + // declare that plugin is in motion + slider.working = true; + + performTransition = slider.settings.onSlideBefore.call(el, slider.children.eq(slider.active.index), slider.oldIndex, slider.active.index); + + // If transitions canceled, reset and return + if (typeof (performTransition) !== 'undefined' && !performTransition) { + slider.active.index = slider.oldIndex; // restore old index + slider.working = false; // is not in motion + return; + } + + if (direction === 'next') { + // Prevent canceling in future functions or lack there-of from negating previous commands to cancel + if (!slider.settings.onSlideNext.call(el, slider.children.eq(slider.active.index), slider.oldIndex, slider.active.index)) { + performTransition = false; + } + } else if (direction === 'prev') { + // Prevent canceling in future functions or lack there-of from negating previous commands to cancel + if (!slider.settings.onSlidePrev.call(el, slider.children.eq(slider.active.index), slider.oldIndex, slider.active.index)) { + performTransition = false; + } + } + + // check if last slide + slider.active.last = slider.active.index >= getPagerQty() - 1; + // update the pager with active class + if (slider.settings.pager || slider.settings.pagerCustom) { updatePagerActive(slider.active.index); } + // // check for direction control update + if (slider.settings.controls) { updateDirectionControls(); } + // if slider is set to mode: "fade" + if (slider.settings.mode === 'fade') { + // if adaptiveHeight is true and next height is different from current height, animate to the new height + if (slider.settings.adaptiveHeight && slider.viewport.height() !== getViewportHeight()) { + slider.viewport.animate({height: getViewportHeight()}, slider.settings.adaptiveHeightSpeed); + } + // fade out the visible child and reset its z-index value + slider.children.filter(':visible').fadeOut(slider.settings.speed).css({zIndex: 0}); + // fade in the newly requested slide + slider.children.eq(slider.active.index).css('zIndex', slider.settings.slideZIndex + 1).fadeIn(slider.settings.speed, function() { + $(this).css('zIndex', slider.settings.slideZIndex); + updateAfterSlideTransition(); + }); + // slider mode is not "fade" + } else { + // if adaptiveHeight is true and next height is different from current height, animate to the new height + if (slider.settings.adaptiveHeight && slider.viewport.height() !== getViewportHeight()) { + slider.viewport.animate({height: getViewportHeight()}, slider.settings.adaptiveHeightSpeed); + } + // if carousel and not infinite loop + if (!slider.settings.infiniteLoop && slider.carousel && slider.active.last) { + if (slider.settings.mode === 'horizontal') { + // get the last child position + lastChild = slider.children.eq(slider.children.length - 1); + position = lastChild.position(); + // calculate the position of the last slide + moveBy = slider.viewport.width() - lastChild.outerWidth(); + } else { + // get last showing index position + lastShowingIndex = slider.children.length - slider.settings.minSlides; + position = slider.children.eq(lastShowingIndex).position(); + } + // horizontal carousel, going previous while on first slide (infiniteLoop mode) + } else if (slider.carousel && slider.active.last && direction === 'prev') { + // get the last child position + eq = slider.settings.moveSlides === 1 ? slider.settings.maxSlides - getMoveBy() : ((getPagerQty() - 1) * getMoveBy()) - (slider.children.length - slider.settings.maxSlides); + lastChild = el.children('.bx-clone').eq(eq); + position = lastChild.position(); + // if infinite loop and "Next" is clicked on the last slide + } else if (direction === 'next' && slider.active.index === 0) { + // get the last clone position + position = el.find('> .bx-clone').eq(slider.settings.maxSlides).position(); + slider.active.last = false; + // normal non-zero requests + } else if (slideIndex >= 0) { + //parseInt is applied to allow floats for slides/page + requestEl = slideIndex * parseInt(getMoveBy()); + position = slider.children.eq(requestEl).position(); + } + + /* If the position doesn't exist + * (e.g. if you destroy the slider on a next click), + * it doesn't throw an error. + */ + if (typeof (position) !== 'undefined') { + value = slider.settings.mode === 'horizontal' ? -(position.left - moveBy) : -position.top; + // plugin values to be animated + setPositionProperty(value, 'slide', slider.settings.speed); + } else { + slider.working = false; + } + } + if (slider.settings.ariaHidden) { applyAriaHiddenAttributes(slider.active.index * getMoveBy()); } + }; + + /** + * Transitions to the next slide in the show + */ + el.goToNextSlide = function() { + // if infiniteLoop is false and last page is showing, disregard call + if (!slider.settings.infiniteLoop && slider.active.last) { return; } + var pagerIndex = parseInt(slider.active.index) + 1; + el.goToSlide(pagerIndex, 'next'); + }; + + /** + * Transitions to the prev slide in the show + */ + el.goToPrevSlide = function() { + // if infiniteLoop is false and last page is showing, disregard call + if (!slider.settings.infiniteLoop && slider.active.index === 0) { return; } + var pagerIndex = parseInt(slider.active.index) - 1; + el.goToSlide(pagerIndex, 'prev'); + }; + + /** + * Starts the auto show + * + * @param preventControlUpdate (boolean) + * - if true, auto controls state will not be updated + */ + el.startAuto = function(preventControlUpdate) { + // if an interval already exists, disregard call + if (slider.interval) { return; } + // create an interval + slider.interval = setInterval(function() { + if (slider.settings.autoDirection === 'next') { + el.goToNextSlide(); + } else { + el.goToPrevSlide(); + } + }, slider.settings.pause); + // if auto controls are displayed and preventControlUpdate is not true + if (slider.settings.autoControls && preventControlUpdate !== true) { updateAutoControls('stop'); } + }; + + /** + * Stops the auto show + * + * @param preventControlUpdate (boolean) + * - if true, auto controls state will not be updated + */ + el.stopAuto = function(preventControlUpdate) { + // if no interval exists, disregard call + if (!slider.interval) { return; } + // clear the interval + clearInterval(slider.interval); + slider.interval = null; + // if auto controls are displayed and preventControlUpdate is not true + if (slider.settings.autoControls && preventControlUpdate !== true) { updateAutoControls('start'); } + }; + + /** + * Returns current slide index (zero-based) + */ + el.getCurrentSlide = function() { + return slider.active.index; + }; + + /** + * Returns current slide element + */ + el.getCurrentSlideElement = function() { + return slider.children.eq(slider.active.index); + }; + + /** + * Returns a slide element + * @param index (int) + * - The index (zero-based) of the element you want returned. + */ + el.getSlideElement = function(index) { + return slider.children.eq(index); + }; + + /** + * Returns number of slides in show + */ + el.getSlideCount = function() { + return slider.children.length; + }; + + /** + * Return slider.working variable + */ + el.isWorking = function() { + return slider.working; + }; + + /** + * Update all dynamic slider elements + */ + el.redrawSlider = function() { + // resize all children in ratio to new screen size + slider.children.add(el.find('.bx-clone')).outerWidth(getSlideWidth()); + // adjust the height + slider.viewport.css('height', getViewportHeight()); + // update the slide position + if (!slider.settings.ticker) { setSlidePosition(); } + // if active.last was true before the screen resize, we want + // to keep it last no matter what screen size we end on + if (slider.active.last) { slider.active.index = getPagerQty() - 1; } + // if the active index (page) no longer exists due to the resize, simply set the index as last + if (slider.active.index >= getPagerQty()) { slider.active.last = true; } + // if a pager is being displayed and a custom pager is not being used, update it + if (slider.settings.pager && !slider.settings.pagerCustom) { + populatePager(); + updatePagerActive(slider.active.index); + } + if (slider.settings.ariaHidden) { applyAriaHiddenAttributes(slider.active.index * getMoveBy()); } + }; + + /** + * Destroy the current instance of the slider (revert everything back to original state) + */ + el.destroySlider = function() { + // don't do anything if slider has already been destroyed + if (!slider.initialized) { return; } + slider.initialized = false; + $('.bx-clone', this).remove(); + slider.children.each(function() { + if ($(this).data('origStyle') !== undefined) { + $(this).attr('style', $(this).data('origStyle')); + } else { + $(this).removeAttr('style'); + } + }); + if ($(this).data('origStyle') !== undefined) { + this.attr('style', $(this).data('origStyle')); + } else { + $(this).removeAttr('style'); + } + $(this).unwrap().unwrap(); + if (slider.controls.el) { slider.controls.el.remove(); } + if (slider.controls.next) { slider.controls.next.remove(); } + if (slider.controls.prev) { slider.controls.prev.remove(); } + if (slider.pagerEl && slider.settings.controls && !slider.settings.pagerCustom) { slider.pagerEl.remove(); } + $('.bx-caption', this).remove(); + if (slider.controls.autoEl) { slider.controls.autoEl.remove(); } + clearInterval(slider.interval); + if (slider.settings.responsive) { $(window).unbind('resize', resizeWindow); } + if (slider.settings.keyboardEnabled) { $(document).unbind('keydown', keyPress); } + //remove self reference in data + $(this).removeData('bxSlider'); + }; + + /** + * Reload the slider (revert all DOM changes, and re-initialize) + */ + el.reloadSlider = function(settings) { + if (settings !== undefined) { options = settings; } + el.destroySlider(); + init(); + //store reference to self in order to access public functions later + $(el).data('bxSlider', this); + }; + + init(); + + $(el).data('bxSlider', this); + + // returns the current jQuery object + return this; + }; + +})(jQuery); diff --git a/design/carheart/js/bxslider/jquery.bxslider.min.css b/design/carheart/js/bxslider/jquery.bxslider.min.css new file mode 100644 index 0000000..a91cb96 --- /dev/null +++ b/design/carheart/js/bxslider/jquery.bxslider.min.css @@ -0,0 +1 @@ +.bx-wrapper{position:relative;margin-bottom:60px;padding:0;-ms-touch-action:pan-y;touch-action:pan-y;-moz-box-shadow:0 0 5px #ccc;-webkit-box-shadow:0 0 5px #ccc;box-shadow:0 0 5px #ccc;border:5px solid #fff;background:#fff}.bx-wrapper img{max-width:100%;display:block}.bxslider{margin:0;padding:0}ul.bxslider{list-style:none}.bx-viewport{-webkit-transform:translatez(0)}.bx-wrapper .bx-controls-auto,.bx-wrapper .bx-pager{position:absolute;bottom:-30px;width:100%}.bx-wrapper .bx-loading{min-height:50px;background:url(images/bx_loader.gif) center center no-repeat #fff;height:100%;width:100%;position:absolute;top:0;left:0;z-index:2000}.bx-wrapper .bx-pager{text-align:center;font-size:.85em;font-family:Arial;font-weight:700;color:#666;padding-top:20px}.bx-wrapper .bx-pager.bx-default-pager a{background:#666;text-indent:-9999px;display:block;width:10px;height:10px;margin:0 5px;outline:0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.bx-wrapper .bx-pager.bx-default-pager a.active,.bx-wrapper .bx-pager.bx-default-pager a:focus,.bx-wrapper .bx-pager.bx-default-pager a:hover{background:#000}.bx-wrapper .bx-controls-auto .bx-controls-auto-item,.bx-wrapper .bx-pager-item{display:inline-block;vertical-align:bottom}.bx-wrapper .bx-pager-item{font-size:0;line-height:0}.bx-wrapper .bx-prev{left:10px;background:url(images/controls.png) 0 -32px no-repeat}.bx-wrapper .bx-prev:focus,.bx-wrapper .bx-prev:hover{background-position:0 0}.bx-wrapper .bx-next{right:10px;background:url(images/controls.png) -43px -32px no-repeat}.bx-wrapper .bx-next:focus,.bx-wrapper .bx-next:hover{background-position:-43px 0}.bx-wrapper .bx-controls-direction a{position:absolute;top:50%;margin-top:-16px;outline:0;width:32px;height:32px;text-indent:-9999px;z-index:9999}.bx-wrapper .bx-controls-direction a.disabled{display:none}.bx-wrapper .bx-controls-auto{text-align:center}.bx-wrapper .bx-controls-auto .bx-start{display:block;text-indent:-9999px;width:10px;height:11px;outline:0;background:url(images/controls.png) -86px -11px no-repeat;margin:0 3px}.bx-wrapper .bx-controls-auto .bx-start.active,.bx-wrapper .bx-controls-auto .bx-start:focus,.bx-wrapper .bx-controls-auto .bx-start:hover{background-position:-86px 0}.bx-wrapper .bx-controls-auto .bx-stop{display:block;text-indent:-9999px;width:9px;height:11px;outline:0;background:url(images/controls.png) -86px -44px no-repeat;margin:0 3px}.bx-wrapper .bx-controls-auto .bx-stop.active,.bx-wrapper .bx-controls-auto .bx-stop:focus,.bx-wrapper .bx-controls-auto .bx-stop:hover{background-position:-86px -33px}.bx-wrapper .bx-controls.bx-has-controls-auto.bx-has-pager .bx-pager{text-align:left;width:80%}.bx-wrapper .bx-controls.bx-has-controls-auto.bx-has-pager .bx-controls-auto{right:0;width:35px}.bx-wrapper .bx-caption{position:absolute;bottom:0;left:0;background:#666;background:rgba(80,80,80,.75);width:100%}.bx-wrapper .bx-caption span{color:#fff;font-family:Arial;display:block;font-size:.85em;padding:10px} \ No newline at end of file diff --git a/design/carheart/js/bxslider/jquery.bxslider.min.js b/design/carheart/js/bxslider/jquery.bxslider.min.js new file mode 100644 index 0000000..16e64c0 --- /dev/null +++ b/design/carheart/js/bxslider/jquery.bxslider.min.js @@ -0,0 +1,7 @@ +/** + * bxSlider v4.2.12 + * Copyright 2013-2015 Steven Wanderski + * Written while drinking Belgian ales and listening to jazz + * Licensed under MIT (http://opensource.org/licenses/MIT) + */ +!function(t){var e={mode:"horizontal",slideSelector:"",infiniteLoop:!0,hideControlOnEnd:!1,speed:500,easing:null,slideMargin:0,startSlide:0,randomStart:!1,captions:!1,ticker:!1,tickerHover:!1,adaptiveHeight:!1,adaptiveHeightSpeed:500,video:!1,useCSS:!0,preloadImages:"visible",responsive:!0,slideZIndex:50,wrapperClass:"bx-wrapper",touchEnabled:!0,swipeThreshold:50,oneToOneTouch:!0,preventDefaultSwipeX:!0,preventDefaultSwipeY:!1,ariaLive:!0,ariaHidden:!0,keyboardEnabled:!1,pager:!0,pagerType:"full",pagerShortSeparator:" / ",pagerSelector:null,buildPager:null,pagerCustom:null,controls:!0,nextText:"Next",prevText:"Prev",nextSelector:null,prevSelector:null,autoControls:!1,startText:"Start",stopText:"Stop",autoControlsCombine:!1,autoControlsSelector:null,auto:!1,pause:4e3,autoStart:!0,autoDirection:"next",stopAutoOnClick:!1,autoHover:!1,autoDelay:0,autoSlideForOnePage:!1,minSlides:1,maxSlides:1,moveSlides:0,slideWidth:0,shrinkItems:!1,onSliderLoad:function(){return!0},onSlideBefore:function(){return!0},onSlideAfter:function(){return!0},onSlideNext:function(){return!0},onSlidePrev:function(){return!0},onSliderResize:function(){return!0}};t.fn.bxSlider=function(n){if(0===this.length)return this;if(this.length>1)return this.each(function(){t(this).bxSlider(n)}),this;var s={},o=this,r=t(window).width(),a=t(window).height();if(!t(o).data("bxSlider")){var l=function(){t(o).data("bxSlider")||(s.settings=t.extend({},e,n),s.settings.slideWidth=parseInt(s.settings.slideWidth),s.children=o.children(s.settings.slideSelector),s.children.length1||s.settings.maxSlides>1,s.carousel&&(s.settings.preloadImages="all"),s.minThreshold=s.settings.minSlides*s.settings.slideWidth+(s.settings.minSlides-1)*s.settings.slideMargin,s.maxThreshold=s.settings.maxSlides*s.settings.slideWidth+(s.settings.maxSlides-1)*s.settings.slideMargin,s.working=!1,s.controls={},s.interval=null,s.animProp="vertical"===s.settings.mode?"top":"left",s.usingCSS=s.settings.useCSS&&"fade"!==s.settings.mode&&function(){for(var t=document.createElement("div"),e=["WebkitPerspective","MozPerspective","OPerspective","msPerspective"],i=0;i
    '),s.viewport=o.parent(),s.settings.ariaLive&&!s.settings.ticker&&s.viewport.attr("aria-live","polite"),s.loader=t('
    '),s.viewport.prepend(s.loader),o.css({width:"horizontal"===s.settings.mode?1e3*s.children.length+215+"%":"auto",position:"relative"}),s.usingCSS&&s.settings.easing?o.css("-"+s.cssPrefix+"-transition-timing-function",s.settings.easing):s.settings.easing||(s.settings.easing="swing"),s.viewport.css({width:"100%",overflow:"hidden",position:"relative"}),s.viewport.parent().css({maxWidth:u()}),s.children.css({float:"horizontal"===s.settings.mode?"left":"none",listStyle:"none",position:"relative"}),s.children.css("width",h()),"horizontal"===s.settings.mode&&s.settings.slideMargin>0&&s.children.css("marginRight",s.settings.slideMargin),"vertical"===s.settings.mode&&s.settings.slideMargin>0&&s.children.css("marginBottom",s.settings.slideMargin),"fade"===s.settings.mode&&(s.children.css({position:"absolute",zIndex:0,display:"none"}),s.children.eq(s.settings.startSlide).css({zIndex:s.settings.slideZIndex,display:"block"})),s.controls.el=t('
    '),s.settings.captions&&P(),s.active.last=s.settings.startSlide===f()-1,s.settings.video&&o.fitVids(),("all"===s.settings.preloadImages||s.settings.ticker)&&(e=s.children),s.settings.ticker?s.settings.pager=!1:(s.settings.controls&&C(),s.settings.auto&&s.settings.autoControls&&T(),s.settings.pager&&w(),(s.settings.controls||s.settings.autoControls||s.settings.pager)&&s.viewport.after(s.controls.el)),c(e,g)},c=function(e,i){var n=e.find('img:not([src=""]), iframe').length,s=0;return 0===n?void i():void e.find('img:not([src=""]), iframe').each(function(){t(this).one("load error",function(){++s===n&&i()}).each(function(){this.complete&&t(this).trigger("load")})})},g=function(){if(s.settings.infiniteLoop&&"fade"!==s.settings.mode&&!s.settings.ticker){var e="vertical"===s.settings.mode?s.settings.minSlides:s.settings.maxSlides,i=s.children.slice(0,e).clone(!0).addClass("bx-clone"),n=s.children.slice(-e).clone(!0).addClass("bx-clone");s.settings.ariaHidden&&(i.attr("aria-hidden",!0),n.attr("aria-hidden",!0)),o.append(i).prepend(n)}s.loader.remove(),m(),"vertical"===s.settings.mode&&(s.settings.adaptiveHeight=!0),s.viewport.height(p()),o.redrawSlider(),s.settings.onSliderLoad.call(o,s.active.index),s.initialized=!0,s.settings.responsive&&t(window).bind("resize",Z),s.settings.auto&&s.settings.autoStart&&(f()>1||s.settings.autoSlideForOnePage)&&H(),s.settings.ticker&&W(),s.settings.pager&&I(s.settings.startSlide),s.settings.controls&&D(),s.settings.touchEnabled&&!s.settings.ticker&&N(),s.settings.keyboardEnabled&&!s.settings.ticker&&t(document).keydown(F)},p=function(){var e=0,n=t();if("vertical"===s.settings.mode||s.settings.adaptiveHeight)if(s.carousel){var o=1===s.settings.moveSlides?s.active.index:s.active.index*x();for(n=s.children.eq(o),i=1;i<=s.settings.maxSlides-1;i++)n=o+i>=s.children.length?n.add(s.children.eq(i-1)):n.add(s.children.eq(o+i))}else n=s.children.eq(s.active.index);else n=s.children;return"vertical"===s.settings.mode?(n.each(function(i){e+=t(this).outerHeight()}),s.settings.slideMargin>0&&(e+=s.settings.slideMargin*(s.settings.minSlides-1))):e=Math.max.apply(Math,n.map(function(){return t(this).outerHeight(!1)}).get()),"border-box"===s.viewport.css("box-sizing")?e+=parseFloat(s.viewport.css("padding-top"))+parseFloat(s.viewport.css("padding-bottom"))+parseFloat(s.viewport.css("border-top-width"))+parseFloat(s.viewport.css("border-bottom-width")):"padding-box"===s.viewport.css("box-sizing")&&(e+=parseFloat(s.viewport.css("padding-top"))+parseFloat(s.viewport.css("padding-bottom"))),e},u=function(){var t="100%";return s.settings.slideWidth>0&&(t="horizontal"===s.settings.mode?s.settings.maxSlides*s.settings.slideWidth+(s.settings.maxSlides-1)*s.settings.slideMargin:s.settings.slideWidth),t},h=function(){var t=s.settings.slideWidth,e=s.viewport.width();if(0===s.settings.slideWidth||s.settings.slideWidth>e&&!s.carousel||"vertical"===s.settings.mode)t=e;else if(s.settings.maxSlides>1&&"horizontal"===s.settings.mode){if(e>s.maxThreshold)return t;e0?s.viewport.width()s.maxThreshold?t=s.settings.maxSlides:(e=s.children.first().width()+s.settings.slideMargin,t=Math.floor((s.viewport.width()+s.settings.slideMargin)/e)):"vertical"===s.settings.mode&&(t=s.settings.minSlides),t},f=function(){var t=0,e=0,i=0;if(s.settings.moveSlides>0)if(s.settings.infiniteLoop)t=Math.ceil(s.children.length/x());else for(;e0&&s.settings.moveSlides<=v()?s.settings.moveSlides:v()},m=function(){var t,e,i;s.children.length>s.settings.maxSlides&&s.active.last&&!s.settings.infiniteLoop?"horizontal"===s.settings.mode?(e=s.children.last(),t=e.position(),S(-(t.left-(s.viewport.width()-e.outerWidth())),"reset",0)):"vertical"===s.settings.mode&&(i=s.children.length-s.settings.minSlides,t=s.children.eq(i).position(),S(-t.top,"reset",0)):(t=s.children.eq(s.active.index*x()).position(),s.active.index===f()-1&&(s.active.last=!0),void 0!==t&&("horizontal"===s.settings.mode?S(-t.left,"reset",0):"vertical"===s.settings.mode&&S(-t.top,"reset",0)))},S=function(e,i,n,r){var a,l;s.usingCSS?(l="vertical"===s.settings.mode?"translate3d(0, "+e+"px, 0)":"translate3d("+e+"px, 0, 0)",o.css("-"+s.cssPrefix+"-transition-duration",n/1e3+"s"),"slide"===i?(o.css(s.animProp,l),0!==n?o.bind("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd",function(e){t(e.target).is(o)&&(o.unbind("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd"),q())}):q()):"reset"===i?o.css(s.animProp,l):"ticker"===i&&(o.css("-"+s.cssPrefix+"-transition-timing-function","linear"),o.css(s.animProp,l),0!==n?o.bind("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd",function(e){t(e.target).is(o)&&(o.unbind("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd"),S(r.resetValue,"reset",0),L())}):(S(r.resetValue,"reset",0),L()))):(a={},a[s.animProp]=e,"slide"===i?o.animate(a,n,s.settings.easing,function(){q()}):"reset"===i?o.css(s.animProp,e):"ticker"===i&&o.animate(a,n,"linear",function(){S(r.resetValue,"reset",0),L()}))},b=function(){for(var e="",i="",n=f(),o=0;o'+i+"
    ";s.pagerEl.html(e)},w=function(){s.settings.pagerCustom?s.pagerEl=t(s.settings.pagerCustom):(s.pagerEl=t('
    '),s.settings.pagerSelector?t(s.settings.pagerSelector).html(s.pagerEl):s.controls.el.addClass("bx-has-pager").append(s.pagerEl),b()),s.pagerEl.on("click touchend","a",z)},C=function(){s.controls.next=t(''+s.settings.nextText+""),s.controls.prev=t(''+s.settings.prevText+""),s.controls.next.bind("click touchend",E),s.controls.prev.bind("click touchend",k),s.settings.nextSelector&&t(s.settings.nextSelector).append(s.controls.next),s.settings.prevSelector&&t(s.settings.prevSelector).append(s.controls.prev),s.settings.nextSelector||s.settings.prevSelector||(s.controls.directionEl=t('
    '),s.controls.directionEl.append(s.controls.prev).append(s.controls.next),s.controls.el.addClass("bx-has-controls-direction").append(s.controls.directionEl))},T=function(){s.controls.start=t('"),s.controls.stop=t('"),s.controls.autoEl=t('
    '),s.controls.autoEl.on("click",".bx-start",M),s.controls.autoEl.on("click",".bx-stop",y),s.settings.autoControlsCombine?s.controls.autoEl.append(s.controls.start):s.controls.autoEl.append(s.controls.start).append(s.controls.stop),s.settings.autoControlsSelector?t(s.settings.autoControlsSelector).html(s.controls.autoEl):s.controls.el.addClass("bx-has-controls-auto").append(s.controls.autoEl),A(s.settings.autoStart?"stop":"start")},P=function(){s.children.each(function(e){var i=t(this).find("img:first").attr("title");void 0!==i&&(""+i).length&&t(this).append('
    '+i+"
    ")})},E=function(t){t.preventDefault(),s.controls.el.hasClass("disabled")||(s.settings.auto&&s.settings.stopAutoOnClick&&o.stopAuto(),o.goToNextSlide())},k=function(t){t.preventDefault(),s.controls.el.hasClass("disabled")||(s.settings.auto&&s.settings.stopAutoOnClick&&o.stopAuto(),o.goToPrevSlide())},M=function(t){o.startAuto(),t.preventDefault()},y=function(t){o.stopAuto(),t.preventDefault()},z=function(e){var i,n;e.preventDefault(),s.controls.el.hasClass("disabled")||(s.settings.auto&&s.settings.stopAutoOnClick&&o.stopAuto(),i=t(e.currentTarget),void 0!==i.attr("data-slide-index")&&(n=parseInt(i.attr("data-slide-index")),n!==s.active.index&&o.goToSlide(n)))},I=function(e){var i=s.children.length;return"short"===s.settings.pagerType?(s.settings.maxSlides>1&&(i=Math.ceil(s.children.length/s.settings.maxSlides)),void s.pagerEl.html(e+1+s.settings.pagerShortSeparator+i)):(s.pagerEl.find("a").removeClass("active"),void s.pagerEl.each(function(i,n){t(n).find("a").eq(e).addClass("active")}))},q=function(){if(s.settings.infiniteLoop){var t="";0===s.active.index?t=s.children.eq(0).position():s.active.index===f()-1&&s.carousel?t=s.children.eq((f()-1)*x()).position():s.active.index===s.children.length-1&&(t=s.children.eq(s.children.length-1).position()),t&&("horizontal"===s.settings.mode?S(-t.left,"reset",0):"vertical"===s.settings.mode&&S(-t.top,"reset",0))}s.working=!1,s.settings.onSlideAfter.call(o,s.children.eq(s.active.index),s.oldIndex,s.active.index)},A=function(t){s.settings.autoControlsCombine?s.controls.autoEl.html(s.controls[t]):(s.controls.autoEl.find("a").removeClass("active"),s.controls.autoEl.find("a:not(.bx-"+t+")").addClass("active"))},D=function(){1===f()?(s.controls.prev.addClass("disabled"),s.controls.next.addClass("disabled")):!s.settings.infiniteLoop&&s.settings.hideControlOnEnd&&(0===s.active.index?(s.controls.prev.addClass("disabled"),s.controls.next.removeClass("disabled")):s.active.index===f()-1?(s.controls.next.addClass("disabled"),s.controls.prev.removeClass("disabled")):(s.controls.prev.removeClass("disabled"),s.controls.next.removeClass("disabled")))},H=function(){if(s.settings.autoDelay>0){setTimeout(o.startAuto,s.settings.autoDelay)}else o.startAuto(),t(window).focus(function(){o.startAuto()}).blur(function(){o.stopAuto()});s.settings.autoHover&&o.hover(function(){s.interval&&(o.stopAuto(!0),s.autoPaused=!0)},function(){s.autoPaused&&(o.startAuto(!0),s.autoPaused=null)})},W=function(){var e,i,n,r,a,l,d,c,g=0;"next"===s.settings.autoDirection?o.append(s.children.clone().addClass("bx-clone")):(o.prepend(s.children.clone().addClass("bx-clone")),e=s.children.first().position(),g="horizontal"===s.settings.mode?-e.left:-e.top),S(g,"reset",0),s.settings.pager=!1,s.settings.controls=!1,s.settings.autoControls=!1,s.settings.tickerHover&&(s.usingCSS?(r="horizontal"===s.settings.mode?4:5,s.viewport.hover(function(){i=o.css("-"+s.cssPrefix+"-transform"),n=parseFloat(i.split(",")[r]),S(n,"reset",0)},function(){c=0,s.children.each(function(e){c+="horizontal"===s.settings.mode?t(this).outerWidth(!0):t(this).outerHeight(!0)}),a=s.settings.speed/c,l="horizontal"===s.settings.mode?"left":"top",d=a*(c-Math.abs(parseInt(n))),L(d)})):s.viewport.hover(function(){o.stop()},function(){c=0,s.children.each(function(e){c+="horizontal"===s.settings.mode?t(this).outerWidth(!0):t(this).outerHeight(!0)}),a=s.settings.speed/c,l="horizontal"===s.settings.mode?"left":"top",d=a*(c-Math.abs(parseInt(o.css(l)))),L(d)})),L()},L=function(t){var e,i,n,r=t?t:s.settings.speed,a={left:0,top:0},l={left:0,top:0};"next"===s.settings.autoDirection?a=o.find(".bx-clone").first().position():l=s.children.first().position(),e="horizontal"===s.settings.mode?-a.left:-a.top,i="horizontal"===s.settings.mode?-l.left:-l.top,n={resetValue:i},S(e,"ticker",r,n)},O=function(e){var i=t(window),n={top:i.scrollTop(),left:i.scrollLeft()},s=e.offset();return n.right=n.left+i.width(),n.bottom=n.top+i.height(),s.right=s.left+e.outerWidth(),s.bottom=s.top+e.outerHeight(),!(n.rights.right||n.bottoms.bottom)},F=function(t){var e=document.activeElement.tagName.toLowerCase(),i="input|textarea",n=new RegExp(e,["i"]),s=n.exec(i);if(null==s&&O(o)){if(39===t.keyCode)return E(t),!1;if(37===t.keyCode)return k(t),!1}},N=function(){s.touch={start:{x:0,y:0},end:{x:0,y:0}},s.viewport.bind("touchstart MSPointerDown pointerdown",X),s.viewport.on("click",".bxslider a",function(t){s.viewport.hasClass("click-disabled")&&(t.preventDefault(),s.viewport.removeClass("click-disabled"))})},X=function(t){if(s.controls.el.addClass("disabled"),s.working)t.preventDefault(),s.controls.el.removeClass("disabled");else{s.touch.originalPos=o.position();var e=t.originalEvent,i="undefined"!=typeof e.changedTouches?e.changedTouches:[e];s.touch.start.x=i[0].pageX,s.touch.start.y=i[0].pageY,s.viewport.get(0).setPointerCapture&&(s.pointerId=e.pointerId,s.viewport.get(0).setPointerCapture(s.pointerId)),s.viewport.bind("touchmove MSPointerMove pointermove",V),s.viewport.bind("touchend MSPointerUp pointerup",R),s.viewport.bind("MSPointerCancel pointercancel",Y)}},Y=function(t){S(s.touch.originalPos.left,"reset",0),s.controls.el.removeClass("disabled"),s.viewport.unbind("MSPointerCancel pointercancel",Y),s.viewport.unbind("touchmove MSPointerMove pointermove",V),s.viewport.unbind("touchend MSPointerUp pointerup",R),s.viewport.get(0).releasePointerCapture&&s.viewport.get(0).releasePointerCapture(s.pointerId)},V=function(t){var e=t.originalEvent,i="undefined"!=typeof e.changedTouches?e.changedTouches:[e],n=Math.abs(i[0].pageX-s.touch.start.x),o=Math.abs(i[0].pageY-s.touch.start.y),r=0,a=0;3*n>o&&s.settings.preventDefaultSwipeX?t.preventDefault():3*o>n&&s.settings.preventDefaultSwipeY&&t.preventDefault(),"fade"!==s.settings.mode&&s.settings.oneToOneTouch&&("horizontal"===s.settings.mode?(a=i[0].pageX-s.touch.start.x,r=s.touch.originalPos.left+a):(a=i[0].pageY-s.touch.start.y,r=s.touch.originalPos.top+a),S(r,"reset",0))},R=function(t){s.viewport.unbind("touchmove MSPointerMove pointermove",V),s.controls.el.removeClass("disabled");var e=t.originalEvent,i="undefined"!=typeof e.changedTouches?e.changedTouches:[e],n=0,r=0;s.touch.end.x=i[0].pageX,s.touch.end.y=i[0].pageY,"fade"===s.settings.mode?(r=Math.abs(s.touch.start.x-s.touch.end.x),r>=s.settings.swipeThreshold&&(s.touch.start.x>s.touch.end.x?o.goToNextSlide():o.goToPrevSlide(),o.stopAuto())):("horizontal"===s.settings.mode?(r=s.touch.end.x-s.touch.start.x,n=s.touch.originalPos.left):(r=s.touch.end.y-s.touch.start.y,n=s.touch.originalPos.top),!s.settings.infiniteLoop&&(0===s.active.index&&r>0||s.active.last&&r<0)?S(n,"reset",200):Math.abs(r)>=s.settings.swipeThreshold?(r<0?o.goToNextSlide():o.goToPrevSlide(),o.stopAuto()):S(n,"reset",200)),s.viewport.unbind("touchend MSPointerUp pointerup",R),s.viewport.get(0).releasePointerCapture&&s.viewport.get(0).releasePointerCapture(s.pointerId)},Z=function(e){if(s.initialized)if(s.working)window.setTimeout(Z,10);else{var i=t(window).width(),n=t(window).height();r===i&&a===n||(r=i,a=n,o.redrawSlider(),s.settings.onSliderResize.call(o,s.active.index))}},B=function(t){var e=v();s.settings.ariaHidden&&!s.settings.ticker&&(s.children.attr("aria-hidden","true"),s.children.slice(t,t+e).attr("aria-hidden","false"))},U=function(t){return t<0?s.settings.infiniteLoop?f()-1:s.active.index:t>=f()?s.settings.infiniteLoop?0:s.active.index:t};return o.goToSlide=function(e,i){var n,r,a,l,d=!0,c=0,g={left:0,top:0},u=null;if(s.oldIndex=s.active.index,s.active.index=U(e),!s.working&&s.active.index!==s.oldIndex){if(s.working=!0,d=s.settings.onSlideBefore.call(o,s.children.eq(s.active.index),s.oldIndex,s.active.index),"undefined"!=typeof d&&!d)return s.active.index=s.oldIndex,void(s.working=!1);"next"===i?s.settings.onSlideNext.call(o,s.children.eq(s.active.index),s.oldIndex,s.active.index)||(d=!1):"prev"===i&&(s.settings.onSlidePrev.call(o,s.children.eq(s.active.index),s.oldIndex,s.active.index)||(d=!1)),s.active.last=s.active.index>=f()-1,(s.settings.pager||s.settings.pagerCustom)&&I(s.active.index),s.settings.controls&&D(),"fade"===s.settings.mode?(s.settings.adaptiveHeight&&s.viewport.height()!==p()&&s.viewport.animate({height:p()},s.settings.adaptiveHeightSpeed),s.children.filter(":visible").fadeOut(s.settings.speed).css({zIndex:0}),s.children.eq(s.active.index).css("zIndex",s.settings.slideZIndex+1).fadeIn(s.settings.speed,function(){t(this).css("zIndex",s.settings.slideZIndex),q()})):(s.settings.adaptiveHeight&&s.viewport.height()!==p()&&s.viewport.animate({height:p()},s.settings.adaptiveHeightSpeed),!s.settings.infiniteLoop&&s.carousel&&s.active.last?"horizontal"===s.settings.mode?(u=s.children.eq(s.children.length-1),g=u.position(),c=s.viewport.width()-u.outerWidth()):(n=s.children.length-s.settings.minSlides,g=s.children.eq(n).position()):s.carousel&&s.active.last&&"prev"===i?(r=1===s.settings.moveSlides?s.settings.maxSlides-x():(f()-1)*x()-(s.children.length-s.settings.maxSlides),u=o.children(".bx-clone").eq(r),g=u.position()):"next"===i&&0===s.active.index?(g=o.find("> .bx-clone").eq(s.settings.maxSlides).position(),s.active.last=!1):e>=0&&(l=e*parseInt(x()),g=s.children.eq(l).position()),"undefined"!=typeof g?(a="horizontal"===s.settings.mode?-(g.left-c):-g.top,S(a,"slide",s.settings.speed)):s.working=!1),s.settings.ariaHidden&&B(s.active.index*x())}},o.goToNextSlide=function(){if(s.settings.infiniteLoop||!s.active.last){var t=parseInt(s.active.index)+1;o.goToSlide(t,"next")}},o.goToPrevSlide=function(){if(s.settings.infiniteLoop||0!==s.active.index){var t=parseInt(s.active.index)-1;o.goToSlide(t,"prev")}},o.startAuto=function(t){s.interval||(s.interval=setInterval(function(){"next"===s.settings.autoDirection?o.goToNextSlide():o.goToPrevSlide()},s.settings.pause),s.settings.autoControls&&t!==!0&&A("stop"))},o.stopAuto=function(t){s.interval&&(clearInterval(s.interval),s.interval=null,s.settings.autoControls&&t!==!0&&A("start"))},o.getCurrentSlide=function(){return s.active.index},o.getCurrentSlideElement=function(){return s.children.eq(s.active.index)},o.getSlideElement=function(t){return s.children.eq(t)},o.getSlideCount=function(){return s.children.length},o.isWorking=function(){return s.working},o.redrawSlider=function(){s.children.add(o.find(".bx-clone")).outerWidth(h()),s.viewport.css("height",p()),s.settings.ticker||m(),s.active.last&&(s.active.index=f()-1),s.active.index>=f()&&(s.active.last=!0),s.settings.pager&&!s.settings.pagerCustom&&(b(),I(s.active.index)),s.settings.ariaHidden&&B(s.active.index*x())},o.destroySlider=function(){s.initialized&&(s.initialized=!1,t(".bx-clone",this).remove(),s.children.each(function(){void 0!==t(this).data("origStyle")?t(this).attr("style",t(this).data("origStyle")):t(this).removeAttr("style")}),void 0!==t(this).data("origStyle")?this.attr("style",t(this).data("origStyle")):t(this).removeAttr("style"),t(this).unwrap().unwrap(),s.controls.el&&s.controls.el.remove(),s.controls.next&&s.controls.next.remove(),s.controls.prev&&s.controls.prev.remove(),s.pagerEl&&s.settings.controls&&!s.settings.pagerCustom&&s.pagerEl.remove(),t(".bx-caption",this).remove(),s.controls.autoEl&&s.controls.autoEl.remove(),clearInterval(s.interval),s.settings.responsive&&t(window).unbind("resize",Z),s.settings.keyboardEnabled&&t(document).unbind("keydown",F),t(this).removeData("bxSlider"))},o.reloadSlider=function(e){void 0!==e&&(n=e),o.destroySlider(),l(),t(o).data("bxSlider",this)},l(),t(o).data("bxSlider",this),this}}}(jQuery); \ No newline at end of file diff --git a/design/carheart/js/collapse-panel.js b/design/carheart/js/collapse-panel.js new file mode 100644 index 0000000..b516b8d --- /dev/null +++ b/design/carheart/js/collapse-panel.js @@ -0,0 +1,29 @@ +(function($) { + $.fn.panels = function() { + $this = $(this); + $(this).find('.panel-body').hide(); + $(this).find('.panel-title').prepend('
    '); + $(this).each(function() { + $(this).find('.collapse-button').css('cursor','pointer').click(function() { + $this.find('.panel-body').slideToggle('fast'); + }); + }); + }; +})(jQuery); + +$(document).ready(function() { + $('.collapse-panel').panels(); + if ($('.container').width() < 940){ + $('.panel-body').hide(); + } else { + $('.panel-body').show(); + } +}); + +//$(window).resize(function() { +// if ($('.container').width() < 940){ +// $('.panel-body').hide(); +// } else { +// $('.panel-body').show(); +// } +//}); \ No newline at end of file diff --git a/design/carheart/js/common7_3_3.js b/design/carheart/js/common7_3_3.js new file mode 100644 index 0000000..aaeffca --- /dev/null +++ b/design/carheart/js/common7_3_3.js @@ -0,0 +1,884 @@ +$(function(){ + + $('.set_idealform, #cmp_box2').idealforms(); + $('#site-select').change(function(){ + document.location = 'brands/'+$(this).val(); + }); + + var sideLeft_sel = $('#sideLeft .idealselect'); + sideLeft_sel.width('226px'); + sideLeft_sel.find('ul').width('224px'); + + // подкорректируем пункты меню с подменю + var topnav = $('#topnav'); + topnav.find('li:first a').css('border-top', 'none'); + topnav.find('li:last a').css('border-bottom', 'none'); + $('.sub ul', topnav).each(function(){ + $(this).find('a:last').css('border-bottom', 'none'); + }); + + // скрытие value в форме авторизации при фокусе + var auth_form_input = $('#authfotm2 input[type="text"], #authfotm2 input[type="password"], #s_query, .qnt_text'); + auth_form_input.focus(function(){ + if($(this).val() == this.defaultValue){ + $(this).val(''); + } + }); + + auth_form_input.blur(function(){ + if($(this).val() == ''){ + $(this).val(this.defaultValue); + } + }); + + // \\ скрытие value в форме авторизации при фокусе + + + + $(function() { + $.fn.scrollToTop = function() { + $(this).hide().removeAttr("href"); + if ($(window).scrollTop() != "0") { + $(this).fadeIn("slow") + } + var scrollDiv = $(this); + $(window).scroll(function() { + if ($(window).scrollTop() == "0") { + $(scrollDiv).fadeOut("slow") + } else { + $(scrollDiv).fadeIn("slow") + } + }); + $(this).click(function() { + $("html, body").animate({ + scrollTop: 0 + }, "slow") + }) + } + }); + $(function() { + $("#w2b-StoTop").scrollToTop(); + }); + +}); + +// LazyLoad - медленная загрузка изображений http://www.appelsiini.net/projects/lazyload +(function(a,b){$window=a(b),a.fn.lazyload=function(c){function f(){var b=0;d.each(function(){var c=a(this);if(e.skip_invisible&&!c.is(":visible"))return;if(!a.abovethetop(this,e)&&!a.leftofbegin(this,e))if(!a.belowthefold(this,e)&&!a.rightoffold(this,e))c.trigger("appear");else if(++b>e.failure_limit)return!1})}var d=this,e={threshold:0,failure_limit:0,event:"scroll",effect:"show",container:b,data_attribute:"original",skip_invisible:!0,appear:null,load:null};return c&&(undefined!==c.failurelimit&&(c.failure_limit=c.failurelimit,delete c.failurelimit),undefined!==c.effectspeed&&(c.effect_speed=c.effectspeed,delete c.effectspeed),a.extend(e,c)),$container=e.container===undefined||e.container===b?$window:a(e.container),0===e.event.indexOf("scroll")&&$container.bind(e.event,function(a){return f()}),this.each(function(){var b=this,c=a(b);b.loaded=!1,c.one("appear",function(){if(!this.loaded){if(e.appear){var f=d.length;e.appear.call(b,f,e)}a("").bind("load",function(){c.hide().attr("src",c.data(e.data_attribute))[e.effect](e.effect_speed),b.loaded=!0;var f=a.grep(d,function(a){return!a.loaded});d=a(f);if(e.load){var g=d.length;e.load.call(b,g,e)}}).attr("src",c.data(e.data_attribute))}}),0!==e.event.indexOf("scroll")&&c.bind(e.event,function(a){b.loaded||c.trigger("appear")})}),$window.bind("resize",function(a){f()}),f(),this},a.belowthefold=function(c,d){var e;return d.container===undefined||d.container===b?e=$window.height()+$window.scrollTop():e=$container.offset().top+$container.height(),e<=a(c).offset().top-d.threshold},a.rightoffold=function(c,d){var e;return d.container===undefined||d.container===b?e=$window.width()+$window.scrollLeft():e=$container.offset().left+$container.width(),e<=a(c).offset().left-d.threshold},a.abovethetop=function(c,d){var e;return d.container===undefined||d.container===b?e=$window.scrollTop():e=$container.offset().top,e>=a(c).offset().top+d.threshold+a(c).height()},a.leftofbegin=function(c,d){var e;return d.container===undefined||d.container===b?e=$window.scrollLeft():e=$container.offset().left,e>=a(c).offset().left+d.threshold+a(c).width()},a.inviewport=function(b,c){return!a.rightofscreen(b,c)&&!a.leftofscreen(b,c)&&!a.belowthefold(b,c)&&!a.abovethetop(b,c)},a.extend(a.expr[":"],{"below-the-fold":function(c){return a.belowthefold(c,{threshold:0,container:b})},"above-the-top":function(c){return!a.belowthefold(c,{threshold:0,container:b})},"right-of-screen":function(c){return a.rightoffold(c,{threshold:0,container:b})},"left-of-screen":function(c){return!a.rightoffold(c,{threshold:0,container:b})},"in-viewport":function(c){return!a.inviewport(c,{threshold:0,container:b})},"above-the-fold":function(c){return!a.belowthefold(c,{threshold:0,container:b})},"right-of-fold":function(c){return a.rightoffold(c,{threshold:0,container:b})},"left-of-fold":function(c){return!a.rightoffold(c,{threshold:0,container:b})}})})(jQuery,window) + + +if(typeof deconcept=="undefined"){var deconcept={};}if(typeof deconcept.util=="undefined"){deconcept.util={};}if(typeof deconcept.SWFObjectUtil=="undefined"){deconcept.SWFObjectUtil={};}deconcept.SWFObject=function(_1,id,w,h,_5,c,_7,_8,_9,_a){if(!document.getElementById){return;}this.DETECT_KEY=_a?_a:"detectflash";this.skipDetect=deconcept.util.getRequestParameter(this.DETECT_KEY);this.params={};this.variables={};this.attributes=[];if(_1){this.setAttribute("swf",_1);}if(id){this.setAttribute("id",id);}if(w){this.setAttribute("width",w);}if(h){this.setAttribute("height",h);}if(_5){this.setAttribute("version",new deconcept.PlayerVersion(_5.toString().split(".")));}this.installedVer=deconcept.SWFObjectUtil.getPlayerVersion();if(!window.opera&&document.all&&this.installedVer.major>7){if(!deconcept.unloadSet){deconcept.SWFObjectUtil.prepUnload=function(){__flash_unloadHandler=function(){};__flash_savedUnloadHandler=function(){};window.attachEvent("onunload",deconcept.SWFObjectUtil.cleanupSWFs);};window.attachEvent("onbeforeunload",deconcept.SWFObjectUtil.prepUnload);deconcept.unloadSet=true;}}if(c){this.addParam("bgcolor",c);}var q=_7?_7:"high";this.addParam("quality",q);this.setAttribute("useExpressInstall",false);this.setAttribute("doExpressInstall",false);var _c=(_8)?_8:window.location;this.setAttribute("xiRedirectUrl",_c);this.setAttribute("redirectUrl","");if(_9){this.setAttribute("redirectUrl",_9);}};deconcept.SWFObject.prototype={useExpressInstall:function(_d){this.xiSWFPath=!_d?"expressinstall.swf":_d;this.setAttribute("useExpressInstall",true);},setAttribute:function(_e,_f){this.attributes[_e]=_f;},getAttribute:function(_10){return this.attributes[_10]||"";},addParam:function(_11,_12){this.params[_11]=_12;},getParams:function(){return this.params;},addVariable:function(_13,_14){this.variables[_13]=_14;},getVariable:function(_15){return this.variables[_15]||"";},getVariables:function(){return this.variables;},getVariablePairs:function(){var _16=[];var key;var _18=this.getVariables();for(key in _18){_16[_16.length]=key+"="+_18[key];}return _16;},getSWFHTML:function(){var _19="";if(navigator.plugins&&navigator.mimeTypes&&navigator.mimeTypes.length){if(this.getAttribute("doExpressInstall")){this.addVariable("MMplayerType","PlugIn");this.setAttribute("swf",this.xiSWFPath);}_19="0){_19+="flashvars=\""+_1c+"\"";}_19+="/>";}else{if(this.getAttribute("doExpressInstall")){this.addVariable("MMplayerType","ActiveX");this.setAttribute("swf",this.xiSWFPath);}_19="";_19+="";var _1d=this.getParams();for(var key in _1d){_19+="";}var _1f=this.getVariablePairs().join("&");if(_1f.length>0){_19+="";}_19+="";}return _19;},write:function(_20){if(this.getAttribute("useExpressInstall")){var _21=new deconcept.PlayerVersion([6,0,65]);if(this.installedVer.versionIsValid(_21)&&!this.installedVer.versionIsValid(this.getAttribute("version"))){this.setAttribute("doExpressInstall",true);this.addVariable("MMredirectURL",escape(this.getAttribute("xiRedirectUrl")));document.title=document.title.slice(0,47)+" - Flash Player Installation";this.addVariable("MMdoctitle",document.title);}}if(this.skipDetect||this.getAttribute("doExpressInstall")||this.installedVer.versionIsValid(this.getAttribute("version"))){var n=(typeof _20=="string")?document.getElementById(_20):_20;n.innerHTML=this.getSWFHTML();return true;}else{if(this.getAttribute("redirectUrl")!=""){document.location.replace(this.getAttribute("redirectUrl"));}}return false;}};deconcept.SWFObjectUtil.getPlayerVersion=function(){var _23=new deconcept.PlayerVersion([0,0,0]);if(navigator.plugins&&navigator.mimeTypes.length){var x=navigator.plugins["Shockwave Flash"];if(x&&x.description){_23=new deconcept.PlayerVersion(x.description.replace(/([a-zA-Z]|\s)+/,"").replace(/(\s+r|\s+b[0-9]+)/,".").split("."));}}else{if(navigator.userAgent&&navigator.userAgent.indexOf("Windows CE")>=0){var axo=1;var _26=3;while(axo){try{_26++;axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash."+_26);_23=new deconcept.PlayerVersion([_26,0,0]);}catch(e){axo=null;}}}else{try{var axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");}catch(e){try{var axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");_23=new deconcept.PlayerVersion([6,0,21]);axo.AllowScriptAccess="always";}catch(e){if(_23.major==6){return _23;}}try{axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash");}catch(e){}}if(axo!=null){_23=new deconcept.PlayerVersion(axo.GetVariable("$version").split(" ")[1].split(","));}}}return _23;};deconcept.PlayerVersion=function(_29){this.major=_29[0]!=null?parseInt(_29[0]):0;this.minor=_29[1]!=null?parseInt(_29[1]):0;this.rev=_29[2]!=null?parseInt(_29[2]):0;};deconcept.PlayerVersion.prototype.versionIsValid=function(fv){if(this.majorfv.major){return true;}if(this.minorfv.minor){return true;}if(this.rev=0;i--){_2f[i].style.display="none";for(var x in _2f[i]){if(typeof _2f[i][x]=="function"){_2f[i][x]=function(){};}}}};if(!document.getElementById&&document.all){document.getElementById=function(id){return document.all[id];};}var getQueryParamValue=deconcept.util.getRequestParameter;var FlashObject=deconcept.SWFObject;var SWFObject=deconcept.SWFObject; + + +(function($){$.fn.easyTooltip=function(options){var defaults={xOffset:10,yOffset:25,tooltipId:"easyTooltip",clickRemove:false,content:"",useElement:""};var options=$.extend(defaults,options);var content;this.each(function(){var title=$(this).attr("title");$(this).hover(function(e){content=(options.content!="")?options.content:title;content=(options.useElement!="")?$("#"+options.useElement).html():content;$(this).attr("title","");if(content!=""&&content!=undefined){$("body").append("
    "+content+"
    ");$("#"+options.tooltipId).css("position","absolute").css("top",(e.pageY-options.yOffset)+"px").css("left",(e.pageX+options.xOffset)+"px").css("display","none").fadeIn("slow")}},function(){$("#"+options.tooltipId).remove();$(this).attr("title",title)});$(this).mousemove(function(e){$("#"+options.tooltipId).css("top",(e.pageY-options.yOffset)+"px").css("left",(e.pageX+options.xOffset)+"px")});if(options.clickRemove){$(this).mousedown(function(e){$("#"+options.tooltipId).remove();$(this).attr("title",title)})}})}})(jQuery); +$(document).ready(function(){ + var options_tooltip = { + xOffset : 20, + yOffset : 40 + } + $('a, .any').easyTooltip(options_tooltip); + $('.b_imgage').each(function(){ + $(this).easyTooltip + ({ + tooltipId : 'easyTooltip2', + content : $(this).next().html(), + xOffset : 40, + yOffset : 60 + }); + }); + + $('.b_img').each(function(){ + $(this).easyTooltip + ({ + tooltipId : 'easyTooltip3', + content : $(this).next().html(), + xOffset : 40, + yOffset : 60 + }); + }); + + $(".lazy").lazyload({ + effect : "fadeIn", + threshold : 500 + }); + + +}); + + + +//Ajax-form submit + (function($) { +$.fn.ajaxSubmit = function(options) { + if (typeof options == 'function') + options = { success: options }; + + options = $.extend({ + url: this.attr('action') || window.location.toString(), + type: this.attr('method') || 'GET' + }, options || {}); + + var veto = {}; + this.trigger('form-pre-serialize', [this, options, veto]); + if (veto.veto) return this; + + var a = this.formToArray(options.semantic); + if (options.data) { + for (var n in options.data) + a.push( { name: n, value: options.data[n] } ); + } + + if (options.beforeSubmit && options.beforeSubmit(a, this, options) === false) return this; + + this.trigger('form-submit-validate', [a, this, options, veto]); + if (veto.veto) return this; + + var q = $.param(a); + + if (options.type.toUpperCase() == 'GET') { + options.url += (options.url.indexOf('?') >= 0 ? '&' : '?') + q; + options.data = null; + } + else + options.data = q; + + var $form = this, callbacks = []; + if (options.resetForm) callbacks.push(function() { $form.resetForm(); }); + if (options.clearForm) callbacks.push(function() { $form.clearForm(); }); + + if (!options.dataType && options.target) { + var oldSuccess = options.success || function(){}; + callbacks.push(function(data) { + $(options.target).fadeIn(300); + $(options.target).html(data).each(oldSuccess, arguments); + + }); + } + else if (options.success) + callbacks.push(options.success); + + options.success = function(data, status) { + for (var i=0, max=callbacks.length; i < max; i++) + callbacks[i](data, status, $form); + }; + + var files = $('input:file', this).fieldValue(); + var found = false; + for (var j=0; j < files.length; j++) + if (files[j]) + found = true; + + if (options.iframe || found) { + if ($.browser.safari && options.closeKeepAlive) + $.get(options.closeKeepAlive, fileUpload); + else + fileUpload(); + } + else + $.ajax(options); + + this.trigger('form-submit-notify', [this, options]); + return this; + function fileUpload() { + var form = $form[0]; + var opts = $.extend({}, $.ajaxSettings, options); + + var id = 'jqFormIO' + (new Date().getTime()); + var $io = $('