Return to Snippet

Revision: 2376
at February 5, 2007 11:47 by zhernovoi


Updated Code
<html><head><title>Test</title>
<script type="text/javascript">

// Metal Market Price *config*
var Gold      = 657.00;
var Silver    = 11;
var Platinum  = 12;
var Palladium = 13;
var Rhodium   = 14;

var Aluminium = 20;
var Copper    = 21;
var Nickel    = 22;
var Lead      = 23;
var Zinc      = 24;

//Currency prefix
var currencyPrefix = '$';
var cp = currencyPrefix;

//Metal Market Price with currency prefix
Gold2      = Gold      + cp;
Silver2    = Silver    + cp;
Platinum2  = Platinum  + cp;
Palladium2 = Palladium + cp;
Rhodium2   = Rhodium   + cp;

Aluminium2 = Aluminium + cp;
Copper2    = Copper    + cp;
Nickel2    = Nickel    + cp;
Lead2      = Lead      + cp;
Zinc2      = Zinc      + cp;

// Convert Values *config*
var gramsPerTonne  = 1000000;
var gramsPerOunces = 31.1034768;
var lbPerTonne	   = 2204.6226218;
var ozPerTonne	   = gramsPerTonne / gramsPerOunces;

// Prefix and String *config*
var valuePrefix      = 'value';
var unitPrefix       = '/tonne';
var up               = unitPrefix; 
var invalideValue    = 'N/A';

// Setting - cookie seperator
var PARA_SPRT = '_';

// Main variables 
var subTotalPrecious = 0;
var subTotalBase	 = 0;
var totalMetal 		 = 0;
var singleMetal      = 0;
var defaultValue     = cp + '0,00 ' + up;
var totalGold      = 0;
var totalSilver    = 0;
var totalPlatinum  = 0;
var totalPalladium = 0;
var totalRhodium   = 0;
var totalAluminium = 0;
var totalCopper    = 0;
var totalNickel    = 0;
var totalLead      = 0;
var totalZinc      = 0;

function CurrencyFormatted(amount)
{
	var i = parseFloat(amount);
	if(isNaN(i)) { i = 0.00; }
	var minus = '';
	if(i < 0) { minus = '-'; }
	i = Math.abs(i);
	i = parseInt((i + .005) * 100);
	i = i / 100;
	s = new String(i);
	if(s.indexOf('.') < 0) { s += '.00'; }
	if(s.indexOf('.') == (s.length - 2)) { s += '0'; }
	s = minus + s;
	return s;
}


function CommaFormatted(amount)
{
	var delimiter = ",";
	var a = amount.split('.',2)
	var d = a[1];
	var i = parseInt(a[0]);
	if(isNaN(i)) { return ''; }
	var minus = '';
	if(i < 0) { minus = '-'; }
	i = Math.abs(i);
	var n = new String(i);
	var a = [];
	while(n.length > 3)
	{
		var nn = n.substr(n.length-3);
		a.unshift(nn);
		n = n.substr(0,n.length-3);
	}
	if(n.length > 0) { a.unshift(n); }
	n = a.join(delimiter);
	if(d.length < 1) { amount = n; }
	else { amount = n + '.' + d; }
	amount = minus + amount;
	return amount;
} 
// function CommaFormatted()

// end of function CurrencyFormatted()

function UpdateElement(getId, string)
{
    document.getElementById(getId).innerHTML = string;
}
// end of function UpdateElement()

