function to_currency(val,currency)
{  
	if(!val) 
	{	 
		alert("Please provide a value");
		return;    
	}
 
  	if(isNaN(val))
  	{
  		alert(val+" is an invalid input");
  		return;
  	}
  	
  	val=""+Math.round(100*val);
  	var is_negative=(val<0)? true:false;
  	 
  	if(is_negative)
  	{
  		val=val.substring(1)
  	}
  	
  	while (val.length <= 2)
  	{
  		val="0"+val
  	}
  	
  	var dec_point=val.length-2;
  	var first_part=val.substring(0,dec_point);
  	var second_part=val.substring(dec_point);
  	
  	first_part=FComma(first_part);

  	var result=first_part+"."+second_part;
  	var sign=is_negative? "-":"";
  	
  	if(!currency)
  	{
  		currency="";
  	}
  	
  	
  	  	result=sign+currency+result;
  
  	return result;
 }

function to_currency_nodec(val,currency)
{  
	if(!val) 
	{	 
		alert("Please provide a value");
		return;    
	}
 
  	if(isNaN(val))
  	{
  		alert(val+" is an invalid input");
  		return;
  	}
  	
  	val=""+Math.round(100*val);
  	var is_negative=(val<0)? true:false;
  	 
  	if(is_negative)
  	{
  		val=val.substring(1)
  	}
  	
  	while (val.length <= 2)
  	{
  		val="0"+val
  	}
  	
  	var dec_point=val.length-2;
  	var first_part=val.substring(0,dec_point);
  	var second_part=val.substring(dec_point);
  	
  	first_part=FComma(first_part);
  	
  	var result=first_part+"."+second_part;
  	var sign=is_negative? "-":"";
  	
  	if(!currency)
  	{
  		currency="";
  	}
  	
  	
  	
  	result=result.substring(0,result.length-3);
  	
  
  	
  	result=sign+currency+result;
  	
  	return result;
 }

function replace(argvalue, x, y) {

  if ((x == y) || (parseInt(y.indexOf(x)) > -1))
  {
    errmessage = "replace function error: \n";
    errmessage += "Second argument and third argument could be the same ";
    errmessage += "or third argument contains second argument.\n";
    errmessage += "This will create an infinite loop as it's replaced globally.";
    alert(errmessage);
    return false;
  }
    
  while (argvalue.indexOf(x) != -1)
  {
    var leading = argvalue.substring(0, argvalue.indexOf(x));
    var trailing = argvalue.substring(argvalue.indexOf(x) + x.length, argvalue.length);
    argvalue = leading + y + trailing;
  }

  return argvalue;

}

function FComma(SS)
  { var T='', S=String(SS), L=S.length-1, C, j, P = S.indexOf('.')-1
  if (P<0) P=L
  for (j=0; j<=L; j++) {
    T+=C=S.charAt(j)
    if ((j < P) && ((P-j)%3 == 0) && (C != '-')) T+=',' }
  return T }

function ThouS(SS) 
{ 
	var X = "", S = String(SS),  L // SS >= 0
  	while (S != "")
  	{ 
  		L = S.length-3
    	X = S.substr(L, 3) + (X>"" ? ','+X : '')
    	S = S.substr(0, L) 
    }
  return X 
}

function ToUS(val)
{
	// Overriding for right now to
	// return with no decimals...
	//return to_currency(val,"$");  // <- Old Code
	return to_currency_nodec(val,"$");
}

function ToUSExt(val)
{
	return to_currency(val,"$") + " US";
}

function ToUSShort(val)
{
	return to_currency_nodec(val,"$");
}

function ToGBP(val)
{
	var newVal=val * .552892;
	return to_currency(newVal,"£") + "";
}

function ToEURO(val)
{
	var newVal=val * .788170;
	var fmtVal=to_currency(newVal,"") + " €";
	fmtVal=replace(fmtVal,".","@");
	fmtVal=replace(fmtVal,",",".");
	fmtVal=replace(fmtVal,"@",",");

	return fmtVal
}

function ToJPY(val)
{
	var newVal=val * 106.124;
	return to_currency_nodec(newVal,"&#65509;&nbsp;") + "";
}

function ToCDN(val)
{
	var newVal=val * 1.28069;
	return to_currency(newVal,"$") + " CDN";
}

function ToAUD(val)
{
	var newVal=val * 1.30203;
	return to_currency(newVal,"$") + " AUD";
}

function ToRUR(val)
{
	var newVal=val * 29.2400;
	var fmtVal=to_currency(newVal,"RUR") + "";
	fmtVal=replace(fmtVal,".","@");
	fmtVal=replace(fmtVal,",",".");
	fmtVal=replace(fmtVal,"@",",");

	return fmtVal
	
}

function ToIndiaRupees(val)
{
	var newVal=val * 45.6050;
	return to_currency(newVal,"Rs. ") + "";
}

function ToMexicanPesos(val)
{
	var newVal=val * 11.0108;
	return to_currency(newVal,"$") + " MXN";
}

function OfficeMenuCost()
{
	return 59.95;
}

function TaskPaneCost()
{
	return 49.95;
}

function PopupNotifyCost()
{
	return 49.95;
}

function BalloonTipCost()
{
	return 34.95;
}

function FileDragCost()
{
	return 19.95;
}

function TabbedMDICost()
{
	return 49.95;
}

function ProgbarCost()
{
	return 34.95;
}

function HookDiscCost()
{
	return 14.95;
}

function SubstCost()
{
	return 24.95;
}

function TrayCost()
{
	return 24.95;
}

function ShortcutBarCost()
{
	return 59.95;
}

function OfficeMenuTaskPaneBundleCost()
{
	return 74.95;
}

function ClassicPackCost()
{
	return 35.00;
}

function UIPackCost()
{
	return 270;
}

function MegaPackCost()
{
	return 99.95;
}