/* Navigation Subscribe Box Popup */

$(function() {
	var showit = function() {
	$('#rssInfo').slideDown("fast");
	$('#subscribe').addClass('active')
	return false;
	}
	
	var hideit = function() {
	$('#rssInfo').slideUp("fast");
	$('#subscribe').removeClass('active')
	return false;
	}
	
	$('#subscribe').click(showit);
	$('#rssInfoRight a').click(hideit);
});
	
	
	
	
/* Search Box Value Toggle */

$(function() {
	$.fn.search = function() {
		return this.focus(function() {
			if( this.value == this.defaultValue ) {
				this.value = "";
			}
		}).blur(function() {
			if( !this.value.length ) {
				this.value = this.defaultValue;
			}
		});
	};
	$("#search").search();
});
	
	
/*
 * Image preview script 
 * powered by jQuery (http://www.jquery.com)
 * 
 * written by Alen Grakalic (http://cssglobe.com)
 * 
 * for more info visit http://cssglobe.com/post/1695/easiest-tooltip-and-image-preview-using-jquery
 *
 */
 
this.imagePreview = function(){	
	/* CONFIG */
		
		xOffset = 10;
		yOffset = 30;
		
		// these 2 variable determine popup's distance from the cursor
		// you might want to adjust to get the right result
		
	/* END CONFIG */
	$("a.preview").hover(function(e){
		this.t = this.title;
		this.title = "";	
		var c = (this.t != "") ? "<br/>" + this.t : "";
		$("body").append("<p id='preview'><img src='"+ this.rel +"' alt='Preview' /></p>");								 
		$("#preview")
			.css("top",(e.pageY - xOffset) + "px")
			.css("left",(e.pageX + yOffset) + "px")
			.fadeIn("fast");						
    },
	function(){
		this.title = this.t;	
		$("#preview").remove();
    });	
	$("a.preview").mousemove(function(e){
		$("#preview")
			.css("top",(e.pageY - xOffset) + "px")
			.css("left",(e.pageX + yOffset) + "px");
	});			
};


// starting the script on page load
$(document).ready(function(){
	imagePreview();
});


/*
 * Tooltip script 
 * powered by jQuery (http://www.jquery.com)
 * 
 * written by Alen Grakalic (http://cssglobe.com)
 * 
 * for more info visit http://cssglobe.com/post/1695/easiest-tooltip-and-image-preview-using-jquery
 *
 */
 

this.tooltip = function(){	
	/* CONFIG */		
		xOffset = 10;
		yOffset = 20;		
		// these 2 variable determine popup's distance from the cursor
		// you might want to adjust to get the right result		
	/* END CONFIG */		
	$("a.tooltip").hover(function(e){											  
		this.t = this.title;
		this.title = "";									  
		$("body").append("<p id='tooltip'>"+ this.t +"</p>");
		$("#tooltip")
			.css("top",(e.pageY - xOffset) + "px")
			.css("left",(e.pageX + yOffset) + "px")
			.fadeIn("fast");		
    },
	function(){
		this.title = this.t;		
		$("#tooltip").remove();
    });	
	$("a.tooltip").mousemove(function(e){
		$("#tooltip")
			.css("top",(e.pageY - xOffset) + "px")
			.css("left",(e.pageX + yOffset) + "px");
	});			
};
// starting the script on page load
$(document).ready(function(){
	tooltip();
});




/* Magic Preview (Comment Form) */

$(function () {
	$('form#comment_form textarea').magicpreview('mp_');	
});



/* FileStyle */

$(function() {
	$("input[type=file]").filestyle({ 
	    image: "images/browse.gif",
	    imageheight : 22,
	    imagewidth : 77,
	    width : 215
	});
});




/* Form Validation */

jQuery.validator.addMethod("lettersonly", function(value, element) {
	return this.optional(element) || /^[a-z ]+$/i.test(value);
});

/**
 * @note Added new validation method to check the field with a regex
 * @author William Dodson <http://obxdesignworks.com/>
 */
jQuery.validator.addMethod(
  "regex",
  function(value, element, regexp) {
    if (regexp.constructor != RegExp)
      regexp = new RegExp(regexp);
    else if (regexp.global)
      regexp.lastIndex = 0;
      return this.optional(element) || regexp.test(value);
  },
  "Please check your input."
);
/**
 * @note end addMethod: regex
 */

