function RunSlideShow(divid,imageid,imageFiles,displaySecs)
{
	var imageSeparator = imageFiles.indexOf(";");
	var nextImage = imageFiles.substring(0,imageSeparator);

	changeOpac(0, imageid);
	blendimage(divid,imageid,nextImage,1000);

	var futureImages= imageFiles.substring(imageSeparator+1,imageFiles.length)+ ';' + nextImage;
	setTimeout("RunSlideShow('"+divid+"','"+imageid+"','"+futureImages+"',"+displaySecs+")",displaySecs*1000);

}

function opacity(id, opacStart, opacEnd, millisec) {
	//speed for each frame
	var speed = Math.round(millisec / 100);
	var timer = 0;

	//determine the direction for the blending, if start and end are the same nothing happens
	if(opacStart > opacEnd) {
		for(i = opacStart; i >= opacEnd; i--) {
			setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed));
			timer++;
		}
	} else if(opacStart < opacEnd) {
		for(i = opacStart; i <= opacEnd; i++)
			{
			setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed));
			timer++;
		}
	}
}

//change the opacity for different browsers
function changeOpac(opacity, id) {
	var object = document.getElementById(id).style; 
	object.opacity = (opacity / 101);
	object.MozOpacity = (opacity / 101);
	object.KhtmlOpacity = (opacity / 100);
	object.filter = "alpha(opacity=" + opacity + ")";
}

function shiftOpacity(id, millisec) {
	//if an element is invisible, make it visible, else make it ivisible
	if(document.getElementById(id).style.opacity == 0) {
		opacity(id, 0, 100, millisec);
	} else {
		opacity(id, 100, 0, millisec);
	}
}

function blendimage(divid, imageid, imagefile, millisec) {
	var speed = Math.round(millisec / 100);
	var timer = 0;
	
	// ** NOTE: Modified by RocketTheme to be able to fade between 2 divs rather than a div and an image **
	
	//set the current image as background
	document.getElementById(divid).style.backgroundImage = document.getElementById(imageid).style.backgroundImage;
	
	//make image transparent
	changeOpac(0, imageid);
	
	//make new image
	document.getElementById(imageid).style.backgroundImage = "url(" + imagefile + ")";

	//fade in image
	for(i = 0; i <= 100; i++) {
		setTimeout("changeOpac(" + i + ",'" + imageid + "')",(timer * speed));
		timer++;
	}
}

function currentOpac(id, opacEnd, millisec) {
	//standard opacity is 100
	var currentOpac = 100;
	
	//if the element has an opacity set, get it
	if(document.getElementById(id).style.opacity < 100) {
		currentOpac = document.getElementById(id).style.opacity * 100;
	}

	//call for the function that changes the opacity
	opacity(id, currentOpac, opacEnd, millisec)
}

function findPosX(obj)
{
	var curleft = 0;
	if(obj.offsetParent)
		while(1) {
			curleft += obj.offsetLeft;
			if(!obj.offsetParent)
				break;
			obj = obj.offsetParent;
		}
	else if(obj.x)
		curleft += obj.x;
	return curleft;
}

function findPosY(obj)
{
	var curtop = 0;
	if(obj.offsetParent)
		while(1) {
			curtop += obj.offsetTop;
			if(!obj.offsetParent)
				break;
			obj = obj.offsetParent;
		}
	else if(obj.y)
		curtop += obj.y;
	return curtop;
}

function colorover() {
	var cbb = document.getElementById("colorbb");
	if( cbb.className == "bbcode" ) {
		cbb.className = "bbhov";
	}
}

function colorout() {
	var cbb = document.getElementById("colorbb");
	if( cbb.className == "bbhov" ) {
		cbb.className = "bbcode";
	}
}

function userover(pid) {
	var ubb = document.getElementById("user"+pid);
	if( ubb.className == "usermenu" ) {
		ubb.className = "userhov";
	}
}

function userout(pid) {
	var ubb = document.getElementById("user"+pid);
	if( ubb.className == "userhov" ) {
		ubb.className = "usermenu";
	}
}

function sizeover() {
	var cbb = document.getElementById("sizebb");
	if( cbb.className == "bbcode" ) {
		cbb.className = "bbhov";
	}
}

function sizeout() {
	var cbb = document.getElementById("sizebb");
	if( cbb.className == "bbhov" ) {
		cbb.className = "bbcode";
	}
}

function showcolors() {
	var cbb = document.getElementById("colorbb");
	var cbox = document.getElementById("colorBox");
	if( cbb != null ) {
		var cy = findPosY(cbb);
		var cx = findPosX(cbb);
		cbb.className = "bbsel";
	}
	if( cbox != null ) {
		cbox.style.top = cy+22+"px"; cbox.style.left = cx+"px";
	}
}

