﻿// JScript File

function ValidateForm() {
    var FirstName = document.getElementById('FirstName');
    var LastName = document.getElementById('LastName');
    var Email = document.getElementById('Email');
    var msg = '';

    if (isWhiteSpace(FirstName.value)) {
        msg += 'First Name\n';
    }
    if (isWhiteSpace(LastName.value)) {
        msg += 'Last Name\n';
    }

    if (!testEmail(Email.value)) {
        msg += 'Email';
    }

    if (msg.length > 0) {
        alert('Please check the following\n' + msg);
        return false;
    }
    return true;
}

function isWhiteSpace(s) {
    var whitespace = " \t\n\r";
    var x = '';
    for (i = 0; i < s.length; i++) {
        var c = s.charAt(i);
        if (whitespace.indexOf(c) == -1) {
            x += c
        }
    }
    return x.length == 0

}

function testEmail(src) {
    var re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/
    if (!src.match(re)) {
        return (false);
    } else {
        return (true);
    }
}

function ValidateRegistrationForm() {
    var FirstName = document.getElementById('FirstName');
    var LastName = document.getElementById('LastName');
    var Email = document.getElementById('Email');
    var msg = '';

    if (isWhiteSpace(FirstName.value)) {
        msg += 'First Name\n';
    }
    if (isWhiteSpace(LastName.value)) {
        msg += 'Last Name\n';
    }

    if (!testEmail(Email.value)) {
        msg += 'Email';
    }

    if (msg.length > 0) {
        alert('Please check the following\n' + msg);
        return false;
    }
    return true;
}



