function _viewObj(pValue,pName,pType,pLevels) { pType = new String(pType).toLowerCase(); if (new String(pName) == "undefined")
 pName = "input"; if (new String(pType).search(/html|text/i) == -1)
 pType = "text"; if (pLevels == "undefined")
 pLevels = -1; var str=""; if (typeof pValue != "function") { var br=(pType == "text"? "\n" : (pType == "html" ? "<br>" : "")); if ((typeof pValue == "object" && !!pValue) && (pValue.length) && (!pValue.substring)) { try { for (var i=0;i<pValue.length;i++) { if (pLevels==0) { str+=br+pName+"["+i+"]: "+pValue; }else{ str+=""+_viewObj(pValue[i],pName+"["+i+"]",pType,pLevels-1); } } } catch (e) { str+=br+pName+": "+pValue+" (Not an array)"; } } else if (typeof pValue == "object" && !!pValue && (!pValue.substring)){ try { for (var prop in pValue) { if (pLevels==0) { str+=br+pName+"."+prop+": "+pValue; }else{ str+=""+_viewObj(pValue[prop],pName+"."+prop,pType,pLevels-1); } } } catch (e) { str+=br+pName+": "+pValue+" (Not an object)"; } } else{ str+=br+pName+": "+pValue; } }; return str;}function _arrToStr(pValue,pName,pType,pLevels) { return _viewObj(pValue,pName,pType,pLevels);}; function _objToStr(pObj){ var str=""; for(var prop in pObj)
 if(typeof pObj[prop]!="function")
 str+="obj["+prop+"]: "+pObj[prop]+" \n"; return str;};function debug(pMsg, pFunction){ alert(":::DEBUGGER:::\nFunction: " +pFunction+"\nMessage\n"+pMsg);};function error(pMsg, pFunction){ alert(":::ERROR:::\nFunction: " +pFunction+"\nMessage\n"+pMsg);};