/*
 * Sticky element, scrollTo, and anchor Points
 */

// highlight corresponding link when in window
function refreshStickyLinks(activeLink) {
	activeLink.addClass("active");
	$("div#leftSticky a").not(activeLink).removeClass("active");
}

// anchor points
function setWayPoints() {
$(".anchorPoint").waypoint(function() {
	var thisPoint = $(this).attr("id");
	var getLink = $("a[href=#" + thisPoint + "]");
	getLink.addClass("active");
	refreshStickyLinks(getLink);
}, {
   offset: 100
});
}

// set the sticky element
function setSticky() {
$("div#leftSticky").localScroll({
	duration:750, 
	lock: true, 
	offset: { left: 0, top: 0 }, 
	onBefore: function(event) {
	$(".anchorPoint").unbind("waypoint");
	var $t = $(event.target);
	refreshStickyLinks($t)
	}, 
	onAfter: function() {
	setWayPoints();
	}
});
setWayPoints();
}




/*
 * Show Scores!
 */
function showScores() {
$("span.reviewerScore").each(function() {
	var $ratingNum = $(this).attr("rel");
	$(this).unbind("raty").raty({
		readOnly:	true,
		half:		true,
		start:		$ratingNum
	});
});
}



/*
 * Review Form Functions
 */
 
// set functions once opened 
function setReviewForm() {
$('#giveScore').raty({
  target:     '#getScore',
  targetKeep: true,
  targetType: 'number'
});

$("#reviewForm").validate({
	submitHandler: function(form) {
	var thisParent = $(form).parent();
	var updatePath = $(form).attr("action");
	$.ajax({
		type	: "POST",
		cache	: false,
		url	: updatePath,
		data	: $(form).serializeArray(),
		success: function(html) {		
			$(thisParent).html(html);
			showScores();
		}
	});
	return false;
	}
});
}




/*
 * Form Cosms
 */
function formCosm() {
$("form.openForm").validate({
	submitHandler: function(form) {
	$.fancybox.showActivity();
	$.ajax({
		type	: "POST",
		cache	: false,
		url		: $(form).attr("action"),
		data	: $(form).serializeArray(),
		success: function(html) {		
			$.fancybox(html);
			$.fancybox.resize();
		}
	});
	return false;
	}
});
}

function specialForms() {
$(".contactCosm").click(function() {
	var strings = $(this).attr("href").split("?");
	var str = strings[1];
	$.fancybox({	
	'scrolling' : 'no',
	'autoDimensions' : true,
	'titleShow'	: false,
	'href'		: "ajax/contactForm.dna?" + str,
	ajax : {
		type	: "GET"
		},	
	'onComplete'	: function() {
	 formCosm();
		}
	});
return false;
});
}



/*
 * Product Page Functions
 */
function setProductPages() {
// tabs
var $tabs = $("#productTabs").tabs({ 
	ajaxOptions: { 
		success: function() {
		setReviewForm();
		showScores();
		} 
	} 
});
// reviews link opens panel
$('.openReviews').click(function() {
    $tabs.tabs('select', 2);
    return false;
});
// photos
$("a[rel=productPhotos]").fancybox({
	'transitionIn'		: 'none',
	'transitionOut'		: 'none',
	'titlePosition' 	: 'inside',
	'titleFormat'       : function(title, currentArray, currentIndex, currentOpts) {
	    return '<span id="fancybox-title-inside">Image ' +  (currentIndex + 1) + ' / ' + currentArray.length + ' ' + title + '</span>';
	}
});
// main rating
var $ratingNum = $("#ratingNum").val();
$('#theReview').raty({
	readOnly:  true,
	half:  true,
	start:     $ratingNum
});
}



function openTube() {

$("a.openTube").click(function() {
	$.fancybox({
			'padding'		: 0,
			'autoScale'		: false,
			'transitionIn'	: 'none',
			'transitionOut'	: 'none',
			'title'			: this.title,
			'width'		: 680,
			'height'		: 495,
			'href'			: this.href.replace(new RegExp("watch\\?v=", "i"), 'v/'),
			'type'			: 'swf',
			'swf'			: {
			   	 'wmode'		: 'transparent',
				'allowfullscreen'	: 'true'
			}
		});

	return false;
});

}


function homeScreen() {
if ( $("ul#homeSlides").length == 0 ) {
	return false;
}
$('ul#homeSlides li').css('cursor', 'pointer').click(function() {
        window.location = $('a', this).attr('href');
});
}



function popitup(url) {
	newwindow=window.open(url,'Cafe Press Shopping Cart','height=600,width=780,scrollbars=yes');
	if (window.focus) {newwindow.focus()}
	return false;
}


function cpBuy() {
if ( $("form#cpBuy").length == 0 ) {
	return false;
}

$("form#cpBuy").submit(function() {
	$.ajax({
		type	: "POST",
		cache	: false,
		url	: $(this).attr("action"),
		data	: $(this).serializeArray(),
		success: function(txt) {		
			popitup(txt);
		}
	});
	return false;
});

}



$(document).ready(function() {

$("div#bottomSticky").localScroll({
	duration:500
});
	$('#upTop').addClass('hidden');
	$.waypoints.settings.scrollThrottle = 30;
	$('.bigwrapper').waypoint(function(event, direction) {
		$('#upTop').toggleClass('hidden', direction === "up");
	}, {
		offset: '-100%'
	});


setSticky();
setProductPages();
specialForms();
showScores();
openTube();
cpBuy();


});
