	/*
	* Author: Alex Baskov, 2009
	* NOTE: make sure you include this script *after* jquery.js
	*
	* Include logic for contact page here.
	*/
	var contact_validator=null;
	
	$(document).ready(function () {
		$("#nav_contact").addClass('active');
		$("#nav_contact").removeAttr('href');

		$("#profile_tabs a.tab").live("click", function () {
			$("#profile_tabs a").removeClass("active");
			$("#contact_tabs_content .tab_content").hide();
			$("#tab_content_" + $(this).attr("rel")).show();
			$(this).addClass("active");
		});
		
		$.validator.addMethod('customEmail',
			function(value, element) {
				return this.optional(element) || /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i.test(element.value);
			},"Enter a valid email"
		);
		$.validator.addMethod('phoneSymbols', 
			function(value, element) {
				var stripped = value.replace(/[\s()+-]|ext\.?/gi, "");
				return ((/\d{7,}/i).test(stripped));
			},"Enter a valid phone number"
		);
		$.validator.addMethod('phone', 
			function(value, element) {
				if ((value == null) || !(/^[0-9-+()\s]+$/i.test(value))) {
					return false;
				}
				else return true;
			},"Enter a valid phone number"
		);
		contact_validator = $("#form_enquiry").validate({
			errorElement: "div",
			rules: {
				full_name: {
					required: true,
					minlength: 2,
					maxlength: 200
				},
				phone: {
					required: true,
					phone: true,
					phoneSymbols: true
				},
				email: {
					customEmail: true,
					required: true,
					minlength: 5,
					maxlength: 200
				},
				comments: {
					maxlength: 4000
				}
			},
			messages: {
				full_name: {
					required: "Missing full name",
					minlength: jQuery.format("Enter at least {0} characters"),
					maxlength: jQuery.format("Enter less than {0} characters")
				},
				phone: {
					required: "Missing phone number",
					phone: "Enter valid phone number",
					phoneSymbols: "Enter at least 7 digits"
				},
				email: {
					email: "Enter a valid email",
					customEmail: "Enter a valid email",
					required: "Missing email",
					minlength: jQuery.format("Enter at least {0} characters"),
					maxlength: jQuery.format("Enter less than {0} characters")
				},
				comments: {
					maxlength: jQuery.format("Enter less than {0} symbols")
				}
			},
			
			errorPlacement: function(error, element) {
					element.prev().append(error);
			},
	
			// set this class to error-labels to indicate valid fields
			success: function(label) {
				// set &nbsp; as text for IE
				label.html("&nbsp;").addClass("checked");
				label.parent().hide();
			},
			highlight: function(element, errorClass) {
				$(element).prev().show();
			},
			invalidHandler: function() {
				//$("#form_enquiry .field_error").show();
			}
		});
		$(".contact_field input, .contact_field textarea").keypress(function(){
			contact_validator.element("#" + $(this).attr('id'));
		});
		
	});
	
	function showEmailContactSuccess() {
		$(".contact_form_holder .message").hide();
		$(".contact_form_holder .message.success").show();
		$("#form_enquiry #button_ok").show();
	}

	function showEmailContactErrors() {
		$(".contact_form_holder .message").hide();
		$(".contact_form_holder .message.error").show();
		$("#form_enquiry #button_ok").show();
	}

	function showEmailContactProgress() {
		$("#form_enquiry div").hide();
		$("#button_submit").parent().show();
		$("#button_submit").hide();
		$(".contact_form_holder .message.in_process").show();
	}
	
	function restoreForm() {
		$(".contact_form_holder .message").hide();
		$("#form_enquiry div").show();
		$("#button_ok").hide();
		$("#button_submit").show();
		
		//restore input fields styles
		$("#form_enquiry .field_error").hide();
		$("#form_enquiry input, #form_enquiry textarea").val("");
		return false;
	}

	
	function sendEmailContact() {
		if (!(contact_validator.form())) {
			return false;
		}
		showEmailContactProgress();
		var data = "full_name=" + escape($("#full_name").val()) +
				   "&phone=" + escape($("#phone").val()) +
                   "&email_address=" + escape($("#email").val()) +
                   "&comments=" + escape($("#comments").val()) ; 
        $.ajax({
            type: "POST",
            url: "/external/contactus",
            data: data,
            success: function(msg) {
                if (msg.indexOf("success:") != -1) {
                    showEmailContactSuccess();
                }
                else if (msg.indexOf("error:") != -1) {
                    var errors = msg.substring(msg.indexOf("error:") + "error:".length);
                    var errorsList = errors.split(";");
					var message = "";
                    for (var i = 0; errorsList.length; i++) {
                        var errorInfo = errorsList[i];
                        if (errorInfo == undefined || errorInfo == "") {
							break;
						}

                        var splitted = errorInfo.split("=");
                        var key = splitted[0];
                        var value = splitted[1];
						
						message += "<li>" + key +": " +value +"</li>";
                    }
					if 	(message == "") message = "Error during sending request.";
					$(".contact_form_holder .message.error").html(message);
					showEmailContactErrors();
                }
            }
        });
		return false;
	}


