
function textStats(textarea,id){
	var val = textarea.value;
	var bits = val.split("\n");
	var columns = 0;
	var lines = bits.length;
	for(i=0;i<lines;i++){
		if(bits[i].length > columns){
			columns = bits[i].length;
		}
	}
	document.getElementById(id).innerHTML = 'Cols: '+columns+' Lines: '+lines;
}

function limitText(limitField, limitNum) {
	if (limitField.value.length > limitNum) {
		limitField.value = limitField.value.substring(0, limitNum);
		alert('You can enter a maximum of '+limitNum+' characters');
	}
}
function limitLines(limitField, limitNum,limitChar) {
	var val = limitField.value;
	var bits = val.split("\n");
	var tomanyChar = false;
	limitField.value = '';
	for(i=0;i<bits.length;i++){
		bits[i] = bits[i].replace("\r",'');
		limitField.value += bits[i].substr(0,limitChar);
		if(i < ((bits.length)-1)){
			limitField.value += "\n";
		}
		if(bits[i].length > limitChar){
			tomanyChar = true;
		}
	}
	val = limitField.value;
	bits = val.split("\n");
	
	if (bits.length > limitNum) {
		limitField.value = '';
		for(i=0;i<limitNum;i++){
			bits[i] = bits[i].replace("\r",'');
			limitField.value += bits[i];
			if(i != (limitNum-1)){
				limitField.value += "\n";
			}
		}
		alert('You can enter a maximum of '+limitNum+' lines');
	}else 
	if(tomanyChar){
		alert('You can enter a maximum of '+limitChar+' characters per line');
	}
}

function displayTable(id){
	var table = document.getElementById(id);
	if(table.style.display == 'none'){
		table.style.display = '';
	}else{
		table.style.display = 'none';
	}
	return (false);
}

function decision(url,question){
	var answer = confirm(question)
	if (answer){
		window.location = url;
	}

}

function showtab(name,tab,id,total){
	for(i=0;i<total;i++){
		disparea = document.getElementById(name+'_'+i);
		disptab = document.getElementById(tab+'_'+i);
		if(i == id){
			disparea.style.display = '';
			disptab.className = 'selected';
		}else{
			disparea.style.display = 'none';
			disptab.className = '';
		}
	}
}

var bannerCounter = new Array();
var bannerPreload = new Array();
function rotateBanner(ray,id){
	if(bannerCounter[id] >= ray.length){
		bannerCounter[id] = 0;	
	}
	if(ray.length > 1){
		var img = document.getElementById('banner_img_'+id);
		setTimeout(function(){ img.src = ray[bannerCounter[id]][1]}, 1000);
		FadeOpacity('banner_img_'+id, 100, 0, 1000, 12);
		var lnk = document.getElementById('banner_link_'+id);
		lnk.href = ray[bannerCounter[id]][0];
		
		bannerCounter[id]++;
		
		setTimeout(function(){ rotateBanner(ray,id) },10000);
		if(bannerPreload[id] != 'undefined'){
			bannerPreload[id] = new Array();
			for(i=0;i<ray.length;i++){
				bannerPreload[id][i] = new Image(); 
				bannerPreload[id][i].src = ray[i][1];
			}
		}
	}
}

function rotateBannerCell(ray,id){
	if(bannerCounter[id] >= ray.length){
		bannerCounter[id] = 0;	
	}
	var cell = document.getElementById('banner_cell_'+id);
	setTimeout(function(){ cell.innerHTML = ray[bannerCounter[id]] },1000);
	FadeOpacity('banner_cell_'+id, 100, 0, 1000, 12);
	bannerCounter[id]++;
	setTimeout(function(){ rotateBannerCell(ray,id) },10000);
}



function SetOpacity(elem, opacityAsInt)
{
	var opacityAsDecimal = opacityAsInt;
	
	if (opacityAsInt > 100)
		opacityAsInt = opacityAsDecimal = 100; 
	else if (opacityAsInt < 0)
		opacityAsInt = opacityAsDecimal = 0; 
	
	opacityAsDecimal /= 100;
	if (opacityAsInt < 1)
		opacityAsInt = 1; // IE7 bug, text smoothing cuts out if 0
	
	elem.style.opacity = opacityAsDecimal;
	elem.style.filter  = "alpha(opacity=" + opacityAsInt + ")";
}

function FadeOpacity(elemId, fromOpacity, toOpacity, time, fps)
{
	return (true);
	fps = 30;
	var steps = Math.ceil(fps * (time / 1000));
	var delta = (toOpacity - fromOpacity) / steps;
	
	FadeOpacityStep(elemId, 0, steps, fromOpacity, delta, (time / steps));
}

function FadeOpacityStep(elemId, stepNum, steps, fromOpacity, delta, timePerStep)
{
    SetOpacity(document.getElementById(elemId), Math.round(parseInt(fromOpacity) + (delta * stepNum)));

    if (stepNum < steps){
        setTimeout("FadeOpacityStep('" + elemId + "', " + (stepNum+1) + ", " + steps + ", " + fromOpacity + ", " + delta + ", " + timePerStep + ");", timePerStep);
	}else if(Math.round(parseInt(fromOpacity) + (delta * stepNum)) <= 0){
		FadeOpacity(elemId, 0, 100, 1000, 12);
	}
}

