function Rates(Rate, Amount, Type){
  if(Type) return floatFix(Amount * Rate, 2);
  //else return floatFix(Amount / Rate, 3);
  else return floatFix(Amount / Rate, 2);
}

function floatFix (Val, Places) {
  var Res = "" + Math.round(Val * Math.pow(10, Places));
  var Dec = Res.length - Places;
  if (Places != 0){
    var x = Res.substring(0, Dec);
    if (x.length > 0)
      OutString =  x + "." + Res.substring(Dec, Res.length);
    else
      OutString = "0." + Res.substring(Dec, Res.length)/* + ((Res.substring(Dec, Res.length)).length == 1 ? "0" : "")*/;
  }
  else
    OutString = Res;
  return (OutString);
}

function floatFix2(Val, Places){
  Val = Val.toString();
  var Pre = "" + Val.substr(0, Val.indexOf("."));
  var Post = "" + Val.substr(Val.indexOf(".") + 1, Val.length);
  Post = Post.substr(0, Places);
  Post = Post.length < 2 ? Post + "0" : Post;
  return Pre + "." + Post;
}

function euroToCurrency(){
  var rate = getElem("currency").options[getElem("currency").selectedIndex].value;
  var amount = getElem("euro_amount").value == "" ? 1 : getElem("euro_amount").value;
  getElem("euro_amount").value = amount;
  getElem("currency_result").value = Rates(rate, amount, 1);
}

function currencyToEuro(){
  var rate = getElem("currency2").options[getElem("currency2").selectedIndex].value;
  var amount = getElem("currency_amount").value == "" ? 1 : getElem("currency_amount").value;
  getElem("currency_amount").value = amount;
  getElem("euro_result").value = Rates(rate, amount, 0);
}

function setCurrency(obj){
  var elem = obj.currentTarget;
  var select = getElem("currency");

  for(var i = 0; i < select.options.length; i++){
    if(select.options[i].getAttribute("currency") == elem.getAttribute("currency")){
      select.options[i].selected = true;
      getElem("currency2").options[i].selected = true;
      euroToCurrency();
      currencyToEuro();
    }
  }
}

listen("load", window, function(){
  listen("change", getElem("currency"), euroToCurrency);
  listen("change", getElem("currency2"), currencyToEuro);
  listen("blur", getElem("euro_amount"), euroToCurrency);
  listen("blur", getElem("currency_amount"), currencyToEuro);
  mlisten("click", getElementsByClass("ruler"), setCurrency);
});