//var waitImg1 = 'busy/busy-phplist_alpha50-3.gif';
//var waitImg2 = 'busy/busy-phplist_black.gif';
//var waitImg3 = 'busy/busy-phplist_mix.gif';

$(document).ready(function () {
    var waitimg = new Image();
    waitimg.src = waitImage;
    $("#phplistsubscribeform").submit(function () {
        var emailaddress = $("#emailaddress").val();
        var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
        var subscribeaddress = this.action;
        var ajaxaddress = subscribeaddress.replace(/subscribe/, 'asubscribe');
        $('#phplistsubscriberesult').html('<img src="' + waitimg.src + '" width="' + waitimg.width + '" height="' + waitimg.height + '" border="0" alt="Please wait" title="powered by phpList, www.phplist.com" />');

        if (emailReg.test(emailaddress)) {
            var jqxhr = $.ajax({
                type: 'POST',
                url: ajaxaddress,
                crossDomain: true,
                data: "email=" + emailaddress,
                success: function (data, textStatus, jqXHR) {
                    if (data.search(/FAIL/) >= 0) {
                        document.location = subscribeaddress + "&email=" + emailaddress;
                    } else {
                        $('#phplistsubscriberesult').html("<div id='subscribemessage'></div>");
                        $('#subscribemessage').html(data)
                            .hide()
                            .fadeIn(1500);
                        $("#phplistsubscribeform").hide();
                        $("#phplistnotsubscribe").hide();
                        $("#continuesetup").show().fadeIn(2000);
                        document.cookie = "phplistsubscribed=yes";
                    }
                },
                error: function (jqXHR, textStatus, errorThrown) {
                    document.location = subscribeaddress + "&email=" + emailaddress;
                }
            });
        } else {
            document.location = subscribeaddress + "&email=" + emailaddress;
        }
        return false;
    });

    $("#emailaddress").val(pleaseEnter);
    $("#emailaddress").focus(function () {
        var v = $("#emailaddress").val();
        if (v == pleaseEnter) {
            $("#emailaddress").val("")
        }
    });
    $("#emailaddress").blur(function () {
        var v = $("#emailaddress").val();
        if (v == "") {
            $("#emailaddress").val(pleaseEnter)
        }
    });
    var cookie = document.cookie;
    if (cookie.indexOf('phplistsubscribed=yes') >= 0) {
        $("#phplistsubscribeform").html(thanksForSubscribing);
        $("#phplistnotsubscribe").hide();
        $("#continuesetup").show().fadeIn(2000);
    }
    $("#phplistnotsubscribe").click(function () {
        $("#phplistsubscribeform").html('<h3>Not subscribed</h3>');
        $("#phplistnotsubscribe").hide();
        $("#continuesetup").show().fadeIn(2000);
    })

});

// cross domain fix for IE
// http://forum.jquery.com/topic/cross-domain-ajax-and-ie
$.ajaxTransport("+*", function (options, originalOptions, jqXHR) {
    if (jQuery.browser.msie && window.XDomainRequest) {
        var xdr;
        return {
            send: function (headers, completeCallback) {
                // Use Microsoft XDR
                xdr = new XDomainRequest();
                // would be nicer to keep it post
                xdr.open("get", options.url + "&" + options.data);
                xdr.onload = function () {
                    if (this.contentType.match(/\/xml/)) {
                        var dom = new ActiveXObject("Microsoft.XMLDOM");
                        dom.async = false;
                        dom.loadXML(this.responseText);
                        completeCallback(200, "success", [dom]);
                    } else {
                        completeCallback(200, "success", [this.responseText]);
                    }
                };
                xdr.ontimeout = function () {
                    completeCallback(408, "error", ["The request timed out."]);
                };

                xdr.onerror = function () {
                    completeCallback(404, "error", ["The requested resource could not be found."]);
                };
                xdr.send();
            },
            abort: function () {
                if (xdr)xdr.abort();
            }
        };
    }
});

if (pleaseEnter == undefined) {
    var pleaseEnter = "Please enter your email";
}
if (thanksForSubscribing == undefined) {
    var thanksForSubscribing = '<div class="subscribed">Thanks for subscribing. Please click the link in the confirmation email you will receive.</div>';
}
if (waitImage == undefined) {
    var waitImage = 'https://s3.amazonaws.com/phplist/img/busy.gif';
}  

