//Basic Ajax Routine- Author: Dynamic Drive (http://www.dynamicdrive.com)
//Last updated: Jan 15th, 06'
function createAjaxObj() {
    var httprequest = false;
    // if Mozilla, Safari etc
    if (window.XMLHttpRequest) {
        httprequest = new XMLHttpRequest()
        if (httprequest.overrideMimeType)
            httprequest.overrideMimeType('text/xml');
        // if IE
    } else if (window.ActiveXObject) {
        try {
            httprequest = new ActiveXObject("Msxml2.XMLHTTP");
        }
        catch (e) {
            try {
                httprequest = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e) { }
        }
    }
    return httprequest;
}

var ajaxpack = new Object();
ajaxpack.basedomain = "http://" + window.location.hostname;
ajaxpack.ajaxobj = createAjaxObj();
ajaxpack.filetype = "txt";
ajaxpack.addrandomnumber = 1; //Set to 1 or 0. See documentation.

ajaxpack.getAjaxRequest = function(url, parameters, callbackfunc, filetype) {
    ajaxpack.ajaxobj = createAjaxObj(); //recreate ajax object to defeat cache problem in IE
    if (ajaxpack.addrandomnumber == 1) //Further defeat caching problem in IE?
        var parameters = parameters + "&ajaxcachebust=" + new Date().getTime();

    if (this.ajaxobj) {
        this.filetype = filetype;
        this.ajaxobj.onreadystatechange = callbackfunc;
        this.ajaxobj.open('GET', url + "?" + parameters, true);
        this.ajaxobj.send(null);
    }
}

ajaxpack.postAjaxRequest = function(url, parameters, callbackfunc, filetype) {
    ajaxpack.ajaxobj = createAjaxObj(); //recreate ajax object to defeat cache problem in IE

    if (this.ajaxobj) {
        this.filetype = filetype;
        this.ajaxobj.onreadystatechange = callbackfunc;
        this.ajaxobj.open('POST', url, true);
        this.ajaxobj.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        this.ajaxobj.setRequestHeader("Content-length", parameters.length);
        this.ajaxobj.setRequestHeader("Connection", "close");
        this.ajaxobj.send(parameters);
    }
}

function ajaxIsReady() {
    return (ajaxpack.ajaxobj.readyState == 4 && ajaxpack.ajaxobj.status == 200 || window.location.href.indexOf("http") == -1);
}




function trim(argvalue) {
    var tmpstr = ltrim(argvalue);
    return rtrim(tmpstr);
}

function processGetPost() {
    var myajax = ajaxpack.ajaxobj
    var myfiletype = ajaxpack.filetype
    if (myajax.readyState == 4) { //if request of file completed
        if (myajax.status == 200 || window.location.href.indexOf("http") == -1) { //if request was successful or running script locally
            if (myfiletype == "txt") {
                //alert(myajax.responseText)
                returnStr = myajax.responseText;
                document.getElementById("sendform").innerHTML = returnStr
            }
            else {
                alert(myajax.responseXML)
            }
        }
    }
}

//Check for e-mail address
function isMail(elm) {
    if (elm.indexOf("@") != "-1" && elm.indexOf(".") != "-1" && elm != " ")
        return true;
    else return false;
}


function checkvals(formval, n) {
    switch (n) {
        case 1:
            if (formval == 'Required') {
                document.getElementById('myname').value = ''
                break;
                }
            else
                break;
        case 2:
            if (formval == 'Required' || formval == 'Valid email address required') {
                document.getElementById('myemail').value = ''
                break;
                }
            else
                break;
        case 3:
            if (formval == 'Required' || formval == 'Sorry, try again!') {
                document.getElementById('myverify').value = ''
                break;
            }
            else
                break;
        default:

    }
}