function ValueCalculating(getValue,getId,isPrec) 
{
	var getInsert;
	    switch (getId)
        {
            //Precious Metals
            case "GoldTotal"      : getInsert = totalGold;      break;
	        case "SilverTotal"    : getInsert = totalSilver;    break;
	        case "PlatinumTotal"  : getInsert = totalPlatinum;  break;
	        case "PalladiumTotal" : getInsert = totalPalladium; break;
	        case "RhodiumTotal"   : getInsert = totalRhodium;   break;
	
	        //Base Metals
	        case "AluminiumTotal" : getInsert = totalAluminium; break;
	        case "CopperTotal"    : getInsert = totalCopper;    break;
	        case "NickelTotal"    : getInsert = totalNickel;    break;
	        case "LeadTotal"      : getInsert = totalLead;      break;
	        case "ZincTotal"      : getInsert = totalZinc;      break;
	    }
	
	//document.getElementById(getId).innerHTML = cp + getValue + ' ' + up; //insert the new value
    // alert (document.getElementById(getId).innerHTML); //test
    if(isNaN(getValue) | getValue < 0)
	{
	    
		switch (getId)
        {
            //Precious Metals
            case "GoldTotal"      : totalGold      = 0; break;
	        case "SilverTotal"    : totalSilver    = 0; break;
	        case "PlatinumTotal"  : totalPlatinum  = 0; break;
	        case "PalladiumTotal" : totalPalladium = 0; break;
	        case "RhodiumTotal"   : totalRhodium   = 0; break;
	
	        //Base Metals
	        case "AluminiumTotal" : totalAluminium = 0; break;
	        case "CopperTotal"    : totalCopper    = 0; break;
	        case "NickelTotal"    : totalNickel    = 0; break;
	        case "LeadTotal"      : totalLead      = 0; break;
	        case "ZincTotal"      : totalZinc      = 0; break;
	    }
 
      if(isNaN(getValue))
	  {
	     UpdateElement(getId, invalideValue);
	  }
	  else
	  {
	     UpdateElement(getId, cp + '0.00 ' + up); 
	  }
	  subTotalPrecious = totalGold + totalSilver + totalPlatinum + totalPalladium + totalRhodium; 
	  subPreIn = CurrencyFormatted(subTotalPrecious);
	  subPreIn = CommaFormatted(subPreIn); 
	  subTotalBase = totalAluminium + totalCopper + totalNickel + totalLead + totalZinc;   //update the Base Metal Total
	  subBaseIn = CurrencyFormatted(subTotalBase);
	  subBaseIn = CommaFormatted(subBaseIn);
	  totalMetal = totalGold + totalSilver + totalPlatinum + totalPalladium + totalRhodium + totalAluminium + totalCopper + totalNickel + totalLead + totalZinc; //update the Metal Total
      totalIn = CurrencyFormatted(totalMetal);
	  totalIn = CommaFormatted(totalIn);

	  UpdateElement("subTotalPre", cp + subPreIn + up);
	  UpdateElement("subTotalBase", cp + subBaseIn + up);
	  UpdateElement("totalMetal", cp + totalIn + up);	
	}
	else
	{
	   getValue = parseFloat(getValue); //convert string to number
	    switch (getId)
        {
            //Precious Metals
            case "GoldTotal"      : totalGold      = getValue;    getInsert = totalGold;      break;
	        case "SilverTotal"    : totalSilver    = getValue;    getInsert = totalSilver;    break;
	        case "PlatinumTotal"  : totalPlatinum  = getValue;    getInsert = totalPlatinum;  break;
	        case "PalladiumTotal" : totalPalladium = getValue;    getInsert = totalPalladium; break;
	        case "RhodiumTotal"   : totalRhodium   = getValue;    getInsert = totalRhodium;   break;
	
	        //Base Metals
	        case "AluminiumTotal" : totalAluminium = getValue;    getInsert = totalAluminium; break;
	        case "CopperTotal"    : totalCopper    = getValue;    getInsert = totalCopper;    break;
	        case "NickelTotal"    : totalNickel    = getValue;    getInsert = totalNickel;    break;
	        case "LeadTotal"      : totalLead      = getValue;    getInsert = totalLead;       break;
	        case "ZincTotal"      : totalZinc      = getValue;    getInsert = totalZinc;      break;
	    }

		if (isPrec)
	    {
	        subTotalPrecious = totalGold + totalSilver + totalPlatinum + totalPalladium + totalRhodium;    //update the Precious Metal Total
			//alert(subTotalPrecious); //test
		    calcTotalPre  = CurrencyFormatted(subTotalPrecious);
			calcTotalPre  = CommaFormatted(calcTotalPre);
			calcTotalPre = cp + calcTotalPre + ' ' + up; //formate the string to update
	    	// alert(calcTotalPre); //test
		    UpdateElement("subTotalPre", calcTotalPre); //update the output
	    }
	    else
	    {
	        subTotalBase = totalAluminium + totalCopper + totalNickel + totalLead + totalZinc;   //update the Base Metal Total
			//alert(subTotalBase); //test
			calcTotalBase  = CurrencyFormatted(subTotalBase);
			calcTotalBase  = CommaFormatted(calcTotalBase);
		    calcTotalBase = cp + calcTotalBase + ' ' + up; //formate the string to update
		    //alert(calcTotalBase); //test
		    UpdateElement("subTotalBase", calcTotalBase); //update the output
	     }
	     totalMetal = totalGold + totalSilver + totalPlatinum + totalPalladium + totalRhodium + totalAluminium + totalCopper + totalNickel + totalLead + totalZinc; //update the Metal Total
		 //alert(totalMetal); //test
		 calcTotalMetal  = CurrencyFormatted(totalMetal);
	     calcTotalMetal  = CommaFormatted(calcTotalMetal);
	     calcTotalMetal = cp + calcTotalMetal + ' ' + up; //formate the string to update
	     // alert(calcTotalMetal); //test
	     UpdateElement("totalMetal", calcTotalMetal); //update the otput
		 
		 getInsert = CurrencyFormatted(getInsert);
		 getInsert = CommaFormatted(getInsert);
		 UpdateElement(getId, cp + getInsert + ' ' + up)
	}
} 

function GetRockValue(itemId, amount, price, isPrec)
{
    var valuePerTonne;
	var percentage;
	if (isPrec)
	    valuePerTonne = price * ozPerTonne;
	else
	    valuePerTonne = price * lbPerTonne;
	
	if (itemId == "percenatge" ) 
	{
		if (amount > 100) return -1;
		percentage = amount/100;
	}
	else if(itemId == "oz")
	{
		if (amount > ozPerTonne) return -1;
		percentage = amount / ozPerTonne;
	}
	else if(itemId == "lb")
	{
		if (amount > lbPerTonne) return -1;
		percentage = amount / lbPerTonne;
	}
	else if(itemId == "grams")
	{
		if (amount > gramsPerTonne) return -1;
		percentage = amount / gramsPerTonne;
	}
	else
		percentage = 0;
	
	value = valuePerTonne * percentage;
	return value;
} 
//end of function GetRockValue()

function GetAmountValue(itemId) 
{
	  var rockValue = document.getElementById(itemId).getAttribute("value");
      var rockValue = document.getElementById(itemId).value;
	  rockValue = parseFloat(rockValue);
	  //alert("4_" + rockValue);
	  return rockValue;
}
//end of function GetAmountValue()

function GetConvertValue(itemId)
{
    var convertValue = document.getElementById(itemId).getAttribute("value");
	var convertValue = document.getElementById(itemId).value;
	//alert("5_" + convertValue);
	return convertValue;
}
//end of function GetConvertValue()

