function sendForm() {
	var fname = document.getElementById('fname');
	var lname = document.getElementById('lname');
	var email = document.getElementById('email');
	var zip = document.getElementById('zip');
	var _url = '/ajax-process-wsr-signup.php';
	var _data = '';

	if ( ! fname.value.length || fname.value.length < 3 ) {
		alert('Enter a valid first name');
		return false;
	}
	if ( ! lname.value.length || lname.value.length < 3 ) {
		alert('Enter a valid last name');
		return false;
	}
	if ( ! email.value.length ) {
		alert('Enter a valid email address');
		return false;
	} else if ( ! email.value.match(/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/) ) {
		alert('Email address is invalid');
		return false;
	}
	if ( ! zip.value.length ) {
		alert('Enter a valid ZIP code');
		return false;
	} else if ( ! zip.value.match(/^\d{5}(-\d{4}){0,1}$/) ) {
		alert('ZIP code is invalid');
		return false;
	}

	_data = sprintf('fname=%s&lname=%s&email=%s&zip=%d',
		fname.value, lname.value, email.value, zip.value);
	
	$.ajax({
		type: 'post',
		url: _url,
		data: _data,
		success: function(msg) {
			$('#ejOutputDiv').html(msg);
			if ( msg.indexOf('ERROR') == -1 ) {
				$('#ejWSRForm').css({display: 'none'});
				$('#ejOutputDiv').css({display: 'block'});
			} else {
				$('#ejOutputDiv').css({color: 'red'});
				$('#ejOutputDiv').css({display: 'block'});
			}
		}
	});

	return true;
}

function sprintf()
{
   if (!arguments || arguments.length < 1 || !RegExp)
   {
      return '';
   }
   var str = arguments[0];
   var re = /([^%]*)%('.|0|\x20)?(-)?(\d+)?(\.\d+)?(%|b|c|d|u|f|o|s|x|X)(.*)/;
   var a = b = [], numSubstitutions = 0, numMatches = 0;
   while (a = re.exec(str))
   {
      var leftpart = a[1], pPad = a[2], pJustify = a[3], pMinLength = a[4];
      var pPrecision = a[5], pType = a[6], rightPart = a[7];

      numMatches++;
      if (pType == '%')
      {
         subst = '%';
      }
      else
      {
         numSubstitutions++;
         if (numSubstitutions >= arguments.length)
         {
            alert('Error! Not enough function arguments (' + (arguments.length - 1)
               + ', excluding the string)\n'
               + 'for the number of substitution parameters in string ('
               + numSubstitutions + ' so far).');
         }
         var param = arguments[numSubstitutions];
         var pad = '';
                if (pPad && pPad.substr(0,1) == "'") pad = leftpart.substr(1,1);
           else if (pPad) pad = pPad;
         var justifyRight = true;
                if (pJustify && pJustify === "-") justifyRight = false;
         var minLength = -1;
                if (pMinLength) minLength = parseInt(pMinLength);
         var precision = -1;
                if (pPrecision && pType == 'f')
                   precision = parseInt(pPrecision.substring(1));
         var subst = param;
         switch (pType)
         {
         case 'b':
            subst = parseInt(param).toString(2);
            break;
         case 'c':
            subst = String.fromCharCode(parseInt(param));
            break;
         case 'd':
            subst = parseInt(param) ? parseInt(param) : 0;
            break;
         case 'u':
            subst = Math.abs(param);
            break;
         case 'f':
            subst = (precision > -1)
             ? Math.round(parseFloat(param) * Math.pow(10, precision))
              / Math.pow(10, precision)
             : parseFloat(param);
            break;
         case 'o':
            subst = parseInt(param).toString(8);
            break;
         case 's':
            subst = param;
            break;
         case 'x':
            subst = ('' + parseInt(param).toString(16)).toLowerCase();
            break;
         case 'X':
            subst = ('' + parseInt(param).toString(16)).toUpperCase();
            break;
         }
         var padLeft = minLength - subst.toString().length;
         if (padLeft > 0)
         {
            var arrTmp = new Array(padLeft+1);
            var padding = arrTmp.join(pad?pad:" ");
         }
         else
         {
            var padding = "";
         }
      }
      str = leftpart + padding + subst + rightPart;
   }
   return str;
}



