//On page load...
var inter;
$(function() {

	
	/*****************************
	Global
	*****************************/	
	$('.empty').bindToEmpty();
	$('a.remove-title').attr('title', '');
	$('.clickable').click(function() { window.location = $(this).attr('itemid'); });
	$("ul.sf-menu").superfish({ pathClass: 'current' });
	$('#head_search').click(function(){ pageTracker._trackEvent( 'Search', $(this).parents().find('input').text());
} );
	$('.clickable2').click(function() { 
		//Google Event
		if(pageTracker) {
			if(gdata) {
				var t = $(this).attr('id').split('-');
				pageTracker._trackEvent('Buy Now', 'Click', gdata[t[1] - 1].dealer +' :: '+ gdata[t[1] - 1].model);
				//console.log('tracking: Buy Now - Click: '+gdata[t[1] - 1].dealer +' :: '+ gdata[t[1] - 1].model);
			}
		}
		window.location = $(this).attr('itemid');
	});
	
	$('.buynownew #retailers a').click(function() {
		pageTracker._trackEvent('Buy Now List', 'Click', 'Guitar Page:'+$(this).html());
		//console.log('Tracking Buy Now List Click');
	});
	
	$('.buynow .buynow_list a').click(function() {
		pageTracker._trackEvent('Buy Now List', 'Click', 'Generic Page:'+$(this).html());
		//console.log('Tracking Buy Now List Click');
	});
	
	$('#newsletter form').submit(function() {
		pageTracker._trackEvent('Newsletter', 'Signup', $('input', $(this)).val());
		pageTracker._trackPageview('/newsletter/signup');
		//console.log('newsletter form: Newsletter Signup '+$('input', $(this)).val());
		return true;
	});
	
	Cufon.DOM.ready(function() {
		Cufon.replace('.gotlight, .gotlight *, .wysiwyg h3', {fontFamily: 'Gotham Narrow Light', hover: true});
		Cufon.replace('.got, .got *', {fontFamily: 'Gotham Narrow'}); //hover:true
		Cufon.replace('#blog_featured #sidebar #featured_list .got', {textShadow: '#fff 0px 1px'});
		Cufon.replace('.gotmed, .gotmed *', {fontFamily: 'Gotham Medium'});
		Cufon.replace('.gotbold, .gotbold *', {fontFamily: 'Gotham Narrow Bold'});
	});
	
	/*****************************
	Home Page
	*****************************/
	/*$('#home_feature').infiniteCarousel({
		onChange:function(page) {
			$('ul.indicator li').removeClass('current');
			$('ul.indicator li:nth-child('+page+')').removeClass('current').addClass('current');
			if(inter) {
				clearInterval(inter);
				inter = setInterval("$('#home_feature .forward').trigger('click')", 5000);
			}
		}
	});*/
	
	if($('body').hasClass('home')){
		homeCback = true;
		$('#home_feature .wrapper').carousel("#home_feature .back","#home_feature .forward");
	
		 inter = setInterval("$('#home_feature .forward').trigger('click')", 5000);
	}
	if($('body').hasClass('crack')){
		$('#series_select').show();
		$('.selector').dropdown();
		$('div.numSeries').hide();
		$('#four_digit').show();
		
		$('#series_select').change(function(){
			if($(this).val() == "4 Digit"){
				$('div.numSeries').hide();

				$('#four_digit').show();
			}
			else if($(this).val() == "3 Digit"){
				$('div.numSeries').hide();

				$('#three_digit').show();
			}
			else if($(this).val() == "6 Digit"){
				$('div.numSeries').hide();

				$('#six_digit').show();
			}
			else if($(this).val() == "Adamas"){
				$('div.numSeries').hide();

				$('#adamas_series').show();
			}
			else if($(this).val() == "Collectors"){
				$('div.numSeries').hide();

				$('#collectors_series').show();
			}
			return true;
		});
			
				
	}
	/*****************************
	Dealer Search
	*****************************/
	if($('body.dealer').not('body.buynow').length) {
		$('#the_map .map_container').googleMap();
	}
	
	/*****************************
	Buy Now
	*****************************/
	if($('body.buynownew').length) {
		var shuffled = $('#result_content ul li').shuffle();
		var num = 1;
		shuffled.each(function(i) {
			if(num > 3) { num = 1; }
			$(this).addClass('col'+num);
			num ++;
		});
	}
	
	if($('body.buynow').length) {
		$('#result_content ul li').shuffle();
	}
	
	/*****************************
	Guitar/Applause listing page
	*****************************/
	if($('body').hasClass('guitars')) {
		$("#product_info").tabs({show:function() {
			Cufon.refresh('.got, .got *');
		}});
	}
	$('#product_hero').heros();
	
	if($('body').hasClass('downloads')) {
		$("#downloads_container").tabs({show:function() {
			Cufon.refresh('.got, .got *');
		}});
	}
	
	/*****************************
	Guitar Product Page
	*****************************/
	if($('body.guitar-product, body.share').length) {
		 var delay = 200;

		function hideMenu() {
			if (!$('.custom_button').data('in') && !$('.hover_menu').data('in') && !$('.hover_menu').data('hidden')) {
				$('.hover_menu').fadeOut('fast');
				$('.custom_button').removeClass('active');
				$('.hover_menu').data('hidden', true);
			}
		}
		
		$('.custom_button, .hover_menu').mouseenter(function() {
			$('.hover_menu').fadeIn('fast');
			$('.custom_button').addClass('active');
			$(this).data('in', true);
			$('.hover_menu').data('hidden', false);
		}).mouseleave(function() {
			$(this).data('in', false);
			setTimeout(hideMenu, delay);
		});    
	}//end if
	
	/*****************************
	Product Filtering - Build URL
	*****************************/
	if($('body').hasClass('products-filterable')) {
		var filterURL = {};
		
		$('.selector').not('#price_selector').dropdown({onChange:function(parts, selector) {
			//Specific to product filtering
			if(filterURL) {
				filterURL[selector.parent().parent().attr('id')] = parts[0];
				if(typeof(base_url)!='undefined') {
				var base = base_url+segment_1+'/category/';
				} else {
					var base = 'http://www.ovationguitars.com/'+segment_1+'/category/';
				}
				var add = '';
				$.each(filterURL, function(i, v) {
					if(v != null && v != '') {
						add += v+'/';
					}
				});
				window.location = base+add;
			}
		}, init:function(selects) {
			if(filterURL) {
				$.each(selects, function(i) {
					var parts = $(this).val().split('|');
					filterURL[$(this).parent().parent().attr('id')] = parts[0];
				});
			}
		}});
		$('#price_selector').dropdown({onChange:function(parts, selector) {
			if(parts[0] != '') {
				$('#dyn_orderby').val(parts[0]);
				$('#dyn_sort').val(parts[1]);
				$('#form_price_selector').submit();
			}
		}});
		
		$('#genre_selector').dropdown();
		
		$('.tall_result .result_pic, .wide_result .result_pic').equalHeights();
		$('#page_title').append($('ul.pagination').clone());
	}
	
	
	/*****************************
	Soundrom/blog featured
	*****************************/	
	if($('body.soundroom-home').length) {
		var tabs = $("#blog_featured").tabs({ event: 'mouseover'});
		tabs.tabs("rotate" , 5000 , true);
	}
	
	if($('#comment_form').length) {
		$.validator.addMethod("isName", function(value, element) {
			if(value == 'Name') { return false; }
			return true;
		}, 'This field is required.');
		$.validator.addMethod("isMessage", function(value, element) {
			if(value == 'Message') { return false; }
			return true;
		}, 'This field is required.');
		
		$('#comment_form').validate({rules:{"name":{required:true, isName:true}, "comment":{required:true, isMessage:true}}});
	}
	//Handle custom dropdowns (TO DO: Abstract to all dropdowns site-wide)
	$('#contact_question_dropdown').change(function() {
		if($(this).val() != '') {
			var parts = $(this).val().split('|');
			//$(this).siblings('div').html(parts[0]);
			if(parts[1] != '' && parts[1] != '#') {
				window.location = parts[1];
			}
		}
	});
	var dropdown = $('#contact_question_dropdown');
	if(dropdown.length) {
		var parts = dropdown.val().split('|');
		dropdown.siblings('div').html(parts[0]);
		
		$('#difficulty_chooser').find('a').click(function() {
			var val = $(this).attr('href').substring(1);
			$('#article_lesson_difficulty').val(val);
			$('#difficulty_chooser').submit();
			return false;
		});
	}
	
	/*****************************
	Electronics
	*****************************/
	var elecitms = $('div.electronic_item');
	if(elecitms.length) {
		elecitms.hover(function() {
			$(this).prev().removeClass('sibling').addClass('sibling');
		}, function() {
			$(this).prev().removeClass('sibling');
		});
	} else
	/*****************************
	Events/Meetups
	*****************************/
	if($('body.getlive').length) {
		$('#event_search_exec').click(function(e) {
			handleZipSubmit();
			return false;
		});
		$('form#zip_event_search').keyup(function(e) {
			e.cancelBubble = true;
			if (e.stopPropagation) e.stopPropagation();
			if(e.keyCode == 13) {
				handleZipSubmit();
				return false;	//not firing?
			}
		});
		function handleZipSubmit() {
			var t = $('form#zip_event_search');
			var zipcode = t.find('input[type=text]').val();
			if(!$.validZip(zipcode)) {
				return;  //invalid zipcode
			}
			$.googleDecode({zip:zipcode, callBack:function(pnt) {
				t.find('input:hidden[name=lat]').val(pnt.lat());
				t.find('input:hidden[name=lng]').val(pnt.lng());
				//alert('submitting');
				t.submit();
			}});
		}
	}
	
	
	if($('#create_meet_btn').length) {
		/*
		-Open Modal
		-Bind to Empty
		-Set up dropdown(s)
		Handle Submit click
		-Handle Cancel click
		-Handle datepicker
		Handle File Uploader (?)
		Handle Validation
		*/
		$('#create_meet_btn button').click(function() {
			$('.modal').modal();
			$('#publishForm').validate();
			$('.empty').bindToEmpty();
			$('.selector').dropdown();
			$('#date_picker').datepicker({ dateFormat: 'yy-mm-dd '+"'11:11 AM'", defaultDate: new Date() });
			$('.modal footer ul li:first-child').click(function() {
				return false;
			});
			$('.modal footer ul li:last-child').click(function() {
				$.modal.close();
				return false;
			});
		});
	}
	
	/*****************************
	Players
	*****************************/
	if($('body.players.artists.listing').length) {
		$('#player_grid').players();
	}
	
	//Artist Lightbox
	if($('body.artists.single').length || $('#finishes').length) {
		if(typeof(base_url)!='undefined') {
			var base = base_url
		} else {
			var base = 'http://www.ovationguitars.com/';
		}
		$('.artist_photos ul li a, #finishes a').lightBox({
			imageLoading: base+'images/lightbox-ico-loading.gif',
			imageBtnClose: base+'images/lightbox-btn-close.gif',
			imageBtnPrev: base+'images/lightbox-btn-prev.gif',
			imageBtnNext: base+'lightbox-btn-next.gif'
		});
	}
	
	/******************************
	* Warranty - Form & Validation
	******************************/
	if($('body.warranty.registration').length) {
		$.validator.messages.required = "Required";
		$.validator.messages.email = "Invalid Email";
		$('#warranty_post input[name="form_token"]').val('ds_war_token');
		
		$('.selector').dropdown();
		
		$('.datetype input').datepicker();
		
		var $tabs = $('#warranty_box').tabs({fx:{opacity:'toggle'}, show:function() {
			Cufon.refresh('.got, .got *'); //Expensive
		}});
		
		var warranty_current_step = 0; //0-index

		$('.backforth a').click(function() {
			if($(this).hasClass('next')) {
				if(v.form()) { warranty_current_step += 1; }
			} else if($(this).hasClass('previous')) {
				warranty_current_step -= 1;
			} else if($(this).hasClass('submit')) {
				$('#warranty_post').trigger('submit');
			}
			
			$tabs.tabs('select', warranty_current_step);
			
			return false;
		});
		
		$tabs.tabs('select', warranty_current_step);
		
		//Handle multiple pages
		$.validator.setDefaults({messages:{required:"Required"}});
		$.validator.addMethod("pageRequired", function(value, element) {
			var $element = $(element);
			function match(index) {
				return warranty_current_step == index && $(element).parents("#step"+(index + 1)+"_form").length;
			}
			if (match(0) || match(1) || match(2)) {
				return !this.optional(element);
			}
			return "dependency-mismatch";
		}, $.validator.messages.required);
		
		//Init validation
		$.validator.messages.required = "Required";
		
		var v = $("#warranty_post").validate({ 
			errorClass: "error",error:function(label){label.addClass("error").text("Required");},success:function(label) {
			if(!label.hasClass("cbox")){
     label.addClass("valid").text("OK");
	 }
   },errorPlacement: function(error, element) {
 
     error.appendTo( element.parent("span") );
	 
   }
		,messages: { required:"Required"}
		, highlight: function(element, errorClass) {
		$(element).parent().addClass(errorClass);
		},
		 unhighlight: function(element, errorClass) {
		$(element).parent().removeClass(errorClass);
		}

		
		});
		$.validator.messages.required = "Required";
		//console.log("REQ:" + $.validator.messages.required);
	}
	
	/*****************************
	Search Results
	*****************************/
	if($('body').hasClass('search')) {
		$('.selector').dropdown({onChange:function(parts, selector) {
			$('input:hidden[name="channel"]').val(parts.join('|'));
			$('#result_input input').val($('#search_term').val());
			$('#searchpage_search').submit();
		}});
	}
	
	/*****************************
	custom shop
	*****************************/
	if($('body.custom_shop').length) {
		$('#custom_shop_slider_view').carousel('#custom_left','#custom_right');
	}
	
	
	/*****************************
	International
	*****************************/
	if($('body.international.language').length) {
		var conts = $('#intl_continents li');
		var dists = $('.dist_list');
		var int_id = false;
		conts.click(function() {
			conts.removeClass('selected');
			$(this).addClass('selected');
			
			int_id = $(this).attr('id');
			
			$('.dist_list.current').fadeOut('fast', function() {
				dists.removeClass('current');
				$('#'+int_id+'_dist').fadeIn('fast').addClass('current');
			});
			
			if(contSwitchLink !== 'undefined') {
				$.ajax({
					url:contSwitchLink+int_id
				});
			}
			
			return false;
		});
		
		if(the_continent !== 'undefined') {
			$('#intl_continents #'+the_continent).addClass('selected');
		}
	}
});
