46e572f642f83b7b4aa13dad52652c4418f2fc40
[platform/framework/web/web-ui-fw.git] / libs / js / jquery-mobile-1.0.1pre / experiments / converter / storage.js
1 (function() {
2
3 var defaults = [
4         {
5                 type: "currency",
6                 from: "USD",
7                 to: "EUR"
8         },
9         {
10                 type: "currency",
11                 from: "GBP",
12                 to: "EUR"
13         }
14         // TODO add back in as defaults once its possible to add other conversions, not just currencies
15         /*,
16         {
17                 type: "distance",
18                 from: "Miles",
19                 to: "Kilometer",
20                 rate: 1.609344
21         },
22         {
23                 type: "distance",
24                 from: "inch",
25                 to: "centimeter",
26                 rate: 2.54
27         }*/
28 ];
29
30 // TODO fallback to whatever else when localStorage isn't available
31 function get() {
32         return JSON.parse( localStorage.getItem( "conversions" ) );
33 }
34 function set( value ) {
35         localStorage.setItem( "conversions", JSON.stringify( value ) );
36 }
37
38 var conversions = get( "conversions" );
39 if ( !conversions ) {
40         conversions = defaults.slice();
41         set( conversions );
42 }
43 window.conversions = {
44         store: function() {
45                 set( conversions );
46         },
47         all: function() {
48                 return conversions;
49         },
50         clear: function() {
51                 conversions.length = 0;
52                 this.store();
53         },
54         restore: function() {
55                 conversions.length = 0;
56                 $.extend( conversions, defaults );
57                 this.store();
58         },
59         remove: function( tofrom ) {
60                 $.each( conversions, function( index, conversion ) {
61                         if ( ( conversion.from + conversion.to ) === tofrom ) {
62                                 conversions.splice( index, 1 );
63                                 return false;
64                         }
65                 });
66                 this.store();
67         }
68 };
69
70 })();