/*
 * Prototype image slider by David Chambers
 * http://davidchambersdesign.com/prototype-image-slider/
 * { last updated: 14 November 2009 }
 *
 * Requires Prototype:
 * http://www.prototypejs.org/
 *
 * Requires script.aculo.us:
 * http://script.aculo.us/
 */

var Slider = Class.create({
	initialize: function (element, par, duration, n) {
		var children, l, dimensions, w = 0, h = 0, wrap, nav;
		element = $(element);
		children = element.childElements();
		l = children.length;
		if (par == undefined || isNaN(par)) {
			par = 0
		}
		if (n == undefined || isNaN(n)) {
			n = 0
		}
		else if (n < 0) {
			n = l + n;
			if (n < 0) {
				n = 0
			}
		}
		else if (n >= l) {
			n = 0
		}
		children.each(function (child) {
			dimensions = child.getDimensions();
			
			if (dimensions.width > w) {
				if(par != 700){
					w = 207;
				}else{
					w = dimensions.width;
				}
			}
			if (dimensions.height > h) {
				h = dimensions.height
			}
		});
		
		wrap = new Element('div', {'class':'section'});
		wrap.setStyle({
			marginLeft: n * -w + 'px',
			width: children.length * w + 'px'
		});
		children.each(function (child) {
			if(par != 700){
				child.setStyle({
					cssFloat: 'left',
					width: par+'px'
				});
			}else{
				child.setStyle({
					cssFloat: 'left',
					padding: '0 50px',
					width: par+'px'
				});
			}
			wrap.appendChild(child);

		});
		element.setStyle({
			width: par + 'px',
			overflow: 'hidden'
		});
		element.appendChild(wrap);
		
		nav = {
			ul: new Element('ul'),
			prev: {
				li: new Element('li', { 'class': 'prev' }),
				a: new Element('div', { 'class': 'fleche_gauche' })
			},
			next: {
				li: new Element('li', { 'class': 'next' }),
				a: new Element('div', { 'class': 'fleche_droite' })
			}
		};
		nav.prev.li.appendChild(nav.prev.a);
		nav.next.li.appendChild(nav.next.a);
		if (n == 0) {
			//nav.prev.li.hide()
			nav.prev.li.style.visibility = 'hidden';
		}
		if (n == l - 1) {
			//nav.next.li.hide()
			nav.next.li.style.visibility = 'hidden';
		}
		nav.ul.appendChild(nav.prev.li);
		nav.ul.appendChild(nav.next.li);
		new Insertion.Top(element, nav.ul);
		nav.ul.setStyle({listStyle:'none'});

		this.duration = (duration == undefined ? 1.0 : duration);
		this.wrap = wrap;
		this.nav = nav;
		this.w = w; // width of each slide
		this.h = h; // height of each slide
		this.l = l; // number of slides in slide show
		this.n = n; // number of the active slide
		this.par = par;
		Event.observe(nav.prev.a, 'click', this.prev.bind(this));
		Event.observe(nav.next.a, 'click', this.next.bind(this));
	},

	isFirst: function () {
		return (this.n == 0)
	},

	isLast: function () {
		return (this.n == this.l - 1)
	},

	slide: function () {
		new Effect.Morph(this.wrap, {
			style: 'margin-left: -' + this.n * this.w + 'px;',
			duration: this.duration
		})
	},

	prev: function (e) {
		this.n--;
		this.slide();
		//this.nav.next.li.show();
		this.nav.next.li.style.visibility = 'visible';
		if (this.isFirst()) {
			//this.nav.prev.li.hide()
			this.nav.prev.li.style.visibility = 'hidden';
		}
		e.stop()
	},

	next: function (e) {
		this.n++;
		this.slide();
		//this.nav.prev.li.show();
		this.nav.prev.li.style.visibility = 'visible';
		if (this.isLast()) {
			//this.nav.next.li.hide()
			this.nav.next.li.style.visibility = 'hidden';
		}
		e.stop()
	}
});



/**
function addCptCheckBx(){
        var a = 0;
	var elem = $('tvExplorerArtisan');
	var elems = elem.getElementsByTagName('input');

	for(var i=0; i<elems.length; i++){
		if(elems[i].type=="checkbox" && elems[i].checked){
			a++;
		}
	}
	$('cpta').value = a;
}

**/


