/* Author: 
   Jolt Design
*/

var domain_img = "http://img.susannahnathanson.co.uk/";

// Set up newsletter subscription form.
if($("#home").length){
	// Slideshow.
	var $slideshow = $("#slideshow");
	
	$slideshow.cycle({
		"fx": "scrollDown",
        "delay": -3000,
        "timeout": 5000
	});
	
	$slideshow.find("section").hover(function(){
		$slideshow.cycle('pause');
	}, function(){
		$slideshow.cycle('resume');
	});
	
	// Newsletter sign up form handler.
	$("#newsletter-form-button").click(function(e){
		e.preventDefault();
		e.stopPropagation();
		
		var $newsletter_message = $("#newsletter_message"),
			subscribe = $("input[name=\"subscribe\"]:checked").val(),
			email = escape($("input[name=\"email\"]").val()),
			name = escape($("input[name=\"name\"]").val());
		
		$newsletter_message.load("/gallery/index.php?route=module/newsletter/callback&subscribe=" + subscribe + "&email=" + email + "&name=" + name,function(){
			$newsletter_message
			.hide()
			.addClass("notice")
			.slideDown("fast");
		});
	});
}

// Set up newsletter subscription form.
if($("#product").length){
	Shadowbox.init({
	    skipSetup: true
	});
	
	$(function(){
		Shadowbox.setup("#image-link", {
			overlayColor: "#fff",
			overlayOpacity: 0.7
		});
	});
}

// Set up AJAX pagination.
if($(".pagination").length){
	if(!$(".ie7").length && !$(".ie8").length){
		var $content = $("#content");
		
		$(".pagination .links a").live("click", function(e){
			e.preventDefault();
			e.stopPropagation();
			
			var $self = $(this),
				url = $self.attr("href"),
				$loading;
				
			$content
			.append("<div class='loading'></div>");
			$loading = $(".loading");
			
			$self
			.parent()
			.append("<img class='loading' src='http://img.susannahnathanson.dev/ajax-loader-16x16.gif' width='16' height='16' alt='Loading'>");
			
			$content.load(url + " #content-inner", function(data){
				$loading.remove();
			});
		});
	}
}




