// JavaScript Document

var enableSWFAddressHandler = true;

$(document).ready(function(){
	var bodyClass = $('body').attr('class');
	if(bodyClass.search('product_details') != -1){
		initProductGallery();
		initProductTabs();
		initEmailForm();
	}else{
		$('#side_prod_nav a.link_arrow').each(function(i,elem){
			var sibs = $(elem).siblings('ul');
			if(sibs.length == 0){
				$(elem).attr('class', $(elem).attr('class') + ' inactive');
			}else{
				$(elem).click(function(){
					var sibs = $(this).siblings('ul');
					var ul = sibs[0];
					if($(ul).css('display') != "block"){
						$(ul).show();
					}else{
						$(ul).hide();
					}
				});
			}
		});
	}
});


/*--------------------------------------------------------------------*/
/*	PRODUCT LISTING
/*--------------------------------------------------------------------*/

function viewPage(page){
	$('#current_page').val(page);
	enableSWFAddressHandler = false;
	loadProducts();
}

function filterBy(target, label){
	var value = $(target).text().trim();
	$('#attr_label').val(label);
	$('#attr_value').val(value);
	enableSWFAddressHandler = false;
	loadProducts();
}

function loadProducts(){
	var category = $('#category').val();
	var page = $('#current_page').val();
	var label = $('#attr_label').val(label);
	var value = $('#attr_value').val(value);
	
	if(!enableSWFAddressHandler)
		window.location = "#/"+page+"/"+label+"/"+escape(value)+"/";
	
	$('#products_loader').show();
	$('#listing').load("/includes/store/ajax/products.php", {'category':category, 'page':page, 'attr_label':label, 'attr_value':value}, function(){
		redrawSIFR();
		$('#products_loader').fadeOut();
	});
}

function redrawSIFR(){
	// Add SIFR calls to elements that are replaced through AJAX to re-apply the sIFR styles...
	sIFR.replace(avantgarde, {
		selector : '.listing_group_title',
		css : {
			'.sIFR-root':{'color':'#333333','font-size':'16px','text-transform':'lowercase'},
			'.label':{'color':'#C41230'}
		},
		wmode : 'transparent',
		tuneWidth : 2
	});
	sIFR.replace(avantgarde, {
		selector : '.product_details h5',
		css : {'.sIFR-root':{'color':'#333333','font-size':'16px','text-transform':'lowercase'}},
		wmode : 'transparent',
		tuneWidth : 2
	});
}

function handleChange(event){
	if(enableSWFAddressHandler){
		var uripath = event.path;
		if(uripath != null && uripath != "" && uripath != "/"){
			$('#listing').html('');
			if(uripath.charAt(0) == "/") uripath = uripath.substring(1);
			if(uripath.charAt(uripath.length-1) == "/") uripath = uripath.substring(0, uripath.length-1);
			var uri = uripath.split("/");
			if(uri.length == 3){
				$('#current_page').val(uri[0]);
				$('#attr_label').val(uri[1]);
				$('#attr_value').val(unescape(uri[2]));
			}else if(uri.length == 2){
				$('#current_page').val(1);
				$('#attr_label').val(uri[1]);
				$('#attr_value').val(unescape(uri[2]));
			}else if(uri.length == 1){
				$('#current_page').val(uri[0]);
			}
			loadProducts();
		}
	}
}

SWFAddress.addEventListener(SWFAddressEvent.CHANGE, handleChange);


/*--------------------------------------------------------------------*/
/*	PRODUCT DETAILS
/*--------------------------------------------------------------------*/

var ITEM_WIDTH = 0;
var CURRENT_POS = 0;
var MAX_POS = 0;

function initProductGallery(){
	var totalItems = $("#product_gallery_container .secondary_product_image").length;
	ITEM_WIDTH = $("#product_gallery_container .secondary_product_image:first").outerWidth() + 5; // has a 5px margin on right side
	//ITEM_WIDTH = 85;
	var containerWidth = ITEM_WIDTH * totalItems;
	$("#product_gallery_container").css("width", containerWidth);
	if(totalItems > 3){
		MAX_POS = totalItems - 3;
		$("#btnNext").click(function(){ doSlide("next"); });
	}else{
		$("#btnNext").attr("class", "inactive");	
		$("#btnPrev").attr("class", "inactive");
	}
	
	$("#product_gallery_container .secondary_product_image img").click(function(){
		// TODO: add code to load new image in Product Zoom when clicked...
	});
}

function doSlide(direction){
	if(direction == "prev"){
		CURRENT_POS--;
		$("#product_gallery_container").animate({"left": "+="+ITEM_WIDTH});
		$("#btnNext").unbind("click");
		$("#btnNext").click(function(){ doSlide("next"); });	
		$("#btnNext").attr("class", "");
		if(CURRENT_POS == 0){
			$("#btnPrev").unbind("click");	
			$("#btnPrev").attr("class", "inactive");
		}
	}else{
		CURRENT_POS++;
		$("#product_gallery_container").animate({"left": "-="+ITEM_WIDTH});
		$("#btnPrev").unbind("click");
		$("#btnPrev").click(function(){ doSlide("prev"); });	
		$("#btnPrev").attr("class", "");
		if(CURRENT_POS == MAX_POS){
			$("#btnNext").unbind("click");
			$("#btnNext").attr("class", "inactive");
		}
	}
}

function initProductTabs(){
	$('.product_tab:first').show();
	$('#options_nav li:first a').attr('class','active');
}

function showTab(tab){
	$('.product_tab').hide();
	$('#tab_'+tab).show();
	$('#options_nav li a').attr('class','');
	$('#options_nav li a#btn_'+tab).attr('class','active');
	if($('#tab_'+tab+' h5.sIFR-replaced').length == 0){
		redrawSIFR();
	}
}

function loadImage(imageurl, zoomimage){
	if(hasFlash)
		thisMovie('flashzoom').changeImage(imageurl);
	else
		$('#product_detail_image a').attr('href',imageurl);
		$('#product_detail_image img').attr('src',zoomimage);
}

function initEmailForm(){
	$("#emailForm").submit(function(){ submitEmailForm(); return false; });
}

function toggleEmailForm(){
	$('#email_this').slideToggle();
}

function validateEmailForm(formData, jqForm, options){
	var yourName = $('#your_name').val().replace($('#your_name').attr('defaultText'), "");
	var friendName = $('#friend_name').val().replace($('#friend_name').attr('defaultText'), "");
	var friendEmail = $('#friend_email').val().replace($('#friend_email').attr('defaultText'), "");
	if(!yourName || !friendName || !friendEmail){
		alert("Please fill in all fields before pressing SUBMIT");
		return false;
	}else{
		return true;
	}
}

function submitEmailForm(){
	var options = {
		target : '#email_this',
		beforeSubmit : validateEmailForm
	};
	$('#emailForm').ajaxForm();
	$('#emailForm').ajaxSubmit(options);
}

function quoteThis(){
	$('#quoteForm').submit();
}