function Calculate(getId,isPrec)
{
var amountText = "Amount";
//var amountId  = getId.amountText;
var amountId  = getId + amountText;
//alert("1_" + amountId);
var totalMetalId = getId + "Total";
//alert("2_" + totalMetalId);
var convertId = getId + "Convert";
//alert("3_" + convertId);
var amount    = GetAmountValue(amountId);
//alert("6_" + amount);
var convert   = GetConvertValue(convertId);
//alert("7_" +  convert);
var valueId;
switch (getId)
{
    //Precious Metals
    case "Gold"      : valueId = Gold;      break;
	case "Silver"    : valueId = Silver;    break;
	case "Platinum"  : valueId = Platinum;  break;
	case "Palladium" : valueId = Palladium; break;
	case "Rhodium"   : valueId = Rhodium;   break;
	
	//Base Metals
	case "Aluminium" : valueId = Aluminium; break;
	case "Copper"    : valueId = Copper;    break;
	case "Nickel"    : valueId = Nickel;    break;
	case "Lead"      : valueId = Lead;      break;
	case "Zinc"      : valueId = Zinc;      break;
}

if (isPrec)
{
	var insert = GetRockValue(convert, amount, valueId, true);
	//alert("8_" + insert);
	if(isNaN(amount) || insert < 0)
	{
		ValueCalculating(invalideValue,totalMetalId,isPrec);
	}
    else
    {
		ValueCalculating(insert,totalMetalId,isPrec);
	}
}
else
{
    var insert = GetRockValue(convert, amount, valueId, false);
	//alert("9_" + insert);
	if(isNaN(amount) || insert < 0)
	{
		ValueCalculating(invalideValue,totalMetalId,isPrec);
	}
    else
    {
		ValueCalculating(insert,totalMetalId,isPrec);
	}
}
}

function CalculateGold(){Calculate("Gold",true);}
function CalculateSilver(){Calculate("Silver",true);}
function CalculatePlatinum(){Calculate("Platinum",true);}
function CalculatePalladium(){Calculate("Palladium",true);}
function CalculateRhodium(){Calculate("Rhodium",true);}

function CalculateAluminium(){Calculate("Aluminium",false);}
function CalculateCopper(){Calculate("Copper",false);}
function CalculateNickel(){Calculate("Nickel",false);}
function CalculateLead(){Calculate("Lead",false);}
function CalculateZinc(){Calculate("Zinc",false);}
</script>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>

