﻿// can be overriden from hosting page
// DefaultUrl
if (typeof(DefaultUrl) == "undefined")
{
    DefaultUrl = "";
}

function _redirectToDefaultPage(key)
{
    var newUrl = (DefaultUrl == "" ? ON_VERIFICATION_FAILED_REDIRECT_URL : DefaultUrl);
    window.location = newUrl + (newUrl.indexOf("?") > -1 ? "&" : "?") + "key=" + key;  
}

function _parseXmlValidateKeyCallback()
{
    _xDoc = AjaxAPI.GetXmlDoc();
    if (!_xDoc)
    {
        alert("Problem with fetching XML.");
    }
    
    var nodes = _xDoc.getElementsByTagName("age"); // document element
    if (!nodes)
    {
        _redirectToDefaultPage();
        return;
    } 
    if (nodes.length != 1)
    {
        _redirectToDefaultPage();     
        return;
    } 
    
    var verified = JSAPI.Trim(nodes[0].getAttribute("verified"));
    if (JSAPI.IsEmpty(verified))
    {
        _redirectToDefaultPage();
        return;
    }    
    
    var isVerified = (verified == 1 ? true : false);
    if (!isVerified)
    {
        // stop page rendering
        _redirectToDefaultPage();       
    }
}  

function _execAjaxVerifyMe()
{
    var key = Request.QueryString("key");
    if ( (key + "") == "null")
    {
        return;
    }
    
    var url = HANDLER_BASE_URL + "?key=" + key + "&type=validate_key";
    AjaxAPI.init(url, null, _parseXmlValidateKeyCallback, true);
    var success = AjaxAPI.exec();
    if (success)
    {
        _redirectToDefaultPage(key);         
    }
}
// run
_execAjaxVerifyMe();
