///////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////// var MapTips = new Class({ options:{ el:'' }, delay:null, initialize: function(options){ this.setOptions(this.options, options); this.el = $$(this.options.el); this.el.each(function(el,i){ el.addEvent('mouseenter', function(){ $clear(this.delay); this.delay=this.entered.delay(500, this, el); }.bind(this)); el.addEvent('mouseleave', function(){ $clear(this.delay); }.bind(this)); }.bind(this)); }, entered: function(el){ this.top = new Element('div', {'id': 'tip-top'}).inject(document.body); this.container = new Element('div', {'html':el.get('html'), 'class': 'tip'}).inject(this.top); var p=el.getParent().getPosition(document.body); this.top.position({ x:p.x+el.getStyle('left').toInt()-200 ,y:p.y+el.getStyle('top').toInt()-230 }); this.top.addEvent('mouseleave', this.leave.bind(this, el)) }, leave: function(el){ this.top.dispose(); } }); MapTips.implement(new Events); MapTips.implement(new Options); ///////////////////////////////////////////////////////////////////////////////////// var PlaceHolder = new Class({ options:{ links:'input.clear-text' }, initialize: function(options){ this.setOptions(this.options, options); this.links = $$(this.options.links); this.text=[]; this.links.each(function(el,i){ this.text[i]=el.getProperty('value'); el.addEvent('focus',function(e){ this.start(el, i); }.bind(this)); el.addEvent('blur',function(e){ this.back(el, i); }.bind(this)); }.bind(this)); }, start: function(el, i){ var v=el.getProperty('value'); if(v==this.text[i]){ el.setProperty('value', ''); } }, back: function(el, i){ var v=el.getProperty('value'); if(v==''){ el.setProperty('value', this.text[i]); } } }); PlaceHolder.implement(new Events); PlaceHolder.implement(new Options); ///////////////////////////////////////////////////////////////////////////////////// var Url = new Class({ initialize: function(params){ }, formatUrl: function(str){ str = str.toString(); var index = str.indexOf('#'); if(index > -1){ str = str.substring(0, index); } return str; }, formatHash: function(str){ str = str.toString(); var index = str.indexOf('#'); if(index > -1){ str = str.substr(index+1); } return str; }, load: function(){ this.url = window.location.href.toString(); }, getHash: function(){ this.load(); return this.formatHash(this.url); } }); ///////////////////////////////////////////////////////////////////////////////////// var pageLoaderAjax = new Class({ options:{ links:'div.small-text-list h3 a' , conteiner:'div.small-text-list' , activeId:'small-text-list-active' , loadInTo:'p' , data:'a-sub-text' , loaderHtml:'loader' , duration: 500 //, onSuccess: Class.empty }, initialize: function(options){ this.setOptions(this.options, options); this.links = $$(this.options.links); this.text=[]; this.textLoader=[]; this.links.each(function(el,i){ this.text[i]=''; this.textLoader[i]=false; el.addEvent('click',function(e){ if(e != undefined){ new Event(e).stop(); } this.start(el, i); }.bind(this)); }.bind(this)); }, start: function(el, i){ var parent = el.getParent(this.options.conteiner); var contentEl = parent.getChildren(this.options.loadInTo).getLast(); if(parent.hasClass(this.options.active)) { if(contentEl.getChildren('img')!=''){ if(contentEl.getChildren('img').hasClass('img-loader')){ return; } } new Fx.Morph(contentEl, {duration: this.options.duration, transition: Fx.Transitions.Quad.easeIn}) .start({ 'height': [contentEl.getSize().y, 0] }).chain(function(){ parent.removeClass(this.options.active); this.text[i]=contentEl.get('html'); contentEl.set('html', ''); contentEl.setStyles({ 'display': 'none' ,'height': 'auto' }); }.bind(this)); return; } parent.addClass(this.options.active); contentEl.setStyles({ 'overflow': 'hidden' ,'display': 'block' }); if(this.text[i]!=''){ contentEl.set('html', this.text[i]); //this.complete(); return; } if(this.options.loaderHtml!=''){ contentEl.set('html', this.options.loaderHtml); } contentEl.set('load',{ url: el.href, method: 'get' ,data: this.options.data ,onSuccess: this.complete.bind(this) }).load(); }, setContent: function(){ //var temp = new Element('div').setProperties({id:'temp'}).setStyles({display:'none'}).injectInside(document.body); //d(text); //parent.getChildren(this.options.loadInTo).set('html', text); //var newEl = $('temp').getElement('#'+this.options.loadFrom); //$(this.options.loadInTo).replaces($('temp')); //newEl.replaces($(this.options.loadInTo)); //newEl.setProperties({id:this.options.loadInTo}); //temp.dispose(); //this.options.onComplete(); this.success(); //contentFunctions(); }, success: function(){ this.onSuccess(); }, /*onSuccess: function(){ this.fireEvent('success', arguments).callChain(); },*/ complete: function(){ contentFunctions(); } }); pageLoaderAjax.implement(new Events); pageLoaderAjax.implement(new Options); ///////////////////////////////////////////////////////////////////////////////////// //predefinied clases var ProductMenu = new Class({ initialize: function(params){ //product list subnavigation animation var prList=$$("#product-menu li.pr-s a.pr-s"); if(prList.length>0) $$("#product-menu li ul").setStyle('opacity', 0); var prHeight=31; var prHeightOr=20; var fx = new Fx.Elements(prList, {wait: false, duration: params.sub.duration, transition: Fx.Transitions.Back.easeOut});//transition: Fx.Transitions.Back.easeOut var fxSub = new Fx.Elements($$("#product-menu li.over"), {wait: false, duration: params.sub2.duration, transition: Fx.Transitions.Quint.easeOut});//transition: Fx.Transitions.Back.easeOut prList.each(function(pr, i) { pr.addEvent("mouseenter", function(event) { var o = {}; o[i] = {height: [pr.getStyle("height").toInt(), prHeight], lineHeight: [pr.getStyle("line-height").toInt(), prHeight]}; prList.each(function(other, j) { if(i != j) { var h = other.getStyle("height").toInt(); var lh = other.getStyle("line-height").toInt(); if(h != prHeightOr){ o[j] = {height: [h, prHeightOr], lineHeight: [lh, prHeightOr]}; } } }); fx.start(o) .chain(function(){ var subMenu=$$("#product-menu li.over ul"); if(1==subMenu.length){ var subO={}; subO[0]={opacity:[0,1]}; subO[0]={opacity:[0,1], width:[0,520]}; fxSub.elements=subMenu; fxSub.start(subO); } }); pr.getParent().addClass('over'); }); //onmouse leave pr.getParent().addEvent("mouseleave", function(event) { //fxSub.stop(); $$("#product-menu li ul").setStyle('opacity', 0); pr.getParent().removeClass('over'); }); }); $$("#product-menu").addEvent("mouseleave", function(event) { var o = {}; prList.each(function(pr, i) { o[i] = {height: [pr.getStyle("height").toInt(), prHeightOr], lineHeight: [pr.getStyle("line-height").toInt(), prHeightOr]}; }); fx.start(o); }); } }); ///////////////////////////////////////////////////////////////////////////////////// var ShowMenu = new Class({ initialize: function(params){ var menu=$$(params.obj); var o={}; menu.setStyle('margin-left', -250); var o={}; var fx = []; var timer=0; menu.each(function(m,i){ fx[i] = new Fx.Style(m, 'margin-left', {wait: false, duration: params.duration, transition: Fx.Transitions.backOut}); timer+=100; fx[i].start.delay(timer, fx[i], 0); }); } }); ///////////////////////////////////////////////////////////////////////////////////// var TopMenu = new Class({ initialize: function(params){ //product list subnavigation animation var menu=$$("#top-menu > ul > li > a"); var colorOriginal='ffffff'.hexToRgb(true); var textIndentOriginal=50; var fx = new Fx.Elements(menu, {wait: false, duration: params.duration, transition: Fx.Transitions.Quint.easeOut});//transition: Fx.Transitions.Back.easeOut var menuColor={}; //$$("#top-menu li ul").setStyle('display', 'block'); menu.each(function(m, i) { //terminator add for shadow var ul=m.getNext('ul'); if(ul!=null){ var opened=false; var ulHtml=ul.get('html'); //ul.remove(); var parent=m.getParent('li'); var el=new Element('div', { 'class': 'sub-menu-shadow', 'html': '
'+ '
'+ '
'+ '
'+ '
'+ '
'+ '
    '+ulHtml+'