<table width="600" border="1" cellspacing="0" cellpadding="0">
  <tr> 
    <td width="71">Metal</td>
    <td width="163">Amount</td>
    <td width="88">Units/Weight</td>
    <td colspan="2">Metal Market Price</td>
    <td width="128">Value of the Rock</td>
  </tr>
  <tr> 
    <td colspan="6">Precious Metals</td>
  </tr>
  <tr> 
    <td>Gold</td>
    <td><input type="text" id="GoldAmount" size="8"  maxlength="10" onKeyUp="javascript:CalculateGold()"></td>
    <td><select id="GoldConvert" onChange="javascript:CalculateGold()">
        <option value="percentage">%</option>
        <option value="oz" selected>ounces/tonne</option>
        <option value="grams">grams/tonne</option>
        <option value="lb">pounds/tonne</option>
      </select></td>
    <td width="45"><script type="text/javascript"> document.writeln(Gold + cp);</script></td>
    <td width="91">/oz</td>
    <td id="GoldTotal"><script type="text/javascript"> document.writeln(defaultValue);</script></td>
  </tr>
  <tr>
   <tr> 
    <td>Silver</td>
    <td><input type="text" id="SilverAmount" size="8"  maxlength="10" onKeyUp="javascript:CalculateSilver()"></td>
    <td><select id="SilverConvert" onChange="javascript:CalculateSilver()">
        <option value="percentage">%</option>
        <option value="oz" selected>ounces/tonne</option>
        <option value="grams">grams/tonne</option>
        <option value="lb">pounds/tonne</option>
      </select></td>
    <td width="45"><script type="text/javascript"> document.writeln(Silver + cp);</script></td>
    <td width="91">/oz</td>
    <td id="SilverTotal"><script type="text/javascript"> document.writeln(defaultValue);</script></td>
  </tr>
  <tr> 
  <tr>
   <tr> 
    <td>Platinum</td>
    <td><input type="text" id="PlatinumAmount" size="8"  maxlength="10" onKeyUp="javascript:CalculatePlatinum()"></td>
    <td><select id="PlatinumConvert" onChange="javascript:CalculatePlatinum()">
        <option value="percentage">%</option>
        <option value="oz" selected>ounces/tonne</option>
        <option value="grams">grams/tonne</option>
        <option value="lb">pounds/tonne</option>
      </select></td>
    <td width="45"><script type="text/javascript"> document.writeln(Platinum + cp);</script></td>
    <td width="91">/oz</td>
    <td id="PlatinumTotal"><script type="text/javascript"> document.writeln(defaultValue);</script></td>
  </tr>
  <tr> 
   <tr>
   <tr> 
    <td>Palladium</td>
    <td><input type="text" id="PalladiumAmount" size="8"  maxlength="10" onKeyUp="javascript:CalculatePalladium()"></td>
    <td><select id="PalladiumConvert" onChange="javascript:CalculatePalladium()">
        <option value="percentage">%</option>
        <option value="oz" selected>ounces/tonne</option>
        <option value="grams">grams/tonne</option>
        <option value="lb">pounds/tonne</option>
      </select></td>
    <td width="45"><script type="text/javascript"> document.writeln(Palladium + cp);</script></td>
    <td width="91">/oz</td>
    <td id="PalladiumTotal"><script type="text/javascript"> document.writeln(defaultValue);</script></td>
  </tr>
  <tr>
   <tr> 
    <td>Rhodium</td>
    <td><input type="text" id="RhodiumAmount" size="8"  maxlength="10" onKeyUp="javascript:CalculateRhodium()"></td>
    <td><select id="RhodiumConvert" onChange="javascript:CalculateRhodium()">
        <option value="percentage">%</option>
        <option value="oz" selected>ounces/tonne</option>
        <option value="grams">grams/tonne</option>
        <option value="lb">pounds/tonne</option>
      </select></td>
    <td width="45"><script type="text/javascript"> document.writeln(Rhodium + cp);</script></td>
    <td width="91">/oz</td>
    <td id="RhodiumTotal"><script type="text/javascript"> document.writeln(defaultValue);</script></td>
  </tr>
  <tr> 
  <tr>  
    <td colspan="5">Precious Metal Sub-total >></td>
    <td><div id="subTotalPre"><script type="text/javascript"> document.writeln(defaultValue);</script></div></td>
  </tr>
  <tr> 
    <td colspan="6">Base Metals</td>
  </tr>
  <tr>
   <tr> 
    <td>Aluminium</td>
    <td><input type="text" id="AluminiumAmount" size="8"  maxlength="10" onKeyUp="javascript:CalculateAluminium()"></td>
    <td><select id="AluminiumConvert" onChange="javascript:CalculateAluminium()">
        <option value="percentage">%</option>
        <option value="oz" selected>ounces/tonne</option>
        <option value="grams">grams/tonne</option>
        <option value="lb">pounds/tonne</option>
      </select></td>
    <td width="45"><script type="text/javascript"> document.writeln(Aluminium + cp);</script></td>
    <td width="91">/lb</td>
    <td id="AluminiumTotal"><script type="text/javascript"> document.writeln(defaultValue);</script></td>
  </tr>
  <tr>
   <tr> 
    <td>Copper</td>
    <td><input type="text" id="CopperAmount" size="8"  maxlength="10" onKeyUp="javascript:CalculateCopper()"></td>
    <td><select id="CopperConvert" onChange="javascript:CalculateCopper()">
        <option value="percentage">%</option>
        <option value="oz" selected>ounces/tonne</option>
        <option value="grams">grams/tonne</option>
        <option value="lb">pounds/tonne</option>
      </select></td>
    <td width="45"><script type="text/javascript"> document.writeln(Copper + cp);</script></td>
    <td width="91">/lb</td>
    <td id="CopperTotal"><script type="text/javascript"> document.writeln(defaultValue);</script></td>
  </tr>
   <tr>
   <tr> 
    <td>Nickel</td>
    <td><input type="text" id="NickelAmount" size="8"  maxlength="10" onKeyUp="javascript:CalculateNickel()"></td>
    <td><select id="NickelConvert" onChange="javascript:CalculateNickel()">
        <option value="percentage">%</option>
        <option value="oz" selected>ounces/tonne</option>
        <option value="grams">grams/tonne</option>
        <option value="lb">pounds/tonne</option>
      </select></td>
    <td width="45"><script type="text/javascript"> document.writeln(Nickel + cp);</script></td>
    <td width="91">/lb</td>
    <td id="NickelTotal"><script type="text/javascript"> document.writeln(defaultValue);</script></td>
  </tr>
  <tr>
   <tr> 
    <td>Lead</td>
    <td><input type="text" id="LeadAmount" size="8"  maxlength="10" onKeyUp="javascript:CalculateLead()"></td>
    <td><select id="LeadConvert" onChange="javascript:CalculateLead()">
        <option value="percentage">%</option>
        <option value="oz" selected>ounces/tonne</option>
        <option value="grams">grams/tonne</option>
        <option value="lb">pounds/tonne</option>
      </select></td>
    <td width="45"><script type="text/javascript"> document.writeln(Lead + cp);</script></td>
    <td width="91">/lb</td>
    <td id="LeadTotal"><script type="text/javascript"> document.writeln(defaultValue);</script></td>
  </tr>
   <tr>
   <tr> 
    <td>Zinc</td>
    <td><input type="text" id="ZincAmount" size="8"  maxlength="10" onKeyUp="javascript:CalculateZinc()"></td>
    <td><select id="ZincConvert" onChange="javascript:CalculateZinc()">
        <option value="percentage">%</option>
        <option value="oz" selected>ounces/tonne</option>
        <option value="grams">grams/tonne</option>
        <option value="lb">pounds/tonne</option>
      </select></td>
    <td width="45"><script type="text/javascript"> document.writeln(Zinc + cp);</script></td>
    <td width="91">/lb</td>
    <td id="ZincTotal"><script type="text/javascript"> document.writeln(defaultValue);</script></td>
  </tr>
  <tr> 
    <td colspan="5">Base Metal Sub-total >></td>
    <td><div id="subTotalBase"><script type="text/javascript"> document.writeln(defaultValue);</script></div></td>
  </tr>
  <tr> 
    <td colspan="5">Total Gross Metal Value($USD)>></td>
    <td><div id="totalMetal"><script type="text/javascript"> document.writeln(defaultValue);</script></div></td>
  </tr>
</table>
<p> </p>
</body></html>

Revision: 2375
at February 5, 2007 11:46 by zhernovoi


