﻿document.write(" <script src='https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js'></script>");

 
function Bajax() {
    //default error
    this._eh = Bajax._error;
}

//debugger
Bajax.debug_enable = false;


//GET 
//(URL, Callback[, Callback Data, If asynchronouns])
Bajax.prototype.get = function(url, callback, fdata, asyn) {
    fdata = (fdata == undefined) ? null : fdata;
    asyn = (asyn == undefined) ? true : asyn;
    var _self = this;

    var X = Bajax._object();
    if (asyn) X.onreadystatechange = function()
    { Bajax._callback(X, callback, fdata, _self); };
    X.open("GET", url, asyn);

    if (Bajax.debug_enable) Bajax._debugger(callback);

    X.send(null);

    if (asyn) return X;
    else Bajax._callback(X, callback, fdata, _self);
}

//POST
//(URL, POST Data,  Callback Data[, Callback Data, If asynchronouns])
Bajax.prototype.post = function(url, sdata, callback, fdata, asyn) {
    fdata = (fdata == undefined) ? null : fdata;
    asyn = (asyn == undefined) ? true : asyn;
    var _self = this;

    var X = Bajax._object();
    if (asyn) X.onreadystatechange = function()
    { Bajax._callback(X, callback, fdata, _self); };
    X.open("POST", url, asyn);

    if (Bajax.debug_enable) Bajax._debugger(callback);

    X.setRequestHeader("Content-length", sdata.length);
    X.setRequestHeader("Content-type", "application/x-www-form-urlencoded");

    X.send(sdata);

    if (asyn) return X;
    else Bajax._callback(X, callback, fdata, _self);
}

//Error Function
Bajax.prototype.e_handler = function(func)
{ if (func != undefined) this._eh = func; }

Bajax._object = function() {
    var A;
    if (typeof XMLHttpRequest != "undefined") {
        A = new XMLHttpRequest();
    }
    else {
        var _msxmlhttp = new Array("Msxml2.XMLHTTP.6.0", "Msxml2.XMLHTTP.3.0", "Msxml2.XMLHTTP", "Microsoft.XMLHTTP");
        for (var i = 0; i < _msxmlhttp.length; i++) {
            try {
                if (A = new ActiveXObject(_msxmlhttp[i])) break;
            }
            catch (e) {
                A = null;
            }
        }
    }
    if (!A) alert("Could not create connection object.");
    return A;
}

//Private Functions

Bajax._callback = function(req, callback, data, obj) {
    if (req.readyState == 4) {
        if (req.status !== 200) {
            if (obj._eh) obj._eh(req, callback);
        }
        else {
            callback(req, data);
        }
    }
}

Bajax._debugger = function(func) {
    alert("running:" + Bajax._fname(func));
}

Bajax._error = function(req, callback) {
    alert(req.statusText + "\nShould run:" + Bajax.fname(callback));
}

Bajax._fname = function(func) {
    var S = func.toString();
    return S.slice(9, S.indexOf(')', 10)) + ')';
}




var bajax = new Bajax();

function GetRandom() {
    return Math.random();
}

function Trim(input) {
    return input.replace(/(^\s*)|(\s*$)/g, "");
}



function InitCAPTCHA() {

    var url = document.getElementById("newsletterWebUrl").value;
    bajax.get(url + "/AdminConsole/SubscribeForm/CAPTCHAAjax.aspx?a=" + GetRandom(), InitCAPTCHACallback);
}

function InitCAPTCHACallback(req) {
    var code = Trim(req.responseText);
    document.getElementById("captchaValue").value = code;
    var url = document.getElementById("newsletterWebUrl").value;
    document.getElementById("tdCAPTCHA").innerHTML = "<img id=\"captchaImg\" src=\""+url + "/AdminConsole/SubscribeForm/CAPTCHA.aspx?code=" + code + "\" alt=\"\" style=\"cursor: pointer;height: 20px;\" onclick=\"InitCAPTCHA();\" />";
}

function CheckCAPTCHA(intCode, orgCode, errorMessage) {
    var url = document.getElementById("newsletterWebUrl").value;
    bajax.get(url + "/AdminConsole/SubscribeForm/CAPTCHAAjax.aspx?a=" + GetRandom() + "&intCode=" + Trim(intCode) + "&orgCode=" + Trim(orgCode), CheckCAPTCHACallback, errorMessage, false);
    var checkResult = document.getElementById("captchaCheckResult").value;
    if (checkResult == "false") {
        alert(errorMessage);
        return false;
    }
    else {
        return true;
    }
}

function CheckCAPTCHACallback(req, errorMessage) {
    document.getElementById("captchaCheckResult").value = req.responseText;
}

function InitVerificationCode() {
    // debugger;
    // alert("going initalization");
    var hostedUrl = document.getElementById("newsletterWebUrl").value;
    var url = hostedUrl + "/AdminConsole/SubscribeForm/CAPTCHAAjax.aspx";
    var ajax = $.ajax({
        url: url,
        dataType: "jsonp",
        success: function(json) {
            //  alert("back verification code value");
            document.getElementById("tdCAPTCHA").innerHTML = "<img id=\"captchaImg\"  align=\"middle\" src=\"" + hostedUrl + "/AdminConsole/SubscribeForm/CAPTCHA.aspx?code=" + json.msg + "\" alt=\"\" style=\"cursor: pointer;height: 20px;\" onclick=\"InitVerificationCode();\" />";
            document.getElementById("captchaValue").value = json.msg;
        },
        error: function() {
            alert("error");
        }
    })
}

// verified email address



