var one= new Array("One","Two","Three","Four","Five","Six","Seven","Eight","Nine");
var teen= new Array("Ten","Eleven","Twelve","Thirteen","Fourteen","Fifteen","Sixteen","Seventeen","Eighteen","Nineteen");
var tens= new Array("Ten","Twenty","Thirty","Fourty","Fifty","Sixty","Seventy","Eighty","Ninety");
var aLotOf=new Array("Hundred","Thousand","Million","Billion","Trillion");

function convert_sum(amount)
{
	var hundreds = 0;
	var thousands = 0;
	var millions = 0;
	var billions = 0;
	var trillions = 0;
	//==========================
	
	if ( (amount == "")  || !(amount >= 0) )
	{
 		alert("Number must be an integer."); 
 		document.NumberToWordsConverter.sum.focus(); 
 		document.NumberToWordsConverter.sum.select(); 
	}
	else
	{
		whole    = Math.floor(amount);
		fraction = Math.round((amount-Math.floor(amount))*100);
		ret_str  = "";

		if ( whole > 999999999999999) 
		{ 
			ret_str ="Sum limit is ecceeded"; 
			document.getElementsByName('result')[0].value = ret_str;
		}
		else
		{
			var current_sum = whole;
			
			trillions = current_sum / 1000000000000;
			trillions = Math.floor(trillions);
			
			billions = current_sum;
			
			// count trillions
			if ( trillions  >= 1 )
			{
				var trill_hundreds = 0;
				var trill_tens = 0;
				var trill_ones = 0;
				
				billions -= trillions * 1000000000000;
				
				if ( ( trill_hundreds = trillions / 100) >= 1 )
				{
					trill_hundreds = Math.floor(trill_hundreds);
					
					ret_str += one[trill_hundreds-1] + " Hundred ";
					trillions -= trill_hundreds * 100;
				}
				
				trill_tens = trillions;
				if ( (trill_tens >= 10) && (trill_tens < 20) )
					if ( trill_hundreds < 1 )
						ret_str += teen[trill_tens-10] + " ";
					else
						ret_str += "and " + teen[trill_tens-10] + " ";
				else
					if ( (trill_tens >= 1) && (trill_tens < 10) )
						if ( trill_hundreds < 1 )
							ret_str += one[trill_tens-1] + " ";
						else
							ret_str += "and " + one[trill_tens-1] + " ";
					else
						if ( ( trill_tens = trillions / 10) > 1 )
						{
							trill_tens = Math.floor(trill_tens);
							
							if ( trill_hundreds < 1 )
								ret_str += tens[trill_tens-1] + "-";
							else
								ret_str += "and " + tens[trill_tens-1] + "-";
								
							trillions -= trill_tens * 10;
							
							if ( trillions > 0 )
								ret_str += one[trillions-1] + " ";
						}
				
				ret_str += "Trillion ";
			}
			
			// count billions
			current_sum = billions;
			billions = current_sum / 1000000000;
			billions = Math.floor(billions);
			
			millions = current_sum;
			
			if ( billions >= 1 )
			{
				var bill_hundreds = 0;
				var bill_tens = 0;
				var bill_ones = 0;
				
				millions -= billions * 1000000000;
				
				if ( ( bill_hundreds = billions / 100) >= 1 )
				{
					bill_hundreds = Math.floor(bill_hundreds);
					
					ret_str += one[bill_hundreds-1] + " Hundred ";
					billions -= bill_hundreds * 100;
				}
				
				bill_tens = billions;
				if ( (bill_tens >= 10) && (bill_tens < 20) )
					if ( bill_hundreds < 1 )
						ret_str += teen[bill_tens-10] + " ";
					else
						ret_str += "and " + teen[bill_tens-10] + " ";
				else
					if ( (bill_tens >= 1) && (bill_tens < 10) )
						if ( bill_hundreds < 1 )
							ret_str += one[bill_tens-1] + " ";
						else
							ret_str += "and " + one[bill_tens-1] + " ";
					else
						if ( ( bill_tens = billions / 10) > 1 )
						{
							bill_tens = Math.floor(bill_tens);
							
							if ( bill_hundreds < 1 )
								ret_str += tens[bill_tens-1] + "-";
							else
								ret_str += "and " + tens[bill_tens-1] + "-";
							billions -= bill_tens * 10;
							
							if ( billions > 0 )
								ret_str += one[billions-1] + " ";
						}
				
				ret_str += "Billion ";
			}			

			// count millions
			current_sum = millions;
			millions = current_sum / 1000000;
			millions = Math.floor(millions);
			
			thousands = current_sum;
			
			if ( millions >= 1 )
			{
				var mill_hundreds = 0;
				var mill_tens = 0;
				var mill_ones = 0;
				
				thousands -= millions * 1000000;
				
				if ( ( mill_hundreds = millions / 100) >= 1 )
				{
					mill_hundreds = Math.floor(mill_hundreds);
					
					ret_str += one[mill_hundreds-1] + " Hundred ";
					millions -= mill_hundreds * 100;
				}
				
				mill_tens = millions;
				if ( (mill_tens >= 10) && (mill_tens < 20) )
					if ( mill_hundreds < 1 )
						ret_str += teen[mill_tens-10] + " ";
					else
						ret_str += "and " + teen[mill_tens-10] + " ";
				else
					if ( (mill_tens >= 1) && (mill_tens < 10) )
						if ( mill_hundreds < 1 )
							ret_str += one[mill_tens-1] + " ";
						else
							ret_str += "and " + one[mill_tens-1] + " ";
					else
						if ( ( mill_tens = millions / 10) > 1 )
						{
							mill_tens = Math.floor(mill_tens);
							
							if ( mill_hundreds < 1 )
								ret_str += tens[mill_tens-1] + "-";
							else
								ret_str += "and " + tens[mill_tens-1] + "-";
							millions -= mill_tens * 10;
							
							if ( millions > 0 )
								ret_str += one[millions-1] + " ";
						}
				
				ret_str += "Million ";
			}			
				
			// count thousands
			current_sum = thousands;
			thousands = current_sum / 1000;
			thousands = Math.floor(thousands);
			
			hundreds = current_sum;
			
			if ( thousands >= 1 )
			{
				var thou_hundreds = 0;
				var thou_tens = 0;
				var thou_ones = 0;
				
				hundreds -= thousands * 1000;
				
				if ( ( thou_hundreds = thousands / 100) >= 1 )
				{
					thou_hundreds = Math.floor(thou_hundreds);
					
					ret_str += one[thou_hundreds-1] + " Hundred ";
					thousands -= thou_hundreds * 100;
				}
				
				thou_tens = thousands;
				if ( (thou_tens >= 10) && (thou_tens < 20) )
					if ( thou_hundreds < 1 )
						ret_str += teen[thou_tens-10] + " ";
					else
						ret_str += "and " + teen[thou_tens-10] + " ";
				else
					if ( (thou_tens >= 1) && (thou_tens < 10) )
						if ( thou_hundreds < 1 )
							ret_str += one[thou_tens-1] + " ";
						else
							ret_str += "and " + one[thou_tens-1] + " ";
					else
						if ( ( thou_tens = thousands / 10) > 1 )
						{
							thou_tens = Math.floor(thou_tens);
							
							if ( thou_hundreds < 1 )
								ret_str += tens[thou_tens-1] + "-";
							else
								ret_str += "and " + tens[thou_tens-1] + "-";
							thousands -= thou_tens * 10;
							
							if ( thousands > 0 )
								ret_str += one[thousands-1] + " ";
						}
				
				ret_str += "Thousand ";
			}			

			// count ргтвкувы
			current_sum = hundreds;
			hundreds = Math.floor(hundreds);
			
			if ( hundreds >= 1 )
			{
				var hun_hundreds = 0;
				var hun_tens = 0;
				var hun_ones = 0;
				
				if ( ( hun_hundreds = hundreds / 100) >= 1 )
				{
					hun_hundreds = Math.floor(hun_hundreds);
					
					ret_str += one[hun_hundreds-1] + " Hundred ";
					hundreds -= hun_hundreds * 100;
				}
			
				hun_tens = hundreds;
				if ( (hun_tens >= 10) && (hun_tens < 20) )
					if ( hun_hundreds < 1 )
						ret_str += teen[hun_tens-10] + "-";
					else
						ret_str += "and " + teen[hun_tens-10] + "-";
				else
					if ( (hun_tens >= 1) && (hun_tens < 10) )
						if ( hun_hundreds < 1 )
							ret_str += one[hun_tens-1] + "-";
						else
							ret_str += "and " + one[hun_tens-1] + "-";
					else
						if ( ( hun_tens = hundreds / 10) > 1 )
						{
							hun_tens = Math.floor(hun_tens);
							
							if ( hun_hundreds < 1 )
								ret_str += tens[hun_tens-1] + "-";
							else
								ret_str += "and " + tens[hun_tens-1] + "-";
							hundreds -= hun_tens * 10;
							
							if ( hundreds > 0 )
								ret_str += one[hundreds-1] + " ";
						}
			}			
			
			if ( fraction == 0 )
				ret_str += "Only";
			else
				ret_str += "and " + fraction + "/100";
			
		}
		
		// write result
		document.getElementsByName('result')[0].value = ret_str;
	
	}                  // if ( (amount == "")  || !(amount >= 0) )
	
}
