﻿var Venus=new Class({Implements:[Options],options:{bubbleWidth:200,bubbleHeight:100,bubbleLeftOffset:50,bubbleOpacity:0.8,bubbltTopOffset:0,ie7LeftOffset:0,pagerButtonHeight:20,pause:4000,selector:'IMG',showStripe:true,showBubble:true,stripeHeight:80,stripeTopOffset:0,stripeColor:'#FFF',stripeBackgroundColor:'#000',stripeOpacity:0.8,transitionBubble:'expo:out',transitionBubbleDuration:500,transitionImage:'linear',transitionImageDuration:500,transitionStripe:'expo:out',transitionStripeDuration:500},initialize:function(c){this.setOptions(c);this.imageFx=null;this.bubble=null;this.bubbleFx=null;this.bubbleText=null;this.bubbleTextFx=null;this.buttonNext=null;this.buttonPrevious=null;this.containerElement=$(this.options.selector).parentNode;this.currentImageID=0;this.nextImageID=0;this.pager=null;this.pagerButton=[];this.previousImageID=0;this.stripe=null;this.stripeFx=null;this.isFirst=true;this.isRunning=true;this.mainFrame=new Element('div').addClass('venusWrap').setStyles({width:this.options.width,height:this.options.height}).inject(this.containerElement,'top');this.image=new Asset.images($$('#'+this.options.selector+' LI IMG').getProperty('src'),{onProgress:function(a,b){this.mainFrame.set('html','<h3>טוען תמונה '+(a+1)+' מתוך '+$$('#'+this.options.selector+' LI IMG').length+'</h3>')}.bind(this),onComplete:function(){$(this.options.selector).destroy();this.start()}.bind(this)});this.title=$$('#'+this.options.selector+' LI H1').get('html');this.text=$$('#'+this.options.selector+' LI P').get('html');this.url=$$('#'+this.options.selector+' LI A').getProperty('href');if(Browser.Engine.trident&&Browser.Engine.version==5&&!document.querySelectorAll){this.options.ie7LeftOffset=-33}},start:function(){this.mainFrame.set('html','');this.renderImage(this.currentImageID);if(this.options.showStripe){this.stripe=new Element('div').setStyles({position:'absolute',opacity:0,border:'none',height:this.options.stripeHeight,left:this.mainFrame.getPosition().x+7+this.options.ie7LeftOffset,color:this.options.stripeColor,background:this.options.stripeBackgroundColor,zIndex:'30'}).inject(this.mainFrame);this.stripeFx=new Fx.Morph(this.stripe,{duration:this.options.transitionStripeDuration,transition:this.options.transitionStripe,wait:true});this.buttonNext=new Element('div').addClass('right').setStyles({opacity:0,height:this.options.stripeHeight,zIndex:'31'}).addEvents({'click':function(a){a.stop();$clear(this.timeoutID);this.isRunning=false;this.next()}.bind(this)}).inject(this.mainFrame);this.buttonPrevious=new Element('div').addClass('left').setStyles({opacity:0,height:this.options.stripeHeight,zIndex:'31'}).addEvents({'click':function(a){a.stop();$clear(this.timeoutID);this.isRunning=false;this.previous()}.bind(this)}).inject(this.mainFrame)}if(this.options.showBubble){this.pager=new Element('div').setStyles({position:'absolute',opacity:0,height:this.options.pagerButtonHeight,zIndex:'31'}).inject(this.mainFrame);this.image.each(function(b,c){this.pagerButton[c]=new Element('div').addClass('pagerButton').addClass('off').setStyles({width:this.options.pagerButtonHeight,lineHeight:this.options.pagerButtonHeight}).addEvents({'click':function(a){a.stop();$clear(this.timeoutID);this.isRunning=false;this.renderImage(c)}.bind(this)}).set('html',c+1).inject(this.pager)}.bind(this));this.bubble=new Element('div').addClass('bubble').setStyles({opacity:0,width:this.options.bubbleWidth,height:this.options.bubbleHeight,left:this.mainFrame.getPosition().x+this.options.bubbleLeftOffset+this.options.ie7LeftOffset,zIndex:'31'}).inject(this.mainFrame);this.bubbleFx=new Fx.Morph(this.bubble,{duration:this.options.transitionBubbleDuration,transition:this.options.transitionBubble,wait:true});this.bubbleText=new Element('div').addClass('bubbleText').setStyles({opacity:0,width:this.options.bubbleWidth,height:this.options.bubbleHeight,left:this.mainFrame.getPosition().x+this.options.bubbleLeftOffset+this.options.ie7LeftOffset,zIndex:'32'}).inject(this.mainFrame);this.bubbleTextFx=new Fx.Morph(this.bubbleText,{duration:this.options.transitionBubbleDuration,transition:this.options.transitionBubble,wait:true});this.pagerButton[this.currentImageID].removeClass('off').addClass('on')}if(this.isRunning)this.timeoutID=this.next.delay(this.options.pause,this)},renderImage:function(c){this.injectImage(c);var d=new Element('div').setProperty('id','venusFrame'+c).setStyles({position:'absolute',opacity:0,background:'url('+this.image[c].src+')',top:this.mainFrame.getPosition().y,left:this.mainFrame.getPosition().x+this.options.ie7LeftOffset,width:this.image[c].getSize().x,height:this.image[c].getSize().y,zIndex:'20'}).inject(this.mainFrame);if(this.url[c]){d.setStyle('cursor','pointer')}else d.setStyle('cursor','default');d.addEvent('click',function(){if(this.url[c]){location.href=this.url[c]}else{return false}}.bind(this));this.imageFx=new Fx.Morph(d,{duration:this.options.transitionImageDuration,transition:this.options.transitionImage,wait:true});if(this.isFirst){this.isFirst=false;this.imageFx.start({opacity:[0,1]}).chain(function(){this.renderCommandLayer();this.renderBubble()}.bind(this))}else{if(this.options.showBubble){this.bubbleTextFx.start({opacity:[1,0],top:[this.mainFrame.getPosition().y+(this.mainFrame.getSize().y/2-this.options.bubbleHeight/2)+this.options.bubbleTopOffset,this.mainFrame.getPosition().y+(this.mainFrame.getSize().y/2-this.options.bubbleHeight/2)+this.options.bubbleTopOffset+20]});this.bubbleFx.start({opacity:[this.options.bubbleOpacity,0],top:[this.mainFrame.getPosition().y+(this.mainFrame.getSize().y/2-this.options.bubbleHeight/2)+this.options.bubbleTopOffset,this.mainFrame.getPosition().y+(this.mainFrame.getSize().y/2-this.options.bubbleHeight/2)+this.options.bubbleTopOffset+20]}).chain(function(){this.bubbleText.set('html','');var a=$('venusFrame'+this.currentImageID);var b=new Fx.Morph(a,{duration:this.options.transitionImageDuration,transition:this.options.transitionImage,wait:true});this.imageFx.start({opacity:[0,1]}).chain(function(){if($('venusFrame'+this.currentImageID))$('venusFrame'+this.currentImageID).destroy();if($('venusTemp'+this.currentImageID))$('venusTemp'+this.currentImageID).destroy();this.currentImageID=c;this.renderBubble()}.bind(this))}.bind(this))}else{this.imageFx.start({opacity:[0,1]}).chain(function(){if($('venusFrame'+this.currentImageID))$('venusFrame'+this.currentImageID).destroy();if($('venusTemp'+this.currentImageID))$('venusTemp'+this.currentImageID).destroy();this.currentImageID=c}.bind(this))}}this.setPager(c)},injectImage:function(a){this.image[a].setStyles({position:'absolute',top:'0px',left:'0px',zIndex:'20',visibility:'hidden'}).setProperty('id','venusTemp'+a).inject(document.body,'bottom')},renderCommandLayer:function(){if(this.options.showStripe)this.renderStripe()},hideCommandLayer:function(){if(this.options.showStripe)this.hideStripe()},renderStripe:function(){this.stripe.setStyles({opacity:0,width:this.mainFrame.getSize().x-15});this.stripeFx.start({opacity:[0,this.options.stripeOpacity],top:[this.mainFrame.getPosition().y+this.mainFrame.getSize().y-this.options.stripeHeight+6,this.mainFrame.getPosition().y+this.mainFrame.getSize().y-this.options.stripeHeight-this.options.stripeTopOffset]}).chain(function(){this.buttonPrevious.setStyles({opacity:1,left:this.stripe.getPosition().x+5+this.options.ie7LeftOffset,top:this.stripe.getPosition().y});this.buttonNext.setStyles({opacity:1,left:this.buttonPrevious.getPosition().x+this.buttonNext.getSize().x+5+this.options.ie7LeftOffset,top:this.stripe.getPosition().y});if(this.pager){this.pager.setStyles({opacity:1,left:this.buttonNext.getPosition().x+this.buttonNext.getSize().x+20+this.options.ie7LeftOffset,top:this.stripe.getPosition().y+((this.options.stripeHeight-this.options.pagerButtonHeight)/2)-1})}}.bind(this))},hideStripe:function(){this.buttonNext.setStyles({opacity:0});this.buttonPrevious.setStyles({opacity:0});this.stripeFx.start({opacity:[this.options.stripeOpacity,0],top:[this.mainFrame.getSize().y-this.options.stripeHeight-3,this.mainFrame.getSize().y-this.options.stripeHeight+3]})},renderBubble:function(){if(this.bubble){this.bubbleText.set('html','<h1>'+this.title[this.currentImageID]+'</h1><p>'+this.text[this.currentImageID]+'</p>');this.bubbleTextFx.start({opacity:[0,1],top:[this.mainFrame.getPosition().y+(this.mainFrame.getSize().y/2-this.options.bubbleHeight/2)+this.options.bubbleTopOffset-20,this.mainFrame.getPosition().y+(this.mainFrame.getSize().y/2-this.options.bubbleHeight/2)+this.options.bubbleTopOffset]});this.bubbleFx.start({opacity:[0,this.options.bubbleOpacity],top:[this.mainFrame.getPosition().y+(this.mainFrame.getSize().y/2-this.options.bubbleHeight/2)+this.options.bubbleTopOffset-20,this.mainFrame.getPosition().y+(this.mainFrame.getSize().y/2-this.options.bubbleHeight/2)+this.options.bubbleTopOffset]})}},hideBubble:function(){this.bubbleTextFx.start({opacity:[1,0],top:[this.mainFrame.getPosition().y+(this.mainFrame.getSize().y/2-this.options.bubbleHeight/2)+this.options.bubbleTopOffset,this.mainFrame.getPosition().y+(this.mainFrame.getSize().y/2-this.options.bubbleHeight/2)+this.options.bubbleTopOffset+20]}).chain(function(){this.bubbleText.set('html','')}.bind(this));this.bubbleFx.start({opacity:[this.options.bubbleOpacity,0],top:[this.mainFrame.getPosition().y+(this.mainFrame.getSize().y/2-this.options.bubbleHeight/2)+this.options.bubbleTopOffset,this.mainFrame.getPosition().y+(this.mainFrame.getSize().y/2-this.options.bubbleHeight/2)+this.options.bubbleTopOffset+20]})},setPager:function(c){if(this.pagerButton.length>0){this.pagerButton.each(function(a,b){a.removeClass('on');if(!a.hasClass('off'))a.addClass('off')});this.pagerButton[c].removeClass('off').addClass('on')}},next:function(){var a=this.currentImageID+1<this.image.length?this.currentImageID+1:0;this.renderImage(a);if(this.isRunning)this.timeoutID=this.next.delay(this.options.pause,this)},previous:function(){var a=this.currentImageID-1>=0?this.currentImageID-1:this.image.length-1;this.renderImage(a)}});