if(MIDAS == undefined) { var MIDAS = {}; } MIDAS.CharacterSheet = function() { var history = {}; var keymap = { "n" : "characterName" ,"p" : "playerName" ,"cl" : "classAndLevel" ,"r" : "race" ,"a" : "alignment" ,"de" : "deity" ,"sz" : "size" ,"ag" : "age" ,"gd" : "gender" ,"ht" : "height" ,"wt" : "weight" ,"ey" : "eyes" ,"ha" : "hair" ,"sk" : "skin" ,"s" : "strengthScore" ,"sm" : "strengthModifier" ,"tss" : "tempStrengthScore" ,"tsm" : "tempStrengthModifier" ,"d" : "dexterityScore" ,"dm" : "dexterityModifier" ,"tds" : "tempDexterityScore" ,"tdm" : "tempDexterityModifier" ,"c" : "constitutionScore" ,"cm" : "constitutionModifier" ,"tcs" : "tempConstitutionScore" ,"tcm" : "tempConstitutionModifier" ,"i" : "intelligenceScore" ,"im" : "intelligenceModifier" ,"tis" : "tempIntelligenceScore" ,"tim" : "tempIntelligenceModifier" ,"w" : "wisdomScore" ,"wm" : "wisdomModifier" ,"tws" : "tempWisdomScore" ,"twm" : "tempWisdomModifier" ,"ca" : "charismaScore" ,"cam" : "charismaModifier" ,"tcas" : "tempCharismaScore" ,"tcam" : "tempCharismaModifier" }; this.load = function() { if(window.location.hash) { var dataToLoad = parseJQueryParams(window.location.hash.substring(1)); $.each(keymap, function(key, value) { if(dataToLoad[key]) { var decodedValue = decodeURIComponent(dataToLoad[key]); $('#' + value).val(decodedValue); history[key] = decodedValue; console.log(value + ": \"" + decodedValue + "\""); } }); } }; this.save = function() { var dataToSave = {}; $.each(keymap, function(key, value) { var valueToSave = $('#' + value).val(); dataToSave[key] = encodeURIComponent(valueToSave); }); var queryString = $.param(dataToSave); window.location.hash = queryString; }; this.updateText = function(object) { var objectId = object.id; var key = getKey(objectId); var newValue = object.value; if(newValue != history[key]) { console.log(objectId + " changed from \"" + history[key] + "\" to \"" + newValue + "\"."); history[key] = newValue; this.save(); } }; function getKey(objectId) { var keyResponse = null; $.each(keymap, function(key, value) { if(value == objectId) { keyResponse = key; return false; } }); return keyResponse; } function parseJQueryParams(p) { var params = {}; var pairs = p.split('&'); for (var i=0; i