Initial Code
<html><head><title>Test</title>
<script type="text/javascript">

// Metal Market Price *config*
var Gold      = 657.00;
var Silver    = 11;
var Platinum  = 12;
var Palladium = 13;
var Rhodium   = 14;

var Aluminium = 20;
var Copper    = 21;
var Nickel    = 22;
var Lead      = 23;
var Zinc      = 24;

//Currency prefix
var currencyPrefix = '$';
var cp = currencyPrefix;

//Metal Market Price with currency prefix
Gold2      = Gold      + cp;
Silver2    = Silver    + cp;
Platinum2  = Platinum  + cp;
Palladium2 = Palladium + cp;
Rhodium2   = Rhodium   + cp;

Aluminium2 = Aluminium + cp;
Copper2    = Copper    + cp;
Nickel2    = Nickel    + cp;
Lead2      = Lead      + cp;
Zinc2      = Zinc      + cp;

// Convert Values *config*
var gramsPerTonne  = 1000000;
var gramsPerOunces = 31.1034768;
var lbPerTonne	   = 2204.6226218;
var ozPerTonne	   = gramsPerTonne / gramsPerOunces;

// Prefix and String *config*
var valuePrefix      = 'value';
var unitPrefix       = '/tonne';
var up               = unitPrefix; 
var invalideValue    = 'N/A';

// Setting - cookie seperator
var PARA_SPRT = '_';

// Main variables 
var subTotalPrecious = 0;
var subTotalBase	 = 0;
var totalMetal 		 = 0;
var singleMetal      = 0;
var defaultValue     = cp + '0,00 ' + up;
var totalGold      = 0;
var totalSilver    = 0;
var totalPlatinum  = 0;
var totalPalladium = 0;
var totalRhodium   = 0;
var totalAluminium = 0;
var totalCopper    = 0;
var totalNickel    = 0;
var totalLead      = 0;
var totalZinc      = 0;

function CurrencyFormatted(amount)
{
	var i = parseFloat(amount);
	if(isNaN(i)) { i = 0.00; }
	var minus = '';
	if(i < 0) { minus = '-'; }
	i = Math.abs(i);
	i = parseInt((i + .005) * 100);
	i = i / 100;
	s = new String(i);
	if(s.indexOf('.') < 0) { s += '.00'; }
	if(s.indexOf('.') == (s.length - 2)) { s += '0'; }
	s = minus + s;
	return s;
}


function CommaFormatted(amount)
{
	var delimiter = ",";
	var a = amount.split('.',2)
	var d = a[1];
	var i = parseInt(a[0]);
	if(isNaN(i)) { return ''; }
	var minus = '';
	if(i < 0) { minus = '-'; }
	i = Math.abs(i);
	var n = new String(i);
	var a = [];
	while(n.length > 3)
	{
		var nn = n.substr(n.length-3);
		a.unshift(nn);
		n = n.substr(0,n.length-3);
	}
	if(n.length > 0) { a.unshift(n); }
	n = a.join(delimiter);
	if(d.length < 1) { amount = n; }
	else { amount = n + '.' + d; }
	amount = minus + amount;
	return amount;
} 
// function CommaFormatted()

// end of function CurrencyFormatted()

function UpdateElement(getId, string)
{
    document.getElementById(getId).innerHTML = string;
}
// end of function UpdateElement()

