                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                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(vp.http._longURLStorageDataQueryString,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._longURLStorageDataQueryString="long_url_storage_id";

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);
}
};