4dd414332d8b0c48149ae2fd78e64bac8e55c7a7
[platform/framework/web/web-ui-fw.git] / libs / js / jquery-mobile-1.0.1pre / experiments / converter / application.js
1 $(function() {
2         var symbols = {
3                 "USD": "$",
4                 "EUR": "€",
5                 "GBP": "£",
6                 "Miles": "m",
7                 "Kilometer": "km",
8                 "inch": "\"",
9                 "centimeter": "cm"
10         };
11         
12         function list() {
13                 var ul = $( "#conversions" ).empty(),
14                         ulEdit = $( "#edit-conversions" ).empty();
15                 $.each( all, function( index, conversion ) {
16                         // if last update was less then a minute ago, don't update
17                         if ( conversion.type === "currency" && !conversion.rate || conversion.updated && conversion.updated + 60000 < +new Date) {
18                                 var self = conversion;
19                                 var url = "http://query.yahooapis.com/v1/public/yql?q=select%20rate%2Cname%20from%20csv%20where%20url%3D'http%3A%2F%2Fdownload.finance.yahoo.com%2Fd%2Fquotes%3Fs%3D" + conversion.from + conversion.to + "%253DX%26f%3Dl1n'%20and%20columns%3D'rate%2Cname'&format=json&diagnostics=true&callback=?";
20                                 $.getJSON( url, function( result ) {
21                                         self.rate = parseFloat( result.query.results.row.rate );
22                                         $( "#term" ).keyup();
23                                         self.updated = +new Date;
24                                         conversions.store();
25                                 });
26                         }
27                         $( "#conversion-field" ).tmpl( conversion, {
28                                 symbols: symbols
29                         }).appendTo( ul );
30                         $( "#conversion-edit-field" ).tmpl( conversion, {
31                                 symbols: symbols
32                         }).appendTo( ulEdit );
33                 });
34                 ul.add(ulEdit).listview("refresh");
35                 $( "#term" ).keyup();
36         }
37         var all = conversions.all();
38         $( "#term" ).keyup(function() {
39                 var value = this.value;
40                 $.each( all, function( index, conversion ) {
41                         $( "#" + conversion.from + conversion.to ).text( conversion.rate
42                                 ? Math.ceil( value * conversion.rate * 100 ) / 100
43                                 : "Rate not available, yet."
44                         );
45                 });
46         }).focus();
47         list();
48         $( "form" ).submit(function() {
49                 $( "#term" ).blur();
50                 return false;
51         });
52         $( "#add" ).click(function() {
53                 all.push({
54                         type: "currency",
55                         from: $( "#currency-options-from" ).val(),
56                         to: $( "#currency-options-to" ).val()
57                 });
58                 conversions.store();
59                 list();
60         });
61         $( "#clear" ).click(function() {
62                 conversions.clear();
63                 list();
64                 return false;
65         });
66         $( "#restore" ).click(function() {
67                 conversions.restore();
68                 list();
69                 return false;
70         });
71         
72         $( "#edit-conversions" ).click(function( event ) {
73                 var target = $( event.target ).closest( ".deletebutton" );
74                 if ( target.length ) {
75                         conversions.remove( target.prev( "label" ).attr( "for" ) );
76                         list();
77                 }
78                 return false;
79         });
80 });