$(document).ready(function() { // when the document has loaded
	
	$('.tw-text').val('');
	$('.tw-submit input').removeAttr('disabled');
	
	$('.tw-text').focus(function() {
		if ($(this).val() == '') {
			$(this).parent().children('label').hide();
		}
	});
	
	$('.tw-text').blur(function() {
		if ($(this).val() == '') {
			$(this).parent().children('label').show();
		}
	});
	
	$('#txtwire-form').submit(function() { // when the user submits the textwire form
		
		// get values
		first_name = $('#first-name-field').val();
		last_name = $('#last-name-field').val();
		phone = $('#phone-field').val();
		email = $('#email-field').val();
		
		error_message = ''; // blank error message
		
		// validate first name
		if (first_name == '') {
			error_message += 'You must enter your first name.<br />';
			$('#first-name-field').addClass('tw-field-error');
		} else {
			$('#first-name-field').removeClass('tw-field-error');
		}
		
		// validate last name
		if (last_name == '') {
			error_message += 'You must enter your last name.<br />';
			$('#last-name-field').addClass('tw-field-error');
		} else {
			$('#last-name-field').removeClass('tw-field-error');
		}
		
		// validate has email and/or phone
		if (phone == '' && email == '') {
			error_message += 'You must enter a mobile phone or email address.<br />';
			$('#phone-field').addClass('tw-field-error');
			$('#email-field').addClass('tw-field-error');
		
		// check to see if phone and/or email is valid
		} else {
			$('#phone-field').removeClass('tw-field-error');
			$('#email-field').removeClass('tw-field-error');
			
			pre_len = phone.length;
			phone = phone.replace(/\D/g,'');
			if (phone.length == 7 && pre_len != 0) {
				error_message += 'The mobile phone number must have an area code.<br />';
				$('#phone-field').addClass('tw-field-error');
			} else if (phone.length != 10 && pre_len != 0) {
				error_message += 'The mobile phone number you entered is not valid.<br />';
				$('#phone-field').addClass('tw-field-error');	
			}
			
			valid_email = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
			if (!valid_email.test(email) && email != '') {
				error_message += 'The email address you entered is not valid.<br />';
				$('#email-field').addClass('tw-field-error');
			}
		}
		
		// validate at lease one group is selected
		groups = [];
		count = 0;
		$('.tw-checkboxes input').each(function() {
			if ($(this).attr('checked')) {
				groups[count] = $(this).val();
				count++;
			}
		});		
		if (groups.length == 0) {
			error_message += 'You must check at least one group to subscribe to.<br />';
		}
		
		// if error message is not blank, display errors
		if (error_message != '') {
			$('#tw-error-message').html(error_message).fadeIn(200);
			return false;
		
		// if no errors post data and get response from server
		} else {
			$('.tw-submit input').attr('disabled', 'disabled').val('Please wait');
			url = 'ajax_proxy.php';
			data = 'csurl=http://www.txtwire.com/widgets/newWidgetFunctions.php&method=SUB&phone='+phone+'&email='+email+'&nodes='+groups.join(',')+'&fname='+first_name+'&lname='+last_name;
			$.post(url, data, function(data) {
			
				$('.tw-submit input').removeAttr('disabled').val('Submit');
				alert('data');
				
			});
		}
		
		return false; // don't submit form
	
	});
	
});

/*
if (document.getElementById("firstName").value.length == 0) {
					alert('Please provide a first name');
					return;
				}
				if (document.getElementById("lastName").value.length == 0) {
					alert('Please provide a last name');
					return;
				}
				var phoneNumber = null;
		var emailAddress = null;
		var landLineNumber = null;
		if (document.getElementById("widgetMobileNumber").value.length == 0) {
			alert('Please enter in mobile phone number or email address');
			return;
		}
		else {
			var phone = document.getElementById("widgetMobileNumber").value;
			phone = phone.replace(/-/g,"");
			phone = phone.replace(/\./g,"");
			phone = phone.replace(/\(/g,"");
			phone = phone.replace(/\)/g,"");
			phone = phone.replace(/ /g,"");
			if (isNumeric(phone) && phone.length == 10) {
				phoneNumber = phone; 
			}
			else if (emailCheck(document.getElementById("widgetMobileNumber").value)) {
				emailAddress = document.getElementById("widgetMobileNumber").value;
			}
		}
		
		if (document.getElementById("widgetLandLineNumber") != null && document.getElementById("widgetLandLineNumber").value.length > 0) {
			var phone = document.getElementById("widgetLandLineNumber").value;
			phone = phone.replace(/-/g,"");
			phone = phone.replace(/\./g,"");
			phone = phone.replace(/\(/g,"");
			phone = phone.replace(/\)/g,"");
			phone = phone.replace(/ /g,"");
			if (isNumeric(phone) && phone.length == 10) {
				landLineNumber = phone; 
			}
			else {
				alert('Please enter in a valid land-line phone number');
				return;
			}
		}
		
		if (phoneNumber == null && emailAddress == null) {
			alert("Please enter in a valid phone number of email address");
			return;
		}

		xmlHttp=GetXmlHttpObject();
	 	if (xmlHttp==null) {
			alert ("Browser does not support HTTP Request");
			return;
		}

		var url="/ajax/widgetSubscribe.php";
		url=url+"?isid="+Math.random();
		url=url+"?tx=1";
		if (phoneNumber != null)
			url=url+"&phone="+phoneNumber;
		if (emailAddress != null)
			url=url+"&email="+emailAddress;
		if (landLineNumber != null)
			url=url+"&landLine="+landLineNumber;
		if(document.getElementById("firstName").value.length > 0 &&
			document.getElementById("lastName").value.length > 0) {
			url=url+"&fname="+document.getElementById("firstName").value;
			url=url+"&lname="+document.getElementById("lastName").value;
		}
		if(document.getElementById("customField").value.length > 0) {
			url=url+"&custom="+document.getElementById("customField").value;
		}
		url=url+"&code="+document.getElementById("widgetCode").value;
		var urlEnd = "";
		if (document.getElementById("privateNode").value.length > 0)
			urlEnd=urlEnd+"&privateCode=" + document.getElementById("privateNode").value;
		for (var i=0; i<document.getElementsByTagName('*').length; i++) {
			if (document.getElementsByTagName('*')[i].id.substring(0,12) == 'nodecheckBox') {
				if (document.getElementById(document.getElementsByTagName('*')[i].innerHTML) != null && document.getElementById(document.getElementsByTagName('*')[i].innerHTML).checked) {
					urlEnd=urlEnd+"&node"+i+"="+document.getElementsByTagName('*')[i].innerHTML.substring(4);
				}
			}
		}

		if (urlEnd.length == 0) {
			alert ("You did not select any nodes to subscribe to");
			return;
		}
		else {
			url += urlEnd;
			xmlHttp.onreadystatechange=subscribeReturn;
			xmlHttp.open("GET",url,true);
			xmlHttp.send(null);
		}
	}

	function subscribeReturn() {
		if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete") {
			xmlDoc=xmlHttp.responseXML;
			if (xmlDoc.getElementsByTagName("widgetSubscribeStatus")[0].childNodes[0].nodeValue == 0) {
				alert(xmlDoc.getElementsByTagName("message")[0].childNodes[0].nodeValue);
			}
			else {
				alert('Thank you for subscribing!');
			}
		}
	}*/