﻿// can be overriden from hosting page
// DefaultUrl
if (typeof(DefaultUrl) == "undefined")
{
    DefaultUrl = "";
}

function _redirectToDefaultPage()
{
    var theUrl = (DefaultUrl == "" ? ON_VERIFICATION_FAILED_REDIRECT_URL : DefaultUrl);
    // pass the current url so that the hosting page will be redirected back to after age verification
    window.location = theUrl + (theUrl.indexOf("?") > -1 ? "&" : "?") + "url=" + window.location.href;      
}

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");
    key = key + "";
    if (key == "null" || key == "undefined" || typeof(key) == "undefined")
    {
        _redirectToDefaultPage();
        return;
    }
    var url = HANDLER_BASE_URL + "?key=" + key + "&type=validate_key";
    AjaxAPI.init(url, null, _parseXmlValidateKeyCallback, true);
    
    var success = AjaxAPI.exec();
    if (!success)
    {
        alert("AJAX error occurred during the key validation stage.");
        _redirectToDefaultPage();         
    }
}
// run
_execAjaxVerifyMe();