function ValueCalculating(getValue,getId,isPrec) 
{
	var getInsert;
	    switch (getId)
        {
            //Precious Metals
            case "GoldTotal"      : getInsert = totalGold;      break;
	        case "SilverTotal"    : getInsert = totalSilver;    break;
	        case "PlatinumTotal"  : getInsert = totalPlatinum;  break;
	        case "PalladiumTotal" : getInsert = totalPalladium; break;
	        case "RhodiumTotal"   : getInsert = totalRhodium;   break;
	
	        //Base Metals
	        case "AluminiumTotal" : getInsert = totalAluminium; break;
	        case "CopperTotal"    : getInsert = totalCopper;    break;
	        case "NickelTotal"    : getInsert = totalNickel;    break;
	        case "LeadTotal"      : getInsert = totalLead;      break;
	        case "ZincTotal"      : getInsert = totalZinc;      break;
	    }
	
	//document.getElementById(getId).innerHTML = cp + getValue + ' ' + up; //insert the new value
    // alert (document.getElementById(getId).innerHTML); //test
    if(isNaN(getValue) | getValue < 0)
	{
	    
		switch (getId)
        {
            //Precious Metals
            case "GoldTotal"      : totalGold      = 0; break;
	        case "SilverTotal"    : totalSilver    = 0; break;
	        case "PlatinumTotal"  : totalPlatinum  = 0; break;
	        case "PalladiumTotal" : totalPalladium = 0; break;
	        case "RhodiumTotal"   : totalRhodium   = 0; break;
	
	        //Base Metals
	        case "AluminiumTotal" : totalAluminium = 0; break;
	        case "CopperTotal"    : totalCopper    = 0; break;
	        case "NickelTotal"    : totalNickel    = 0; break;
	        case "LeadTotal"      : totalLead      = 0; break;
	        case "ZincTotal"      : totalZinc      = 0; break;
	    }
 
      if(isNaN(getValue))
	  {
	     UpdateElement(getId, invalideValue);
	  }
	  else
	  {
	     UpdateElement(getId, cp + '0.00 ' + up); 
	  }
	  subTotalPrecious = totalGold + totalSilver + totalPlatinum + totalPalladium + totalRhodium; 
	  subPreIn = CurrencyFormatted(subTotalPrecious);
	  subPreIn = CommaFormatted(subPreIn); 
	  subTotalBase = totalAluminium + totalCopper + totalNickel + totalLead + totalZinc;   //update the Base Metal Total
	  subBaseIn = CurrencyFormatted(subTotalBase);
	  subBaseIn = CommaFormatted(subBaseIn);
	  totalMetal = totalGold + totalSilver + totalPlatinum + totalPalladium + totalRhodium + totalAluminium + totalCopper + totalNickel + totalLead + totalZinc; //update the Metal Total
      totalIn = CurrencyFormatted(totalMetal);
	  totalIn = CommaFormatted(totalIn);

	  UpdateElement("subTotalPre", cp + subPreIn + up);
	  UpdateElement("subTotalBase", cp + subBaseIn + up);
	  UpdateElement("totalMetal", cp + totalIn + up);	
	}
	else
	{
	   getValue = parseFloat(getValue); //convert string to number
	    switch (getId)
        {
            //Precious Metals
            case "GoldTotal"      : totalGold      = getValue;    getInsert = totalGold;      break;
	        case "SilverTotal"    : totalSilver    = getValue;    getInsert = totalSilver;    break;
	        case "PlatinumTotal"  : totalPlatinum  = getValue;    getInsert = totalPlatinum;  break;
	        case "PalladiumTotal" : totalPalladium = getValue;    getInsert = totalPalladium; break;
	        case "RhodiumTotal"   : totalRhodium   = getValue;    getInsert = totalRhodium;   break;
	
	        //Base Metals
	        case "AluminiumTotal" : totalAluminium = getValue;    getInsert = totalAluminium; break;
	        case "CopperTotal"    : totalCopper    = getValue;    getInsert = totalCopper;    break;
	        case "NickelTotal"    : totalNickel    = getValue;    getInsert = totalNickel;    break;
	        case "LeadTotal"      : totalLead      = getValue;    getInsert = totalLead;       break;
	        case "ZincTotal"      : totalZinc      = getValue;    getInsert = totalZinc;      break;
	    }

		if (isPrec)
	    {
	        subTotalPrecious = totalGold + totalSilver + totalPlatinum + totalPalladium + totalRhodium;    //update the Precious Metal Total
			//alert(subTotalPrecious); //test
		    calcTotalPre  = CurrencyFormatted(subTotalPrecious);
			calcTotalPre  = CommaFormatted(calcTotalPre);
			calcTotalPre = cp + calcTotalPre + ' ' + up; //formate the string to update
	    	// alert(calcTotalPre); //test
		    UpdateElement("subTotalPre", calcTotalPre); //update the output
	    }
	    else
	    {
	        subTotalBase = totalAluminium + totalCopper + totalNickel + totalLead + totalZinc;   //update the Base Metal Total
			//alert(subTotalBase); //test
			calcTotalBase  = CurrencyFormatted(subTotalBase);
			calcTotalBase  = CommaFormatted(calcTotalBase);
		    calcTotalBase = cp + calcTotalBase + ' ' + up; //formate the string to update
		    //alert(calcTotalBase); //test
		    UpdateElement("subTotalBase", calcTotalBase); //update the output
	     }
	     totalMetal = totalGold + totalSilver + totalPlatinum + totalPalladium + totalRhodium + totalAluminium + totalCopper + totalNickel + totalLead + totalZinc; //update the Metal Total
		 //alert(totalMetal); //test
		 calcTotalMetal  = CurrencyFormatted(totalMetal);
	     calcTotalMetal  = CommaFormatted(calcTotalMetal);
	     calcTotalMetal = cp + calcTotalMetal + ' ' + up; //formate the string to update
	     // alert(calcTotalMetal); //test
	     UpdateElement("totalMetal", calcTotalMetal); //update the otput
		 
		 getInsert = CurrencyFormatted(getInsert);
		 getInsert = CommaFormatted(getInsert);
		 UpdateElement(getId, cp + getInsert + ' ' + up)
	}
} 

function GetRockValue(itemId, amount, price, isPrec)
{
    var valuePerTonne;
	var percentage;
	if (isPrec)
	    valuePerTonne = price * ozPerTonne;
	else
	    valuePerTonne = price * lbPerTonne;
	
	if (itemId == "percenatge" ) 
	{
		if (amount > 100) return -1;
		percentage = amount/100;
	}
	else if(itemId == "oz")
	{
		if (amount > ozPerTonne) return -1;
		percentage = amount / ozPerTonne;
	}
	else if(itemId == "lb")
	{
		if (amount > lbPerTonne) return -1;
		percentage = amount / lbPerTonne;
	}
	else if(itemId == "grams")
	{
		if (amount > gramsPerTonne) return -1;
		percentage = amount / gramsPerTonne;
	}
	else
		percentage = 0;
	
	value = valuePerTonne * percentage;
	return value;
} 
//end of function GetRockValue()

function GetAmountValue(itemId) 
{
	  var rockValue = document.getElementById(itemId).getAttribute("value");
      var rockValue = document.getElementById(itemId).value;
	  rockValue = parseFloat(rockValue);
	  //alert("4_" + rockValue);
	  return rockValue;
}
//end of function GetAmountValue()

function GetConvertValue(itemId)
{
    var convertValue = document.getElementById(itemId).getAttribute("value");
	var convertValue = document.getElementById(itemId).value;
	//alert("5_" + convertValue);
	return convertValue;
}
//end of function GetConvertValue()

