/*
Image roulation functions
Copyright (c) 2009 Ylab, http://www.ylab.nl
version 1.0
*/

function slideNext(jSelector){
	if(hasFirebug){return;}
	var curr = $(jSelector + ' .dynamic:visible').css({zIndex:1});
	var next = $(jSelector + ' .dynamic:visible ~ .dynamic');
	if(next.length==0){
		next = $(jSelector + ' .dynamic');
	}
	$(next[0]).css({zIndex:2}).fadeIn('slow', function(){
		curr.hide();
	});
}

function addSlide(src, alt){
	if(src != this.defaultSrc){
		var jThis = $(this);
		var img = $('<img alt="' + alt + '" />').attr({src:src}).addClass('dynamic').hide();
		jThis.append(img);
	}
}

function jSlide(jSelector, w, h){
	var jThis = $(jSelector);
	var jImg  = $(jSelector + ' img').addClass('dynamic');
	jThis.css({position:'relative',overflow:'hidden',width:w+'px',height:h+'px'});
	var css = '.dynamic{';
			css +='position:absolute;';
			css +='top:' + jThis.css('paddingTop') + ';';
			css +='left:' + jThis.css('paddingLeft') + ';';
			css +='width: ' + w + 'px;';
			css +='height: ' + h + 'px;';
//			css +='clip: rect(0,' + w + 'px,' + h + 'px,0);';
//			css +='clip: rect(0 ' + w + 'px ' + h + 'px 0);';
			css +='}';
	var sheet = addStyleSheet(css);

	jThis[0].addItem = addSlide;
	return jThis[0];
}

function addStyleSheet(css){
	var sheet = document.createElement( 'style' );
	var head = document.getElementsByTagName('head')[0];
	sheet.type = 'text/css';
	head.appendChild(sheet);
	if(sheet.styleSheet){
		sheet.styleSheet.cssText = css;
	}
	else{
		sheet.appendChild(document.createTextNode(css));
	}
	return sheet;
}

//Replace a stylesheet with new CSS styles (a text string)
//and return a reference to it
function changeStyleSheet(sheet, css){
	if(sheet.styleSheet){
		sheet.styleSheet.cssText = css;
	}
	else{
		sheet.replaceChild(document.createTextNode(css), sheet.firstChild);
	}
	return sheet;
}
