var font_start = "<font color='#0000FF' face='Verdana' size='2'><i>";
var font_end = "</font></i>";

function checknumber(x)
{
	var out
	var valid=/(^\d+$)|(^\d+\.\d+$)/;
	if (valid.test(x))
		out=true;
	else
	{
		out=false;
		if(x==".") out=true;
	}

	return out;
}

function removeNotDigits(x)
{
	var anum=/(^\d+$)|(^\d+\.\d+$)/;	
	for(var i=0;i<x.length;i++)
	{	
		if(x.charAt(i)!=".")
		{
			if (!anum.test(x.charAt(i)))
				x = x.replace(x.charAt(i),"");	
		}
	}
	

	return x;
}

function ShowResults(volume)
{
	var lit = volume / 61.0237441;
	var ukg = lit * 0.21997;
	var usg = lit * 0.2641720523;
	
	// 0 Litre. 0 Imperial. 0 US Gallon.
	document.getElementById('Results').value = Math.round(lit) + " Litre. " + Math.round(ukg) + " Imperial. " + Math.round(usg) + " US Gallon ";
}

function Cylindrical(obj)
{
	var measure = document.getElementById("Measure").value;
	var radius = document.getElementById("Diameter").value/2;
	var length = document.getElementById("Length").value;
	if(measure=="1") { radius = radius * 0.39; length = length * 0.39; }
	var volume = Math.PI * (radius * radius) * length;
	if(!checknumber(document.getElementById(obj).value)) document.getElementById(obj).value = removeNotDigits(document.getElementById(obj).value);	
	else ShowResults(volume);
}

function hCylindrical(obj)
{
	var measure = document.getElementById("Measure").value;
	var radius = document.getElementById("Diameter").value/2;
	var height = document.getElementById("Height").value;
	if(measure=="1") { radius = radius * 0.39; height = height * 0.39; }
	var volume = Math.PI * (radius * radius) * height;
	volume = volume / 2;
	if(!checknumber(document.getElementById(obj).value)) document.getElementById(obj).value = removeNotDigits(document.getElementById(obj).value);	
	else ShowResults(volume);
}

function cCylindrical(obj)
{
	var measure = document.getElementById("Measure").value;
	var radius = document.getElementById("Radius").value/2;
	var height = document.getElementById("Height").value;
	if(measure=="1") { radius = radius * 0.39; height = height * 0.39; }
	var volume = Math.PI * (radius * radius) * height;
	if(!checknumber(document.getElementById(obj).value)) document.getElementById(obj).value = removeNotDigits(document.getElementById(obj).value);	
	else ShowResults(volume);
}

function Elliptical(obj)
{
	var measure = document.getElementById("Measure").value;
	var length = document.getElementById("Length").value;
	var width = document.getElementById("Width").value;
	var height = document.getElementById("Height").value;
	if(measure=="1") { length = length * 0.39; width = width * 0.39;  height = height * 0.39; }
	var volume = Math.PI * length * width * height / 4;
	if(!checknumber(document.getElementById(obj).value)) document.getElementById(obj).value = removeNotDigits(document.getElementById(obj).value);	
	else ShowResults(volume);
}

function Bowfront(obj)
{
	var measure = document.getElementById("Measure").value;
	var length = document.getElementById("Length").value;
	var width = document.getElementById("Width").value;
	var panel = document.getElementById("Panel").value;
	var height = document.getElementById("Height").value;
	if(measure=="1") { length = length * 0.39; width = width * 0.39;  panel = panel * 0.39; height = height * 0.39; }
	var rect = length * panel * height;
	var bow = width - panel;
	var volume = Math.PI * length * height * bow / 2.45;
	volume = volume / 2 + rect;
	if(!checknumber(document.getElementById(obj).value)) document.getElementById(obj).value = removeNotDigits(document.getElementById(obj).value);	
	else ShowResults(volume);
}