'+ '
'+ '
'+ '
'+ '
'+ '
'+ '
'+ '
'+ '
'+ '
'+ '
'+ '
' }); el.replaces(ul); } //terminator add menuColor[i]={color:m.getStyle("color").hexToRgb(true)}; m.addEvent("mouseenter", function(event) { if(ul!=null){ var elChild=el.getChildren("div.sm_popup_conteiner").getLast(); var elChildPop=elChild.getChildren("div.sm_popup").getLast(); elChildPop.setStyles({ 'margin-left':-270 //,'width':0 }); elChild.setStyle('display','inline'); var fx2 = new Fx.Morph(elChildPop, {duration: params.duration, transition: Fx.Transitions.Quint.easeOut}); fx2.start({ 'margin-left':0 }); } var o = {}; o[i] = {color: [m.getStyle("color").hexToRgb(true), '3e0500'.hexToRgb(true)]}//, 'padding-left': [m.getStyle("padding-left").toInt(), 65]}; menu.each(function(other, j) { if(i != j && other.getParent('li').get('id')!='t0') { var color = other.getStyle("color").hexToRgb(true); var textIndent=other.getStyle("padding-left").toInt(); if(color != colorOriginal){ o[j] = {color: [color, colorOriginal]}//, 'padding-left': [textIndent, textIndentOriginal]}; } } }); //d(o[i]); fx.start(o);/*.chain(function(){ fx2.start({ 'margin-left':0 }); });*/ }); if(ul!=null){ parent.addEvent("mouseleave", function(event) { el.getChildren("div.sm_popup_conteiner").setStyle('display','none'); var o = {}; menu.each(function(m, i) { o[i] = {color: [m.getStyle("color").hexToRgb(true), menuColor[i].color]}//, 'padding-left': [m.getStyle("padding-left").toInt(), textIndentOriginal]}; }); fx.start(o); }); } else{ m.addEvent("mouseleave", function(event) { var o = {}; menu.each(function(m, i) { o[i] = {color: [m.getStyle("color").hexToRgb(true), menuColor[i].color]}//, 'padding-left': [m.getStyle("padding-left").toInt(), textIndentOriginal]}; }); fx.start(o); }); } }); $$("#top-menu ul").addEvent("mouseleave", function(event) { /*var o = {}; menu.each(function(m, i) { o[i] = {color: [m.getStyle("color").hexToRgb(true), menuColor[i].color]}//, 'padding-left': [m.getStyle("padding-left").toInt(), textIndentOriginal]}; }); fx.start(o);*/ }); //$$("#top-menu > ul > li").setStyle('background-color', 'red'); $$("#top-menu li ul").setStyle('display', 'block'); $$("#top-menu li li ul").setStyle('display', 'none'); } }); ///////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////// var SubNavigation=new Class({ initialize: function(params){ var links=$$(params.obj); var fx = new Fx.Elements(links, {wait: false, duration: params.duration, transition: Fx.Transitions.Quint.easeOut}); links.each(function(m,i){ var size=m.getSize(); m.addEvent("mouseenter", function(event) { var o = {}; o[i]={ backgroundPosition:[[size.x,size.y-1],[0,size.y-1]] }; links.each(function(other, j) { var sizeOther=other.getSize(); if(i != j) { other.setStyle( 'background-position',[sizeOther.x,sizeOther.y-1] ); } }); fx.start(o); }); m.addEvent("mouseleave", function(event) { var o = {}; o[i]={ backgroundPosition:[[0,size.y-1],[size.x,size.y-1]] }; fx.start(o); }); }); } }); var TextDecoratin=new Class({ }); var Gallery=new Class({ initialize: function(params){ //var img=params.img; //#product-image-preview img //#product-image-list a var imgLinks=$$('#product-image-list a'); var images=$$('#product-image-preview img'); //lets add ids to images images.each(function(img,i){ img.setAttribute('id', 'img'+i); }); //set needed styles to parent $$('#product-image-preview').setStyle('position', 'relative'); $$('#product-image-preview').setStyle('overflow', 'hidden'); //imgLinks.setStyle('opacity', 0.5); var fx = new Fx.Elements(imgLinks, {wait: false, duration: params.duration, transition: Fx.Transitions.Quint.easeOut}); var timer=0; var prev=0; var descriptionImage=$$(params.descImage).get('html').getLast(); var prevTopSpace = 0; imgLinks.each(function(m,i){ m.addEvent("mouseenter", function(event) { var o = {}; imgLinks.each(function(other, j){ if(i!=j){ o[j]={ 'opacity':[other.getStyle('opacity'),0.5] }; } }); o[i]={ 'opacity':[0.5,1] }; //fx.start(o); }); m.addEvent("mouseleave", function(event) { var o = {}; o[i]={ 'opacity':[1,0.5] }; //fx.start(o); }); m.addEvent("click", function(m) { m.stop(); var relString=this.getProperty('rel').split(';'); //d(relString.length); if(descriptionImage!=null){ if(relString.length>1){ $$(params.descImage).set('html', relString[1]); } else { $$(params.descImage).set('html', descriptionImage); } } var id=relString[0]; var topSpace = this.getPosition().y-$('img'+id).getParent().getPosition().y; topSpace=topSpace<0 ? 0 : topSpace; topSpace = 0; if(id==prev){ return; } var o={}; var fx=new Fx.Elements(images, {wait: false, duration: params.durationImage, transition: Fx.Transitions.Expo.easeIn ,onComplete:function(){ $('img'+prev).setStyle('display', 'none'); $('img'+id).setStyle('display', ''); prev=id; prevTopSpace=topSpace; } }); o[prev]={ 'left':[0,-500] }; o[id]={ 'left':[$('img'+id).getParent().getSize().x,0] ,'top': [prevTopSpace, topSpace] } if($('img'+id).getParent().getSize().y<$('img'+id).getProperty('height').toInt()+topSpace) { $('img'+id).getParent().setStyle('height', $('img'+id).getProperty('height').toInt()+topSpace); } else { $('img'+id).getParent().setStyle('height', $('img'+id).getParent().getSize().y); } //uncomment previous and delete next rows /*if($('img'+id).getParent().getSize().y<$('img'+id).getProperty('height').toInt()) { $('img'+id).getParent().setStyle('height', $('img'+id).getProperty('height').toInt()); } */ $('img'+prev).setStyles({ 'position':'absolute' ,'z-index':'2' }); $('img'+id).setStyles({ 'position':'absolute' ,'left':$('img'+id).getParent().getSize().x ,'z-index':'1' ,'display':'' }); fx.start(o); }); }); } }); ///////////////////////////////////////////////////////////////////////////////////// var LinkReplacer=new Class({ initialize: function(params){ $$('a').each(function(a, i){ if(a.replaced) return; a.replaced=true; var h=a.getProperty('href'); if(!h) return; var ex=(h.substr(h.length-4)).toLowerCase(); if(a.hasClass('swf')){ this.toSWF(a,i,h); } if(ex=='.flv'){ this.toFlv(a, i, h); } if(ex=='.jpg'){ this.toJpg(a, i, h); } }.bind(this)); }, ////////// toFlv: function(el, i, link){ var build='
'+ '

