var Contact = {
    /**
     * construct
     */
	construct: function() {
		Contact.inputVal();
        Contact.validate();
	},
	/**
	 * inputVal
	 */
	inputVal: function(){
		$("#contactForm input:not('#submitBtn'), textarea").not(".contactSubmit").each(function() {
			if ($(this).attr("name") == 'contactContent') {
				var inputValue = $(this).html();
			} 
			else {
				var inputValue = $(this).val();
			}
			$(this).focus(function() {
				$(this).addClass("activeField");
                if($(this).val()==inputValue) {
                    $(this).val("");
                }
			});
			$(this).blur(function() {
				$(this).removeClass("activeField");
                if($(this).val()=="") {
                    $(this).val(inputValue);
                }
			});
		});
	},
    /**
     * validate
     */
    validate: function() {
        var checked = 0;
        var elements = 0;
        var elementsNames = [];
        var errors = 0;
        var status = false;
        var submitForm = function() {
            var submitOptions = {
				method: 'POST',
                success: function() {
                    $("#submitBtn").removeClass("submitted");
                    alert('Wiadomość została wysłana.');
					return false;
                }
           }
		   
           $("#contactform").ajaxSubmit(submitOptions);

           return false;
        }
        
        $(".contactMsg").each(function() { $(this).hide(); });
        
        $("#contactform input[type=text], #contactform textarea").each(function() {
           elements++; 
           elementsNames[elements] = $(this).attr("id");
        }).blur(function() {
           var startValue = $(this).prev("label").find("span").html();
           var value = $(this).val();
           var ajaxVal = "";
           var fieldID = $(this).attr("rel");
           var errorContainer = "#input" + fieldID + "Message";
           var current = $(this);
           
           (value==startValue) ? ajaxVal = "" : ajaxVal = $(this).val();
           
           var options = {
    	        dataType: 'json',
    	        async: false,
    	        cache: false,
    	        type: 'POST',
    	        url: '/contact/json/validate/item/' + fieldID + '/value/' + ajaxVal,
    	        success: function (data) {
    	            if (data.status == 'success') {
                        if($(errorContainer).css("display")=="block") {
                            $(errorContainer).slideUp("fast");
                        }	            	
                        if(errors>0) errors--;
    	            } else {
    	                $(errorContainer)
                            .html(startValue+": "+data.msg)
                            .slideDown("fast");
                        errors++;
    	            }			
    	        }
    	    };
            $.ajax(options);
            if (checked < elements) {
                checked++;
            }
        });
        
        $("form").submit(function() {
           if(errors>0) {
               return false;
           } else {
               (checked==elements 
               || checked==(elements-1) 
               && ($("#input12").val().match(/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/)) ) 
               ? status = true : status = false;
               if(status==true) {
                 submitForm();
               }
           }
		   
		   return false;
        });
    }
}

$().ready(function () { Contact.construct(); }); 