function Concave(obj)
{
	var measure = document.getElementById("Measure").value;
	var length = document.getElementById("Length").value;
	var width = document.getElementById("Width").value;
	var panel = document.getElementById("Panel").value;
	var height = document.getElementById("Height").value;
	if(measure=="1") { length = length * 0.39; width = width * 0.39;  panel = panel * 0.39; height = height * 0.39; }
	var rect = length * width * height;
	var bow = width - panel;
	var volume = Math.PI * length * height * bow / 2.45;
	volume = rect - (volume / 2);
	if(!checknumber(document.getElementById(obj).value)) document.getElementById(obj).value = removeNotDigits(document.getElementById(obj).value);	
	else ShowResults(volume);
}

function Hexagonal(obj)
{
	var measure = document.getElementById("Measure").value;
	var length = document.getElementById("Length").value;
	var width = document.getElementById("Width").value;
	var panel = document.getElementById("Panel").value;
	var height = document.getElementById("Height").value;
	if(measure=="1") { length = length * 0.39; width = width * 0.39;  height = height * 0.39; panel = panel * 0.39; }
	var volume = width * length;
	volume = volume + (width * panel) / 2 * height;
	if(!checknumber(document.getElementById(obj).value)) document.getElementById(obj).value = removeNotDigits(document.getElementById(obj).value);	
	else ShowResults(volume);
}

function Octagonal(obj)
{
	var measure = document.getElementById("Measure").value;
	var length = document.getElementById("Length").value;
	var width = document.getElementById("Width").value;
	var fpanel = document.getElementById("fPanel").value;
	var spanel = document.getElementById("sPanel").value;
	var height = document.getElementById("Height").value;
	if(measure=="1") { length = length * 0.39; width = width * 0.39;  height = height * 0.39; fpanel = fpanel * 0.39; spanel = spanel * 0.39; }
	var volume = width * length;
	volume = volume + (width * fpanel) + (spanel * length);
	volume = volume - (fpanel * spanel);
	volume = volume / 2 * height;
	if(!checknumber(document.getElementById(obj).value)) document.getElementById(obj).value = removeNotDigits(document.getElementById(obj).value);	
	else ShowResults(volume);
}

function Corner(obj)
{
	var measure = document.getElementById("Measure").value;
	var length = document.getElementById("Length").value;
	var panel = document.getElementById("Panel").value;
	var height = document.getElementById("Height").value;
	if(measure=="1") { length = length * 0.39; height = height * 0.39; panel = panel * 0.39; }
	var volume = length * length;
	volume = volume + (length * panel)  * 2;
	volume = volume - (panel * panel);
	volume = volume / 2 * height;
	if(!checknumber(document.getElementById(obj).value)) document.getElementById(obj).value = removeNotDigits(document.getElementById(obj).value);	
	else ShowResults(volume);
}

function DShape(obj)
{
	var measure = document.getElementById("Measure").value;
	var length = document.getElementById("Length").value;
	var panel = document.getElementById("Panel").value;
	var height = document.getElementById("Height").value;
	if(measure=="1") { length = length * 0.39; height = height * 0.39; panel = panel * 0.39; }
	var volume = length * length;
	volume = volume + (length * panel)  * 2;
	volume = volume - (panel * panel);
	volume = volume / 2 * height;
	if(!checknumber(document.getElementById(obj).value)) document.getElementById(obj).value = removeNotDigits(document.getElementById(obj).value);	
	else ShowResults(volume);
}

function Rectangle(obj)
{
	var measure = document.getElementById("Measure").value;
	var length = document.getElementById("Length").value;
	var width = document.getElementById("Width").value;
	var height = document.getElementById("Height").value;
	if(measure=="1") { length = length * 0.39; height = height * 0.39; width = width * 0.39; }
	var volume = length * width * height;
	if(!checknumber(document.getElementById(obj).value)) document.getElementById(obj).value = removeNotDigits(document.getElementById(obj).value);	
	else ShowResults(volume);
}

