/*
	The below work is licensed under Creative Commons GNU LGPL License.

	License:     http://creativecommons.org/licenses/LGPL/2.1/
	Author:      Michael Schøler/2008-01-29
	Version:     0.1, JSLint verified (no strict whitespace)
	Web:         http://michael.hinnerup.net/blog/2008/01/29/trimming_values_from_json_objects/
*/
function trimJson(json,trimValuesAry,bDeleteEmptyObjects){if(typeof bDeleteEmptyObjects==="undefined"||((bDeleteEmptyObjects!==false)&&(bDeleteEmptyObjects!==true))){bDeleteEmptyObjects=false;}
if(typeof trimValuesAry==="undefined"||(!(trimValuesAry instanceof Array))){trimValuesAry=[null];}
var res=true;for(var key in json)if(json.hasOwnProperty(key)){var deleteValue=false;for(var i=0;i<trimValuesAry.length;i+=1){if(trimValuesAry[i]instanceof Array&&json[key]instanceof Array){var array1=json[key],array2=trimValuesAry[i];if(array1.length!==array2.length){deleteValue=false;}
else if(array1.length===0){deleteValue=true;}
else{for(var j=0;j<array1.length;j+=1){deleteValue=true;if(array1[j]!==array2[j]){deleteValue=false;break;}}}}
else{deleteValue=(json[key]===trimValuesAry[i]);}
if(deleteValue===true){break;}}
if(deleteValue){delete json[key];res=false;}else if(typeof json[key]==="object"){res=true;var recursionContent=trimJson(json[key],trimValuesAry,bDeleteEmptyObjects);if((bDeleteEmptyObjects===true)&&(recursionContent===false)){delete json[key];}}}
return res;}