var loginCommands = {
	preload: function(){
		var obj = this;
		$.ajax({
			url: '/customers/login',
			success: function( data ) {
				$('#login').html(data);
				obj.emptyLogin();
			}
		});
	},
	toggle: function(){
		if( $( "#login" ).html() == "" ){
			$.ajax({
			  url: '/customers/login',
			  success: function( data ) {
				$('#login').html(data);
				$('#login').clearQueue();
				$('#login').slideDown( 200 );
				
				$( "#login-submit" ).click( function(){
					loginCommands.login();
					return false;
				});
			  }
			});
		}else{
			var obj = this;
			$('#login').clearQueue();
			$('#login').slideUp( 200, obj.emptyLogin );
		}
	},
	emptyLogin: function(){
		$('#login').html("");
	},
	login: function(){
		var error = false;
		if( $( "input[name='username']" ).val() == "" ){
			error = true;
			this.handleField( $( "input[name='username']" ), true );
		}else{
			this.handleField( $( "input[name='username']" ), false );
		}
		
		if( $( "input[name='password']" ).val() == "" ){
			error = true;
			this.handleField( $( "input[name='password']" ), true );
		}else{
			this.handleField( $( "input[name='password']" ), false );
		}
		
		if( error == false ){
			var dataString = "data[User][user]=" + $( "input[name='username']" ).val() + "&data[User][pass]=" + $( "input[name='password']" ).val();
			var obj = this;
			$.ajax({
				url: '/customers/login',
				data: dataString,
				type: "POST",
				success: function( data ) {					
					if( data == "false" ){
						obj.handleField( $( "input[name='password']" ), true );
						obj.handleField( $( "input[name='username']" ), true );
					}else{
						$( "#login-wrapper" ).html( "<a href=\"/customers/logout\">Log out</a>: " + data );
						$( '#login' ).clearQueue();
						$( '#login' ).slideUp( 200, obj.emptyLogin );
						window.location.reload(true);
					}
				}
			});
		}
	},
	handleField: function( field, error ) {
		field.removeClass();
		if( error == true ){
			field.addClass( "error" );
		}
	}
};

var subscriberCommands = {
	submit: function(){
		var error = false;
		if( $( "#NewsletterName" ).val() == "" || $( "#NewsletterName" ).val() == "NAME" ){
			error = true;
			this.handleField( $( "#NewsletterName" ), true );
		}else{
			this.handleField( $( "#NewsletterName" ), false );
		}
		
		if( !this.validate( $( "#NewsletterEmail" ).val() ) ){
			error = true;
			this.handleField( $( "#NewsletterEmail" ), true );
		}else{
			this.handleField( $( "#NewsletterEmail" ), false );
		}
		
		if( error == false ){
			$('#subForm').submit();
		}
	},
	handleField: function( field, error ) {
		field.removeClass();
		if( error == true ){
			field.addClass( "error" );
		}
	},
	validate: function( address ) {
		var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
		if(reg.test(address) == false) {
			return false;
		}else{
			return true;
		}
	}	
}

$(document).ready( function(){
	loginCommands.preload();
	$( "#login-button" ).click( function(){
		loginCommands.toggle();
		return false;
	});
	
	$( "#enquiry-login" ).click( function(){
		loginCommands.toggle();
		return false;
	});
	
	// Home and Generic Pages
	$( "#NewsletterName" ).focus( function(){
		var input = $( "#NewsletterName" );
		if( input.val() == "NAME" ){
			input.val( "" );
		}
	}).blur( function(){
		var input = $( "#NewsletterName" );
		if( input.val() == "" ){
			input.val( "NAME" );
		}
	});
	
	$( "#NewsletterEmail" ).focus( function(){
		var input = $( "#NewsletterEmail" );
		if( input.val() == "EMAIL ADDRESS" ){
			input.val( "" );
		}
	}).blur( function(){
		var input = $( "#NewsletterEmail" );
		if( input.val() == "" ){
			input.val( "EMAIL ADDRESS" );
		}
	});
	
	$( ".sector .submit-button" ).click( function(){
		subscriberCommands.submit();
	});
	
	$( "#submit_search" ).click( function(){
		$( "form[name='search']" ).submit();
		return false;
	});
	
	$( ".product, .home-product, .product-recommended" ).hover( function(){	
		var bottomSize = $( this ).find( ".product-details .product-description" ).height();
		var parentElem = this;
		$( this ).find( ".product-details" ).stop().animate( { bottom: (bottomSize * -1) + "px"  }, 200 );
		$( this ).find( ".product-details .product-description" ).hover( function(){
				$( parentElem ).find( ".product-details" ).stop().animate( { bottom: "0px"  }, 200 );
			},
			function(){ 
				$( parentElem ).find( ".product-details" ).stop().animate( { bottom: (bottomSize * -1) + "px"  }, 200 );
			});
		}, 
		function(){
			$( this ).find( ".product-details" ).stop().animate( { bottom: "-150px"  }, 200 );
	});
        
        $('img').mousedown(function(event) {
            switch (event.which) {
            case 3:
                alert('Sorry, but right clicking has been disabled');
                return false;
                break;  
            }
        });     
});
