$(document).ready(function() {
	var contactForm = new QCTContactForm();
	contactForm.init();
});
 
 
var QCTContactForm = function() {
	
	/* CLASS VARS */
	var isDebug = true;
	var valFirstName;
	var valLastName;
	var valCompanyName;
	var valJobName;		
	var valEmail;
	var valInquiry;
	var valIsLicensee;
	var valLicenseeID;	
	var valNotes;
	var valQcom;
		
	/* INIT */
	var init = function() {
		
		/* Pull-down events */
		$('#reason').change(function () {
			
			valInquiry = $("#reason option:selected").val();
			if (valInquiry == 'technical')
			{
				$('#lnum_group').stop().show().animate({backgroundColor:'#FFF'}, 2000);
				$('#lnum_group input').focus();
				
				$('#radio_group').stop().hide().css({backgroundColor:'#e5f3f8'});
			}
			else if (valInquiry == 'sales')
			{
				$('#lnum_group').stop().hide().css({backgroundColor:'#e5f3f8'});
				$('#radio_group').stop().show().animate({backgroundColor:'#FFF'}, 2000);
				
				$('input[name=is_licensee]').attr('checked', '');
			}
			else
			{
				$('#lnum_group').stop().hide().css({backgroundColor:'#e5f3f8'});
				$('#radio_group').stop().hide().css({backgroundColor:'#e5f3f8'});
			}
   	});
		
		
		/* Radio button events */
		$('input[name=is_licensee]').click(function () {
			$(this).blur();
		});
		
		$('input[name=is_licensee]').blur(function () {
				
				var radioVal = $('input[name=is_licensee]:checked').val();
				if (radioVal == 'yes')
				{
					$('#lnum_group').stop().show().animate({backgroundColor:'#FFF'}, 2000);
					$('#lnum_group input').focus();
				}
				else
				{
					$('#lnum_group').stop().hide().css({backgroundColor:'#e5f3f8'});
				}
				
		});
		
		/* Submit button events */
		$('#contact_form_submit').click( function() {
		
			if (checkForm()) {
				
				$("#contact_form_submit").attr("class","btn-disabled");
				$("#contact_form_submit span").text("Submitting");
				$("#submit_spinner").show();
				

				
				$.ajax({
		   	type: "POST",  
		   	url: "/cgi-bin/qct_contact_mime.pl",  
		   	data: 'name=' + valFirstName + ' ' + valLastName + '&company=' + valCompanyName + '&job=' + valJobName + '&email=' + valEmail + '&reason=' + valInquiry + '&notes=' + valNotes + '&is_licensee=' + valIsLicensee + '&licensee_id=' + valLicenseeID+ '&qcom_shareholder=' + valQcom,
		   	success: function(data)
				{  
		   						
					if(parseInt(data) == 1)
					{
						$('#contactform').hide();
						$('#form_thankyou').show();
					}
					else
					{
						$('#contactform').hide();
						$('#form_thankyou').show();
					}
		   	}
		   	
		   	});
				
				
			
			}
						
			return false;
		});

		
		
		
	}
	this.init = init;
	
	
	var checkForm = function() {
		
		var isValid = false;
		var firstNameValid = false;
		var lastNameValid = false;
		var companyValid = false;
		var jobValid = false;
		var emailValid = false;
		var notesValid = false;
		var inquiryValid = false;
		var qcomValid = false;
	
	
		/* First name validation */
		valFirstName = $('#name_first').val().trim();
		if(valFirstName && valFirstName.length>0) {
			firstNameValid = true;
			$('#group_name_first').removeClass('req');
		} else {
			$('#group_name_first').addClass('req');
		}
		
		/* Last name validation */
		valLastName = $('#name_last').val().trim();
		if(valLastName && valLastName.length>0) {
			lastNameValid = true;
			$('#group_name_last').removeClass('req');
		} else {
			$('#group_name_last').addClass('req');
		}
		
		/* Company name validation */
		valCompanyName = $('#name_company').val().trim();
		if(valCompanyName && valCompanyName.length>0) {
			companyValid = true;
			$('#group_company').removeClass('req');
		} else {
			$('#group_company').addClass('req');
		}
		
		/* Job name validation */
		valJobName = $('#job_title').val().trim();
		if(valJobName && valJobName.length>0) {
			jobValid = true;
			$('#group_job').removeClass('req');
		} else {
			$('#group_job').addClass('req');
		}
		
		/* Email validation */
		valEmail = $('#contact_email').val().trim();
		var validTest = valEmail.validate_email();
		if(valEmail && valEmail.length>0 && validTest) {
			emailValid = true;
			$('#group_email').removeClass('req');
		} else {
			$('#group_email').addClass('req');
		}
		
		/* Notes validation */
		valNotes = $('#contact_notes').val().trim();
		if(valNotes && valNotes.length>0) {
			notesValid = true;
			$('#group_notes').removeClass('req');
		} else {
			$('#group_notes').addClass('req');
		}
		
		/* Reason validation */
		valInquiry = $("#reason option:selected").val().trim();
																
		if (valInquiry && valInquiry.length>0) {

			if (valInquiry == 'technical') {

				valLicenseeID = $("#licensee_id").val().trim();
				if (valLicenseeID && valLicenseeID.length>0) {
					inquiryValid = true;
					$('#lnum_group').removeClass('req');
				} else {
					inquiryValid = false;
					$('#lnum_group').addClass('req');
				}

			} else if (valInquiry == 'sales') {
				valIsLicensee = $('input[name=is_licensee]:checked').val();
				if (valIsLicensee == 'yes') {
					valLicenseeID = $("#licensee_id").val().trim();
					if (valLicenseeID && valLicenseeID.length>0) {
						inquiryValid = true;
						$('#lnum_group').removeClass('req');						
					} else {
						inquiryValid = false;
						$('#lnum_group').addClass('req');												
					}
				} else if (valIsLicensee == 'no') {
					inquiryValid = true;
					$('#radio_group').removeClass('req');
				} else {
					inquiryValid = false;
					$('#radio_group').addClass('req');
				}
			} else {
				inquiryValid = true;
				$('#select_group').removeClass('req');

			}
		} else {
			inquiryValid = false;
			

		}

		valQcom = $('input[name=qcom_shareholder]:checked').val();
		if ((valQcom == 'yes') || (valQcom == 'no')) {
			qcomValid = true;
			$('#radio_qcom').removeClass('req');
		} else {
			qcomValid = false;
			$('#radio_qcom').addClass('req');
		}

		// Check validity
		if (firstNameValid && lastNameValid && emailValid && companyValid && jobValid && notesValid && inquiryValid && qcomValid) {
			isValid = true;
		}
	
		return isValid;
	}
	this.checkForm = checkForm;
}

String.prototype.trim = function() {
	return this.replace(/^\s+|\s+$/g, '').replace(/\s{2,}/g, ' ');
};

String.prototype.validate_email = function(string) {
	return this.search(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/) != -1;
};

String.prototype.removeSemis = function() {
  // remove semicolons and &
  noSemis = /[\;|\&]/ig; 
  return this.replace(noSemis,''); 	
}