$(function() {
	$("#comment_form").validate({
	errorPlacement: function(error, element) {   
             error.insertBefore(element);  
         },
		rules: {
			name: {
				required: true,
				lettersonly: true
			},
			email: {
				required: true,
				email: true
			},
			comment: "required"
		},
		messages: {
			name: {
			  	required: "Please enter your name",
			  	lettersonly: "Letters only please"
			},
			email: {
			  	required: "Please enter your email",
			  	email: "Please enter a valid email address"
			},
			comment: "Please enter a comment"
		}
	});
	$("#submit").validate({
	errorPlacement: function(error, element) {   
             error.insertBefore(element);  
         },
		rules: {
			name: {
				required: true,
				lettersonly: true
			},
			email: {
				required: true,
				email: true
			},
			designer_name: "required",
			designer_url: {
				required: false,
				url: true
			},
			logo_title: "required",
			logo_url: {
				required: false,
				url: true
			}
		},
		messages: {
			name: {
			  	required: "Please enter your name",
			  	lettersonly: "Letters only please"
			},
			email: {
			  	required: "Please enter your email",
			  	email: "Please enter a valid email address"
			},
			designer_name: {
			  	required: "Please enter the designer's name",
			}
		}
	});
	$("#contact").validate({
	errorPlacement: function(error, element) {   
             error.insertBefore(element);  
         },
		rules: {
			name: {
				required: true,
				lettersonly: true
			},
			email: {
				required: true,
				email: true
			},
			message: "required"
		},
		messages: {
			name: {
			  	required: "Please enter your name",
			  	lettersonly: "Letters only please"
			},
			email: {
			  	required: "Please enter your email",
			  	email: "Please enter a valid email address"
			},
			message: "Please enter a message"
		}
	});
	$("#member_form").validate({
	errorPlacement: function(error, element) {   
             error.insertBefore(element);  
         },
		rules: {
			//username: "required",
			username: {
			 regex: /^[a-zA-Z0-9]+$/,// regex for characters and numbers w/ no spaces
			 required: true
			},
			screen_name: "required",
			email: {
				required: true,
				email: true
			},
			password: "required",
			password_confirm: {
				equalTo: "#password"
			}
		},
		messages: {
			// username: "Please enter a username",
			username: "Please enter a valid username (letters, numbers, no spaces)",
			screen_name:"Please enter a Screen Name",
			email: {
			  	required: "Please enter your email",
			  	email: "Please enter a valid email address"
			},
			password: "Please enter a password",
			password_confirm: "Password does not match"
		}
	});
	$("#loginForm").validate({
	errorPlacement: function(error, element) {   
             error.insertBefore(element);  
         },
		rules: {
			//username: "required",
			username: {
			 regex: /^[a-zA-Z0-9]+$/,// regex for characters and numbers w/ no spaces
			 required: true
			},
			password: "required"
		},
		messages: {
			// username: "Please enter a username",
			username: "Please enter a valid username (letters, numbers, no spaces)",
			password: "Please enter your password"
		}
	});
	$("#forgot_password_form").validate({
	errorPlacement: function(error, element) {   
             error.insertBefore(element);  
         },
		rules: {
			email: {
				required: true,
				email: true
			},
		},
		messages: {
			email: {
			  	required: "Please enter your email",
			  	email: "Please enter a valid email address"
			},
		}
	});
	$("#forgot_username_form").validate({
	errorPlacement: function(error, element) {   
             error.insertBefore(element);  
         },
		rules: {
			email: {
				required: true,
				email: true
			},
		},
		messages: {
			email: {
			  	required: "Please enter your email",
			  	email: "Please enter a valid email address"
			},
		}
	});
	$("#member_delete_form").validate({
	errorPlacement: function(error, element) {   
             error.insertBefore(element);  
         },
		rules: {
			password: "required"
		},
		messages: {
			password: "Please enter your password"
		}
	});
});

/* Sliding Login Panel */

$(function() {
	$('#openPanel').click(function() {	
		$("#slidingPanel").animate({marginTop: "0px"}, 'fast');
		return false;
	});

	$("#closePanel").click(function(){
		$("#slidingPanel").animate({marginTop: "-140px"}, 'fast');
		return false;
	});
});
