                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                

if(!window.__td){window.__MT=100;window.__ti=0;window.__td=[];window.__td.length=__MT;window.__noTrace=false;}
if(typeof vp=="undefined"){var vp={};}
vp.http=function http(){if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}};vp.http._checkForValidStatus=function http__checkForValidStatus(oHttp,sUrl)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
var iStatus=0;try
{iStatus=oHttp.status;}
catch(e)
{throw new Error("Error trying to contact the URL ("+sUrl+"). This is usually caused by cross-window AJAX calls.");}
if(iStatus!=200&&iStatus!==0)
{if(iStatus==304)
{throw new Error("The URL ("+sUrl+") was cached by the browser. Set no-cache headers on the URL and try again.");}
else
{var oErr;if(oHttp.responseText.indexOf("{")===0)
{try
{var oJson=vp.http.parseJSON(oHttp.responseText);if(oJson.Message)
{oErr=new Error("Web service error: "+oJson.Message);oErr.noRetry=true;}}
catch(ex)
{}}
if(!oErr)
{oErr=new Error("Received status code "+iStatus+" trying to contact the URL ("+sUrl+").");}
oErr.httpStatus=iStatus;throw oErr;}}};vp.http.createRequest=function http_createRequest()
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
if(typeof XMLHttpRequest!="undefined")
{return new XMLHttpRequest();}
else if(typeof ActiveXObject!="undefined")
{try
{return new ActiveXObject("MSXML2.XmlHttp");}
catch(ex)
{throw new Error("vp.http.createRequest() failed: Could not create ActiveX object.");}}
else
{throw new Error("vp.http.createRequest() failed: No XMLHttp implementation available.");}};vp.http.enabled=function http_enabled()
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
if(typeof XMLHttpRequest!="undefined")
{return true;}
else if(typeof ActiveXObject!="undefined")
{try
{var oHttp=vp.http.createRequest();return true;}
catch(ex)
{return false;}}
else
{return false;}};vp.http._asyncRequest=function http__asyncRequest(sUrl,sMethod,sContentType,sData,fnCallback,fnErrorHandler,iAttemptCount)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
if(typeof(iAttemptCount)=="undefined")
{iAttemptCount=3;}
var oHttp=this.createRequest();oHttp.open(sMethod,sUrl,true);if(sContentType)
{oHttp.setRequestHeader("Content-Type",sContentType);}
if(sData)
{oHttp.setRequestHeader("Content-Length",sData.toString().length.toString());}
else
{sData=null;}
if(fnCallback)
{var fnCheckForValidStatus=vp.http._checkForValidStatus;oHttp.onreadystatechange=function()
{if(oHttp.readyState==4)
{try
{fnCheckForValidStatus(oHttp,sUrl);}
catch(ex)
{if(ex.httpStatus>=400&&!ex.noRetry)
{if(iAttemptCount>0)
{var fnRepost=function pv_fnRepost()
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
vp.http._asyncRequest(sUrl,sMethod,sContentType,sData,fnCallback,fnErrorHandler,iAttemptCount-1);};setTimeout(fnRepost,1000);return;}}
if(fnErrorHandler)
{fnErrorHandler(ex);return;}
else
{throw ex;}}
var fnCallbackWrapper=function pv_fnCallbackWrapper()
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
if(!fnCallback)
{return;}
fnCallback(oHttp.responseText);};setTimeout(fnCallbackWrapper,1);oHttp.onreadystatechange=function(){};}};}
try
{oHttp.send(sData);}
catch(oError)
{throw new Error("Error occurred while requesting URL ("+sUrl+"):"+oError.message);}};vp.http._syncRequest=function http__syncRequest(sUrl,sMethod,sContentType,sData)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
var oHttp=this.createRequest();oHttp.open(sMethod,sUrl,false);if(sContentType)
{oHttp.setRequestHeader("Content-Type",sContentType);}
if(sData)
{oHttp.setRequestHeader("Content-Length",sData.toString().length.toString());}
else
{sData=null;}
try
{oHttp.send(sData);}
catch(oError)
{throw new Error("Error occurred while requesting URL ("+sUrl+"):"+oError.message);}
this._checkForValidStatus(oHttp,sUrl);return oHttp.responseText;};vp.http.get=function http_get(sUrl)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
return vp.http._syncRequest(sUrl,"GET");};vp.http.getAsync=function http_getAsync(sUrl,fnCallback,fnErrorHandler)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
vp.http._asyncRequest(sUrl,"GET",null,null,fnCallback,fnErrorHandler);};vp.http.imagePing=function http_imagePing(sUrl)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
var oImage=new Image();oImage.src=sUrl;};vp.http.ping=function http_ping(sUrl)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
vp.http.getAsync(sUrl);};vp.http.post=function http_post(sUrl,sData)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
return vp.http._syncRequest(sUrl,"POST","application/x-www-form-urlencoded",sData);};vp.http.postAsync=function http_postAsync(sUrl,sData,fnCallback,fnErrorHandler,iAttemptCount)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
vp.http._asyncRequest(sUrl,"POST","application/x-www-form-urlencoded",sData,fnCallback,fnErrorHandler);};vp.http.postXml=function http_postXml(sUrl,sData)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
return vp.http._syncRequest(sUrl,"POST","text/xml",sData);};vp.http.postXmlAsync=function http_postXmlAsync(sUrl,sData,fnCallback,fnErrorHandler)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
vp.http._asyncRequest(sUrl,"POST","text/xml",sData,fnCallback,fnErrorHandler);};vp.http.postJson=function http_postJson(sUrl,oData)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
var sData=vp.http.serializeJSON(oData);var sResponse=vp.http._syncRequest(sUrl,"POST","application/json",sData);return vp.http.parseJSON(sResponse);};vp.http.postJsonAsync=function http_postJsonAsync(sUrl,oData,fnCallback,fnErrorHandler)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
var sData=vp.http.serializeJSON(oData);var fnCallbackWrapper=function pv_fnCallbackWrapper(sResponse)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
if(fnCallback)
{var oJson=vp.http.parseJSON(sResponse);fnCallback(oJson);}};vp.http._asyncRequest(sUrl,"POST","application/json; charset=utf-8",sData,fnCallbackWrapper,fnErrorHandler);};vp.http._sanitizeAsmxJson=function http__sanitizeAsmxJson(oJson)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
vp.http._sanitizeAsmxJsonRecursive(oJson.d);return oJson.d;};vp.http._sanitizeAsmxJsonRecursive=function http__sanitizeAsmxJsonRecursive(oJson)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
if(oJson.__type)
{delete oJson.__type;}
for(var sProp in oJson)
{if(typeof(oJson[sProp])=="object"&&oJson[sProp]!==null)
{vp.http._sanitizeAsmxJsonRecursive(oJson[sProp]);}}};vp.http.callAsmx=function http_callAsmx(sUrl,sMethodName,oData)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
var oJson=vp.http.postJson(sUrl+"/"+sMethodName,oData);return vp.http._sanitizeAsmxJson(oJson);};vp.http.callAsmxAsync=function http_callAsmxAsync(sUrl,sMethodName,oData,fnCallback,fnErrorHandler)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
var fnCallbackWrapper=function pv_fnCallbackWrapper(oJson)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
if(fnCallback)
{fnCallback(vp.http._sanitizeAsmxJson(oJson));}};vp.http.postJsonAsync(sUrl+"/"+sMethodName,oData,fnCallbackWrapper,fnErrorHandler);};vp.http.populateNodeFromServer=function http_populateNodeFromServer(vNodeOrId,sUrl,vPostData,fnCallback,fnErrorHandler)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
var oNode=vp.core.getElement(vNodeOrId,"vp.http.populateNodeFromServer");var fnCallbackWrapper=function pv_fnCallbackWrapper(sResponse)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
try
{vp.http.populateNodeWithHTML(oNode,sResponse);}
catch(ex)
{fnErrorHandler(ex);return;}
fnCallback();};if(vPostData)
{var sPostData=vPostData;if(typeof(sPostData)!="string")
{sPostData=vp.web.createQueryString(vPostData);}
vp.http.postAsync(sUrl,sPostData,fnCallbackWrapper,fnErrorHandler);}
else
{vp.http.getAsync(sUrl,fnCallbackWrapper,fnErrorHandler);}};vp.http.populateNodeWithHTML=function http_populateNodeWithHTML(vNodeOrId,sHTML)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
var oNode=vp.core.getElement(vNodeOrId,"vp.http.populateNodeWithHTML");oNode.innerHTML=sHTML;var aScripts=oNode.getElementsByTagName("SCRIPT");for(var i=0;i<aScripts.length;i++)
{eval(aScripts[i].innerHTML);}};vp.http.getBrowserMaxURLSize=function http_getBrowserMaxURLSize()
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
return vp.ui.browserSupportsPNG()?1900:760;};vp.http.getURLSizedForGET=function http_getURLSizedForGET(vUrl,vPotentiallyLargeParams,fnCallback,bForceSafeUrl)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
var sUrl=vUrl.toString();if(sUrl.length<vp.http.getBrowserMaxURLSize()&&!bForceSafeUrl)
{return sUrl;}
var oUrl=new vp.web.URL(sUrl);var sQueryString;if(!vPotentiallyLargeParams)
{sQueryString=oUrl.queryString;oUrl.queryString="";}
else
{var aParams;if(typeof(vPotentiallyLargeParams)=="string")
{aParams=[];aParams.add(vPotentiallyLargeParams);}
else
{aParams=vPotentiallyLargeParams;}
var oData={};for(var i=0;i<aParams.length;i++)
{var sValue=oUrl.getItem(aParams[i]);if(sValue)
{oData[aParams[i]]=sValue;oUrl.removeItem(aParams[i]);}}
sQueryString=vp.web.createQueryString(oData);}
var oPostData=new vp.web.QueryString();oPostData.setItem("long_url_storage_data",sQueryString);var fnCallbackWrapper=function pv_fnCallbackWrapper(sResponse)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
var oResponse=vp.http.parseJSON(sResponse);if(oResponse.isError)
{throw new Error("Couldn't store text data: "+oResponse.message);}
oUrl.setItem("long_url_storage_id",oResponse.id);var sUrl=oUrl.toString();if(sUrl.length>vp.http.getBrowserMaxURLSize())
{throw new Error("URL too long for GET");}
if(fnCallback)
{fnCallback(oUrl.toString());return false;}
else
{return oUrl.toString();}};if(fnCallback)
{vp.http.postAsync(vp.http._urlDataStorageWebServiceURL,oPostData.toString(),fnCallbackWrapper);return false;}
else
{return fnCallbackWrapper(vp.http.post(vp.http._urlDataStorageWebServiceURL,oPostData.toString()));}};vp.http._urlDataStorageWebServiceURL="/services/long-url-storage-service.aspx";(function(){var m={'\b':'\\b','\t':'\\t','\n':'\\n','\f':'\\f','\r':'\\r','"':'\\"','\\':'\\\\'},s={'boolean':function(x){return String(x);},'null':function(x){return"null";},number:function(x){return isFinite(x)?String(x):'null';},string:function(x){if(/["\\\x00-\x1f]/.test(x)){x=x.replace(/([\x00-\x1f\\"])/g,function(a,b){var c=m[b];if(c){return c;}
c=b.charCodeAt();return'\\u00'+
Math.floor(c/16).toString(16)+
(c%16).toString(16);});}
return'"'+x+'"';},array:function(x){var a=['['],b,f,i,l=x.length,v;for(i=0;i<l;i+=1){v=x[i];f=s[typeof v];if(f){v=f(v);if(typeof v=='string'){if(b){a[a.length]=',';}
a[a.length]=v;b=true;}}}
a[a.length]=']';return a.join('');},object:function(x){if(x){if(x instanceof Array){return s.array(x);}
var a=['{'],b,f,i,v;for(i in x){v=x[i];f=s[typeof v];if(f){v=f(v);if(typeof v=='string'){if(b){a[a.length]=',';}
a.push(s.string(i),':',v);b=true;}}}
a[a.length]='}';return a.join('');}
return'null';}};vp.http.serializeJSON=function http_serializeJSON(o)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
if(!o)
{throw new Error("vp.http.serializeJSON: JSON object is required");}
return s.object(o);};})();vp.http.parseJSON=function http_parseJSON(sData)
{if(!window.__noTrace){__td[__ti]=arguments;__ti=__ti>=__MT?0:__ti+1;}
try
{return eval("("+sData+")");}
catch(ex)
{throw new Error("Invalid JSON:"+sData);}};
