
function PHP_Unserialize(input)
{var result=PHP_Unserialize_(input);return result[0];}
function PHP_Unserialize_(input)
{var length=0;switch(input.charAt(0)){case'a':length=PHP_Unserialize_GetLength(input);input=input.substr(String(length).length+4);var arr=new Array();var key=null;var value=null;for(var i=0;i<length;++i){key=PHP_Unserialize_(input);input=key[1];value=PHP_Unserialize_(input);input=value[1];arr[key[0]]=value[0];}
input=input.substr(1);return[arr,input];break;case'O':length=PHP_Unserialize_GetLength(input);var classname=String(input.substr(String(length).length+4,length));input=input.substr(String(length).length+6+length);var numProperties=Number(input.substring(0,input.indexOf(':')))
input=input.substr(String(numProperties).length+2);var obj=new Object();var property=null;var value=null;for(var i=0;i<numProperties;++i){key=PHP_Unserialize_(input);input=key[1];key[0]=key[0].replace(new RegExp('^\x00'+classname+'\x00'),'');key[0]=key[0].replace(new RegExp('^\x00\\*\x00'),'');value=PHP_Unserialize_(input);input=value[1];obj[key[0]]=value[0];}
input=input.substr(1);return[obj,input];break;case's':length=PHP_Unserialize_GetLength(input);return[String(input.substr(String(length).length+4,length)),input.substr(String(length).length+6+length)];break;case'i':case'd':var num=Number(input.substring(2,input.indexOf(';')));return[num,input.substr(String(num).length+3)];break;case'b':var bool=(input.substr(2,1)==1);return[bool,input.substr(4)];break;case'N':return[null,input.substr(2)];break;case'o':case'r':case'C':case'R':case'U':alert('Error: Unsupported PHP data type found!');default:return[null,null];break;}}
function PHP_Unserialize_GetLength(input)
{input=input.substring(2);var length=Number(input.substr(0,input.indexOf(':')));return length;}