function ValidateSunshineRegistrationForm() {
    var TeamName = document.getElementById('TeamName');
    var FirstName = document.getElementById('FirstName');
    var LastName = document.getElementById('LastName');
    var Email = document.getElementById('Email');
    var Address1 = document.getElementById("Address1");
    var Address2 = document.getElementById("Address2");
    var City = document.getElementById("City");
    var State = document.getElementById("State");
    var Zip = document.getElementById("Zip");
    var AreaCode = document.getElementById("AreaCode");
    var Exchange = document.getElementById("Exchange");
    var PhoneNumber = document.getElementById("PhoneNumber");
    var Month = document.getElementById("Month");
    var Day = document.getElementById("Day");
    var Year = document.getElementById("Year");
    var EmergencyContactName = document.getElementById("EmergencyContactName");
    var Relation = document.getElementById("Relation");
    var EmerContactAreaCode = document.getElementById("EmerContactAreaCode");
    var EmerContactExchange = document.getElementById("EmerContactExchange");
    var EmerContactPhoneNumber = document.getElementById("EmerContactPhoneNumber");
    var Signature = document.getElementById("Signature");
    var RetUrl = document.getElementById("return");
    var DateSigned = document.getElementById("CurrentDate");
    var RegisteredFor = document.getElementById("os0");
    var ItemName = document.getElementById("item_name");
    var ShirtSize = document.getElementById("ShirtSize");
    
    
    var Querystring = '';

    var msg = '';

    if (isWhiteSpace(FirstName.value)) {
        msg += 'First Name\n';
        Querystring += '&FirstName='
    } else {
        Querystring += '&FirstName=' + FirstName.value
    }

    if (isWhiteSpace(LastName.value)) {
        msg += 'Last Name\n';
        Querystring += '&LastName='
    } else {
        Querystring += '&LastName=' + LastName.value
    }

    if (isWhiteSpace(Address1.value)) {
        msg += 'Address\n';
        Querystring += '&Address1='
    } else {
        Querystring += '&Address1=' + Address1.value
    }

    if (isWhiteSpace(Address2.value)) {
        Querystring += '&Address2='
    } else {
        Querystring += '&Address2=' + Address2.value
    }


    if (isWhiteSpace(City.value)) {
        msg += 'City\n';
        Querystring += '&City='
    } else {
        Querystring += '&City=' + City.value
    }



    if (isWhiteSpace(State.value)) {
        msg += 'State\n';
        Querystring += '&State='
    } else {
        Querystring += '&State=' + State.value
    }

    if (isWhiteSpace(Zip.value)) {
        msg += 'Zip\n';
        Querystring += '&Zip='
    } else {
        Querystring += '&Zip=' + Zip.value
    }

    if (isWhiteSpace(TeamName.value)) {
        Querystring += '&TeamName='
    } else {
        Querystring += '&TeamName=' + TeamName.value
    }

    if (!testEmail(Email.value)) {
        msg += 'Email\n';
        Querystring += '&Email='
    } else {
        Querystring += '&Email=' + Email.value
    }


    if (!CheckPhone(AreaCode.value, Exchange.value, PhoneNumber.value)) {
        Querystring += '&Phone='
    } else {
        Querystring += '&Phone=' + AreaCode.value + Exchange.value + PhoneNumber.value
    }


    if (!CheckPhone(EmerContactAreaCode.value, EmerContactExchange.value, EmerContactPhoneNumber.value)) {
        msg += 'A valid emergency contact phone\n';
        Querystring += '&EmerContactPhone='
    } else {
        Querystring += '&EmerContactPhone=' + EmerContactAreaCode.value + EmerContactExchange.value + EmerContactPhoneNumber.value
    }

    if (!isValidDate((Month.value + '/' + Day.value + '/' + Year.value), "MDY")) {
        msg += 'a valid date of birth\n';
        Querystring += '&Birthdate='
    } else {
        Querystring += '&Birthdate=' + Month.value + '/' + Day.value + '/' + Year.value
    }

    if (isWhiteSpace(EmergencyContactName.value)) {
        msg += 'Emergency contact name\n';
        Querystring += '&EmergencyContactName='
    } else {
        Querystring += '&EmerContactName=' + EmergencyContactName.value
    }

    if (isWhiteSpace(Relation.value)) {
        Querystring += '&Relation='
    } else {
        Querystring += '&Relation=' + Relation.value
    }

    if (isWhiteSpace(Signature.value)) {
        msg += 'please enter your signature\n';
        Querystring += '&Signature='
    } else {
        Querystring += '&Signature=' + Signature.value
    }

    if (isWhiteSpace(DateSigned.value)) {
        var d = new Date();
        Querystring += '&CurrentDate=' + d.getDate();
    } else {
        Querystring += '&CurrentDate=' + DateSigned.value
    }

    if (isWhiteSpace(RegisteredFor.value)) {
        Querystring += '&RegisteredFor='
    } else {
        Querystring += '&RegisteredFor=' + RegisteredFor.value
    }

    if (isWhiteSpace(ShirtSize.value) || ShirtSize.selectedIndex < 1 ) {
        msg += 'Shirt Size\n';
        Querystring += '&ShirtSize='
    } else {
        Querystring += '&ShirtSize=' + ShirtSize.value
    }


    if (msg.length > 0) {
        alert('Please check the following\n' + msg);
        return false;
    }
    if (ItemName) {
        ItemName.value = RegisteredFor.value
    }
    RetUrl.value = 'http://www.teamstormriders.com/thanks.asp?params=1' + Querystring;
    return true;
}




function ValidateSunshineDonationForm() {
    
    var FirstName = document.getElementById('FirstName');
    var LastName = document.getElementById('LastName');
    var Email = document.getElementById('Email');
    var Address1 = document.getElementById("Address1");
    var Address2 = document.getElementById("Address2");
    var City = document.getElementById("City");
    var State = document.getElementById("State");
    var Zip = document.getElementById("Zip");
    var AreaCode = document.getElementById("AreaCode");
    var Exchange = document.getElementById("Exchange");
    var PhoneNumber = document.getElementById("PhoneNumber");
    
    var RetUrl = document.getElementById("return");
    
    var Querystring = '';

    var msg = '';

    if (isWhiteSpace(FirstName.value)) {
        msg += 'First Name\n';
        Querystring += '&FirstName='
    } else {
        Querystring += '&FirstName=' + FirstName.value
    }

    if (isWhiteSpace(LastName.value)) {
        msg += 'Last Name\n';
        Querystring += '&LastName='
    } else {
        Querystring += '&LastName=' + LastName.value
    }

    if (isWhiteSpace(Address1.value)) {
        msg += 'Address\n';
        Querystring += '&Address1='
    } else {
        Querystring += '&Address1=' + Address1.value
    }

    if (isWhiteSpace(Address2.value)) {
        Querystring += '&Address2='
    } else {
        Querystring += '&Address2=' + Address2.value
    }


    if (isWhiteSpace(City.value)) {
        msg += 'City\n';
        Querystring += '&City='
    } else {
        Querystring += '&City=' + City.value
    }


    if (isWhiteSpace(State.value)) {
        msg += 'State\n';
        Querystring += '&State='
    } else {
        Querystring += '&State=' + State.value
    }

    if (isWhiteSpace(Zip.value)) {
        msg += 'Zip\n';
        Querystring += '&Zip='
    } else {
        Querystring += '&Zip=' + Zip.value
    }


    if (!testEmail(Email.value)) {
        msg += 'Email\n';
        Querystring += '&Email='
    } else {
        Querystring += '&Email=' + Email.value
    }


    if (!CheckPhone(AreaCode.value, Exchange.value, PhoneNumber.value)) {
        Querystring += '&Phone='
    } else {
        Querystring += '&Phone=' + AreaCode.value + Exchange.value + PhoneNumber.value
    }

    if (msg.length > 0) {
        alert('Please check the following\n' + msg);
        return false;
    }
    
    RetUrl.value = 'http://www.teamstormriders.com/donationthanks.asp?params=2' + Querystring;
    return true;
}


