function ValidateSendFriendForm(thisform) {
    if (thisform == undefined) {
        thisform = document.forms["seform"];
    }

    if (thisform.yourname == undefined) {
        thisform = document.forms["seform"];
    }

    if (thisform.yourname.value.length == 0) {
        alert("Please enter your name.");
        thisform.yourname.focus();
        return false;
    }
    if (thisform.emailaddress.value.length == 0) {
        alert("Please enter your email address.");
        thisform.emailaddress.focus();
        return false;
    }
    else if (!validEmail(thisform.emailaddress.value)) {
        alert("Please enter a valid email address.");
        thisform.emailaddress.focus();
        return false;
    }
    if (thisform.friendname.value.length == 0) {
        alert("Please enter your friend's name.");
        thisform.friendname.focus();
        return false;
    }
    if (thisform.friendemail.value.length == 0) {
        alert("Please enter your friend's email address.");
        thisform.friendemail.focus();
        return false;
    }
    else if (!validEmail(thisform.friendemail.value)) {
        alert("Please enter a valid email address.");
        thisform.friendemail.focus();
        return false;
    }
    //if (!verifyCaptcha('/CaptchaCodes.aspx?recode='+document.seform.captchacode.value))
    if (thisform._captchaflag.value.toLowerCase() != 'true') {
        alert("The security code is not correct.");
        thisform.captchacode.focus();
        return false;
    }
    return true;
}

function validEmail(email) {
    invalidChars = " /:,;"
    if (email == "") {	// cannot be empty
        //alert("Please enter your email address.");
        return false
    }
    for (i = 0; i < invalidChars.length; i++) {	// does it contain any invalid characters?
        badChar = invalidChars.charAt(i)
        if (email.indexOf(badChar, 0) > -1) {
            return false
        }
    }
    atPos = email.indexOf("@", 1)	// there must be one "@" symbol
    if (atPos == -1) {
        return false
    }
    if (email.indexOf("@", atPos + 1) != -1) {	// and only one "@" symbol
        return false
    }
    periodPos = email.indexOf(".", atPos)
    if (periodPos == -1) {			// and at least one "." after the "@"
        return false
    }
    if (periodPos + 3 > email.length) { // must be at least 2 characters after the "."
        return false
    }
    return true
}

var CaptchaCode = "";
function showCaptchaCode(objImgId) {
    var objImage = document.getElementById(objImgId);
    CaptchaCode = generateCaptchaCode(4);
    if (objImage != null && CaptchaCode != "") {
        objImage.src = "/CaptchaCodes.aspx?code=" + CaptchaCode;
    }
}

function generateCaptchaCode(codeNum) {
    var character = new Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "A", "B", "C", "D", "E", "F", "G", "J", "K", "L", "M", "N", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z");
    var strCode = "";
    var currIndex = 0;
    for (var i = 0; i < codeNum; i++) {
        currIndex = Math.floor(Math.random() * character.length + 1);
        strCode += character[currIndex - 1];
    }
    var flagspan = document.getElementById("captchacheck");
    if (flagspan != null) flagspan.style.display = "none";
    return strCode;
}

var xmlrequest;
xmlrequest = false;
function InitObject() {
    if (!xmlrequest) {
        try {
            xmlrequest = new ActiveXObject("Msxml2.XMLHTTP");
        }
        catch (e) {
            try {
                xmlrequest = new ActiveXObject("Microsoft.XMLHTTP");
            }
            catch (E) {
                xmlrequest = false;
            }
        }
        if (!xmlrequest && typeof XMLHttpRequest != 'undefined') {
            xmlrequest = new XMLHttpRequest();
        }
    }
}

function verifyCaptcha(url) {
    if (!xmlrequest)
        InitObject();

    if (xmlrequest) {
        xmlrequest.open("GET", url, true);
        xmlrequest.onreadystatechange = updateCheckFlag;
        xmlrequest.send(null);
    }
}
function updateCheckFlag() {
    if (xmlrequest.readyState == 4)  // Is ready
    {
        var response = xmlrequest.responseText;
        var flagspan = document.getElementById("captchacheck");
        if (flagspan != null) flagspan.style.display = "inline";
        var flagimg = document.getElementById("captchaflagimg");
        if (response.toLowerCase() == 'true') {
            if (flagimg != null) flagimg.src = "/site/images/check_right.gif";
        }
        else {
            if (flagimg != null) flagimg.src = "/site/images/check_error.gif";
        }
        document.getElementById("_captchaflag").value = response.toLowerCase();
        //document.write(response);
        //return rtnValue;
    }
}

///////////////////////////////////////ajax////////////
/*
var Request = new Object();

Request.reqList = [];

function getAjax() {
var ajax = false;
try {
ajax = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e) {
try {
ajax = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (E) {
ajax = false;
}
}
if (!ajax && typeof XMLHttpRequest != 'undefined') {
ajax = new XMLHttpRequest();
}
return ajax;
}

Request.send = function(url, method, callback, data, urlencoded, callback2) {
var req = getAjax();
req.onreadystatechange = function() {
if (req.readyState == 4) {
if (req.status < 400) {
if (callback)
callback(req, data);
}
else {
if (callback2)
callback2(req, data);
}

try {
delete req;
req = null;
} catch (e) { }
}
}
if (method == "POST") {
req.open("POST", url, true);
if (urlencoded)
req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
req.send(data);
Request.reqList.push(req);
}
else {
req.open("GET", url, true);
req.send(null);
Request.reqList.push(req);
}

return req;
}

Request.clearReqList = function() {
var ln = Request.reqList.length;
for (var i = 0; i < ln; i++) {
var req = Request.reqList[i];
if (req) {
try {
delete req;
} catch (e) { }
}
}
Request.reqList = [];
}

Request.sendPOST = function(url, data, callback, clear, callback2) {
if (clear)
Request.clearReqList();
Request.send(url, "POST", callback, data, true, callback2);
}

Request.sendGET = function(url, args, callback, clear, callback2) {
if (clear)
Request.clearReqList();
return Request.send(url, "GET", callback, args, false, callback2);
}
*/
////////////////////////////////ajax end//////////////////////////////////