function sendmail() {
    var sendval = '0';
    //document.getElementById("afooter").innerHTML = '<img src="images/mask.png">';
    document.getElementById("subdiv").innerHTML = '<span class="sentmail">Sending</span>';
var curdate = new Date()
var seconds = curdate.getSeconds()
var gname = document.getElementById('myname').value  //get value to post from a DIV
var gemail = document.getElementById('myemail').value //get value to post from a DIV
var gverify = document.getElementById('myverify').value //get value to post from a DIV
var poststr = "randomnumber=" + seconds + "myname=" + encodeURI(gname) + "&myemail=" + encodeURI(gemail) + "&myverify=" + encodeURI(gverify)
//alert(poststr);

if (gname.length == 0) {
    var gnamereq = 'Required';
    var sendval = '1';
}
else {
    var gnamereq = gname;
}

if (gemail.length == 0) {
    var gemailreq = 'Required';
    var sendval = '1';
}
else {
    if (isMail(gemail) == true) {
        var gemailreq = gemail;
    }
    else {
        var gemailreq = 'Valid email address required';
        var sendval = '1';
    }
}

if (gverify.length == 0) {
    var gverifyreq = 'Required';
    var sendval = '1';
}
else {
    if (gverify != '11') {
        var gverifyreq = 'Sorry, try again!';
        var sendval = '1';
    }
    else {
        var gverifyreq = gverify;
    }
}




var updated = '<label for="name">Name: </label><input id="myname" type="text" size="30" onfocus="javascript:checkvals(\'' + gnamereq + '\',1)" value="' + gnamereq + '" maxlength="100" />'
+ '<label for="email">Email: </label><input id="myemail" type="text" onfocus="javascript:checkvals(\'' + gemailreq + '\',2)" size="30" value="' + gemailreq + '" maxlength="100" />'
+ '<label for="verify">Verify:</label><span class="verify">What is 8 + 3?</span><input id="myverify" type="text" class="verify" size="10" value="' + gverifyreq + '" onfocus="javascript:checkvals(\'' + gverifyreq + '\',3)" onkeyup="isNumber(this)" maxlength="2" />'
+ '<div id="subdiv"><input name="subscribe" onclick="javascript:sendmail()" type="button" class="purple_btn" value="Subscribe"/></div>'
//alert(updated);
document.getElementById("sendform").innerHTML = updated;
//document.getElementById("sendform").innerHTML = '<span class="sentmail">sent</span>';
//return poststr
//alert(sendval);
if (sendval == '0') {
    //alert('submit ajax call');
    var poststr = "randomnumber=" + seconds + "&sname=" + encodeURI(gnamereq) + "&semail=" + encodeURI(gemailreq)
    //alert(poststr);
    ajaxpack.postAjaxRequest("sendreg.asp", poststr, processGetPost, "txt")
    }
}



//Step 3: Invoke the Ajax routine method to make the desired Ajax request.
function resetform() {
    var updated = '<label for="name">Name: </label><input id="myname" type="text" size="30" maxlength="100" />'
+ '<label for="email">Email: </label><input id="myemail" type="text" size="30" maxlength="100" />'
+ '<label for="verify">Verify:</label><span class="verify">What is 8 + 3?</span><input id="myverify" type="text" class="verify" size="10" onkeyup="isNumber(this)" maxlength="2" />'
+ '<div id="subdiv"><input name="subscribe" onclick="javascript:sendmail()" type="button" class="purple_btn" value="Subscribe"/></div>'
    document.getElementById("sendform").innerHTML = updated;
}

function isNumber(field) {
    var re = /^[0-9-'.'-',']*$/;
    if (!re.test(field.value)) {
        field.value = field.value.replace(/[^0-9-'.'-',']/g, "");
    }
}

//Text counter for limiting textarea
function textCounter(field, countfield, maxlimit, varfield) {
    //alert(varfield);
    if (field.value.length > maxlimit) // if too long...trim it!
        field.value = field.value.substring(0, maxlimit);
    // otherwise, update 'characters left' counter
    else
        countfield = maxlimit - field.value.length;
    document.getElementById('' + varfield + '').innerHTML = countfield
}