'+el.getProperty('text')+'

'+ '
'+ '
'+ '
'+ '
'+ '
'; var r=new Element('div', { 'html': build }); r.replaces(el); var obj = new Swiff('/design/flash/flv_player.swf?path='+link+'', { width: 320, height: 266, params: { //wmode: 'opaque' } }); obj.replaces('flash_video_'+i); }, ////////////////////////////////////////////////////////////////////////// toSWF: function(el, i, link){ var s=el.getChildren('img')[0].getSize(); var div = new Element('div', { 'styles':{ 'position':'relative' } }); new Swiff(el.getProperty('rel'), { width: s.x, height: s.y, params: { //wmode: 'opaque' } }).inject(div); if(!el.hasClass('noLink')){ new Element('a', { 'href':el.getProperty('href') , 'styles':{ 'display':'block' , 'position':'absolute' , 'top':0 , 'left':0 , 'width':s.x , 'height':s.y , 'background':'url("/design/image/empty.gif")' } }).inject(div); } div.replaces(el); }, ////////////////////////////////////////////////////////////////////////// toJpg: function(el, i, link){ el.addEvent('click', function(e){ new Event(e).stop(); el.setStyles({ 'position':'static' }); var duration = 1000; var src=el.getProperty('href'); var linkName=el.getProperty('text'); linkName=linkName=='' ? el.getChildren().getProperty('alt') : linkName; var popup = new Element('div', { 'id': 'popup-img' }).inject(document.body); var bSize = ($("holder").getSize()); var imCoor = el.getChildren('img').getLast().getCoordinates($("holder")); imCoor.top+=2; imCoor.left+=2; imCoor.width-=4; imCoor.height-=4; //alert(imPos.x) popup.setStyles({ 'position':'absolute' ,'top':0 ,'left':0 ,'width':bSize.x ,'height':bSize.y ,'background-image': "url('/design/image/empty.gif')" }); var imgCont = new Element('div').inject(popup); imgCont.setStyles({ 'position':'relative' ,'top':0 ,'left':0 ,'width':0 ,'height':0 }); var loadimg = '/design/image/loader.gif'; // Reference to load gif var load = new Element('img', { 'src': loadimg ,'class': 'loading' }).inject(imgCont); load.setStyles({ 'position':'absolute' ,'top':imCoor.top ,'left':imCoor.left }); var largeImage = new Element('img', { 'src': src+'?'+$time() ,'alt': linkName ,'title': linkName }); largeImage.setStyles({ 'position':'absolute' ,'top':imCoor.top ,'left':imCoor.left }); var fx = new Fx.Morph(largeImage, {duration: duration, transition: Fx.Transitions.Expo.easeIn}); var fx2 = new Fx.Morph(largeImage, {duration: duration, transition: Fx.Transitions.Expo.easeOut}); var loaded = false; largeImage.onload = function(){ //var orSize = (largeImage.getSize()); fx.start({ //'opacity' : 0 //,'width':'auto' //,'height':'auto' }).chain(function(){ loaded=true; imgCont.empty(); imgCont.setStyles({ 'overflow':'hidden' }); largeImage.inject(imgCont); var orSize = (largeImage.getSize()); largeImage.setStyles({ 'width':imCoor.width ,'height':imCoor.height ,'opacity' : 0.7 }); imgCont.setStyles({ 'overflow':'visible' }); var top=imCoor.top-orSize.x/2<10 ? 10 : imCoor.top-orSize.y/2; var left=bSize.x/2-orSize.x/2<0 ? 0 : bSize.x/2-orSize.x/2; fx.start({ 'top':top ,'left':left ,'width':orSize.x ,'height':orSize.y ,'opacity':1 }); }); }; //remove popup popup.addEvent('click', function(e){ if(loaded){ fx.cancel(); fx2.start({ 'top':imCoor.top ,'left':imCoor.left ,'width':imCoor.width ,'height':imCoor.height ,'opacity':0.7 }).chain(function(){ popup.dispose(); }); } else { fx.cancel(); popup.dispose(); } }); // //alert(src); }); } }); ///////////////////////////////////////////////////////////////////////////////////// var Submit=new Class({ initialize: function(){ $$("button[type=submit]").each(function(e, i){ if(e.replaced) return; e.replaced=true; if(e.hasClass('simple-submit')){ this.replaceSimple(e, i); return; } this.replace(e, i); }.bind(this)); }, replace: function(e, i){ var t = e.getProperty('type'); var txt = e.get('text'); var build='
'+ '
'+ '
'+ ''+txt+'' '
'+ '
'+ '
'; var r=new Element('div', { 'html': build ,'class': t+'-conteiner' }); r.replaces(e); $(t+'-'+i).addEvent("click", function(m) { var h=document.location.hash.toString().replace('#',''); if(h!=''){ var index = h.indexOf('?'); if(index > -1){ h = h.substring(0, index); } this.getParent("form").setProperty('action', h); } this.getParent("form").submit(); }); } , replaceSimple: function(e, i){ var t = e.getProperty('type'); var txt = e.get('text'); var build=''+txt+''; var r=new Element('span', { 'html': build ,'class': t+'-b-conteiner' }); r.replaces(e); r.addEvent("click", function(m) { this.getParent("form").submit(); }); } }); ///////////////////////////////////////////////////////////////////////////////////// var ShopMap=new Class({ getOptions: function(){ return { links: '.p-shop-link', shower: 'div.shop-cities', active: 'active', duration: 500 }; }, initialize: function(options){ this.setOptions(this.getOptions(), options); this.links = $$(this.options.links); this.links.each(function(el,i){ if(el.replaced) return; el.replaced=true; el.addEvent('click',function(e){ if(e != undefined){ new Event(e).stop(); } this.start(el, i); }.bind(this)); }.bind(this)); }, start: function(el, i){ var li=el.getParent().getParent(); var shower=this.options.shower; var str=li.getElement(shower); var liPrev = $(this.options.active); //d(this.options.active); if(liPrev){ new Fx.Morph(liPrev.getElement(shower), {duration: this.options.duration, transition: Fx.Transitions.Quad.easeIn}) .start({ 'height': [liPrev.getElement(shower).getSize().y, 0] }).chain(function(){ liPrev.getElement(shower).setStyle('height', 'auto'); liPrev.removeProperty('id'); }); } if(li.getProperty('id')==this.options.active){ return; } str.setStyle('opacity', '0'); li.setProperty('id', this.options.active); var myEffect = new Fx.Morph(str, {duration: this.options.duration, transition: Fx.Transitions.Quad.easeIn}); myEffect.start({ 'opacity': [0, 1] }); } }); ShopMap.implement(new Events); ShopMap.implement(new Options);