function slide_init(direction,loop,delay,increment) {
	
	if(!slide_content) slide_content = '#slide_content'
	if(!slide_container) slide_container = '#slide_container'
	if(!slide_panel) slide_panel = '.slide_panel'
	if(!slide_bt_even) slide_bt_even = '#slide_bt_even'
	if(!slide_bt_odd) slide_bt_odd = '#slide_bt_odd'
	if(!slide_compensate) slide_compensate = 0;
	//Direction of the slide (true = vertical, false = horizontal)
	window.slide_vars_direction = direction ? true : false
	//#slide_content initial left position
	if(!slide_vars_direction) window.slide_vars_initLeft = $(slide_content).css('left')
	else window.slide_vars_initLeft = $(slide_content).css('top')
	//slide_vars_cntSlide = current slide count
	window.slide_vars_cntSlide = 0;
	//impact slide_vars_slideDistance
	window.slide_vars_increment = increment ? increment : 1;
	//Width or height of a single panel
	if(!slide_vars_direction) window.slide_vars_slideWith = parseInt($(slide_panel).css('width').replace('px','')) // Horizontal slide
	else window.slide_vars_slideWith = parseInt($(slide_panel).css('height').replace('px','')) // Vertical slide
	slide_vars_slideWith += slide_compensate
	
	//width or height of the parent container
	if(!slide_vars_direction)  var slide_containerWidth = parseInt($(slide_container).css('width').replace('px',''))
	else var slide_containerWidth = parseInt($(slide_container).css('height').replace('px',''))
	
	//Number of slides that are visible by default in the parent container
	var slide_panelWidth = Math.ceil(slide_containerWidth/slide_vars_slideWith)
	//Total number of slides
	window.slide_vars_grandTotalSlide = $(slide_panel).length
	
	
	
	
	//Number of hidden panels
	window.slide_vars_cntHiddenSlides = slide_vars_grandTotalSlide - slide_panelWidth
	//Total width of the hidden panels
	window.slide_vars_totalHiddenWith = slide_vars_cntHiddenSlides * slide_vars_slideWith
	//Distance of one slide action
	window.slide_vars_oneSlideWith = slide_vars_slideWith * slide_vars_increment
	
	//Number of possible slide occurences
	window.slide_vars_totalSlide = Math.ceil(slide_vars_totalHiddenWith / (slide_vars_oneSlideWith-slide_compensate))
	
	//window.slide_vars_totalSlide = Math.ceil(slide_vars_grandTotalSlide/slide_panelWidth)-1
	//alert(slide_vars_totalSlide)
	
	//alert(slide_vars_totalHiddenWith / (slide_vars_oneSlideWith-slide_compensate)+' and '+slide_vars_totalSlide)
	//var nbDiff = slide_vars_totalSlide - slide_vars_totalHiddenWith / slide_vars_oneSlideWith
	//if(nbDiff > 0 && nbDiff < 1)
	
	//Distance, in pixels, of the slide animation
	//window.slide_vars_slideDistance = Math.ceil(slide_containerWidth/slide_panelWidth) * slide_vars_increment
	window.slide_vars_slideDistance = slide_vars_oneSlideWith
	
	//Loop on or off
	window.slide_vars_loop = loop ? true : false
	//if loop, delay between 2 slides (default 2000)
	window.slide_vars_delay = delay ? delay : 2000
	
	//launch loop
	if(slide_vars_loop) {
		$(slide_container).oneTime(slide_vars_delay,function(){slide_loop();})
	}
	
	$(slide_bt_even+".on").live('click',function(){
		$(slide_container).stopTime()
		slide_rangeSlide(true)
	})
	$(slide_bt_odd+".on").live('click',function(){
		$(slide_container).stopTime()
		slide_rangeSlide(false)
	})
}

function slide_loop() {
	if(slide_vars_cntSlide == slide_vars_totalSlide) {
		slide_toggleVis(slide_bt_even)
		slide_toggleVis(slide_bt_odd,true)
		if(!slide_vars_direction) $(slide_content).animate({left:slide_vars_initLeft})
		else $(slide_content).animate({top:slide_vars_initLeft})
		slide_vars_cntSlide = 0;
	}
	else {
		slide_rangeSlide()
	}
	$(slide_container).oneTime(slide_vars_delay,function(){slide_loop()})
}

function slide_rangeSlide(up) {
	if(up) {
		if(slide_vars_direction) $(slide_content).animate({top:'+='+slide_vars_slideDistance})
		else $(slide_content).animate({left:'+='+slide_vars_slideDistance},1000)
		slide_vars_cntSlide--
	}
	else {
		if(slide_vars_direction) $(slide_content).animate({top:'-='+slide_vars_slideDistance})
		else $(slide_content).animate({left:'-='+slide_vars_slideDistance},1000)
		slide_vars_cntSlide++
	}
	slide_updateBt(slide_vars_cntSlide)
}

//Toggle on/off class for buttons according to slide position
function slide_updateBt(slide_vars_cntSlide) {
	if(slide_vars_cntSlide < slide_vars_totalSlide) slide_toggleVis(slide_bt_odd,true)
	else slide_toggleVis(slide_bt_odd)
			
	if(slide_vars_cntSlide) slide_toggleVis(slide_bt_even,true)
	else slide_toggleVis(slide_bt_even)
}

//Toggle on/off class (toggle class to "on" if "on" p@ram is set to true)
function slide_toggleVis(element,on) {
	var remove = 'on'
	var add = 'off'
	if(on) {
		remove = 'off'
		add = 'on'
	}
	$(element)
		.removeClass(remove)
		.addClass(add)
}
