$(document).ready(function() { hideFormText(); var g1 = $('div.gallery').gallery({ autoRotation:5000, listOfSlides:'div.gallery-holder > ul > li', switcher:'ul.switcher > li', effect:'fade' }); $('div.gallery').mouseenter(function(){ g1.stop(); }).mouseleave(function(){ g1.play(); }); }); (function($) { $.fn.gallery = function(options) { return new Gallery(this.get(0), options); }; function Gallery(context, options) { this.init(context, options); }; Gallery.prototype = { options:{}, init: function (context, options){ this.options = $.extend({ infinite: false, //true = infinite gallery duration: 800, //duration of effect it 1000 = 1sec slideElement: 1, //number of elements for a slide autoRotation: false, //false = option is disabled; 1000 = 1sec effect: false, //false = slide; true = fade listOfSlides: 'ul > li', //elements galleries switcher: false, //false = option is disabled; 'ul > li' = elements switcher disableBtn: false, //false = option is disabled; 'hidden' = class adds an buttons "prev" and "next" nextBtn: 'a.link-next, a.btn-next, a.next', //button "next" prevBtn: 'a.link-prev, a.btn-prev, a.prev', //button "prev" circle: true, //true = cyclic gallery; false = not cyclic gallery direction: false, //false = horizontal; true = vertical event: 'click', //event for the buttons and switcher IE: false, //forced off effect it "fade" in IE autoHeight: false, //auto height on fade switcherOther: false }, options || {}); var _el = $(context).find(this.options.listOfSlides); if (this.options.effect) this.list = _el; else this.list = _el.parent(); this.switcher = $(context).find(this.options.switcher); this.switcherOther = $(context).find(this.options.switcherOther); this.nextBtn = $(context).find(this.options.nextBtn); this.prevBtn = $(context).find(this.options.prevBtn); this.count = _el.index(_el.filter(':last')); if (this.options.switcher) this.active = this.switcher.index(this.switcher.filter('.active:eq(0)')); else this.active = _el.index(_el.filter('.active:eq(0)')); if (this.options.switcherOther) this.active = this.switcherOther.index(this.switcherOther.filter('.active:eq(0)')); else this.active = _el.index(_el.filter('.active:eq(0)')); if (this.active < 0) this.active = 0; this.last = this.active; this.woh = _el.outerWidth(true); if (!this.options.direction) this.installDirections(this.list.parent().width()); else { this.woh = _el.outerHeight(true); this.installDirections(this.list.parent().height()); } if (!this.options.effect) { this.rew = this.count - this.wrapHolderW + 1; if (!this.options.direction) this.anim = '{marginLeft: -(this.woh * this.active)}'; else this.anim = '{marginTop: -(this.woh * this.active)}'; eval('this.list.css('+this.anim+')'); } else { this.rew = this.count; this.list.css({opacity: 0}).removeClass('active').eq(this.active).addClass('active').css({opacity: 1}).css('opacity', 'auto'); this.switcher.removeClass('active').eq(this.active).addClass('active'); this.switcherOther.removeClass('active').eq(this.active).addClass('active'); if(this.options.autoHeight) this.list.parent().css({height: this.list.eq(this.active).outerHeight()}); } this.flag = true; if (this.options.infinite){ this.count++; this.active += this.count; this.list.append(_el.clone()); this.list.append(_el.clone()); eval('this.list.css('+this.anim+')'); } this.initEvent(this, this.nextBtn, true); this.initEvent(this, this.prevBtn, false); if (this.options.disableBtn) this.initDisableBtn(); if (this.options.autoRotation) this.runTimer(this); if (this.options.switcher) this.initEventSwitcher(this, this.switcher); if (this.options.switcherOther) this.initEventSwitcherOther(this, this.switcherOther); }, initDisableBtn: function(){ this.prevBtn.removeClass('prev-'+this.options.disableBtn); this.nextBtn.removeClass('next-'+this.options.disableBtn); if (this.active == 0 || this.count+1 == this.wrapHolderW) this.prevBtn.addClass('prev-'+this.options.disableBtn); if (this.active == 0 && this.count == 1 || this.count+1 <= this.wrapHolderW) this.nextBtn.addClass('next-'+this.options.disableBtn); if (this.active == this.rew) this.nextBtn.addClass('next-'+this.options.disableBtn); }, installDirections: function(temp){ this.wrapHolderW = Math.ceil(temp / this.woh); if (((this.wrapHolderW - 1) * this.woh + this.woh / 2) > temp) this.wrapHolderW--; }, fadeElement: function(){ if ($.browser.msie && this.options.IE){ this.list.eq(this.last).css({opacity:0}); this.list.removeClass('active').eq(this.active).addClass('active').css({opacity:'auto'}); } else{ this.list.eq(this.last).animate({opacity:0}, {queue:false, duration: this.options.duration}); this.list.removeClass('active').eq(this.active).addClass('active').animate({ opacity:1 }, {queue:false, duration: this.options.duration, complete: function(){ $(this).css('opacity','auto'); }}); } if(this.options.autoHeight) this.list.parent().animate({height: this.list.eq(this.active).outerHeight()}, {queue:false, duration: this.options.duration}); if (this.options.switcher) this.switcher.removeClass('active').eq(this.active).addClass('active'); if (this.options.switcherOther) this.switcherOther.removeClass('active').eq(this.active).addClass('active'); this.last = this.active; }, scrollElement: function($this){ if (!$this.options.infinite) eval('$this.list.animate('+$this.anim+', {queue:false, duration: $this.options.duration});'); else eval('$this.list.animate('+$this.anim+', $this.options.duration, function(){ $this.flag = true });'); if ($this.options.switcher) $this.switcher.removeClass('active').eq($this.active / $this.options.slideElement).addClass('active'); }, runTimer: function($this){ if($this._t) clearTimeout($this._t); $this._t = setInterval(function(){ if ($this.options.infinite) $this.flag = false; $this.toPrepare($this, true); }, this.options.autoRotation); }, initEventSwitcher: function($this, el){ el.bind($this.options.event, function(){ $this.active = $this.switcher.index($(this)) * $this.options.slideElement; if($this._t) clearTimeout($this._t); if ($this.options.disableBtn) $this.initDisableBtn(); if (!$this.options.effect) $this.scrollElement($this); else $this.fadeElement(); if ($this.options.autoRotation) $this.runTimer($this); return false; }); }, initEventSwitcherOther: function($this, el){ el.bind($this.options.event, function(){ $this.active = $this.switcherOther.index($(this)) * $this.options.slideElement; if($this._t) clearTimeout($this._t); if ($this.options.disableBtn) $this.initDisableBtn(); if (!$this.options.effect) $this.scrollElement($this); else $this.fadeElement(); if ($this.options.autoRotation) $this.runTimer($this); return false; }); }, initEvent: function($this, addEventEl, dir){ addEventEl.bind($this.options.event, function(){ if ($this.flag){ if ($this.options.infinite) $this.flag = false; if($this._t) clearTimeout($this._t); $this.toPrepare($this, dir); if ($this.options.autoRotation) $this.runTimer($this); } return false; }); }, toPrepare: function($this, side){ if (!$this.options.infinite){ if (($this.active == $this.rew) && $this.options.circle && side) $this.active = -$this.options.slideElement; if (($this.active == 0) && $this.options.circle && !side) $this.active = $this.rew + $this.options.slideElement; for (var i = 0; i < $this.options.slideElement; i++){ if (side) { if ($this.active + 1 <= $this.rew) $this.active++; } else { if ($this.active - 1 >= 0) $this.active--; } }; } else{ if ($this.active >= $this.count + $this.count && side) $this.active -= $this.count; if ($this.active <= $this.count-1 && !side) $this.active += $this.count; eval('$this.list.css('+$this.anim+')'); if (side) $this.active += $this.options.slideElement; else $this.active -= $this.options.slideElement; } if (this.options.disableBtn) this.initDisableBtn(); if (!$this.options.effect) $this.scrollElement($this); else $this.fadeElement(); }, stop: function(){ if (this._t) clearTimeout(this._t); }, play: function(){ if (this._t) clearTimeout(this._t); if (this.options.autoRotation) this.runTimer(this); } } }(jQuery)); // hide Form Text function hideFormText() { var _inputs = document.getElementsByTagName('input'); var _txt = document.getElementsByTagName('textarea'); var _value = []; if (_inputs) { for(var i=0; i<_inputs.length; i++) { if (_inputs[i].type == 'text' || _inputs[i].type == 'password') { _inputs[i].index = i; _value[i] = _inputs[i].value; _inputs[i].onfocus = function(){ if (this.value == _value[this.index]) this.value = ''; } _inputs[i].onblur = function(){ if (this.value == '') this.value = _value[this.index]; } } } } if (_txt) { for(var i=0; i<_txt.length; i++) { _txt[i].index = i; _value['txt'+i] = _txt[i].value; _txt[i].onfocus = function(){ if (this.value == _value['txt'+this.index]) this.value = ''; } _txt[i].onblur = function(){ if (this.value == '') this.value = _value['txt'+this.index]; } } } }