function Calculate(getId,isPrec)
{
var amountText = "Amount";
//var amountId  = getId.amountText;
var amountId  = getId + amountText;
//alert("1_" + amountId);
var totalMetalId = getId + "Total";
//alert("2_" + totalMetalId);
var convertId = getId + "Convert";
//alert("3_" + convertId);
var amount    = GetAmountValue(amountId);
//alert("6_" + amount);
var convert   = GetConvertValue(convertId);
//alert("7_" +  convert);
var valueId;
switch (getId)
{
    //Precious Metals
    case "Gold"      : valueId = Gold;      break;
	case "Silver"    : valueId = Silver;    break;
	case "Platinum"  : valueId = Platinum;  break;
	case "Palladium" : valueId = Palladium; break;
	case "Rhodium"   : valueId = Rhodium;   break;
	
	//Base Metals
	case "Aluminium" : valueId = Aluminium; break;
	case "Copper"    : valueId = Copper;    break;
	case "Nickel"    : valueId = Nickel;    break;
	case "Lead"      : valueId = Lead;      break;
	case "Zinc"      : valueId = Zinc;      break;
}

if (isPrec)
{
	var insert = GetRockValue(convert, amount, valueId, true);
	//alert("8_" + insert);
	if(isNaN(amount) || insert < 0)
	{
		ValueCalculating(invalideValue,totalMetalId,isPrec);
	}
    else
    {
		ValueCalculating(insert,totalMetalId,isPrec);
	}
}
else
{
    var insert = GetRockValue(convert, amount, valueId, false);
	//alert("9_" + insert);
	if(isNaN(amount) || insert < 0)
	{
		ValueCalculating(invalideValue,totalMetalId,isPrec);
	}
    else
    {
		ValueCalculating(insert,totalMetalId,isPrec);
	}
}
}

function CalculateGold(){Calculate("Gold",true);}
function CalculateSilver(){Calculate("Silver",true);}
function CalculatePlatinum(){Calculate("Platinum",true);}
function CalculatePalladium(){Calculate("Palladium",true);}
function CalculateRhodium(){Calculate("Rhodium",true);}

function CalculateAluminium(){Calculate("Aluminium",false);}
function CalculateCopper(){Calculate("Copper",false);}
function CalculateNickel(){Calculate("Nickel",false);}
function CalculateLead(){Calculate("Lead",false);}
function CalculateZinc(){Calculate("Zinc",false);}
</script>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>

