/*
* Children4Change Form.js
* The purpose of this script is to validate data and provide form interactivity
*
* Author:
*	Greg Woods
* gregwoods01@gmail.com
* True Blue Technologies
*/

/*
*	Checks a field and provides appropriate class for stying
*/
function rqCheckField(fieldToCheck){
	var valid = isValid(fieldToCheck);
	if(valid){
		$(fieldToCheck).addClass("valid").removeClass("invalid");
	} else {
		$(fieldToCheck).addClass("invalid").removeClass("valid");
	}
	return valid;
}

/* 
* Checks field value against a regular expression and returns true or false 
*/
function isValid(fieldToCheck){
	var valid = new Boolean(true);
	var myReg = new String("");
	switch(fieldToCheck.name){
		case "fName":
		case "lName":
		case "child1":
			myReg = /^[a-zA-Z0-9_\-\s\.]+$/;
			break;
		case 'email':
			myReg = /^([\w\.\-])+\@(([\w\-])+\.)+([\w\-]{2,4})+$/;
			break;
		case 'zip':
			myReg = /^([0-9]{5})$/gi;
			break;
		case 'phone':
			myReg = /^.?[0-9]{3}.?.?[0-9]{3}.?[0-9]{4}$/
			break;
		default:
			//child 2, 3, 4, etc should default to this.
			myReg = /^([a-zA-Z0-9_\-\s\.]+){0,1}$/gi;
			break;	
	}
	if(fieldToCheck.value.search(myReg) == -1){
		valid = false;
	}
	return valid;
}

$(document).ready(function(){

	//Bind blur event to all input text fields
	$('form#signature input[type="text"]').bind("blur", function(){
		rqCheckField(this);
	});
	//Bind change and keyup events, but only trigger it if the field is invalid
	//In other words, "innocent till proven guilty"
	$('form#signature input[type="text"]').bind("change keyup", function(){
		if($(this).hasClass('invalid')){
			rqCheckField(this);
		}
	});
	
	/* Signature Preview Function */
	$('a.pThickBox').click(function(event){
		event.preventDefault();
		var child = "";
		var myCount = $('.childinput').size();
		$('.childinput').each(function(){
			myCount--;
			child += $(this).val();
			if(myCount == 1){ child += " &amp; "; }
			if(myCount > 1){ child += ", "; }
		});
		var content = '<table class="signatures"><tr><th></th><th>Name</th><th>Child Represented</th><th>Zip</th></tr><tr><td>1.</td>';
		content += "<td>"+$('#fName').val()+" "+$('#lName').val()+"</td>";
		content += "<td>"+child+"</td>";
		content += "<td>"+$('#zip').val()+"</td>";
		content += "</tr></table>";
		$('#sigPreview').html(content);
		tb_show("Signature Preview", '#TB_inline?height=100&width=725&inlineId=sigPreview');
	});
	
	/* Child adder function */
	var childCounter = 1;
	$('a#addChild').click(function($e){
 		$e.preventDefault();
 		childCounter++;
    $('tr.childrow:first')
    	.clone(true)
    	.removeAttr('id')
    	.appendTo('form#signature tbody')
    	.find('input')
    	.attr('name', 'child'+childCounter)
    	.val('')
    	.removeClass('valid')
    	.removeClass('invalid'); 
  });
});