﻿$.fn.getData = function()
{
    return eval("("+$(this).next("input:hidden").val()+")");
}

$.fn.setData = function(stringArray)
{
    $(this).next("input:hidden").filter(".data").val(jsonClean(stringArray));
}

$.fn.addData = function(keyString,valueString)
{
    if(!$(this).next().filter(".data").is("input:hidden")){
        $(this).after("<input type='hidden' class='data' value='{}' />");
        }
    else{
        if (($(this).next().val()).length>0){
            if(($(this).next().val()).charAt(0)!="{")
                ($(this).next().val("{}"));
        }
    }
    var target = $(this).next();
    var currentData = jsonClean(target.val());
    if(currentData== "")
    currentData="{}";
    try {
        var data = eval("("+currentData+")");
        if ((currentData == "{}")||(currentData==undefined)){
            target.val("{'"+keyString+"':'"+valueString+"'}");
        }
        else{
            var kS = "'"+keyString+"':'";
            if(currentData.search(kS)==-1){
                target.val(currentData.replace("}", ",'"+keyString+"':'"+valueString+"'}"));
            }
            else{
                var s = parseInt(currentData.indexOf(kS) + kS.length);
                var f = currentData.indexOf("'",s);
                target.val(currentData.slice(0,s)+valueString+currentData.slice(f));
            }
        }
    }    
    catch(err){
    alert("Dados inválidos");
    }
}

function jsonClean(jsonString){
    jsS = jsonString.replace(/\"/g,'\'');
    var jsonArray = jsS.split("'");
    var cleanJson = "";
jQuery.each(jsonArray, function(i){
    cleanJson+= jQuery.trim(this)+"'";
}); 
cleanJson=cleanJson.substr(0,cleanJson.length-1);
return cleanJson;
}