$(document).ready(function() {

// --------- GENERAL

	// open external links in new window
	$('a:not([href*="modernlivingsupplies.com"], [href*="modlivsup@yahoo.com"]), .popup').click(function () {
		if ($(this).hasClass('start_chat')) { // we need to pop the chat window at specific size
			window.open($(this).attr('href'),'','height=460, width=500');
		} else {
			window.open($(this).attr('href'));
		}
		return false;
	});
	
// --------- REGISTRATION - show + registration
	$('.log_me_in').click(function () {
		if ($('#login_form').attr("class") == 'down') {
			$('#login_form').slideUp(500, 'easeInQuad');
		} else {		
			$('#login_form').slideDown(400, 'easeOutQuad');
		}
		$('#login_form').toggleClass('down');
		return false;
	});

// --------- HOME - JUST IN! Pagination

	// slideshow
	$('#home_slides ul').innerfade({
		speed: 2000,
		timeout: 4000,
		type: 'sequence'
	});
	
	// get total items
	var pix = $('#just_in .photos').find('li').length;
	// set current item initial value
	var scroll_to = 0;
	// turn off previous slide initially
	$('#just_in .prev').addClass('off');
	// show the first description by default
	$('#just_in .description li').css({color: '#fff'}).hide();
	$('#just_in .description li:first').css({color: '#333'}).show();
	// used on click events to set right state of prev/next buttons
	function clickadoo() {
		if (scroll_to == 0){
			$('#just_in .prev').addClass('off');
		} else {
			$('#just_in .prev').removeClass('off');
		}
		if (scroll_to == pix-1){
			$('#just_in .next').addClass('off');
		} else {
			$('#just_in .next').removeClass('off');
		}
		// show the corresponding descriptions
		$('#just_in .description li').css({color: '#fff'}).hide();
		$('#just_in .description li:eq(' + scroll_to + ')').show().animate({color: '#333'}, 1000);
	}

	$('#just_in .next a').click(function() {
		if (scroll_to+1 < pix) {
			scroll_to++;
			$('#slides').scrollTo('li:eq(' + scroll_to + ')', 500, {axis:'x', easing:'easeInOutQuint'});
			clickadoo();
		}
		return false;
	});
	
	$('#just_in .prev a').click(function() {
		if (scroll_to > 0) {
			scroll_to--;
			$('#slides').scrollTo('li:eq(' + scroll_to + ')', 500, {axis:'x', easing:'easeInOutQuint'});
			clickadoo();
		}
		return false;
	});

// --------- ANTIQUES + ORIGINALS Slideshow


	// slideshow
	$('.antiques #flash_content ul, .originals #flash_content ul').innerfade({
		speed: 2000,
		timeout: 4000,
		type: 'sequence'
	});

// --------- ANTIQUES - LATEST ARRIVALS Pagination

	// get total items
	var items = $('#latest_arrivals .photos').find('li').length;
	// set current item initial value
	var scroll_to = 0;
	// turn off previous slide initially
	$('#latest_arrivals .prev').addClass('off');
	// show the first description by default
	$('#latest_arrivals .description li').css({color: '#fff'}).hide();
	$('#latest_arrivals .description li:first').css({color: '#333'}).show();
	// used on click events to set right state of prev/next buttons
	function click_btn() {
		if (scroll_to == 0){
			$('#latest_arrivals .prev').addClass('off');
		} else {
			$('#latest_arrivals .prev').removeClass('off');
		}
		if (scroll_to == items-1){
			$('#latest_arrivals .next').addClass('off');
		} else {
			$('#latest_arrivals .next').removeClass('off');
		}
		// show the corresponding descriptions
		$('#latest_arrivals .description li').css({color: '#fff'}).hide();
		$('#latest_arrivals .description li:eq(' + scroll_to + ')').show().animate({color: '#333'}, 1000);
	}

	$('#latest_arrivals .next a').click(function() {
		if (scroll_to+1 < items) {
			scroll_to++;
			$('#slides').scrollTo('li:eq(' + scroll_to + ')', 500, {axis:'x', easing:'easeInOutQuint'});
			click_btn();
		}
		return false;
	});
	
	$('#latest_arrivals .prev a').click(function() {
		if (scroll_to > 0) {
			scroll_to--;
			$('#slides').scrollTo('li:eq(' + scroll_to + ')', 500, {axis:'x', easing:'easeInOutQuint'});
			click_btn();
		}
		return false;
	});

// --------- ANTIQUES + ORIGINALS - BROWSE

	// sorting - little Hack to get the righ formating on product categories
	$('#nav_categories ul li .selected').parent().parent().show(); // for buggy safari...
	$('#nav_categories ul li .selected').parent().parent().parent().find('a:first').addClass('selected');

 	// sorting - subcategory
	$('.listing #categories ol > li > a').click(function () {
		$('.listing #categories ol > li').removeClass('selected');
		$(this).parent().toggleClass('selected');
		return false;
	});

	//  sorting - close dropdown when mousing out of it
	$('.listing #sort ul').hover(
		function () {
			$('.listing #sort li').show();
		}, 
		function () {
			$('.listing #sort li').hide();
			$('.listing #sort .selected').show();
		}
	);

// --------- ANTIQUES + ORIGINALS - VIEW 
	
	// show email to friend form
	$('.email').click(function () {
		if ($('#email2friend').attr("class") == 'down') {
			$('#email2friend').slideUp(300, 'easeInQuad');
		} else {		
			$('#email2friend').slideDown(300, 'easeOutQuad');
		}
		$('#email2friend').toggleClass('down');
		return false;
	});
	
	// fade out confirmation message
	$("#email2friend_conf").animate({opacity:1.0}, 1500).fadeOut("slow");

// --------- PRESS - PDF THUMBS Pagination

	// ON MAIN ABOUT PAGE
	// get total items
	var pdf4_th = $('#main #in_press #slides ol').find('li').length;
	// set current item initial value
	var pdf4_scroll_to = 0;
	// turn off previous slide initially
	$('#main #in_press .prev').addClass('off');
	// used on click events to set right state of prev/next buttons
	function pdf4_click_btn() {
		if (pdf4_scroll_to == 0){
			$('#main #in_press .prev').addClass('off');
		} else {
			$('#main #in_press .prev').removeClass('off');
		}
		if (pdf4_scroll_to == pdf4_th-4){
			$('#main #in_press .next').addClass('off');
		} else {
			$('#main #in_press .next').removeClass('off');
		}
	}

	$('#main #in_press .next a').click(function() {
		if (pdf4_scroll_to+4 < pdf4_th) {
			pdf4_scroll_to++;
			$('#slides').scrollTo('li:eq(' + pdf4_scroll_to + ')', 500, {axis:'x', easing:'easeInOutQuint'});
			pdf4_click_btn();
		}
		return false;
	});
	
	$('#main #in_press .prev a').click(function() {
		if (pdf4_scroll_to > 0) {
			pdf4_scroll_to--;
			$('#slides').scrollTo('li:eq(' + pdf4_scroll_to + ')', 500, {axis:'x', easing:'easeInOutQuint'});
			pdf4_click_btn();
		}
		return false;
	});

	// ON TESTIMONIALS PAGE
	// get total items
	var pdf1_th = $('#aside #in_press #slides ol').find('li').length;
	// set current item initial value
	var pdf1_scroll_to = 0;
	// turn off previous slide initially
	$('#aside #in_press .prev').addClass('off');
	// used on click events to set right state of prev/next buttons
	function pdf1_click_btn() {
		if (pdf1_scroll_to == 0){
			$('#aside #in_press .prev').addClass('off');
		} else {
			$('#aside #in_press .prev').removeClass('off');
		}
		if (pdf1_scroll_to == pdf1_th-1){
			$('#aside #in_press .next').addClass('off');
		} else {
			$('#aside #in_press .next').removeClass('off');
		}
	}

	$('#aside #in_press .next a').click(function() {
		if (pdf1_scroll_to+1 < pdf1_th) {
			pdf1_scroll_to++;
			$('#slides').scrollTo('li:eq(' + pdf1_scroll_to + ')', 500, {axis:'x', easing:'easeInOutQuint'});
			pdf1_click_btn();
		}
		return false;
	});
	
	$('#aside #in_press .prev a').click(function() {
		if (pdf1_scroll_to > 0) {
			pdf1_scroll_to--;
			$('#slides').scrollTo('li:eq(' + pdf1_scroll_to + ')', 500, {axis:'x', easing:'easeInOutQuint'});
			pdf1_click_btn();
		}
		return false;
	});
	
	// VALIDATION
	
	// --------- CONTACT FORM VALIDATION
	// add minimum word count method
	jQuery.validator.addMethod("minWords", function(value, element, params) { 
		return this.optional(element) || value.match(/\b\w+\b/g).length >= params; 
	}, "Please enter at least {0} words.");
	// custom validation for anti-spam question
	jQuery.validator.addMethod("spam_bot", function(value, element) {
		return this.optional(element) || /^green$/.test(value);
	}, "Wrong color");
	// validate signup form on keyup and submit
	$("#c_form").validate({
		rules: {
			c_name: { required: true, minlength: 2 },
			c_email: { required: true, email: true },
			c_msg: { required: true, minWords: 5 },
			bot: { required: true, spam_bot: true }
		},
		messages: {
			c_name: {
				required: "Required Field",
				minlength: "2 letters minimum"
			},
			c_email: "Valid email required",
			c_msg: {
				required: "Message required",
				minWords: "5 words minimum"
			},
			bot: {
				required: "Answer Required"
			}
		}
	});
	
	// --------- AUCTION FORM VALIDATION
	// custom validation for bid_amount
	jQuery.validator.addMethod("amount", function(value, element) {
		return this.optional(element) || /^[0-9]{1,6}$/.test(value);
	}, "numerical value under 7 digits only");
	$("#freeform").validate({
		rules: {
			bid_amount: { required: true, amount: true }
		},
		messages: {
			bid_amount: {
				required: "Required Field"
			}
		}
	});
	
	// --------- EMAIL TO FRIEND FORM VALIDATION
	$("#email2friendform").validate({
		rules: {
			f_email: { required: true, email: true }
		},
		messages: {
			f_email: {
				required: "Required Field"
			}
		}
	});
	
	// --------- ASK A QUESTION FORM VALIDATION
	$("#entryform").validate({
		rules: {
			field_id_18: { required: true, minWords: 3 }
		},
		messages: {
			field_id_18: {
				required: "Question required",
				minWords: "3 words minimum"
			}
		}
	});
	
	// --------- COMMENT FORM VALIDATION
	// validate signup form on keyup and submit
	$("#comment_form").validate({
		rules: {
			name: { required: true, minlength: 2 },
			email: { required: true, email: true },
			comment: { required: true, minWords: 5 }
		},
		messages: {
			name: {
				required: "Required Field",
				minlength: "2 letters minimum"
			},
			email: "Valid email required",
			comment: {
				required: "Message required",
				minWords: "5 words minimum"
			}
		}
	});

});