function Substrate(obj)
{	
	var measure = document.getElementById("Measure").value;
	var length = document.getElementById("Length").value;
	var width = document.getElementById("Width").value;
	var height = document.getElementById("Height").value;
	if(measure=="2") { length = length * 2.54; width = width * 2.54;  height = height * 2.54; }
	var type = document.getElementById("Type").value;
	var base = length * width * height;
    if(type=="2") base = base / 600;
    else base = base / 1000;
    var kg = Math.round(base);
    var lbs = Math.round(base*2.20462262);
	if(!checknumber(document.getElementById(obj).value)) document.getElementById(obj).value = removeNotDigits(document.getElementById(obj).value);	
	else document.getElementById('Results').value = Math.round(lbs) + " lbs or " + Math.round(kg) + " kg ";
}

function HeaterWatts(obj)
{
	var watts='0';

	var tank_measure = document.getElementById("Measure").value;
	var temp_measure = document.getElementById("Temperature").value;
	var tank_size = document.getElementById("Size").value;
	var temp_tank = document.getElementById("Tank").value;
	var temp_room = document.getElementById("Room").value;
	if(tank_measure=="1") tank_size = tank_size * 0.2641720523; // Litre to USG
	else if(tank_measure=="2") tank_size = tank_size / 0.21997 * 0.2641720523;	// Imperal to USG
	if(temp_measure=="2") // F to C
	{
		temp_tank = Math.round( 5/9 * ( temp_tank  - 32));
		temp_room = Math.round( 5/9 * ( temp_room  - 32));
	}
	var temp_offset = temp_tank - temp_room;	
	if((temp_offset>=5)&(temp_offset<10)) 
	{
		if((tank_size>=1)&(tank_size<10)) watts='25';
		else if((tank_size>=10)&(tank_size<20)) watts='50';
		else if((tank_size>=20)&(tank_size<25)) watts='50';
		else if((tank_size>=25)&(tank_size<40)) watts='75';
		else if((tank_size>=40)&(tank_size<50)) watts='100';
		else if((tank_size>=50)&(tank_size<65)) watts='150';
		else if((tank_size>=65)&(tank_size<75)) watts='200';
		else if((tank_size>=75)&(tank_size<85)) watts='250';
	}
	else if((temp_offset>=10)&(temp_offset<15)) 
	{
		if((tank_size>=1)&(tank_size<10)) watts='50';
		else if((tank_size>=10)&(tank_size<20)) watts='75';
		else if((tank_size>=20)&(tank_size<25)) watts='75';
		else if((tank_size>=25)&(tank_size<40)) watts='100';
		else if((tank_size>=40)&(tank_size<50)) watts='150';
		else if((tank_size>=50)&(tank_size<65)) watts='200';
		else if((tank_size>=65)&(tank_size<75)) watts='250';
		else if((tank_size>=75)&(tank_size<85)) watts='300';
	}
	else if((temp_offset>=15)&(temp_offset<20))
	{
		if((tank_size>=1)&(tank_size<10)) watts='75';
		else if((tank_size>=10)&(tank_size<20)) watts='75';
		else if((tank_size>=20)&(tank_size<25)) watts='150';
		else if((tank_size>=25)&(tank_size<40)) watts='200';
		else if((tank_size>=40)&(tank_size<50)) watts='300';
		else if((tank_size>=50)&(tank_size<65)) watts='2 x 200';
		else if((tank_size>=65)&(tank_size<75)) watts='2 x 250';
		else if((tank_size>=75)&(tank_size<85)) watts='2 x 300';
	} 
	
	if(!checknumber(document.getElementById(obj).value)) document.getElementById(obj).value = removeNotDigits(document.getElementById(obj).value);	
	else document.getElementById('Results').value = font_start + watts + " Watts heater " + font_end;
}

