/*
 * ParseClass
 *
 */
(function($){
    $.fn.extend({
	    ParseClass: function(unescapeVals) {
		    if (this.length == 0) {
			    return {};
		    }
		    var classes = this[0].className.split(" "),
		    return_obj = {};
		    for (var i=0, c; (c=classes[i]) != undefined; i++) {
				if (c.substring(0, 1) != "{") {
					continue;
				}
				c = c.replace(/([^\\])"/g, '$1\\"');
			    c = c.replace(/'/g, '"');
			    try {
				    var obj = $.parseJSON(c);
				    for (var key in obj) {
					    $.extend(return_obj, obj);
				    }
			    } catch (e) { }
		    }
		    if (unescapeVals === true) {
			    var recursive_unescape = function(obj) {
				    for(var key in obj) {
					    if (obj[key] instanceof Object) {
						    obj[key] = recursive_unescape(obj[key]);
					    } else if (typeof(obj[key]) == "string") {
						    obj[key] = unescape(obj[key]);
					    }
				    }
				    return obj;
			    };
			    return_obj = recursive_unescape(return_obj);
		    }
		    return return_obj;
	    }
    });
})(jQuery); 