<table width="600" border="1" cellspacing="0" cellpadding="0">
  <tr> 
    <td width="71">Metal</td>
    <td width="163">Amount</td>
    <td width="88">Units/Weight</td>
    <td colspan="2">Metal Market Price</td>
    <td width="128">Value of the Rock</td>
  </tr>
  <tr> 
    <td colspan="6">Precious Metals</td>
  </tr>
  <tr> 
    <td>Gold</td>
    <td><input type="text" id="GoldAmount" size="8"  maxlength="10" onKeyUp="javascript:CalculateGold()"></td>
    <td><select id="GoldConvert" onChange="javascript:CalculateGold()">
        <option value="percentage">%</option>
        <option value="oz" selected>ounces/tonne</option>
        <option value="grams">grams/tonne</option>
        <option value="lb">pounds/tonne</option>
      </select></td>
    <td width="45"><script type="text/javascript"> document.writeln(Gold + cp);</script></td>
    <td width="91">/oz</td>
    <td id="GoldTotal"><script type="text/javascript"> document.writeln(defaultValue);</script></td>
  </tr>
  <tr>
   <tr> 
    <td>Silver</td>
    <td><input type="text" id="SilverAmount" size="8"  maxlength="10" onKeyUp="javascript:CalculateSilver()"></td>
    <td><select id="SilverConvert" onChange="javascript:CalculateSilver()">
        <option value="percentage">%</option>
        <option value="oz" selected>ounces/tonne</option>
        <option value="grams">grams/tonne</option>
        <option value="lb">pounds/tonne</option>
      </select></td>
    <td width="45"><script type="text/javascript"> document.writeln(Silver + cp);</script></td>
    <td width="91">/oz</td>
    <td id="SilverTotal"><script type="text/javascript"> document.writeln(defaultValue);</script></td>
  </tr>
  <tr> 
  <tr>
   <tr> 
    <td>Platinum</td>
    <td><input type="text" id="PlatinumAmount" size="8"  maxlength="10" onKeyUp="javascript:CalculatePlatinum()"></td>
    <td><select id="PlatinumConvert" onChange="javascript:CalculatePlatinum()">
        <option value="percentage">%</option>
        <option value="oz" selected>ounces/tonne</option>
        <option value="grams">grams/tonne</option>
        <option value="lb">pounds/tonne</option>
      </select></td>
    <td width="45"><script type="text/javascript"> document.writeln(Platinum + cp);</script></td>
    <td width="91">/oz</td>
    <td id="PlatinumTotal"><script type="text/javascript"> document.writeln(defaultValue);</script></td>
  </tr>
  <tr> 
   <tr>
   <tr> 
    <td>Palladium</td>
    <td><input type="text" id="PalladiumAmount" size="8"  maxlength="10" onKeyUp="javascript:CalculatePalladium()"></td>
    <td><select id="PalladiumConvert" onChange="javascript:CalculatePalladium()">
        <option value="percentage">%</option>
        <option value="oz" selected>ounces/tonne</option>
        <option value="grams">grams/tonne</option>
        <option value="lb">pounds/tonne</option>
      </select></td>
    <td width="45"><script type="text/javascript"> document.writeln(Palladium + cp);</script></td>
    <td width="91">/oz</td>
    <td id="PalladiumTotal"><script type="text/javascript"> document.writeln(defaultValue);</script></td>
  </tr>
  <tr>
   <tr> 
    <td>Rhodium</td>
    <td><input type="text" id="RhodiumAmount" size="8"  maxlength="10" onKeyUp="javascript:CalculateRhodium()"></td>
    <td><select id="RhodiumConvert" onChange="javascript:CalculateRhodium()">
        <option value="percentage">%</option>
        <option value="oz" selected>ounces/tonne</option>
        <option value="grams">grams/tonne</option>
        <option value="lb">pounds/tonne</option>
      </select></td>
    <td width="45"><script type="text/javascript"> document.writeln(Rhodium + cp);</script></td>
    <td width="91">/oz</td>
    <td id="RhodiumTotal"><script type="text/javascript"> document.writeln(defaultValue);</script></td>
  </tr>
  <tr> 
  <tr>  
    <td colspan="5">Precious Metal Sub-total &gt;&gt;</td>
    <td><div id="subTotalPre"><script type="text/javascript"> document.writeln(defaultValue);</script></div></td>
  </tr>
  <tr> 
    <td colspan="6">Base Metals</td>
  </tr>
  <tr>
   <tr> 
    <td>Aluminium</td>
    <td><input type="text" id="AluminiumAmount" size="8"  maxlength="10" onKeyUp="javascript:CalculateAluminium()"></td>
    <td><select id="AluminiumConvert" onChange="javascript:CalculateAluminium()">
        <option value="percentage">%</option>
        <option value="oz" selected>ounces/tonne</option>
        <option value="grams">grams/tonne</option>
        <option value="lb">pounds/tonne</option>
      </select></td>
    <td width="45"><script type="text/javascript"> document.writeln(Aluminium + cp);</script></td>
    <td width="91">/lb</td>
    <td id="AluminiumTotal"><script type="text/javascript"> document.writeln(defaultValue);</script></td>
  </tr>
  <tr>
   <tr> 
    <td>Copper</td>
    <td><input type="text" id="CopperAmount" size="8"  maxlength="10" onKeyUp="javascript:CalculateCopper()"></td>
    <td><select id="CopperConvert" onChange="javascript:CalculateCopper()">
        <option value="percentage">%</option>
        <option value="oz" selected>ounces/tonne</option>
        <option value="grams">grams/tonne</option>
        <option value="lb">pounds/tonne</option>
      </select></td>
    <td width="45"><script type="text/javascript"> document.writeln(Copper + cp);</script></td>
    <td width="91">/lb</td>
    <td id="CopperTotal"><script type="text/javascript"> document.writeln(defaultValue);</script></td>
  </tr>
   <tr>
   <tr> 
    <td>Nickel</td>
    <td><input type="text" id="NickelAmount" size="8"  maxlength="10" onKeyUp="javascript:CalculateNickel()"></td>
    <td><select id="NickelConvert" onChange="javascript:CalculateNickel()">
        <option value="percentage">%</option>
        <option value="oz" selected>ounces/tonne</option>
        <option value="grams">grams/tonne</option>
        <option value="lb">pounds/tonne</option>
      </select></td>
    <td width="45"><script type="text/javascript"> document.writeln(Nickel + cp);</script></td>
    <td width="91">/lb</td>
    <td id="NickelTotal"><script type="text/javascript"> document.writeln(defaultValue);</script></td>
  </tr>
  <tr>
   <tr> 
    <td>Lead</td>
    <td><input type="text" id="LeadAmount" size="8"  maxlength="10" onKeyUp="javascript:CalculateLead()"></td>
    <td><select id="LeadConvert" onChange="javascript:CalculateLead()">
        <option value="percentage">%</option>
        <option value="oz" selected>ounces/tonne</option>
        <option value="grams">grams/tonne</option>
        <option value="lb">pounds/tonne</option>
      </select></td>
    <td width="45"><script type="text/javascript"> document.writeln(Lead + cp);</script></td>
    <td width="91">/lb</td>
    <td id="LeadTotal"><script type="text/javascript"> document.writeln(defaultValue);</script></td>
  </tr>
   <tr>
   <tr> 
    <td>Zinc</td>
    <td><input type="text" id="ZincAmount" size="8"  maxlength="10" onKeyUp="javascript:CalculateZinc()"></td>
    <td><select id="ZincConvert" onChange="javascript:CalculateZinc()">
        <option value="percentage">%</option>
        <option value="oz" selected>ounces/tonne</option>
        <option value="grams">grams/tonne</option>
        <option value="lb">pounds/tonne</option>
      </select></td>
    <td width="45"><script type="text/javascript"> document.writeln(Zinc + cp);</script></td>
    <td width="91">/lb</td>
    <td id="ZincTotal"><script type="text/javascript"> document.writeln(defaultValue);</script></td>
  </tr>
  <tr> 
    <td colspan="5">Base Metal Sub-total &gt;&gt;</td>
    <td><div id="subTotalBase"><script type="text/javascript"> document.writeln(defaultValue);</script></div></td>
  </tr>
  <tr> 
    <td colspan="5">Total Gross Metal Value($USD)&gt;&gt;</td>
    <td><div id="totalMetal"><script type="text/javascript"> document.writeln(defaultValue);</script></div></td>
  </tr>
</table>
<p>&nbsp;</p>
</body></html>

Initial URL


Initial Description


Initial Title
Rock Value Calculating

Initial Tags


Initial Language
HTML