function Converter(obj)
{
	var lit = '61.0237441';
	var ukg = '0.21997';
	var usg = '0.2641720523';

	if(!checknumber(document.getElementById(obj).value))
		document.getElementById(obj).value = removeNotDigits(document.getElementById(obj).value);

	if(obj=="Litre")
	{
		if(document.getElementById('Litre').value == '') 
		{
			document.getElementById('UKGallon').value = '';
			document.getElementById('USGallon').value = '';
		}
		else
		{
			document.getElementById('UKGallon').value = Math.round(document.getElementById('Litre').value * ukg);
			document.getElementById('USGallon').value = Math.round(document.getElementById('Litre').value * usg);
		}
	}
	if(obj=="UKGallon")
	{
		if(document.getElementById('UKGallon').value == '') 
		{
			document.getElementById('Litre').value = '';
			document.getElementById('USGallon').value = '';
		}
		else
		{
			var uk = document.getElementById('UKGallon').value / ukg;
			document.getElementById('Litre').value = Math.round(uk);
			document.getElementById('USGallon').value = Math.round(uk * usg);
		}
	}
	if(obj=="USGallon")
	{
		if(document.getElementById('USGallon').value == '') 
		{
			document.getElementById('UKGallon').value = '';
			document.getElementById('Litre').value = '';
		}
		else
		{
			var us = document.getElementById('USGallon').value / usg;
			document.getElementById('Litre').value = Math.round(us);
			document.getElementById('UKGallon').value = Math.round(us * ukg);
		}
	}
}

function Temperature(obj)
{
	if(!checknumber(document.getElementById(obj).value))
		document.getElementById(obj).value = removeNotDigits(document.getElementById(obj).value);
		
	if(obj=="Fahrenheit") 
	{
		//c = 5/9 * (f-32)
		var f = 5/9 * (document.getElementById('Fahrenheit').value - 32);
		document.getElementById('Centigrade').value = Math.round(f);
	}
	if(obj=="Centigrade") 
	{
		//f = 9/5 * c + 32
		var c = 9/5 * document.getElementById('Centigrade').value + 32;
		document.getElementById('Fahrenheit').value = Math.round(c);
	}
}

function cmToinch(obj)
{
	if(!checknumber(document.getElementById(obj).value))
		document.getElementById(obj).value = removeNotDigits(document.getElementById(obj).value);
		
	if(obj=="CM") 
	{
		var cm = document.getElementById('CM').value * 0.39;
		document.getElementById('INCH').value = Math.round(cm);
	}
	if(obj=="INCH") 
	{
		var inch = document.getElementById('INCH').value * 2.54;
		document.getElementById('CM').value = Math.round(inch);
	}
}

function shareURL(url,title,service)
{
 	var address = "";
 	var temp = new Array();
 	url = url.replace("./", "");
 	temp = url.split("&");
 	arraycount = temp.length;
 	newurl = "";
 	for(i=0;i<arraycount;i++)
 	{
 		if(temp[i].substring(0,4)=="sid=") temp[i] = temp[i].substring(36);
 		newurl = newurl + temp[i];
 	}
 	title = title.replace(" ", "+");
 	url = "http://www.fishtankforum.co.uk/forum/"+newurl;
 	if(service=="Facebook") address = "http://www.facebook.com/share.php?u="+encodeURIComponent(url);
 	else if(service=="Myspace") address = "http://www.myspace.com/Modules/PostTo/Pages/?u="+encodeURIComponent(url);
 	else if(service=="Twitter") address = "http://twitter.com/home?status="+title+"%20-%20"+encodeURIComponent(url);
	else if(service=="Bebo") address = "http://www.bebo.com/c/share?Url="+encodeURIComponent(url)+"&Title="+title;
	else if(service=="Digg") address = "http://digg.com/submit?phase=2&url="+encodeURIComponent(url)+"&title="+title;
	else if(service=="Del") address = "http://del.icio.us/post?url="+encodeURIComponent(url)+"&title="+title;
	else if(service=="Stumbleupon") address = "http://www.stumbleupon.com/submit?url="+encodeURIComponent(url)+"&title="+title;
	else if(service=="iGoogle") address = "http://www.google.com/bookmarks/mark?op=add&bkmk="+encodeURIComponent(url)+"&title="+title;
	else address = 0;
	if(address!=0) window.open(address,service);
}
