//Created 06 Dec 2007
//Author: nivlam.com
//Permission given to use the script provided that this notice remains as is.

var totalSP = 0;
var selected = new Array(140);
var timerID = null;
var fadeID = null;
var opa = 0;
var ctrlID = null;
var IE = (document.all ? true : false);

function Float()
{
	window.onscroll = Move;
}

function Calculate(a)
{
	var current = parseInt(a.id.substring(1, a.id.length - 1) - 1);

	//Select
	if (a.className == "deselectedBtn")
	{
		if (selected[current] != null)
		{
			document.getElementById(selected[current]).className = "deselectedBtn";
			totalSP -= parseInt(document.getElementById(selected[current]).value);
		}

		selected[current] = a.id;
		a.className = "selectedBtn";
		totalSP += parseInt(a.value);
	}

	//Deselect
	else
	{
		selected[current] = null;
		a.className = "deselectedBtn";
		totalSP -= parseInt(a.value);
	}

	var output = FormatNum(totalSP);
	document.getElementById('results').innerHTML = output;
}

function SelectAll(gap) 
{
	var ele = null;

	for (var i = 0; i < selected.length; i++)
	{
		if (selected[i] != null)
		{
			document.getElementById(selected[i]).className = "deselectedBtn";
			totalSP -= parseInt(document.getElementById(selected[i]).value);
		}	

		ele = document.getElementById('b' + (i + 1) + gap);
		
		if (ele != null)
		{
			selected[i] = 'b' + (i + 1) + gap;
			ele.className = "selectedBtn";
			totalSP += parseInt(ele.value);
		}

		else
			selected[i] = null;
	}
	
	var output = FormatNum(totalSP);
	document.getElementById('results').innerHTML = output;
}

function MassSel()
{
	var start = parseInt(document.getElementById('selStart').value);
	var end = parseInt(document.getElementById('selEnd').value);
	var gap = parseInt(document.getElementById('selGap').value);
	var ele = null;

	for (var i = start; i <= end; i++)
	{
		if (selected[i - 1] != null)
		{
			document.getElementById(selected[i - 1]).className = "deselectedBtn";
			totalSP -= parseInt(document.getElementById(selected[i - 1]).value);
		}

		ele = document.getElementById('b' + i + gap);
		
		if (ele != null)
		{
			selected[i - 1] = 'b' + i + gap;
			ele.className = "selectedBtn";
			totalSP += parseInt(ele.value);
		}

		else
			selected[i - 1] = null;
	}

	var output = FormatNum(totalSP);
	document.getElementById('results').innerHTML = output;
}

function ClearAll() 
{	
	for (var i = 0; i < selected.length; i++)
	{
		if (selected[i] != null)
		{
			document.getElementById(selected[i]).className = "deselectedBtn";
			selected[i] = null;
		}
	}	

	totalSP = 0;
	document.getElementById('results').innerHTML = "0 SP";
}

//There's probably a better way of doing this.
function FormatNum(value)
{
	var tickets = document.getElementsByName('tickets');
	var spTickets = document.getElementsByName('spTickets');
	var multiplier = 1.0;
	
	for (var i = 0; i < tickets.length; i++)
	{
		if (tickets[i].checked)
			multiplier += parseFloat(tickets[i].value);
	}
	
	for (var i = 0; i < spTickets.length; i++)
	{
		if (spTickets[i].checked)
			multiplier += parseFloat(spTickets[i].value);
	}

	var str = parseInt(value * multiplier)  + '';
	str = str.split('');
	str.reverse();

	for (var i = 0; i < str.length; i++)
	{
		if (i % 4 == 0)
			str.splice(i , 0, ',');
	}

	str.splice(0, 1);
	str.reverse();
	return (str.join('') + ' SP');
}

function Move()
{
   var id = document.getElementById("floating");
           
	id.style.display = "none";
	clearTimeout(timerID);
	clearTimeout(fadeID);
	clearTimeout(ctrlID);
	opa = 0;

	ctrlID = setTimeout('CtrlMove()', 250);
	
	//Do not show if you can see the normal table headers.
	if (document.documentElement.scrollTop < 150)
	    return;
	
	timerID = setTimeout("Position()", 250);
}

function CtrlMove()
{
	document.getElementById('floater').style.top = document.documentElement.scrollTop + 250 + 'px';
}

function Position()
{
	var id = document.getElementById("floating");

	if (IE)
		id.style.filter = "alpha(opacity = " + opa + ")";
	else
		id.style.opacity = opa * 0.01;
	
	id.style.display = "block";

	id.style.top = document.documentElement.scrollTop + 'px';

	Fade();
}

function Fade()
{
	var id = document.getElementById("floating");
	opa += 15;	
	
	if (IE)
		id.style.filter = "alpha(opacity = " + opa + ")";
	else
		id.style.opacity = opa * 0.01;
	
    if (opa >= 100)
	    return;
	    
	fadeID = setTimeout("Fade('" + id + "')", 50);
}

function hideShowTicket()
{
	var text = document.getElementById('ticketHide');
	if (text.innerHTML == 'Show Ticket Info')
	{
		text.innerHTML = 'Hide Ticket Info';
		document.getElementById('ticketInfo').style.display = 'block';
	}
	else
	{
		text.innerHTML = 'Show Ticket Info';
		document.getElementById('ticketInfo').style.display = 'none';
	}

}

function reCalculate(s)
{	
	var output = FormatNum(totalSP);
	document.getElementById('results').innerHTML = output;
}

