function ulSlide(divid, xy, width, height, padding, lionpage, autoslide, cur_page) {
	var obj = new Object();
	
	if ((xy == 'x') && (width == 'auto')) alert('Error\nWidth must be set as a static value in \'x\' mode');
	if ((xy == 'y') && (height == 'auto')) alert('Error\nHeight must be set as a static value in \'y\' mode');
	
	obj.onAnimate = function (sl) {};
	cur_page = cur_page ? cur_page : 0;
	obj.cur_page = cur_page;
	obj.autosize = ((xy == 'x') && (height == 'auto'));
	obj.xy = xy;
	obj.divid = divid;
		
	obj.width = width;
	obj.height = height;
	obj.cur_width = width;
	obj.cur_height = height;
	padding = padding ? padding : 0;
	obj.padding = padding;
	lionpage = lionpage ? lionpage : 1;
	obj.lionpage = lionpage;
	obj.autoslide = autoslide ? autoslide : 0;
	obj.setIntervalID = 0;
	
	var div_el = jQuery('#'+divid);
	if (div_el) {
		obj.ulid = divid + '_ul';
		var ul_el = jQuery('#'+divid+' > ul');
		ul_el.attr('id', obj.ulid);
		
		obj.count = jQuery('#'+obj.ulid+' > li').length;
		obj.ul_el = ul_el;
		obj.div_el = div_el;

		div_el.css("padding", '0');
		div_el.css("position", "relative");
		div_el.css("overflow", "hidden");
		
		if (lionpage > 1) {
			if (xy == 'x') {
				div_el.css("width", (width*lionpage)+'px');
				if (height == 'auto') div_el.css("height", 'auto');
				else div_el.css("height", height+'px');
			}
			else {
				div_el.css("width", width+'px');
				div_el.css("height", (height*lionpage)+'px');
			}
		}
		else {
			div_el.css("width", width+'px');
			if (height == 'auto') div_el.css("height", 'auto');
			else div_el.css("height", height+'px');
		}
		
		jQuery('#'+obj.ulid+' > li').addClass('slide_li');
		ul_el.css("padding", '0');
		ul_el.css("margin", '0');
		ul_el.css("position", 'absolute');
		
		jQuery('#'+obj.ulid+' > li').css("margin", '0');
		jQuery('#'+obj.ulid+' > li').css("float", 'left');

		if (xy == 'x') {			
			ul_el.css("width", (obj.count * width)+'px');	
			if (height == 'auto') ul_el.css("height", 'auto');
			else ul_el.css("height", height+'px');	
			ul_el.css("left", '-'+(cur_page * width) +'px');
			ul_el.css("top", '0px');
			
			
			jQuery('#'+obj.ulid+' > li').css("width", (width - (padding * 2))+'px');
			jQuery('#'+obj.ulid+' > li').css("padding", '0 '+padding+'px 0 '+padding+'px');
			
			if (obj.autosize) {
				obj.cur_height = jQuery('#'+obj.ulid+' > li:eq('+cur_page+')').height();
				jQuery('#'+divid).height(obj.cur_height);
			}
			else jQuery('#'+obj.ulid+' > li').css("height", height+'px');
		}
		else {
			ul_el.css("width", width+'px');	
			ul_el.css("height", (obj.count * height)+'px');	
			ul_el.css("left", '0px');
			ul_el.css("top", '-'+(cur_page * height) +'px');
			
			jQuery('#'+obj.ulid+' > li').css("height", (height - (padding * 2))+'px');
			jQuery('#'+obj.ulid+' > li').css("padding", padding+'px 0 '+padding+'px 0');
			
			if (obj.autosize) {
				obj.cur_width = jQuery('#'+ulid).find('li:eq('+cur_page+')').width();
				jQuery('#'+divid).width(obj.cur_width);
			}
			else jQuery('#'+obj.ulid+' > li').css("width", width+'px');
		}
	}
	else return false;
	
	obj.animate = function() {	
		if (this.xy == 'x')	{
			jQuery('#'+this.ulid).animate({'left':'-'+((this.cur_page) * this.width)+'px'}, 500);
		
			if (this.autosize) {
				this.cur_height = jQuery('#'+this.ulid).find('li:eq('+this.cur_page+')').height();
				jQuery('#'+this.divid).animate({'height':this.cur_height+'px'}, 500);
			}
		}
		else {
			jQuery('#'+this.ulid).animate({'top':'-'+((this.cur_page) * this.height)+'px'}, 500);
			
			if (this.autosize) {
				this.cur_width = jQuery('#'+this.ulid).find('li:eq('+this.cur_page+')').width();
				jQuery('#'+this.divid).animate({'width':this.cur_width+'px'}, 500);
			}
		}
		
		if (this.autoslide) this.initAutoslidet(this.autoslide);
		this.resetButtonClasses();
		this.onAnimate(this);
	};
	
	obj.avnext = function() {
		if ((this.cur_page + this.lionpage) < this.count) return true;
		else return false;
	};
	
	obj.avprev = function() {
		if (this.cur_page > 0) return true;
		else return false;
	};
	
	obj.next = function() {
		if (! this.ready) return false;
		this.ready = false;
		if (this.avnext()) this.cur_page ++;
		this.animate();	
		this.ready = true;
	};
	
	obj.prev = function() {
		if (! this.ready) return false;
		this.ready = false;
		if (this.avprev()) this.cur_page --;
		this.animate();	
		this.ready = true;
	};
	
	obj.resetButtonClasses = function() {
		var nav_next = jQuery('#'+this.next_button_id);
		if (nav_next) {
			if (this.avnext()) nav_next.addClass('active');
			else nav_next.removeClass('active');
		}
		var nav_prev = jQuery('#'+this.prev_button_id);
		if (nav_prev) {
			if (this.avprev()) nav_prev.addClass('active');
			else nav_prev.removeClass('active');	
		}

		if (this.navul_id) {
			var ulid = this.navul_id;
			jQuery('#' + ulid + ' > li a').each(function(elem){	
				jQuery('#' + ulid + ' > li a:eq('+elem+')').removeClass('current');
			});
			var current_el = (this.navul_pn) ? (this.cur_page + 1) : this.cur_page;
			jQuery('#' + ulid + ' > li a:eq('+current_el+')').addClass('current');
		}		
	}
				
	obj.setNextButton = function(id) {
		this.next_button_id = id;
		var button = jQuery('#' + id);
		document.getElementById(id).slider = this;
		button.click(
			function () { 
				this.slider.next(); 
				return false; 
			}); 
	};
	
	obj.setPrevButton = function(id) {
		this.prev_button_id = id;
		var button = jQuery('#' + id);
		document.getElementById(id).slider = this;
		button.click(
			function () { 
				this.slider.prev(); 
				return false; 
			}); 
	};
	
	obj.setOpenButton = function(id, slide) {
		var button = jQuery('#' + id);
		document.getElementById(id).slider = this;
		document.getElementById(id).slide_num = slide;
		button.click(
			function () { 			
				this.slider.cur_page = this.slide_num; 
				this.slider.animate();
				return false; 
			}); 
	};
	
	obj.setNavList = function(id, prev_next) {
		var nav_ul = jQuery('#' + id);
		this.navul_id = id;
		this.navul_pn = prev_next ? true : false;
		
		if (nav_ul) {
			var bid = this.divid + '_';
			var slide = this;
			var list_id = id;
			var nav_pn = this.navul_pn;
			
			jQuery('#' + id + ' > li a').each(function(elem){
				var eqslide = (nav_pn) ? (elem - 1) : elem;
				if ((nav_pn)&&(elem == 0)){
					jQuery('#' + list_id + ' > li a:eq('+elem+')').attr('id', bid + 'prev');
					slide.setPrevButton(bid + 'prev');
				}
				else if ((nav_pn)&&(elem == slide.count + 1)){
					jQuery('#' + list_id + ' > li a:eq('+elem+')').attr('id', bid + 'next');
					slide.setNextButton(bid + 'next');
				}
				else {
					jQuery('#' + list_id + ' > li a:eq('+elem+')').attr('id', bid + 'open_' + eqslide);
					slide.setOpenButton(bid + 'open_' + eqslide, eqslide);
				}
			});
		}
		else {
			return false;
		}
	};
	
	document.getElementById(obj.ulid).ulslide = obj;
	
	obj.autoslide_next = function(){
		if (this.cur_page < this.count - 1) this.cur_page ++; 
		else this.cur_page = 0;
		this.animate();
	};

	obj.initAutoslidet = function(interval){
		if (this.TimeoutID) clearTimeout(this.TimeoutID);
		this.TimeoutID = setTimeout("document.getElementById('"+obj.ulid+"').ulslide.autoslide_next();", interval);
	};
	
	if (obj.autoslide) obj.initAutoslidet(obj.autoslide);
	
	obj.ready = true;
	if (obj.autosize){
		setTimeout("document.getElementById('"+obj.ulid+"').ulslide.animate();", 1000);
		//setTimeout("document.getElementById('"+obj.ulid+"').ulslide.animate();", 2000);
	}
	return obj;
}

