

function ValidateForm (CurrentOrder) {
    
//***********************************************************************************
	// apply inline-box only for mozilla
	if( jQuery.browser.mozilla ) {
		// do when DOM is ready
		$( function() {
			// search form, hide it, search labels to modify, filter classes nocmx and error
			$( 'form.cmxform' ).hide().find( 'p>label:not(.nocmx):not(.error)' ).each( function() {
				var $this = $(this);
				var labelContent = $this.html();
				var labelWidth = document.defaultView.getComputedStyle( this, '' ).getPropertyValue( 'width' );
				// create block element with width of label
				var labelSpan = $("<span>")
					.css("display", "block")
					.width(labelWidth)
					.html(labelContent);
				// change display to mozilla specific inline-box
				$this.css("display", "-moz-inline-box")
					// remove children
					.empty()
					// add span element
					.append(labelSpan);
			// show form again
			}).end().show();
		});
	};
	$.metadata.setType("attr", "validate");
//***********************************************************************************
	jQuery.validator.addMethod("USphone", function(pnumber) {
	var stripped = pnumber.replace(/[\(\)\.\-\_ ]/g, '');
//	alert (stripped);
	if (isNaN(parseInt(stripped)) || !(stripped.length == 10)) {
		$('#phone_number').addClass('ui-state-error');
		return false;
	}else{
		$('#phone_number').removeClass('ui-state-error');
		return true;
	}
	}, "Enter a 10-digit phone number");
//***********************************************************************************
	jQuery.validator.addMethod("zipcode", function(pnumber) {
	var stripped = pnumber.replace(/[\(\)\.\-\_ ]/g, '');
//	alert (stripped);
	if (isNaN(parseInt(stripped)) || !(stripped.length == 5)) {
		$('#addr_zip').addClass('ui-state-error');
		return false;
	}else{
		$('#addr_zip').removeClass('ui-state-error');
		return true;
	}
	}, "Enter a 5-digit zipcode");
	
//***********************************************************************************
	var phonenum = $('#phone_number').mask("(999) 999-9999");
	var zipcode =  $("#addr_zip").mask("99999");
		

    var validator = $("#AdvertiseForm").validate({ 
        rules: { 
            first_name: {
				required: true,
				minlength: 2
			},
			last_name: {
				required: true,
				minlength: 2
			},
            company_name: {
				required: true,
				minlength: 2
			},
            email: { 
                required: true, 
                email: true
			},
			phone_number: {
				required: true,
				USphone: true
				
			},
			addr_street: {
				required: true,
				minlength: 2
			},
			addr_state: {
				required: true,
				minlength: 2
			},		
			addr_city: {
				required: true,
				minlength: 2
			},			
			addr_zip: {
				required: true,
				zipcode: true
			}
        }, 
        messages: { 
            first_name: "Enter your first name", 
            last_name: "Enter your last name", 
            company_name: "Enter your company name", 
            email: { 
                required: "Enter a valid email address", 
                minlength: "Enter a valid email address"
            },
			phone_number: {
				required: "Enter a 10-digit phone number"
			},
			addr_street: {
				required: "Enter your street address"
			},
			addr_city: {
				required: "Enter your city"
			},
			addr_state: {
				required: "Enter your state"
			},
			addr_zip: {
				required: "Enter 5-digit zipcode"
			}
			
        }, 
        // the errorPlacement has to take the table layout into account 
        errorPlacement: function(error, element) { 
			
            if ( element.is(":radio") ) 
                error.appendTo( element.parent().next().next() ); 
            else if ( element.is(":checkbox") ) 
                error.appendTo ( element.next() ); 
            else {
                error.appendTo(element.parent().next() ); 
				element.addClass('ui-state-error');
			}

        }, 
        // specifying a submitHandler prevents the default submit, good for the demo 
        submitHandler: function(form) { 
			if (CurrentOrder.length) {
				$('#submitForm').attr('disabled','true');
				$.post(window.location.href.match(/^http[s]?:[/]{2}[a-z0-9.:-]+/i)+'/includes/php/AdvertisingRecaptchaHandler.php', {
				challenge: Recaptcha.get_challenge(),
				response: Recaptcha.get_response()},
				function(data) {
					if (handleReturnData(data)) {
						form.submit();
					}else {
					/*
						if ($('#recaptcha_response_field')) {
							$('#recaptcha_response_field').addClass('ui-state-error');
						}else {
							while (!($('#recaptcha_response_field'))) {
								setTimeout($('#recaptcha_response_field').addClass('ui-state-error'),'1000');
							}
							$('#recaptcha_response_field').addClass('ui-state-error');
						}
						
						//$('#recaptcha_response_field').addClass('ui-state-error');
						//alert(document.getElementById('recaptcha_response_field').name);
						*/
						$('#submitForm').removeAttr('disabled');
					}
					
				},"json");
			}else {
				NoSelectionDialogBox();
			}
		
        },
        // set this class to error-labels to indicate valid fields 
        success: function(label) { 
			eid = label.attr('for');
			$('#'+eid).removeClass('ui-state-error');
        } 
    }); 

}
//********************************************************************************************
function recaptchaCreate() {
	Recaptcha.create("6Le9wAYAAAAAAKFp6PHNQMZkfKEp64QBt6BG8Z9J", //wahm1.internetbrands.com
//	Recaptcha.create("6LesJgcAAAAAAK2o_0Y4IThwtpzNu3DH52ye8k5i", //AMVM 
		"recaptcha_div", {
		theme: "white"
	});
}
//********************************************************************************************
function handleReturnData(data) {	//Handle JSON AJAX return data
	if(data.complete == true) {		//If complete, redirect
		return true;
	}
	else {
		$.each(data, function(key, val) {	//Show error messages
			if(key != 'complete') {
				$('#'+key+'_error').html(val);
				
				if(key == 'recaptcha') {
					Recaptcha.destroy();
					if(val != 'Correct!')
						recaptchaCreate();
				}
				return false;
			}
		});
	}
}
//********************************************************************************************

