function limitTextArea(field, cntLen, maxLen, cntLines, maxLines) {
	var arrLines;
	
    if (field.value.length > maxLen) {
       field.value = field.value.substring(0, maxLen);
    }
    else {
        cntLen.value = maxLen - field.value.length;
    }
	
    if(field.value.split(/\r\n|\r|\n/).length > maxLines) {
        arrLines = field.value.split(/\r\n|\r|\n/);
		
        field.value = arrLines[0];

        for(i=1;i<maxLines;i++) {
            field.value += "\r\n";
            field.value += arrLines[i];
        }
    }
    else {
        cntLines.value = maxLines - field.value.split(/\r\n|\r|\n/).length;
    }
}

function checkHTML(field) {
    var re= /<\S[^><]*>/g;
    
    if( re.test(field.value)) {
        field.value = field.value.replace(re, "");
        alert('Dont use HTML tags.');
        field.focus();
        return false;
    }
}

function stripHTML(){
    var re= /<\S[^><]*>/g;
    
    for(i=0; i<arguments.length; i++) {
    	  while( /<\S[^><]*>/.test(arguments[i].value)) {
            arguments[i].value = arguments[i].value.replace(re, "");
        }
    }
}

function checkForm() {
    var cnameFirst,
        cnameLast,
        cemail,
        cgender,
        cnationality,
        caddressHome,
        cphoneHome,
        cphoneWireless,
        ccontactEmergency,
        ctypeBlood,
        cglider,
        cgliderDhv,
        cgliderColor,
        csponsor,
        cgps,
        cidUshga,
        cexpUshga,
        crating,
        cidFai,
        ctshirt;

    with(window.document.registerform) {
        cnameFirst        = nameFirst;
        cnameLast         = nameLast;
        cemail            = email;
        cgender           = gender;
        cnationality      = nationality;
        caddressHome      = addressHome;
        cphoneHome        = phoneHome;
        cphoneWireless    = phoneWireless;
        ccontactEmergency = contactEmergency;
        ctypeBlood        = typeBlood;
        cglider           = glider;
        cgliderDhv        = gliderDhv;
        cgliderColor      = gliderColor;
        csponsor          = sponsor;
        cgps              = gps;
        cidUshga          = idUshga;
        cexpUshga         = expUshga;
        crating           = rating;
        cidFai            = idFai;
        ctrshirt          = tshirt;
    }

    stripHTML(cnameFirst, cnameLast, cemail, cgender, cnationality, caddressHome, cphoneHome, cphoneWireless, ccontactEmergency, ctypeBlood, cglider, cgliderDhv, cgliderColor, csponsor, cgps, cidUshga, cexpUshga, crating, cidFai, ctrshirt);
    
    if(trim(cnameFirst.value) == '') {
        alert('Please enter your first name.');
        cnameFirst.focus();
        return false;
    }
    else if(trim(cnameLast.value) == '') {
        alert('Please enter your last name.');
        cnameLast.focus();
        return false;
    }
    else if(trim(cemail.value) == '') {
        alert('Please enter your email address.');
        cemail.focus();
        return false;
    }
    else if(!isEmail(trim(cemail.value))) {
        alert('Your email address is not valid.');
        cemail.focus();
        return false;
    }
    else if(trim(cgender.value) == '--') {
        alert('Please select your gender.');
        cgender.focus();
        return false;
    }
    else if(trim(cnationality.value) == '---') {
        alert('Please select your nationality.');
        cnationality.focus();
        return false;
    }
    else if(trim(caddressHome.value) == '') {
        alert('Please enter your home address.');
        caddressHome.focus();
        return false;
    }
    else if(trim(cphoneHome.value) == '') {
        alert('Please enter your home phone number, or NONE.');
        cphoneHome.focus();
        return false;
    }
    else if(trim(cphoneWireless.value) == '') {
        alert('Please enter your wireless phone number, or NONE.');
        cphoneWireless.focus();
        return false;
    }
    else if(trim(ccontactEmergency.value) == '') {
        alert('Please enter your emergency contact details.');
        ccontactEmergency.focus();
        return false;
    }
    else if(trim(ctypeBlood.value) == '') {
        alert('Please enter enter your blood type.');
        ctypeBlood.focus();
        return false;
    }
    else if(trim(cglider.value) == '') {
        alert('Please enter your glider make and model.');
        cglider.focus();
        return false;
    }
    else if(trim(cgliderDhv.value) == '') {
        alert('Please enter your glider DHV rating.');
        cgliderDhv.focus();
        return false;
    }
    else if(trim(cgliderColor.value) == '') {
        alert('Please enter your glider color.');
        cgliderColor.focus();
        return false;
    }
    else if(trim(cgps.value) == '') {
        alert('Please enter your GPS make and model.');
        cgps.focus();
        return false;
    }
    else if(trim(crating.value) == '') {
        alert('Please enter your USHGA rating or IPPI level.');
        crating.focus();
        return false;
    }
    else if(trim(ctshirt.value) == '--') {
        alert('Please select your T-shirt size.');
        ctshirt.focus();
        return false;
    }
    else {
        cnameFirst.value        = trim(cnameFirst.value);
        cnameLast.value         = trim(cnameLast.value);
        cemail.value            = trim(cemail.value);
        cgender.value           = trim(cgender.value);
        cnationality.value      = trim(cnationality.value);
        caddressHome.value      = trim(caddressHome.value);
        cphoneHome.value        = trim(cphoneHome.value);
        cphoneWireless.value    = trim(cphoneWireless.value);
        ccontactEmergency.value = trim(ccontactEmergency.value);
        ctypeBlood.value        = trim(ctypeBlood.value);
        cglider.value           = trim(cglider.value);
        cgliderDhv.value        = trim(cgliderDhv.value);
        cgliderColor.value      = trim(cgliderColor.value);
        csponsor.value          = trim(csponsor.value);
        cgps.value              = trim(cgps.value);
        cidUshga.value          = trim(cidUshga.value);
        cexpUshga.value         = trim(cexpUshga.value);
        crating.value           = trim(crating.value);
        cidFai.value            = trim(cidFai.value);
        ctshirt                 = trim(ctshirt.value);
        
        return true;
    }
}

function trim(str) {
    return str.replace(/^\s+|\s+$/g,'');
}

function isEmail(str) {
    var regex = /^[-_.a-z0-9]+@(([-_a-z0-9]+\.)+(ad|ae|aero|af|ag|ai|al|am|an|ao|aq|ar|arpa|as|at|au|aw|az|ba|bb|bd|be|bf|bg|bh|bi|biz|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|com|coop|cr|cs|cu|cv|cx|cy|cz|de|dj|dk|dm|do|dz|ec|edu|ee|eg|eh|er|es|et|eu|fi|fj|fk|fm|fo|fr|ga|gb|gd|ge|gf|gh|gi|gl|gm|gn|gov|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|in|info|int|io|iq|ir|is|it|jm|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|mg|mh|mil|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|museum|mv|mw|mx|my|mz|na|name|nc|ne|net|nf|ng|ni|nl|no|np|nr|nt|nu|nz|om|org|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|pro|ps|pt|pw|py|qa|re|ro|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|st|su|sv|sy|sz|tc|td|tf|tg|th|tj|tk|tm|tn|to|tp|tr|tt|tv|tw|tz|ua|ug|uk|um|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|yu|za|zm|zw)|(([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5])\.){3}([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5]))$/i;

    return regex.test(str);
}