// BLOG PAGE COMMENT FORM
if($("#commentform").length){
	var $comment_form = $("#commentform"),
		form_errors = {
			"errors": false,
			"fields": {
				"author": {
					"label": "name",
					"id": "author",
					"type": "input",
					"required": true,
					"maxlength": "100",
					"error": ""
				},
				"email": {
					"label": "email",
					"id": "email",
					"type": "input",
					"required": true,
					"maxlength": "250",
					"error": ""
				},
				"url": {
					"label": "website",
					"id": "url",
					"type": "input",
					"required": false,
					"maxlength": "250",
					"error": ""
				},
				"comment": {
					"label": "comment",
					"id": "comment",
					"type": "textarea",
					"required": true,
					"maxlength": "1000",
					"error": ""
				}
			}
		};
	
	// Comment form submit.
	$comment_form.submit(function(e){
		e.preventDefault();
		
		// Animate form.
		var $self = $(this),
			form_height = $self.outerHeight(),
			$validation_messages;
		
		$("<div id='commentform-validation' style='height:0;'></div>").insertAfter(this);
		$validation_messages = $("#commentform-validation");
		
		$self
		.slideUp(400);
		
		$validation_messages
		.animate({
			"height": form_height + "px"
		}, 400, function(){
			$validation_messages
			.append("<h4 style='display:none;'><img src='" + domain_img + "ajax-loader-16x16.gif' alt='Loading'> Checking form...</h4>");
			
			$validation_messages
			.find("h4")
			.fadeIn("fast");
			
			// Check fields filled out.
			for(var i in form_errors.fields){
				// Validate input.
				if(form_errors.fields[i].type == "input"){
					if(form_errors.fields[i].required && !$("#" + form_errors.fields[i].id).val()){
						form_errors.error = true;
						form_errors.fields[i].error = "You must fill out the " + form_errors.fields[i].label + " field";
					}
				}
				// Validate textarea.
				else if(form_errors.fields[i].type == "textarea"){
					if(form_errors.fields[i].required && !$("#" + form_errors.fields[i].id).val()){
						form_errors.error = true;
						form_errors.fields[i].error = "You must enter a comment";
					}
					else if ($("#" + form_errors.fields[i].id).val().length > form_errors.fields[i].maxlength){
						form_errors.error = true;
						form_errors.fields[i].error = "Your comment must be under " + form_errors.fields[i].maxlength + " characters long.";
					}
				}
			}
			
			// Fail, show errors
			if(form_errors.error){
				$validation_messages
				.find("h4")
				.fadeOut("fast", function(){
					$validation_messages
					.append("<div class='comment-validation-errors' style='display:none;'><h4>Oh dear! There were some errors in the form:</h4><ul></ul><p><a href='#'>Back to form</a></p></div>");
					for(var i in form_errors.fields){
						if(form_errors.fields[i].error){
							$("ul", $validation_messages).append("<li>" + form_errors.fields[i].error + "</li>");
						}
					}
					$(".comment-validation-errors", $validation_messages)
					.fadeIn("fast");
				});
			}
			// Success, show success message and submit form via AJAX.
			else {
				$.post($comment_form.attr("action"), $comment_form.serialize(), function(){
					$validation_messages
					.find("h4")
					.fadeOut("fast", function(){
						$validation_messages
						.append("<div class='comment-validation-success' style='display:none;'><h4>Comment posted</h4><p>Thanks for posting!</p><p><a href='" + window.location.href + "#comments'>Reload comments</a></p></div>");
						$(".comment-validation-success", $validation_messages)
						.fadeIn("fast");
					});
				});
			}
		});
	});
	
	// Validation error screen close link handler.
	$("#commentform-validation a").live("click", function(e){
		e.preventDefault();
		
		var $validation_messages = $("#commentform-validation"),
			errors_found = false;
		
		// Reset form if no errors.
		if(!form_errors.error){
			for(var i in form_errors.fields){
				if(form_errors.fields[i].type == "input" || form_errors.fields[i].type == "textarea"){
					$("#" + form_errors.fields[i].id).val("");
				}
			}
		}
		// Reset error flag if validation errors occurred.
		else{
			form_errors.error = false;
			errors_found = true;
		}
		
		// Hide validation messages and display comment form.
		$validation_messages
		.find(".comment-validation-errors, .comment-validation-success")
		.fadeOut("fast", function(){
			// If no errors, reload comments.
			if(!errors_found){
				var url = window.location.href + "#comments";
				window.location = url;
				window.location.reload(true);
			}
			else {
				$validation_messages
				.slideUp(400, function(){
					$(this).remove();
				});
				
				$comment_form
				.slideDown(400);
			}
		});
	});
}



// IE7 Profile Fix
$(function(){
	if($(".ie7").length){
		if($("#artist-profile").length){
			$(".entry-content h2").eq(1).attr("style","padding-top:9px;border-top:1px solid #eee;");
			$(".entry-content h3").eq(0).attr("style","margin-left:0;clear:none;");
		}
	}
});

// CSS3 Pie
$(function(){
	if($(".ie7").length || $(".ie8").length){
		if($("#slideshow").length){
			if (window.PIE) {
				$("#slideshow").each(function() {
					PIE.attach(this);
				});
			}
		}
		if($(".list").length){
			if (window.PIE) {
				$(".list img").each(function() {
					PIE.attach(this);
				});
			}
		}
		if($("#image-link").length){
			if (window.PIE) {
				$("#image-link img").each(function() {
					PIE.attach(this);
				});
			}
		}
	}
});

// IE6 WARNING
$(function(){
	if($("#ie6").length){
		$("#hide-ie6-warning-link").click(function(e){
			e.preventDefault();
			$("#ie6").fadeOut("fast");
			$.cookie("suppress_ie6_warning", true)
		});
	}
});
