function getXMLHttpThing() {
    if(window.XMLHttpRequest) {
        return new XMLHttpRequest();
    } else if(window.ActiveXObject) {
        return new ActiveXObject("Microsoft.XMLHTTP");
    }
    return false;
}

function submit_reg() {
    var checkbox = document.getElementById('accept');
    if(! checkbox.checked) {
	alert('You must check the terms and conditions checkbox');
	return;
    }

    var fname_field = document.getElementById('first-name');
    var fname = fname_field.value;
    var fname_label = document.getElementById('first-name-label');
    
    var lname_field = document.getElementById('last-name');
    var lname = lname_field.value;
    var lname_label = document.getElementById('last-name-label');

    var email_field = document.getElementById('email');
    var email = email_field.value;
    var email_label = document.getElementById('email-label');

    var ref = document.getElementById('ref').value;

    var phone = document.getElementById('phone').value;

    if(! fname || ! lname || ! email) {
	if(! fname) {
	    fname_label.className = 'miss-vis-content-error';
	} else {
	    fname_label.className = '';
	}

	if(! lname) {
	    lname_label.className = 'miss-vis-content-error';
	} else {
	    lname_label.className = '';
	}

	if(! email) {
	    email_label.className = 'miss-vis-content-error';
	} else {
	    email_label.className = '';
	}
	alert('Your first name, last name, & email are required to register for the contest. Phone number is optional, but will be used as a method to contact you if you win.');
	return;
    }


    //todo: validate phone number, throw error if phone is provided, but not valid

/*
    var friend_emails_field = document.getElementById('friends-emails');
    var friend_emails = friend_emails_field.value;
    var friend_emails_label = document.getElementById('friends-emails-label');

    var invalid_emails_div = document.getElementById('invalid-emails-div');
*/

    var http = getXMLHttpThing();
    if(! http) {
	alert('Please use a browser that supports Javascript');
	return;
    }

    http.open('GET', '/mil_submit2.php?fname='+fname+'&lname='+lname+'&email='+email+'&phone='+phone+"&ref="+ref, false);
    http.send(null);

    
    var retval = eval('('+http.responseText+')');

    // response will be 1 if success, otherwise it will be a data-
    // structure containing all the error fields and valid fields
    if(retval != 1) {
	// handle email field
	if(retval.errors.email) {
	    email_label.className = 'miss-vis-content-error';
	    email_field.value = '';
	} else {
	    email_label.className = '';
	}

	// handle first name field
	if(retval.errors.fname) {
	    fname_label.className = 'miss-vis-content-error';
	    fname_field.value = '';
	} else {
	    fname_label.className = '';
	}

	// handle last name field
	if(retval.errors.lname) {
	    lname_label.className = 'miss-vis-content-error';
	    lname_field.value = '';
	} else {
	    lname_label.className = '';
	}

	/*
	// handle friend emails field
	if(retval.inputs.emails.length == 0) {
	    friend_emails_label.className = 'miss-vis-content-error';
	} else {
	    friend_emails_label.className = '';
	}
	friend_emails_field.value = retval.inputs.emails.join(',');
        

	// handle invalid friend emails field
	if(retval.errors.emails) {
	    var invalid_emails_field = document.getElementById('invalid-emails');
	    
	    invalid_emails_field.value = retval.errors.emails.join("\n");
 	    invalid_emails_div.style.visibility = "";
	    invalid_emails_div.style.display = "";
	 
	    
	} else {
	    invalid_emails_div.style.visibility = 'hidden';
	    invalid_emails_div.style.display = 'none';
	}
	*/

	if(retval.errors.email) {
	    alert('Please enter a valid email address');
//	} else if(retval.errors.emails) {
//	    alert('Please enter valid emails seperated by a comma');
	} else {
	    alert('there were errors');
	}
	
    } else {
	// success, clear all red field labels and the friends email list
	fname_label.className = '';
	lname_label.className = '';
	email_label.className = '';
	//friend_emails_label.className = '';
	//friend_emails_field.value = '';
	//invalid_emails_div.style.visibility = 'hidden';
	//invalid_emails_div.style.display = 'none';

	fire_leightbox('leightbox44');

    }
}
