

	
	
	$(document).ready(function(){
		
			
			emailsValid = false;
			
			$("div#tell-share ul.tabs li a").click(function(event){
				event.preventDefault();		
				
				
				if ($(this).hasClass("active"))	{
					return true;
				}
				else	{
					var showThis = $(this).parent().attr("class");
					$("div#tell-share ul.tabs li a.active").removeClass("active");
					$(this).addClass("active");
					$("div#tell-share div.tab-content:visible").fadeOut("fast");
					$("div#tell-share div#"+showThis).fadeIn("fast");
				}
				
			 });	
			 
			 $("div#send-friend-complete a").click(function(event){
				event.preventDefault();		
				$("div#send-friend-complete").fadeOut("fast");
				$("div#send-friend-form-holder").fadeIn("fast");
			 });
			 
			 
			 $("form#send-friend-form input").focus(function(){
				if ($(this).attr("value") == "Your name" || $(this).attr("value") == "Your friend's email address(es)")	{
					$(this).val("");
				}
			 });

			$("form#send-friend-form").submit(function(event){
				event.preventDefault();	
						
					//slplit email string on ;
					var emailString = $("input#inpEmails").val().split(' ').join('');
					var arrEmails = emailString.split(/;/);
					var noEmails = $("input#inpEmails").val().split(/;/).length;
					
					if (noEmails > 1)	{
						for (email in arrEmails){
						
							if(isValidEmailAddress(arrEmails[email]))	{
								emailsValid = true;
							}
							else	{
								emailsValid = false;
							}
						}
					}
					else	{
							if(isValidEmailAddress($("input#inpEmails").val()))	{
								emailsValid = true;
							}
							else	{
								emailsValid = false;
							}
					}
					
					
					if (emailsValid)	{
						$("input#inpEmails").removeClass("error");
						xmlHttp=GetXmlHttpObject();
						// check browser supports ajax
						if (xmlHttp==null)	{
							return true;
						} else	{	
							TellAFriend(xmlHttp);
							return false;
						}
					}
					else	{
						$("input#inpEmails").addClass("error");
						addHTML("input#inpEmails");
						$("#errEmails").show();
					}
							
			 });
			 
			 $("input.validate").blur(function(){
				if($(this).hasClass("error"))	{
					validateForm($(this));
				}
			 });
			 
			 function addHTML(obj)	{
				
				$(obj).fadeOut(200).fadeIn(200).fadeOut(200).fadeIn(200).fadeOut(200).fadeIn(200);
				
				if (!($(obj).hasClass("error")))	{
					$(obj).next().fadeIn(100);
					$(obj).addClass("error");
				}	else	{
					$(obj).addClass("error");
				}

			 }
			 
			 function validateForm(checkThis)	{
								
				if (checkThis === "")	{
					
					$("input.validate").each(function(i){
						
						if($(this).attr("id") == "email")	{
							if (isValidEmailAddress($(this).val()))	{
								$(this).removeClass("error");
								$(this).next("span.error").fadeOut("fast");
								formValid = true;
							}	else	{
								
								addHTML($(this));
								
								formValid = false;
								return false;
							}
						}
						else	{
							if($(this).val() == null || $(this).val() == '')	{
							
								addHTML($(this));
		
								formValid = false;
								return false;
							}
							else	{
								$(this).removeClass("error");
								$(this).next("span.error").fadeOut("fast");
								
								formValid = true;
							}
							
						}
					});
					
				} else	{
				
					if($(checkThis).attr("id") == "email")	{
							if (isValidEmailAddress($(checkThis).val()))	{
								$(checkThis).removeClass("error");
								$(checkThis).next("span.error").remove();
								formValid = true;
							}	else	{
								
								addHTML($(checkThis));
								
								formValid = false;
								return false;
							}
					} else	{
						if($(checkThis).val() != null && $(checkThis).val() != '')	{
							$(checkThis).removeClass("error");
							$(checkThis).next("span.error").fadeOut("fast");
						}
					}
				
				}
						
			 }
			 
			 function TellAFriend(xmlHttp)	{
			
				var name = document.getElementById('inpYourName');
				var emails = document.getElementById('inpEmails');
				var url = "send-to-friend.php";
				var params = "inpYourName=" + name.value  + "&inpEmails=" + emails.value + "&ajaxpost=true";
				xmlHttp.open("POST", url, true);
				//Send the proper header information along with the request
				xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
				xmlHttp.setRequestHeader("Content-length", params.length);
				xmlHttp.setRequestHeader("Connection", "close");
				xmlHttp.onreadystatechange=stateChanged;
				xmlHttp.send(params);
				
				$("div#send-friend-form-holder").fadeOut("slow");
				$("div#send-friend-sending").html("<p>Your request is being processed.</p><p><strong>Sending...</strong></p>");
				$("div#send-friend-sending").fadeIn();
			}
			
			function stateChanged() 	{ 
				
				$("div#send-friend-sending").fadeOut();
				
				var responseHTML = "Your email was sent successfully.";
				var showFormHTML = "Send another";
				
				if (xmlHttp.readyState==4)
				{ 
					if (xmlHttp.responseText == "Error")	{
						responseHTML = "Error processing your request.";
						showFormHTML = "Try again";
					}	
				}
				else	{
					responseHTML = "Error processing your request.";
					showFormHTML = "Try again";
				}					
				$("div#send-friend-complete p.response").html(responseHTML);
				$("div#send-friend-complete p a").html(showFormHTML);
				$("div#send-friend-complete").fadeIn("slow");
			}
			
			function GetXmlHttpObject()	{
				var xmlHttp=null;
				try	{
				// Firefox, Opera 8.0+, Safari
				xmlHttp=new XMLHttpRequest();
				}
				catch (e)	{
					// Internet Explorer
					try	{
						xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
					}
					catch (e)	{
						xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
					}
				}
				return xmlHttp;
			}
			
			function isValidEmailAddress(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);
			} 
			 
			 
		});