/* FILE: /media/plugin_googlemap2/site/moodalbox/js/modalbox1.2hack.js */
/******************************************************************/
/*                        MOOdalBox 1.2.1                         */
/* A modal box (inline popup), used to display remote content     */
/* loaded using AJAX, written for the mootools framework          */
/*         by Razvan Brates, razvan [at] e-magine.ro              */
/******************************************************************/
/*               http://www.e-magine.ro/moodalbox                 */
/******************************************************************/
/*                                                                */
/* MIT style license:                                             */
/* http://en.wikipedia.org/wiki/MIT_License                       */
/*                                                                */
/* mootools found at:                                             */
/* http://mootools.net/                                           */
/*                                                                */
/* Original code based on "Slimbox", by Christophe Beyls:         */
/* http://www.digitalia.be/software/slimbox                       */
/*                                                                */
/* Changed by Mike Reumer to work with Google Maps, Iframe and    */
/* Opera                                                          */
/*                                                                */
/******************************************************************/
eval(function(p,a,c,k,e,r){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?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 2a="33.. 34 35 a 36 37 38 39.<1u /><1u />"+"3a 3b 3c.<1u /><1u />"+"<2b>3d 3e 3f 1j.</2b>";h 2c=1v;h 2d=2e;h 2f=2e;h 2g=1w;h 2h=1v;h 2i=1w;h 2j=1v;h 2k=1k;h 2l=L;h 2m=L;h 1N={2n:y(e){6.e=1O.1l({2o:2c,1m:2d,1P:2f,14:2g,T:2h,1Q:2i,1R:2j,2p:2k,3g:2l,3h:2m},e||{});6.1S=c;6.1T=c;6.1U=c;6.1x=L;6.1V=c;6.2q=[];$A($$(\'a\')).2r(y(M){b(M.16&&M.D&&M.16.3i(\'^3j\',\'i\')){M.Y=6.2s.2t(M,6);6.2q.3k(M)}},6);6.2u=6.2v.3l(6);6.1W=6.1X.1n(6);6.Z=t N(\'s\').17(\'C\',\'3m\').E(O.1y);6.l=t N(\'s\').17(\'C\',\'3n\').P({F:6.e.1m+\'q\',k:6.e.1P+\'q\',1o:\'-\'+(6.e.1m/2)+\'q\',z:\'18\'}).E(O.1y);6.m=t N(\'s\').17(\'C\',\'3o\').E(6.l);6.o=t N(\'s\').17(\'C\',\'3p\').19(\'z\',\'18\').E(O.1y);6.2w=t N(\'a\').3q({C:\'3r\',D:\'#\'}).E(6.o);6.2x=t N(\'s\').17(\'C\',\'3s\').E(6.o);t N(\'s\').19(\'3t\',\'3u\').E(6.o);6.2y=t N(\'s\').17(\'C\',\'3v\').1Y(2a);6.2w.Y=6.Z.Y=6.1j.1n(6);h Q=6.Q.1n(6);6.B={Z:6.Z.2z(\'11\',{1z:1w}).1Z(),U:6.l.2A({1z:6.e.2o,20:Q}),m:6.m.2z(\'11\',{1z:1w,20:Q}),o:6.o.2A({1z:1v,20:Q})};6.3w=3x.3y},2s:y(1A){1a 6.1p(1A.D,1A.21,1A.16)},1p:y(22,2B,2C,7,e){6.D=22;6.21=2B;6.16=2C;6.1X();6.23(1k);h k=1B[\'3z\']||O.3A[\'1b\']||O.1y[\'1b\'];6.1c=1C.2D()+(k/15);6.l.P({1c:6.1c+\'q\',z:\'\'});6.B.Z.V(0.8);6.7=7;6.d=1O.1l({2E:c,u:c,1d:c,1e:c,1f:c,12:c,1g:c,1D:c,R:c,1q:c,G:c,1E:c,S:c,1r:c,H:c},e||{});6.r=1O.1l({u:c,1d:c,1e:c,1f:c,12:c,1g:c,1D:c,1q:c,1E:c,1r:c});1a 6.2F(22)},1X:y(){6.Z.P({1c:1C.2D()+\'q\',k:1C.3B()+\'q\'})},23:y(1p){h 24=$A($$(\'3C\'));24.1l($$(1B.3D?\'3E\':\'3F\'));24.2r(y(M){M.n.3G=1p?\'3H\':\'\'});h 1F=1p?\'3I\':\'3J\';1B[1F](\'3K\',6.1W)[1F](\'U\',6.1W);O[1F](\'3L\',6.2u);6.I=0},2F:y(){b(6.I)1a L;6.I=1;1G=/2G:/;b(6.D.1s(1G)){6.l.25=\'2H\';h j=6.16.1s(/[0-9]+/g);6.e.14=(j&&(j[0]>0))?j[0]:6.e.1Q;6.e.T=(j&&(j[1]>0))?j[1]:6.e.1R;6.o.P({11:\'0\',k:\'26\',z:\'18\'});6.B.m.1Z();6.m.2I="<3M 3N=\'"+6.D+"\' F=\'"+(6.e.14-1)+"q\' k=\'"+(6.e.T-1)+"q\' 3O=\'0\'/>";6.Q()}v{b(1B.3P.3Q<"1.2"){h p=O.2J(6.D);$1l(p,N.3R)}v h p=O.C(6.D);6.1V=p.3S;p.E(6.m);6.1S=p.n.z;p.n.z=\'\';6.1T=p.n.F;6.1U=p.n.k;b(6.7){6.r.u=6.7.2K();6.r.1d=6.7.2L();6.r.12=6.7.3T();6.r.1e=6.7.3U();6.r.1f=6.7.3V();6.r.1g=6.7.3W()}h j=6.16.1s(/[0-9]+%?/g);j[0]=2M(j[0]);1h=j[0].2N;b(j[0].2O(1h,1h-1)=="%")j[0]=p.1H;j[1]=2M(j[1]);1h=j[1].2N;b(j[1].2O(1h,1h-1)=="%")j[1]=p.27;6.e.14=(j&&(j[0]>0))?j[0]:6.e.1Q;6.e.T=(j&&(j[1]>0))?j[1]:6.e.1R;p.n.F=6.e.14+\'q\';p.n.k=6.e.T+\'q\';h s=p.3X("s");6.J=c;6.K=c;b(s.1I>1){h U=1k;2P(x=0;x<s.1I;x++){b(s[x].C.28(0,9)==\'3Y\')6.J=s[x];b(s[x].C.28(0,10)==\'3Z\')6.K=s[x];b(s[x].C.28(0,10)==\'40\')U=L}b(U){b(6.J){6.J.1i=6.J.n.k;6.J.n.k=6.e.T-2+\'q\'}b(6.K){6.K.1i=6.K.n.k;6.K.n.k=6.e.T-2+\'q\'}}}b(6.7){6.7.2Q();b(6.d.u&&41(6.d.u)=="42"){h 1J=6.d.u.1s(/-?[0-9]+.?[0-9]*%?/g);b(1J.1I>1)6.d.u=t 43(1J[0],1J[1]);v 6.d.u=6.r.u}v 6.d.u=6.r.u;6.7.2R(6.d.u,6.d.1d);b(6.d.12)6.7.2S(6.d.12);b(6.d.1e!=c)b(6.d.1e)6.7.2T();v 6.7.2U();b(6.d.1f!=c)b(6.d.1f)6.7.2V();v 6.7.2W();b(6.d.1g!=c)b(6.d.1g)6.7.2X();v 6.7.2Y();b(6.d.1D!=c){b(6.7.R!=c)6.7.W(6.7.R);b(6.d.1D){6.d.R=t 44();6.7.X(6.d.R)}}b(6.d.1q!=c){b(6.7.G!=c)6.7.W(6.7.G);b(6.d.1q!=\'45\'){b(6.d.1q==\'46\')6.d.G=t 47();v 6.d.G=t 48();6.7.X(6.d.G)}}b(6.d.1E!=c){b(6.7.S!=c)6.7.W(6.7.S);b(6.d.1E){6.d.S=t 49();6.7.X(6.d.S)}}b(6.d.1r!=c){b(6.7.H!=c)6.7.W(6.7.H);b(6.d.1r!=0){6.d.H=t 4a();6.7.X(6.d.H);b(6.d.1r==2)6.d.H.1Z(1k)}}}6.o.P({11:\'0\',k:\'26\',z:\'18\'});6.Q()}1a L},4b:y(){6.m.1Y(\'\');6.2y.4c().E(6.m);6.Q();6.l.19(\'1K\',\'2Z\');6.o.19(\'1K\',\'2Z\');6.l.Y=6.o.Y=6.1j.1n(6)},Q:y(){b(!6.1x){4d(6.I++){1t 1:6.l.25=\'\';6.l.19(\'1K\',\'30\');6.o.19(\'1K\',\'30\');6.l.Y=6.o.Y=\'\';6.2x.1Y(6.21);6.m.P({F:6.e.14+"q",k:6.e.T+"q"});b(6.l.1b!=6.m.27){6.B.U.V({k:[6.l.1b,6.m.27]});1L}6.I++;1t 2:b(6.l.1M!=6.m.1H){6.B.U.V({F:[6.l.1M,6.m.1H],1o:[-6.l.1M/2,-6.m.1H/2]});1L}6.I++;1t 3:6.o.P({1c:(6.1c+6.l.1b)+\'q\',F:6.m.n.F,1o:6.l.n.1o,z:\'\'});6.B.m.V(0,1);1L;1t 4:b(6.e.2p){6.B.o.V({11:[0,1],k:[0,6.o.31]});1L}6.o.P({11:\'1\',k:6.o.31+\'q\'});1t 5:6.I=0}}v{6.I=5;6.1x=L}},2v:y(13){b((13.32&&13.29==\'w\')||(13.32&&13.29==\'x\')||(13.29==\'4e\')){6.1j();13.4f()}},1j:y(){b(6.I<0)1a;2P(h f 4g 6.B)6.B[f].4h();6.I=-1;6.l.n.z=6.o.n.z=\'18\';6.l.25=\'2H\';6.B.Z.4i(6.23.2t(L,6)).V(0);1G=/2G:/;6.1x=1k;b(!6.D.1s(1G)){h p=O.2J(6.D);b(6.d.2E){6.r.u=6.7.2K();6.r.1d=6.7.2L()}p.E(6.1V);p.n.F=6.1T;p.n.k=6.1U;p.n.z=6.1S;b(6.J&&6.J.1i)6.J.n.k=6.J.1i;b(6.K&&6.K.1i)6.K.n.k=6.K.1i;b(6.7){6.7.2Q();6.7.2R(6.r.u,6.r.1d);b(6.d.R!=c)6.7.W(6.d.R);b(6.7.R!=c)6.7.X(6.7.R);b(6.d.G!=c)6.7.W(6.d.G);b(6.7.G!=c)6.7.X(6.7.G);b(6.d.S!=c)6.7.W(6.d.S);b(6.7.S!=c)6.7.X(6.7.S);b(6.d.12)6.7.2S(6.r.12);b(6.d.H!=c)6.7.W(6.d.H);b(6.7.H!=c)6.7.X(6.7.H);b(6.r.1e)6.7.2T();v 6.7.2U();b(6.r.1f)6.7.2V();v 6.7.2W();b(6.r.1g)6.7.2X();v 6.7.2Y()}4j(6.m.4k.1I>0)6.m.4l(6.m.4m)}v{6.m.2I=" "}6.B.U.V({k:[6.l.1b,6.e.1P],F:[6.l.1M,6.e.1m],1o:[\'-\'+(6.e.1m/2)+\'q\']});6.B.m.V(1,0);6.o.P({11:\'0\',k:\'26\',z:\'18\'});1a L}};1C.4n(1N.2n.1n(1N));',62,272,'||||||this|map||||if|null|lbmapoptions|options|||var||aDim|height|center|contents|style|bottom|obj|px|oldlbmapoptions|div|new|mapcenter|else|||function|display||fx|id|href|injectInside|width|objzoomtype|objoverview|step|gm|sb|false|el|Element|document|setStyles|nextEffect|objshowmaptype|objshowscale|contentsHeight|resize|custom|removeControl|addControl|onclick|overlay||opacity|maptype|event|contentsWidth||rel|setProperty|none|setStyle|return|clientHeight|top|zoom|zoom_new|zoom_wheel|dragging|iLen|oldheight|close|true|extend|initialWidth|bind|marginLeft|open|zoomtype|overview|match|case|br|400|500|cls|body|duration|link|window|Window|showmaptype|showscale|fn|regex|offsetWidth|length|cDim|cursor|break|clientWidth|MOOdalBox|Object|initialHeight|defContentsWidth|defContentsHeight|previousstyle|previouswidth|previousheight|parentobj|eventPosition|position|setHTML|hide|onComplete|title|sLinkHref|setup|elements|className|0px|offsetHeight|substr|key|_ERROR_MESSAGE|em|_RESIZE_DURATION|_INITIAL_WIDTH|250|_INITIAL_HEIGHT|_CONTENTS_WIDTH|_CONTENTS_HEIGHT|_DEF_CONTENTS_WIDTH|_DEF_CONTENTS_HEIGHT|_ANIMATE_CAPTION|_EVAL_SCRIPTS|_EVAL_RESPONSE|init|resizeDuration|animateCaption|anchors|each|click|pass|eventKeyDown|keyboardListener|closelink|caption|error|effect|effects|sLinkTitle|sLinkRel|getScrollTop|follow|loadContents|http|mb_loading|innerHTML|getElementById|getCenter|getZoom|String|lenght|substring|for|checkResize|setCenter|setMapType|enableDoubleClickZoom|disableDoubleClickZoom|enableScrollWheelZoom|disableScrollWheelZoom|enableDragging|disableDragging|pointer|default|scrollHeight|control|Oops|there|was|problem|with|your|request|Please|try|again|Click|anywhere|to|evalScripts|evalResponse|test|moodalbox|push|bindWithEvent|mb_overlay|mb_center|mb_contents|mb_bottom|setProperties|mb_close_link|mb_caption|clear|both|mb_error|ajaxRequest|Class|empty|innerHeight|documentElement|getHeight|object|ActiveXObject|select|embed|visibility|hidden|addEvent|removeEvent|scroll|keydown|iframe|src|frameborder|MooTools|version|prototype|parentNode|getCurrentMapType|doubleClickZoomEnabled|scrollWheelZoomEnabled|draggingEnabled|getElementsByTagName|googlemap|kmlsidebar|dirsidebar|typeof|string|GLatLng|GMapTypeControl|None|Large|GLargeMapControl|GSmallMapControl|GScaleControl|GOverviewMapControl|ajaxFailure|clone|switch|esc|stop|in|clearTimer|chain|while|childNodes|removeChild|firstChild|onDomReady'.split('|'),0,{}))

/* FILE: /modules/mod_ja_contentslide/js/mootools.v1.1.pak.js */


/* FILE: /modules/mod_ja_contentslide/assets/js/ja_contentslide.js */
var JS_ContentSlider = new Class({
    
    initialize: function(options)
    {
		this.options = Object.extend({
			w: 100,
			h: 200,
			num_elem: 4,
			total: 0,
			url: '',
			mode: 'horizontal',
			direction: 'right',
			wrapper: 'ja-slide-wrapper',
			duration: 1000,
			interval: 3000,
			auto: 1
		}, options || {});
        //this.options = options;
		if (this.options.total){
            if (this.options.total < this.options.num_elem) this.options.num_elem = this.options.total;
			this.elements = new Array(this.options.total);
        }else
			this.elements = new Array();
			
        this.current = 0;
        this.options.wrapper.setStyle('position', 'relative');
        this.options.wrapper.setStyle('overflow', 'hidden');
		if(this.options.mode=='vertical'){
			this.options.wrapper.setStyle('width', this.options.w);
			this.options.wrapper.setStyle('height', this.options.h*this.options.num_elem);
		}else{
			this.options.wrapper.setStyle('width', this.options.w*this.options.num_elem);
			this.options.wrapper.setStyle('height', this.options.h);
		}
    
    /*For element*/
    elems = this.options.wrapper.getElementsByClassName ('content_element');
		for(i=0;i<elems.length;i++){
				elems[i].setStyle('width', this.options.w);
        elems[i].setStyle('height', this.options.h);
	elems[i].setStyle('display', 'none');
		}
			
		this.ef_u = {};
		this.ef_d = {};
		this.ef_l = {};
		this.ef_r = {};
        for(i=0;i<=this.options.num_elem;i++) {
    		this.ef_u[i] = { 'top': [ i*this.options.h, (i-1)*this.options.h] };
    		this.ef_d[i] = { 'top': [ (i-1)*this.options.h, i*this.options.h] };
    		this.ef_l[i] = { 'left': [ i*this.options.w, (i-1)*this.options.w] };
    		this.ef_r[i] = { 'left': [ (i-1)*this.options.w, i*this.options.w] };
        }
    },
    
    getFx: function(){		
        if (this.options.mode == 'vertical') {
            if (this.options.direction == 'up') {
                return this.ef_u;
            }else{
                return this.ef_d;
            }
        }else{
            if (this.options.direction == 'left') {
                return this.ef_l;
            }else{
                return this.ef_r;
            }
        }
    },
    
    add: function(text){
        var divobj = new Element('DIV', {'id':'jsslide_' + this.elements.length, 'class':'jsslide'});
        divobj.innerHTML = text;
        divobj.setStyle ('position','absolute');
        divobj.setStyle('width', this.options.w);
        divobj.setStyle('height', this.options.h);
        if(this.elements.length > 1) {
            divobj.injectAfter (this.elements[this.elements.length-2]);
        }else{
            divobj.inject (this.options.wrapper);
        }
		this.hide(divobj);
        this.elements.push(divobj);
    },
    
	//Update element i
	update: function (text, ind){
        divobj = new Element('DIV', {'id':'jsslide_' + ind, 'class':'jsslide'});
        divobj.innerHTML = text;
        divobj.setStyle ('position','absolute');
        divobj.setStyle ('z-index',1);
        divobj.setStyle('width', this.options.w);
        divobj.setStyle('height', this.options.h);
		divobj.inject (this.options.wrapper);
		this.hide(divobj);
		this.elements[ind] = divobj;
	},
	
	
	
    hide: function (el) {		
        if (this.options.mode == 'vertical') {  
            el.setStyle('top', '-999px');
            el.setStyle('left', '0');
        }else{
            el.setStyle('top', '0');
            el.setStyle('left', '-999em');            
        }
    },
	
    setPos: function (elems) {
		if (!elems) elems = this.getRunElems();
        for(var i=0;i<elems.length;i++) {
			var el = elems[i];
			if (el){
				if (this.options.mode == 'vertical') {
					if (this.options.direction == 'up') {
						el.setStyle('top', this.options.h*i);
					}else{
						el.setStyle('top', this.options.h*(i-1));                
					}
				}else{
					if (this.options.direction == 'left') {
						el.setStyle('left', this.options.w*i);
					}else{
						el.setStyle('left', this.options.w*(i-1));                
					}
				}
			}
		}
    },

	getRunElems: function(){
        var objs = new Array();
		if(this.options.direction=='left' || this.options.direction=='up'){
			adj = 0;
		}else{
			adj = this.elements.length-1;
		}
        for(var i=0;i<=this.options.num_elem;i++) {
            objs[i] = this.elements[(this.current+i+adj) % this.elements.length];
        }
        if (this.options.total <= this.options.num_elem) {
            if(this.options.direction=='left' || this.options.direction=='up'){
                objs[this.options.num_elem] = null;
            }else{
                objs[0] = null;
            }
        }
 		return objs;		
	},
	
    start: function () {
		this.clearTimeOut();
		if (!this.elements[this.next()]) {
			this.nextRun();
			return;
		}
		if (this.elements[this.next()] == 'fetching') {
			this.nextRun();
			return;
		}
		if(this.running) return;
		this.running = 1;
		
        var objs = this.getRunElems();
		this.setPos(objs);
        this.x = new Fx.Elements(objs, {duration: this.options.duration, onComplete:this.end.bind(this)});
		this.x.start(this.getFx());
		this.current = this.nextCurr();
    },
	
	end: function() {
		this.running = 0;
		this.nextRun();
	},
    
	clearTimeOut: function(){
		if(this.timeOut) {
			clearTimeout(this.timeOut);
			this.timeOut = 0;			
		}
	},
	
    nextRun: function () {
		this.clearTimeOut();
		if (this.options.total <= this.options.num_elem) return;
		if (this.options.auto){
			this.timeOut = setTimeout(this.start.bind(this),this.options.interval);
			this.fetchNext();
		}
    },
	
	nextCurr: function () {
		var next = 0;
		if(this.options.direction=='left' || this.options.direction=='up'){
	        next = (this.current+1) % this.elements.length;
		}else{
	        next = (this.current+this.elements.length-1) % this.elements.length;			
		}
		return next;
	},

	next: function () {
		var next = 0;
		if(this.options.direction=='left' || this.options.direction=='up'){
	        next = (this.current+this.options.num_elem) % this.elements.length;
		}else{
	        next = (this.current+this.elements.length-1) % this.elements.length;			
		}
		return next;
	},
	
	fetchNext: function(){
		var next = this.next();
		//alert(this.current); && this.elements[this.current]
		if (!this.elements[next]){
			this.elements[next] = 'fetching';
			url = this.options.url + '?total='+this.options.total+'&news='+next+'&loadajax=1&modid='+this.options.modid;
			new Ajax(url,{method:'get',onComplete:function(request){this.update(request,next)}.bind(this)}).request(); 
			return;
		}
	},
	
	fetchUpdate: function(text,next){
		this.update(text, next);
	},
	
	setDirection: function (direction){
		this.options.direction = direction;
	}
	
});


/* FILE: /modules/mod_jaslideshow2/assets/script.js */

/*
# ------------------------------------------------------------------------
# JA Slideshow II module for Joomla 15
# ------------------------------------------------------------------------
# Copyright (C) 2004-2010 JoomlArt.com. All Rights Reserved.
# @license - PHP files are GNU/GPL V2. CSS / JS are Copyrighted Commercial,
# bound by Proprietary License of JoomlArt. For details on licensing, 
# Please Read Terms of Use at http://www.joomlart.com/terms_of_use.html.
# Author: JoomlArt.com
# Websites:  http://www.joomlart.com -  http://www.joomlancers.com
# Redistribution, Modification or Re-licensing of this file in part of full, 
# is bound by the License applied. 
# ------------------------------------------------------------------------
*/
Element.Events.extend({
	'wheelup': {
		type: Element.Events.mousewheel.type,
		map: function(event){
			event = new Event(event);
			if (event.wheel >= 0) this.fireEvent('wheelup', event)
		}
	},
	'wheeldown': {
		type: Element.Events.mousewheel.type,
		map: function(event){
			event = new Event(event);
			if (event.wheel <= 0) this.fireEvent('wheeldown', event)
		}
	}
});

var JASlideshowThree = new Class({
	initialize: function(options){
		this.options = Object.extend({
			buttons : {},
			interval:5000,
			handle_event: 'click',
			button_event: 'click',
			box: {},
			size: 240,
			mode: 'horizontal',
			items:[],
			handles:[],
			onWalk:{},
			handlerBox:null,
			animation: 'fade',
			animationRepeat: 'true',
			autoPlay: false,
			languageDirection:null
		}, options || {});
		
		this.items = this.options.items;
		if( this.options.languageDirection == 'rtl' ) {
			this.modes = {horizontal:['right','width'], vertical:['top','height']};
		}else {
			this.modes = {horizontal:['left','width'], vertical:['top','height']};
		}
		this.box = $(this.options.box);
		
		this.buttons = {previous: [], next: [], play: [], playback: [], stop: []};
		
		this.allbuttons = [];
		if(this.options.buttons){
			for(var action in this.options.buttons){
				this.addActionButtons(action, $type(this.options.buttons[action])=='array' ? this.options.buttons[action] : [this.options.buttons[action]]);
			}
		}
		this.handles = this.options.handles;
		if(this.handles){
			this.addHandleButtons(this.handles);
		}
		///
		if( this.options.handlerBox != null){
			this.options.handlerBox.addEvents({
				'wheelup': function(e) {
					
					e = new Event(e).stop(); 
						this.previous(true);
				}.bind(this),
			 
				'wheeldown': function(e) {
					e = new Event(e).stop();
				
					this.next(true);
				}.bind(this)
			} );
		}
		////
		//this.fx = new Fx.Style(this.box,this.modes[this.options.mode][0],this.options.fxOptions||{duration:500,wait:false});
		this.allbuttons.each (function (button){
			button.addEvent ('mouseover', function (){this.addClass ('hover');});
			button.addEvent ('mouseout', function (){this.removeClass ('hover');});
		});
		
		this.currentIndex = this.options.startItem || 0;
		this.previousIndex = null;
		this.nextIndex = null;
		this._auto = null;
		this.initFx();
		if(this.options.autoPlay) this.play(this.options.interval,'next',true);
		this.walk (this.currentIndex);
	},

	previous: function(manual){
		this.lastIndex = this.currentIndex;
		this.currentIndex += this.currentIndex>0 ? -1 : this.items.length-1;
		this.walk(null,manual);
	},

	next: function(manual){
		this.lastIndex = this.currentIndex;
		this.currentIndex += this.currentIndex<this.items.length-1 ? 1 : 1-this.items.length;
		this.walk(null,manual);
	},

	play: function(delay,direction,wait){
		this.stop();
		if(!wait){
			this[direction](false);
		}
		this._auto = this[direction].periodical(delay,this,false);
	},

	stop: function(){
		$clear(this._auto);
	},

	walk: function(item,manual){
		//alert(item + ' ' + manual);
		if($defined(item)){
			this.lastIndex = this.currentIndex;
			//if(item==this.currentIndex) return;
			this.currentIndex= parseInt(item);
		}
		this.previousIndex = this.currentIndex + (this.currentIndex>0 ? -1 : this.items.length-1);
		this.nextIndex = this.currentIndex + (this.currentIndex<this.items.length-1 ? 1 : 1-this.items.length);
		
		if(manual || (this.nextIndex == 0 && this.options.animationRepeat=='false')){ 
			this.stop();			
		}
		//this.fx.start(-this.currentIndex*this.options.size + this.options.offset);
		if(this.options.onWalk){ this.options.onWalk(this.currentIndex,(this.handles?this.handles[this.currentIndex]:null)); }
		this.animate();
		if(manual && this.options.autoPlay){ this.play(this.options.interval,'next',true); }
	},
	initFx: function () {
		if (this.options.animation.test (/move/)) {
			this.box.setStyle(this.modes[this.options.mode][1],(this.options.size*this.options.items.length+200)+'px');
			this.box.setStyle(this.modes[this.options.mode][0],(-this.currentIndex*this.options.size) + this.options.offset+'px');
			this.fx = new Fx.Style(this.box,this.modes[this.options.mode][0],this.options.fxOptions||{duration:500,wait:false});
			return;
		}
		this.items.setStyles({'position':'absolute', 'top':0, 'display':'none'});
		this.items.setStyle(this.modes[this.options.mode][0],0);
		this.items[this.currentIndex].setStyle ('display', 'block');
		if (this.options.animation.test (/fade/)) {
			for (var i=0;i<this.items.length;i++) {
				this.items[i].fx = new Fx.Style(this.items[i],'opacity',this.options.fxOptions||{duration:500,wait:false});
			}
		}
	},
	animate: function () {
		if (this.options.animation.test (/move/)) {
			this.fx.start(-this.currentIndex*this.options.size + this.options.offset);
			return;
		}
		var others = [];
		for (var i=0;i<this.items.length;i++) {
			this.items[i].fx.stop();
			if (i!=this.currentIndex && i!= this.lastIndex) others.push (this.items[i]);
		}
		this.currentIndex = parseInt(this.currentIndex);
		$$(others).setStyle ('display', 'none');
		if (this.lastIndex == this.currentIndex) {
			this.items[this.currentIndex].setStyles ({'display':'block', 'opacity': 1});
		} else {
			this.items[this.currentIndex].setStyles ({'display':'block', 'opacity': 0, 'z-index': 10});
			this.items[this.lastIndex].setStyles ({'z-index': 9});
		}
		if (this.options.animation.test (/fade/)) {
			this.items[this.lastIndex].fx.start(0);
			this.items[this.currentIndex].fx.start(1);
			return;
		}
	},
	
	addHandleButtons: function(handles){
		for(var i=0;i<handles.length;i++){
			handles[i].addEvent(this.options.handle_event,this.walk.bind(this,[i,true]));
			this.allbuttons.push (handles[i]);
		}
		//handles.addEvent(this.options.handle_event, function(){this.blur();});
	},

	addActionButtons: function(action,buttons){
		for(var i=0; i<buttons.length; i++){
			switch(action){
				case 'previous': buttons[i].addEvent(this.options.button_event,this.previous.bind(this,true)); break;
				case 'next': buttons[i].addEvent(this.options.button_event,this.next.bind(this,true)); break;
				case 'play': buttons[i].addEvent(this.options.button_event,this.play.bind(this,[this.options.interval,'next',false])); break;
				case 'playback': buttons[i].addEvent(this.options.button_event,this.play.bind(this,[this.options.interval,'previous',false])); break;
				case 'stop': buttons[i].addEvent(this.options.button_event,this.stop.bind(this)); break;
			}
			this.buttons[action].push(buttons[i]);
			buttons[i].addEvent(this.options.button_event, function(){this.blur();});
			this.allbuttons.push (buttons[i]);
		}
	}
	
});
///

var JASlideshow2 = new Class({	
	initialize: function(element, options) {
		this.options = Object.extend({
			startItem: 0,
			showItem: 4,
			mainWidth: 360,
			mainHeight: 240,
			itemWidth: 160,
			itemHeight: 160,
			duration: 400,
			interval: 5000,
			transition: Fx.Transitions.Back.easeOut,
			thumbOpacity:'0.8',			
			maskDesc : 'maskDesc',
			maskWidth:360,
			maskHeigth:50,
			but_prev:'ja-slide-prev',
			but_next: 'ja-slide-next',
			maskOpacity: '0.8',
			buttonOpacity: '0.4',
			overlap: 1,
			navigation: '',
			animation: 'fade',
			animationRepeat: 'true',
			thumbSpaces: [3,3],
			autoPlay: false,
			maskAlignment:'bottom',
			showbtncontrol:false,
			urls:'',
			maskerTransStyle:'opacity',
			maskerTrans:Fx.Transitions.linear,
			navePos:'horizontal',
			languageDirection:null
			
		}, options || {});
		
		if (!this.options.animation.test(/move/)) this.options.overlap = 0;
		
		this.el = $(element);
		this.fxOptions = {duration:this.options.duration, transition:this.options.transition, wait: false}
		
		this.elmain = this.el.getElement('.ja-slide-main-wrap');
		var conWidth = this.options.overlap?'100%':this.options.mainWidth;
		this.elmain.setStyles ({'width':conWidth, 'height':this.options.mainHeight});
		this.els = this.el.getElements('.ja-slide-item');
		this.els.setStyles ({'width':this.options.mainWidth, 'height':this.options.mainHeight});
		this.options.rearWidth = 0;
		this.options.mainSpace = 0;
		
		if ( this.options.overlap ) { 
			this.options.mainSpace = 10; 
			this.options.rearWidth = Math.ceil((this.elmain.offsetWidth - this.options.mainWidth)/2) - this.options.mainSpace;

			this.but_prev = this.el.getElement('.'+this.options.but_prev);
			this.but_next = this.el.getElement('.'+this.options.but_next);
	
				this.but_prev.setStyles({'opacity': this.options.buttonOpacity, 'width': this.options.rearWidth, 'height': this.options.mainHeight});
			this.but_next.setStyles({'opacity': this.options.buttonOpacity, 'width': this.options.rearWidth, 'height': this.options.mainHeight});
			
			this.but_prev.addEvents ({
				'mouseover': function (){this.but_prev.setStyle('opacity', this.options.buttonOpacity/2);}.bind(this),
				'mouseout': function (){this.but_prev.setStyle('opacity', this.options.buttonOpacity);}.bind(this)
			});
			
			this.but_next.addEvents ({
				'mouseenter': function (){this.but_next.setStyle('opacity', this.options.buttonOpacity/2);}.bind(this),
				'mouseleave': function (){this.but_next.setStyle('opacity', this.options.buttonOpacity);}.bind(this)
			});
			this.els.setStyle ('margin-right', this.options.mainSpace);
		}
		
		/*Need to be fixed to work with moving up/down*/
		var navWrap= this.el.getElement('.ja-slide-thumbs-wrap');		
		if( this.options.navigation && navWrap != null ){
		// for hori

			if( this.options.languageDirection == 'rtl' ){
				var modes = {horizontal:['right','width'], vertical_left:['top','height'],vertical_right:['top','height']};
			} else {
				var modes = {horizontal:['left','width'], vertical_left:['top','height'],vertical_right:['top','height']};	
			}
			if( this.options.navePos == 'vertical_left' || this.options.navePos == 'vertical_right' ){	
				navWrap.setStyles ({'width':this.options.itemWidth, 'height':this.options.itemHeight*this.options.showItem});
			
			} else {
				navWrap.setStyles ({'width':this.options.itemWidth*this.options.showItem, 'height':this.options.itemHeight});
			}
			var thumbs_thumbs 	= this.el.getElement('.ja-slide-thumbs');
			thumbs_thumbs.setStyle('left',0);
			thumbs_thumbs.getChildren().setStyles ({'width':this.options.itemWidth, 'height':this.options.itemHeight});
			var thumbs_handles 	= this.el.getElement('.ja-slide-thumbs-handles');
			thumbs_handles.setStyle('left',0);
			thumbs_handles.getChildren().setStyles ({'width':this.options.itemWidth, 'height':this.options.itemHeight});
			
			var thumbsFx_thumbs = new Fx.Style(thumbs_thumbs,modes[this.options.navePos][0],this.fxOptions);			
			var thumbsFx_handles= new Fx.Style(thumbs_handles,modes[this.options.navePos][0],this.fxOptions);

			this.el.getElement('.ja-slide-thumbs-mask-left').setStyles ({'height':this.options.itemHeight,'width':2000,'opacity':this.options.thumbOpacity});
			this.el.getElement('.ja-slide-thumbs-mask-right').setStyles ({'height':this.options.itemHeight,'width':2000,'opacity':this.options.thumbOpacity});
			this.el.getElement('.ja-slide-thumbs-mask-center').setStyles ({'height':this.options.itemHeight,'width':this.options.itemWidth,'opacity':this.options.thumbOpacity});
			var tmp = this.el.getElement('.ja-slide-thumbs-mask');
			var thumbs_mask = tmp.setStyles ( {'width':5000} );
			
			tmp.setStyle(modes[this.options.navePos][0], this.options.startItem*this.options.itemHeight-2000 );
			
			//var thumbs_mask 	= this.el.getElement('.ja-slide-thumbs-mask').setStyle('left',(this.options.startItem*this.options.itemWidth-this.options.maskPos)+'px').setOpacity(this.options.thumbOpacity);	

			var thumbsFx_mask 	= new Fx.Style(thumbs_mask, modes[this.options.navePos][0],this.fxOptions);

		}
		// templ
		var navItems=this.el.getElements ('.ja-slide-thumb'); 
		//When slideshow animate
		this.onWalk = function (currentIndex, hander ) {
			if (this.options.navigation && thumbsFx_mask !=null ) {
				if (currentIndex <= this.options.startItem || currentIndex - this.options.startItem >= this.options.showItem-1) {
					this.options.startItem = currentIndex - this.options.showItem+2;
					if (this.options.startItem < 0) this.options.startItem = 0;
					if (this.options.startItem > this.els.length-this.options.showItem) this.options.startItem = this.els.length-this.options.showItem;
				}
				thumbsFx_mask.start((currentIndex - this.options.startItem)*this.options.itemHeight-2000);
				thumbsFx_thumbs.start(-this.options.startItem*this.options.itemHeight);
				thumbsFx_handles.start(-this.options.startItem*this.options.itemHeight);
				
				if( $defined(hander) ){
					thumbs_handles.getElements('span').removeClass ('active');
					hander.addClass('active');
					navItems.removeClass ('active');
					navItems[currentIndex].addClass ('active');
				}
				
			}
			if (this.options.descMode.test(/load/) && this.options.showDesc  ){
				this.hideDesc();
			}
		}
		
		//Description
		this.maskDesc = this.el.getElement ('.'+this.options.maskDesc);
		
		this.maskDesc.setStyles ({ 'display':'block',
								   'position':'absolute',
									'width': this.options.maskWidth,
									'height': this.options.maskHeigth
								});
		
	
		
		if ( this.options.showDesc ) {
			if (this.options.animation.test (/move/) && this.options.overlap ) {
				this.options.maskAlignment = 'left';
				this.options.maskerTransStyle = 'opacity';
			}
			this.maskDesc.setStyle( this.options.maskAlignment, this.options.rearWidth+this.options.mainSpace );
			this.maskDesc.setStyle( 'opacity', 0 );
			if(  this.options.maskerTransStyle == 'opacity' ){
				
				this.descFx = new Fx.Style (this.maskDesc, 'opacity',{duration:400,transition:this.options.maskerTrans});
				
				this.descs = this.el.getElements ('.ja-slide-desc');
				this.showDesc = function() {
					this.descFx.stop();
					this.descFx.start(this.options.maskOpacity);
				};
				this.hideDesc = function () {
					this.descFx.stop();
					this.descFx.start(0.01);
					
				};
			} else {
			
				sizeOff = this.options.maskAlignment == 'top' || this.options.maskAlignment=='bottom'?this.options.maskHeigth : this.options.maskWidth;

				this.maskDesc.setStyle( 'opacity', this.options.maskOpacity );
				this.maskDesc.setStyle( this.options.maskAlignment, -this.options.mainWidth );
				this.descFx = new Fx.Style (this.maskDesc, this.options.maskAlignment,{duration:400,transition:this.options.maskerTrans});
				this.descs = this.el.getElements ('.ja-slide-desc');
				this.showDesc = function() { 
					this.descFx.stop();
					this.descFx.start( 0 );
				};
				this.hideDesc = function () {
					this.descFx.stop();
					this.descFx.start( -sizeOff );
					
				};				
			}
			
			this.swapDesc = function (currentIndex) {
			//console.log('swap '+currentIndex);
				if (this.maskDesc.currentIndex == currentIndex) return;
				if (this.maskDesc.desc) {
					this.maskDesc.desc.remove();
					this.maskDesc.desc = null;
					if( !$defined(this.maskDesc.getElement('.inner .readon')) ){
						this.maskDesc.setHTML('');
					}
				}
				if (this.descs[currentIndex] && this.descs[currentIndex].innerHTML) this.maskDesc.desc = this.descs[currentIndex].inject (this.maskDesc);
				this.maskDesc.currentIndex = currentIndex;
			}
			
			if (this.options.descMode.test(/mouseover/)){
				var childs = this.el.getElements('.ja-slide-item');
					childs.each( function(itm, index){
					itm.addEvent ('mouseover', this.showDesc.bind(this) );
					itm.addEvent ('mouseout', this.hideDesc.bind(this));
				}.bind(this) )
				this.maskDesc.addEvent ('mouseover', this.showDesc.bind(this) );
				this.maskDesc.addEvent ('mouseout', this.hideDesc.bind(this));
			} else {
				this.maskDesc.setStyle ('opacity', this.options.maskOpacity);
			}
		} else {
			this.maskDesc.setStyle ('opacity', 0 );
		}
		this.fxOptions.onComplete = function() {
			if (this.options.showDesc) {
				this.swapDesc(this.hs.currentIndex);
				if (this.options.descMode.test(/load/)){
					this.showDesc();
				}
			}
		}.bind(this);
		
		
		if (this.options.urls) {
			this.maskDesc.addEvent('click', function () {
				// URL
				var url = this.options.urls[this.hs.currentIndex];
				if (url) {
					var target = this.options.targets[this.hs.currentIndex];
					switch(target){
						case "_blank":{
							window.open(url, "newWindow");
							break;	
						}
						default:{							
							window.location.href = url;
							break;	
						}
					}					
				}
				// Target of URL
				
			}.bind(this));
		}


		this.hs = new JASlideshowThree({
			box: this.el.getElement('.ja-slide-main'),	
			languageDirection:this.options.languageDirection,
			items: this.els,
			handlerBox:thumbs_handles,
			handles: thumbs_handles?thumbs_handles.getChildren():[],
			fxOptions: this.fxOptions,
			interval: this.options.interval,
			onWalk: this.onWalk.bind(this),
			size: this.options.mainWidth + this.options.mainSpace,
			animation: this.options.animation,
			animationRepeat: this.options.animationRepeat,
			buttons: {
				previous: this.el.getElements('.ja-slide-prev'),
				play: this.el.getElements('.ja-slide-play'),
				stop: this.el.getElements('.ja-slide-stop'),
				playback: this.el.getElements('.ja-slide-playback'),
				next: this.el.getElements('.ja-slide-next')
			},
			startItem: this.options.startItem,
			offset: this.options.overlap?this.options.rearWidth-this.options.mainWidth:0,
			autoPlay: this.options.autoPlay
		});
	
		//Case xxxx
		if(this.options.overlap){
				var childs = this.hs.box.getChildren();
			childs[0].clone().inject(this.hs.box);
			childs[this.hs.items.length-1].clone().injectTop(this.hs.box);
			this.hs.box.setStyle(this.hs.modes[this.hs.options.mode][1],(this.hs.options.size*(this.hs.items.length+2)+200)+'px');			
		} 
		this.el.setStyle('visibility', 'visible');
	},
	
	getFxObjectByMode: function( mode, start, end ){
	
		switch( mode ){
			case 'sideright' : return { 'left': [start, -end] } ; break;
			case 'sideleft'  : return { 'left': [start, end]  } ; break;	
			case 'sidetop'   : return { 'top':  [start, end]   } ; break;
			case 'sidedown'  : return { 'top':  [start, -end]  } ;  break;	
			case 'botleft' : return	  { 'top': start , 'left': end  } ;  break;	
			default: return { 'height': [start, end] };		break;		
		}
	},
	controlMark:function(){
		
	}
});





