/**
* DATA STORAGE
*/

var DataStorage = new function() {
	var supports_session_storage = function() {
		  try {
			return window.hasOwnProperty('sessionStorage') && window.sessionStorage !== null;
		  } catch(e){
			return false;
		  }
		},
		
		set_cookie = function( name, value, expires ) {
			var cstring = name + '=' + escape( value );
			if ( expires ) {
				cstring += '; expires=' + expires.toGMTString();
			}
			document.cookie = cstring;
		},
		
		get_cookie = function( name ) {
			var results = document.cookie.match( name + '=([^;]*);?' );
			if ( results ) {
				return unescape( results[1] );
			}
			return null;
		},
		
		destroy_cookie = function( name ) {
			var da = new Date();
			da.setTime( da.getTime() - 1 );
			set_cookie( name, '', da );
		};
	
	this.store_data = function( name, data, expires ) {
		if ( supports_session_storage() ) {
			window.sessionStorage[name] = data;
		} else {
			set_cookie( name, data, expires );
		}
	};
	
	this.delete_data = function( name ) {
		if ( supports_session_storage() ) {
			window.sessionStorage[name] = null;
		} else {
			destroy_cookie( name );
		}
	};
	
	this.get_data = function( name ) {
		if ( supports_session_storage() ) {
			return window.sessionStorage[name];
		}
		return get_cookie( name );
	};
};
