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 );
23 self.updated = +new Date;
27 $( "#conversion-field" ).tmpl( conversion, {
30 $( "#conversion-edit-field" ).tmpl( conversion, {
32 }).appendTo( ulEdit );
34 ul.add(ulEdit).listview("refresh");
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."
48 $( "form" ).submit(function() {
52 $( "#add" ).click(function() {
55 from: $( "#currency-options-from" ).val(),
56 to: $( "#currency-options-to" ).val()
61 $( "#clear" ).click(function() {
66 $( "#restore" ).click(function() {
67 conversions.restore();
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" ) );