Andrej Tozon's blog

In the Attic


Atlas EuroCalculator

This is more of a local thing, but Slovenia is getting ready to adopt the Euro currency and I thought I could come up with the SIT to EUR currency calculator, wrapping it in a useful declarative Atlas sample. And here it is - copy the following code into the Atlas-enabled web page:

   <input type="text" id="inputBox" size="5" class="input" value="0"/> SIT
   <input id="calculateButton" type="button" value="SIT -> EUR" />
   <span id="resultLabel">0</span> EUR
<span id="euroValidator" style="color:red"> *</span>
script type="text/javascript">
   function CalculateEUR(sender, eventArgs)
var value = eventArgs.get_value();
var newValue = 0;
if (value > 0)
         newValue = parseInt(value / 2.3964, 10) / 100;
script type="text/xml-script">
<page xmlns:script="">
         <textBox id=
               <requiredFieldValidator errorMessage=
"Vpiši številko!" />
               <typeValidator type=
"Number" errorMessage="Vpiši številko!" />
               <rangeValidator lowerBound=
"0" upperBound="100000000" errorMessage="Številka mora biti večja od 0!" />
         <label id=
               <binding id=
"calculator" dataContext="inputBox" dataPath="text" property="text" transform="CalculateEUR" direction="Out" automatic="false" />
         <validationErrorLabel id=
"euroValidator" visibilityMode="Hide" associatedControl="inputBox" />
         <button id=
               <invokeMethod target=
"calculator" method="evaluateIn" />

The code is, thanks to Atlas, pretty straightforward, so I don't think I need to explain it here. If you have some questions, comments or improvements to the above code, feel free to post them here.

Disclaimer: the above sample is for illustrative purposes only. Don't use it to perform any real-world calculations, since [the above javascript funcion] hasn't at all been tested for accuracy of the SIT -> EUR conversion.
Actually, the included javascript function does a poor job in calculating the accurate result. It probably would be best to create a web service, which would return the correct result and bind the calculator to it.

[Update: The code was actually calculating EUR -> SIT, not vice versa. Fixed.]