﻿jQuery.fn.vibrate = function(conf) {
        var config = jQuery.extend({
                speed: 30, 
                duration: 750, 
                frequency: 10000, 
                spread: 3
        }, conf);

        return this.each(function() {
                var t = jQuery(this);

                var vibrate = function() {
                        var topPos = Math.floor(Math.random() * config.spread) - ((config.spread - 1) / 2);
                        var leftPos = Math.floor(Math.random() * config.spread) - ((config.spread - 1) / 2);
                        var rotate = Math.floor(Math.random() * config.spread - (config.spread - 1) / 2); // cheers to erik@birdy.nu for the rotation-idea
                        t.css({position: 'relative', left: leftPos +'px', top: topPos +'px', WebkitTransform: 'rotate(' +rotate +'deg)'});
                };

                var doVibration = function () {
                        
						var vibrationInterval = setInterval(vibrate, config.speed);

                        var stopVibration = function() {
                                clearInterval(vibrationInterval);
                                t.css({position: 'static'});
                        };

                        setTimeout(stopVibration, config.duration);
                };
				
				/* 
					Mofication by Kishore - I am commenting out the following line as it calls the vibration function repeatedly.
				 	We need to call it only once. So, instead I make a call to doVibration() directly.
				*/
				
                //setInterval(doVibration, config.frequency);
				doVibration();
        });
};

if (typeof (AKA) == "undefined") {
    AKA = {
    	init:function(){
			AKA.clearInputs();
			$("#email").keyup(function(){
				var email = $("#email").val();		
				if(email != 0){
					if(AKA.isValidEmailAddress(email)){
						$("#email").css({"background-color": "#DFF"});
					} else {
						$("#email").css({"background-color": "#DFF"});
					}
				} else {
					$("#email").css({"background-color":"#FFF"});			
				}		
			});
			$("#name").keyup(function(){
				var name = $(this).val();		
				if(name != 0){
					$(this).css({"background-color": "#DFF"});
				} else {
					$(this).css({"background-color":"#FFF"});			
				}		
			});
			$("#message").keyup(function(){
				var name = $(this).val();		
				if(name != 0){
					$(this).css({"background-color": "#DFF"});
				} else {
					$(this).css({"background-color":"#FFF"});			
				}		
			});			


			$('#submit').click(function(){
				AKA.handleSubmit();
				return false;
			});		
		},
   		registerForm:function(){
			AKA.clearInputs();
			$("#email").keyup(function(){
				var email = $("#email").val();		
				if(email != 0){
					if(AKA.isValidEmailAddress(email)){
						$("#email").css({"background-color": "#DFF"});
					} else {
						$("#email").css({"background-color": "#DFF"});
					}
				} else {
					$("#email").css({"background-color":"#FFF"});			
				}		
			});
			$("#name").keyup(function(){
				var name = $(this).val();		
				if(name != 0){
					$(this).css({"background-color": "#DFF"});
				} else {
					$(this).css({"background-color":"#FFF"});			
				}		
			});
			
			$('#submit').click(function(){
				AKA.handleRegSubmit();
				return false;
			});		
		},
		clearInputs:function(){
			var default_values = {};
			jQuery('input:text').each(function(i) {
				var index = jQuery(this).attr('name');
				var value = jQuery(this).val();
				default_values[index] = value;
			});
			jQuery('input:text').focus(function() {
				if(jQuery(this).val() === default_values[jQuery(this).attr('name')]) {
				  jQuery(this).val('');
				};
			});
			jQuery('input:text').blur(function() {
				if(jQuery(this).val() < 1) {
				  jQuery(this).val(default_values[jQuery(this).attr('name')]);

				};
			});		
		},
		handleSubmit:function(){
				var email	=	$("#email").val();		
				var name  	=	$("#name").val();
				var msg		=	$("#message").val();
				var cleared 	= 	true;
				if(email != 0){
					if(!AKA.isValidEmailAddress(email)){
						jQuery("#email").vibrate();
						var cleared = false;
					}
				} else {
					jQuery("#email").vibrate();
					var cleared = false;
				}
				
				if(name !=0){ 
				} else {
					jQuery("#name").vibrate();
					var cleared = false;
				}

				if(msg !=0){ 
				} else {
					jQuery("#message").vibrate();
					var cleared = false;
				}
				
				if(cleared){
					$.ajax({
					   type: "POST",
					   url: "email.php",
					   data: "name="+name+"&email="+email+"&message="+msg,
					   success: function(response){
							$(".contact span").animate({opacity:0}, 750, 'easeOutBack', function() {
								$('#thanks').css({display:'block'});
								$("#thanks").animate({opacity:1}, 750, 'easeOutBack');							
							});
					   },
					   error:function(response){
					   }
					 });									
				}
				return false;
		},
		handleRegSubmit:function(){
				var email	 =	$("#email").val();		
				var name  	 =	$("#name").val();
				var cleared 	= 	true;
				if(email != 0){
					if(!AKA.isValidEmailAddress(email)){
						jQuery("#email").vibrate();
						var cleared = false;
					}
				} else {
					jQuery("#email").vibrate();
					var cleared = false;
				}
				
				if(name !=0){ 
				} else {
					jQuery("#name").vibrate();
					var cleared = false;
				}
				
				
				if(cleared){
					document.forms["newsletter_signup_jawn"].submit();
				}
				return false;
		},

		
    	isValidEmailAddress:function (emailAddress) {
			var pattern = new RegExp(/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i);
			return pattern.test(emailAddress);
		}
   };
};