function showuser(pid) {
	var ubb = document.getElementById("user"+pid);
	var ubox = document.getElementById("ubox"+pid);
	var uy = findPosY(ubb);
	var ux = findPosX(ubb);
	ubox.style.top = uy+27+"px"; ubox.style.left = ux+"px";
	ubb.className = "usersel";
}

function showsizes() {
	var sbb = document.getElementById("sizebb");
	var sbox = document.getElementById("sizeBox");
	var sy = findPosY(sbb);
	var sx = findPosX(sbb);
	sbox.style.top = sy+22+"px"; sbox.style.left = sx+"px";
	sbb.className = "bbsel";
}

function hideboxes(e) {
	var target=e?e.target:event.srcElement;
	var cbb = document.getElementById("colorbb");
	var cimg = document.getElementById("colorimg");
	var sbb = document.getElementById("sizebb");
	var simg = document.getElementById("sizeimg");
	var cbox = document.getElementById("colorBox");
	var sbox = document.getElementById("sizeBox");
	
	var unames=document.getElementsByName("uname");
	var uboxes=document.getElementsByName("ubox");
	for(var i=0; i<unames.length; i++) {
		if( target!=unames[i] && target!=uboxes[i] ) {
			unames[i].className = "usermenu";	
			uboxes[i].style.top = "-500px";
			uboxes[i].style.left = "-500px";
		}
	}
	
	if( target!=cbb && target!=cimg ) {
		cbox.style.top = "-500px"; cbox.style.left = "-500px";
		cbb.className = "bbcode";
	}
	if( target!=sbb && target!=simg ) {
		sbox.style.top = "-500px"; sbox.style.left = "-500px";
		sbb.className = "bbcode";
	}
}

function stripbbtags() {
	myField = document.getElementById("bbtext");
	var text = myField.value;
	text = text.replace( /\[\/?[biu]\]/gi, "" );
	text = text.replace( /\[\/?size=?[0-9]*\]/gi, "" );
	text = text.replace( /\[\/?colou?r=?#?[0-9a-zA-Z]*\]/gi, "" );
	text = text.replace( /\[\/?center\]/gi, "" );
	text = text.replace( /\[\/?left\]/gi, "" );
	text = text.replace( /\[\/?right\]/gi, "" );
	myField.value = text;
}

function showspoiler(id) { 
	var myBox = document.getElementById("spoiler"+id);
	if( myBox.style.display == "none" ) {
		myBox.style.display = "block";
	}
	else {
		myBox.style.display = "none";
	}
}

function addtext(head,tail,popup) {
	var myField;
	if( popup==0 ) {
		myField = document.getElementById("bbtext");
	}
	else {
		myField = window.opener.document.getElementById("bbtext");
	}

	if( document.selection ) {
		myField.focus();
		sel = document.selection.createRange();
		sel.text = head + tail;
	}
	else if( myField.selectionStart || myField.selectionStart == '0' ) {
		var startPos = myField.selectionStart;
		var endPos = myField.selectionEnd;
		myField.value = myField.value.substring(0, startPos) + head + myField.value.substring(startPos,endPos) + tail + 
						myField.value.substring(endPos, myField.value.length);
		myField.setSelectionRange(startPos+head.length,endPos+head.length);
		myField.focus();
	}
	else {
		myField.value = myField.value + head + tail;
	}
}

document.onclick=hideboxes
document.onkeydown=function(e) {
	if(e.which == 66 && e.ctrlKey ) { 
		addtext("[b]","[/b]",0); return false;
	}
	if(e.which == 69 && e.ctrlKey ) { 
		addtext("[center]","[/center]",0); return false;
	}
	if(e.which == 76 && e.ctrlKey ) { 
		addtext("[left]","[/left]",0); return false;
	}
	if(e.which == 82 && e.ctrlKey ) { 
		addtext("[right]","[/right]",0); return false;
	}
	if(e.which == 73 && e.ctrlKey ) { 
		addtext("[i]","[/i]",0); return false;
	}
	if(e.which == 85 && e.ctrlKey ) { 
		addtext("[u]","[/u]",0); return false;
	}
}



var opac = 3;	
function fadealert() {
	var alert = document.getElementById("alert");
	if( alert != null ) {
		if( opac > 1 ) {
			alert.style.opacity=1;
		}
		if( opac > 0 ) {
			opac -= .1;
			alert.style.opacity=opac;
		}
		else {
			alert.style.display="none";
			clearInterval( fade );
		}
	}
}
fade = setInterval("fadealert()", 100);
