$(document).ready(function(){

					var lang = null;
						
					$.getJSON("http://" + document.domain + "/language/load-json-dictionary/name/contact", function(data){
						setClick(data);
						validate(data);
						setNewsletter(data);
					});
					
					jQuery.validator.setDefaults({ 
		    			errorElement: "span", 
		    			errorClass: "formError"
		    		});
					
					function isValidEmail(strEmail){
						var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
						if (!filter.test(strEmail)) {
							return false;
						}
						return true;
					}
					
					function setNewsletter(lang){
						
						$("#newsletter-input").bind('click', function(){
							$(this).attr('value', '');
						});
						
						$("#newsletter-input").bind('blur', function(){
							if($(this).attr('value') == ""){
								$sName = $(this).attr('name');
								$(this).attr('value', lang.default_contact[$sName]);
							}
						});
						
						
						$("#newsletter-submit").bind('click', function(){
							$sValue = $("#newsletter-input").attr("value");
							
							if(isValidEmail($sValue)){
								$.ajax({
										type: "POST",
										url: "/default/newsletter/add-user",
										data: "email=" + $sValue ,
										success: function(msg){
											if(msg == 'exists'){
												$("#newsletter-form").fadeOut("fast", function(){
													$("#newsletter-message").text(lang.default_contact.exists);
													$("#newsletter-message").fadeIn();
													$("#newsletter-message").fadeOut(3000, function(){
														$("#newsletter-form").fadeIn();
													});
												});
											}else if(msg == 'ok'){
												$("#newsletter-form").fadeOut("fast", function(){
													$("#newsletter-message").text(lang.default_contact.thanks);
													$("#newsletter-message").fadeIn();
												});
											}
										}
								});
							}else{
								$("#newsletter-form").fadeOut("fast", function(){
									$("#newsletter-message").text(lang.default_contact.invalid_email);
									$("#newsletter-message").fadeIn();
									$("#newsletter-message").fadeOut(3000, function(){
										$("#newsletter-form").fadeIn();
									});
								});
								
							}
							
						});
					}
					
					
					
					function setClick(lang){
						$(".contactform").bind('click', function(){
							$sName = $(this).attr('name');
							
							if($("input[name="+$sName+"_hidden]").attr('value') == $(this).attr('value')){	
								$(this).attr('value', '');
							}
						});
						
						$(".contactform").bind('blur', function(){
							$sName = $(this).attr('name');
							
							if($sName != 'phone' && $sName != 'company'){
								if($(this).attr('value') == ""){
									$(this).attr('value', lang.default_contact[$sName]);
								}
							}
						});
					}
					
					function validate(lang) {
						
						$.validator.addMethod("company", function(value) {
							var companyValidator = /[@#$%^]/i;
							
							if(value == "" || !companyValidator.test(value))
								return true;
							else
								return false;
						}, "");
						
						$.validator.addMethod("yourname", function(value) {
							
							var $sOriginalValue = $("input[name=name_hidden]").attr('value');
							
							if(value == "" || value == $sOriginalValue){
								return false;
							}
							
							return true;
							
						}, "");
						
						$.validator.addMethod("message", function(value) {
							
							var $sOriginalValue = $("input[name=message_hidden]").attr('value');
							
							if(value == "" || value == $sOriginalValue){
								return false;
							}
							
							return true;
							
						}, "");
						
						$.validator.addMethod("telephone", function(value) {
							result = value.replace(/\(/gi, "");
							result = result.replace(/\)/gi, "");
							result = result.replace(/\-/gi, "");
							result = result.replace(/\ /gi, "");
							
							var check = true;
							
							$sOriginalValue = $("input[name=phone_hidden]").attr('value');
							
							if(value == $sOriginalValue){
								return true;
							}
							
							if(result.length != 0 && (result.length < 6 || result.length > 12)){
								return false;
							}
							
							for(var i=0;i < result.length; ++i){
								var newKey = result.charAt(i);
								if(((newKey < "0") || (newKey > "9")) && !(newKey == "")){
									check = false;
									break;
								}
							
							}
							
							if(check == false){
								return false;
							}else{
								return true;
							}
						}, "");
						
						
						$("#send-mail").validate({
							rules: {
								company: "company", 
								email: {
									required : true,
									email	 : true
								}, 
								name: "yourname", 
								phone: "telephone",
								message: "message"
							},
							messages: {
								email: {
									required: "",
									email: ""
								}
							}
						});
					}
					
					
				});
