var originalPrefill = '';
$(function(){
	$('#sb').click(function(){
		$('#shipping_information').slideToggle();	
	});
	$('.prefilled').focus(handleClick);
	$('.prefilled').blur(handleLeave);
	$('.email').change(function(){
		if(!isValidEmail(this.value)){
			$(this).addClass('invalid');	
		}
		if(this.value == '' && $(this).hasClass('prefilled')){
			$(this).removeClass('focused');
			$(this).css({
				'font-style'	:	'italic',
				'color'			:	'#777777'
			});
			$(this).val('email@example.com');
			if($(this).hasClass('invalid')){
				$(this).removeClass('invalid');	
			}
		}
	});
	$('.email').keyup(function(){
		if($(this).hasClass('invalid') && 
			isValidEmail(this.value)){
			$(this).removeClass('invalid');	
		}	
	});
	$('.name').change(function(){
		if(!isValidName(this.value)){
			$(this).addClass('invalid');	
		}
	});
	$('.name').keyup(function(){
		if($(this).hasClass('invalid') && 
			isValidName(this.value)){
			$(this).removeClass('invalid');	
		}	
	});
	$('.username').change(function(){
		if(!isValidUsername(this.value)){
			$(this).addClass('invalid');	
		}
	});
	$('.username').keyup(function(){
		if($(this).hasClass('invalid') && 
			isValidUsername(this.value)){
			$(this).removeClass('invalid');	
		}	
	});
	$('.required').blur(function(){
		if(this.value == ''){
			$(this).addClass('invalid');	
		}
	});
	$('.phone').change(function(){
		if(!isValidPhone(this.value)){
			$(this).addClass('invalid');	
		}
	});
	$('.phone').keyup(function(){
		if($(this).hasClass('invalid') && 
			isValidPhone(this.value)){
			$(this).removeClass('invalid');	
		}	
	});
	$('.password').change(function(){
		if(!isValidPassword(this.value)){
			$(this).addClass('invalid');
			$('<span>',{id:'password_error'}).insertAfter($(this));
			$('#password_error').html('&nbsp; &nbsp; Password must be at least 6 characters');	
		}
	});
	$('.password').keyup(function(){
		if($(this).hasClass('invalid') && 
			isValidPassword(this.value)){
			$(this).removeClass('invalid');
			$('#password_error').remove();	
		}	
	});
	$('.validate').click(function(e){
		var formId = $(this).parent('form').attr('id');
		$('.required','#' + formId).each(function(index){
			if(this.value == ''){
				e.preventDefault();	
			}
		});
		if($('.invalid','#' + formId).length > 0){
			e.preventDefault();
		}
	});
	$('#live-chat-toggle').css('cursor','pointer').click(function(){
		if($('#live-chat').hasClass('open')){
			$('#live-chat').animate({'top':'30px'},500).removeClass('open');
			$(this).html('Show Live Chat');
		} else {
			$('#live-chat').animate({'top':'-300px','display':'block'},500).addClass('open');
			$(this).html('Hide Live Chat');
			if(!$('#live-chat').hasClass('first-open')){
				$('#chat-box').html('<em>Welcome to Carputer.Me live chat.</em><br />' + 
									 '<strong>Please enter your name and press enter.</strong>');
				$('#live-chat').addClass('first-open');	
			}
		}	
	});
	$('#live-chat-session-toggle').css('cursor','pointer').click(function(){
		if($('#live-chat-session').hasClass('closed')){
			$('#live-chat-session').animate({'top':'-300px'},500).removeClass('closed');
			$(this).html('Hide Live Chat');
		} else {
			$('#live-chat-session').animate({'top':'30px','display':'block'},500).addClass('closed');
			$(this).html('Show Live Chat');
		}	
	});
	$('#msg-send').click(function(){
		$.ajax({
			url:	"chat.php",
			type: 	"POST",
			data: ({text : $('#msg-box').val()}),
			success: function(data){
				$('#chat-box').html(data);	
			}
		});	
	});
});
function handleClick(){
	if(!$(this).hasClass('focused')){
		originalPrefill = $(this).val();
		$(this).val('');
		$(this).attr('rel', originalPrefill);
		$(this).addClass('focused')
		.css({
			'font-style'	:	'normal',
			'color'			:	'#333333'
		});	
	}
}
function handleLeave(){
	if($(this).hasClass('focused')){
		if($(this).val() == '' ||
		   $(this).val() == $(this).attr('rel'))
		{
			$(this).val($(this).attr('rel'));
			$(this).removeClass('focused')
			.css({
				'font-style'	:	'italic',
				'color'			:	'#777777'
			});
		}
	}
}
function isValidEmail(EmailAddr){
	var pattern = new RegExp(/^[A-Za-z]{1}[A-Za-z0-9_-]+[\.]?[A-Za-z0-9_-]*[\.]?[A-Za-z0-9_-]*@[A-Za-z0-9-]*[\.]?[A-Za-z0-9-]+[\.][A-Za-z]{2,6}$/);
	return pattern.test(EmailAddr);
}

function isValidPhone(Phone){
	//var pattern = new RegExp(/^[+]?[1]?[\s-\.]?[(]?[0-9]{3}[)]?[\s-\.]?[0-9]{3}[\s-\.]?[0-9]{4}[\s-\.]?[extnsio\.]{0,10}[\s]?[0-9]{0,6}$/);
	//return pattern.test(Phone);
	return (Phone.length > 8);
}
function isValidPassword(Pwd){
	return (Pwd.length > 5);	
}
function isValidName(Name){
	var pattern = new RegExp(/^[A-Za-z]{1,15}[\s]?[A-Za-z]{0,15}[\s]?[A-Za-z\.0-9]*[\s]?[A-Za-z\.0-9]*$/);
	return pattern.test(Name);
}
function isValidUsername(Username){
	var pattern = new RegExp(/^[A-Za-z0-9]{3,16}$/);
	return pattern.test(Username);
}
function isValidZip(Zip){
	var pattern = new RegExp(/^[0-9]{5}-?[0-9]{0,4}$/);
	return pattern.test(Zip);	
}