function CheckPhone(Part1, Part2, Part3) {
    var tmpPhone = '';
    if (!isWhiteSpace(Part1)) {
        tmpPhone += Part1;
    }
    if (!isWhiteSpace(Part2)) {
        tmpPhone += Part2;
    }
    if (!isWhiteSpace(Part3)) {
        tmpPhone += Part3;
    }
    if ((isWhiteSpace(tmpPhone)) || (tmpPhone.length != 10)) {
        return false;
    } else {
        return true;
    }

}


//nice function: found at http://www.breakingpar.com/bkp/home.nsf/0/87256B280015193F87256C0800602A52
function isValidDate(dateStr, format) {
    if (format == null) { format = "MDY"; }
    format = format.toUpperCase();
    if (format.length != 3) { format = "MDY"; }
    if ((format.indexOf("M") == -1) || (format.indexOf("D") == -1) || (format.indexOf("Y") == -1)) {
        format = "MDY";
    }
    if (format.substring(0, 1) == "Y") { // If the year is first
        var reg1 = /^\d{2}(\-|\/|\.)\d{1,2}\1\d{1,2}$/
        var reg2 = /^\d{4}(\-|\/|\.)\d{1,2}\1\d{1,2}$/
    } else if (format.substring(1, 2) == "Y") { // If the year is second
        var reg1 = /^\d{1,2}(\-|\/|\.)\d{2}\1\d{1,2}$/
        var reg2 = /^\d{1,2}(\-|\/|\.)\d{4}\1\d{1,2}$/
    } else { // The year must be third
        var reg1 = /^\d{1,2}(\-|\/|\.)\d{1,2}\1\d{2}$/
        var reg2 = /^\d{1,2}(\-|\/|\.)\d{1,2}\1\d{4}$/
    }
    // If it doesn't conform to the right format (with either a 2 digit year or 4 digit year), fail
    if ((reg1.test(dateStr) == false) && (reg2.test(dateStr) == false)) { return false; }
    var parts = dateStr.split(RegExp.$1); // Split into 3 parts based on what the divider was
    // Check to see if the 3 parts end up making a valid date
    if (format.substring(0, 1) == "M") { var mm = parts[0]; } else {
        if (format.substring(1, 2) == "M") { var mm = parts[1]; } else { var mm = parts[2]; }
    }



    if (format.substring(0, 1) == "D") { var dd = parts[0]; } else {
        if (format.substring(1, 2) == "D") { var dd = parts[1]; } else { var dd = parts[2]; }
    }


    if (format.substring(0, 1) == "Y") { var yy = parts[0]; } else {
        if (format.substring(1, 2) == "Y") { var yy = parts[1]; } else { var yy = parts[2]; }
    }

    if (parseFloat(yy) <= 50) { yy = (parseFloat(yy) + 2000).toString(); }
    if (parseFloat(yy) <= 99) { yy = (parseFloat(yy) + 1900).toString(); }
    var dt = new Date(parseFloat(yy), parseFloat(mm) - 1, parseFloat(dd), 0, 0, 0, 0);
    if (parseFloat(dd) != dt.getDate()) { return false; }
    if (parseFloat(mm) - 1 != dt.getMonth()) { return false; }
    return true;
}


