﻿/*======================================================================================
 Home JS handler
 Created: TH - 03/11/2009
======================================================================================*/



//======================================================================================
// Handles Puma Home Pane Slider Widgets
//======================================================================================
ppanes = { 
	
	pane_builder: function(){
	
		//Set all of the buttons for initial state
		checkButtons(true, "#feature_arrows .rev a", "#feature_arrows .fwd a", iFeaturesRight, iTotalFeatures, 4);
		
		function gotoSelectedPane(iPaneNumber){
			iPainDifference =  iCurrentFeature - iPaneNumber;

			if(iPainDifference < 0){
				stMod = '+';
			}else{
				stMod = '-';
			}
			
			iMoveLocation = iPainDifference*988;
			
			$("#feature_panes_wrapper").animate({"left": "+="+iMoveLocation+"px"}, "slow");
			iCurrentFeature = iPaneNumber;
		}
		
		
		
		$("#feature_arrows .rev a").click(function(event){
			//$(document).stopTime("features");
			controlClick('stop');
			iFeaturesRight = moveFrames("#features_list_wrapper", 250, 'left', iTotalFeatures, 3, iFeaturesRight);
			checkButtons(true, "#feature_arrows .rev a", "#feature_arrows .fwd a", iFeaturesRight, iTotalFeatures, 3);
			return false;
		});
		
		$("#feature_arrows .fwd a").click(function(event){
			//$(document).stopTime("features");
			controlClick('stop');
			//$("#features_list li").eq(iFeaturesRight).addClass("feature_selected");
			iFeaturesRight = moveFrames("#features_list_wrapper", 250, 'right', iTotalFeatures, 3, iFeaturesRight);
			checkButtons(true, "#feature_arrows .rev a", "#feature_arrows .fwd a", iFeaturesRight, iTotalFeatures, 3);
			return false;
		});
		
		$("#latest_products .rev a").click(function(event){
			//$(document).stopTime("features");
			//controlClick('stop');
			iProdFeaturesRight = moveFrames("#prod_panes", 224, 'left', iTotalProducts, 1, iProdFeaturesRight);
			checkButtons(true, "#latest_products .rev a", "#latest_products .fwd a", iProdFeaturesRight, iTotalProducts, 1);
			return false;
		});
		
		$("#latest_products .fwd a").click(function(event){
			//$(document).stopTime("features");
			//controlClick('stop');
			//$("#features_list li").eq(iFeaturesRight).addClass("feature_selected");
			iProdFeaturesRight = moveFrames("#prod_panes", 224, 'right', iTotalProducts, 1, iProdFeaturesRight);
			checkButtons(true, "#latest_products .rev a", "#latest_products .fwd a", iProdFeaturesRight, iTotalProducts, 1);
			return false;
		});
		
		//this script was disabled, but can be used if uncommented
		//it's a method for moving the main picture based on what's clicked
		$('#features_list li').click(
			function() {
				$(document).stopTime("features");
				
				$(".feature_selected").each(function () {
					$(this).removeClass('feature_selected');
				});
				
				$(this).addClass('feature_selected'); 
				
				stFeatureSelected = $(this).attr('id').substr(13);
		
				iFeatureSelected = parseFloat(stFeatureSelected);

				gotoSelectedPane(iFeatureSelected);
				return false;
			}
		);
		
	},
	pane_auto_play: function(){
	
			isLooping = 1;
			inc = 0;
			
			checkFeatures = function() {
				
				$("#features_list li").removeClass("feature_selected");
				$("#features_list li").eq(iCurrentFeature).addClass("feature_selected");
				
				//3 at a time
				if (iCurrentFeature < iTotalFeatures) {
					if(iCurrentFeature > 0 && iCurrentFeature%3 == 0){
						iFeaturesRight = moveFrames("#features_list_wrapper", 250, 'right', iTotalFeatures, 3, iFeaturesRight);
					}
					if (iCurrentFeature == 0 && inc > 0) {
						iFeaturesRight = moveFrames("#features_list_wrapper", 250, 'zero', iTotalFeatures, iTotalFeatures, iFeaturesRight);
					}
				}

				checkButtons(true, "#feature_arrows .rev a", "#feature_arrows .fwd a", iFeaturesRight, iTotalFeatures, 3);

				inc++;
				
			}

			slideTo = function(pos) {
				currentFeature = pos;
				pos = (pos) * -988;
				pos = pos + "px";
				$("#feature_panes_wrapper").animate({ 
					left: pos
				}, 500 );
				checkFeatures();
			}
			
			$("#feature_panes li a").click(function () {
				controlClick('stop');
			});

			
			nextFeature = function() {
				if (iCurrentFeature < iTotalFeatures-1 ) {
					iCurrentFeature =  ++iCurrentFeature;
					slideTo(iCurrentFeature);
				} else {
					iCurrentFeature = 0;
					slideTo(0);
				}
			}
			
			checkFeatures();

			$(document).everyTime(5000, "features", function(i) {
				nextFeature();
			});
			
		
			$("#loop_controls").click(function () { controlClick() });
																				 
			controlClick = function (request) {
				if ((isLooping == 1) || (request == "stop")) {
					$(document).stopTime("features");
					$("#loop_controls").addClass('paused');
					isLooping = 0;
				} else {
					$("#loop_controls").removeClass('paused');
					$(document).everyTime(5000, "features", function(i) {
						nextFeature();
					});
					isLooping = 1;
				}
			};

	
	},
	init: function(){
		iTotalFeatures = $("#features_list li").length;
		iCurrentFeature = 0;
		iCurrentPane = 0;
		iFeaturesRight = 3;
		
		iTotalProducts = $("#prod_panes li").length;
		iProdFeaturesRight = 1;
		
		ppanes.pane_builder();
		ppanes.pane_auto_play();
	}
}



function moveFrames(stFrameID, iFrameWidth, stDirection, iTotalQuantity, iMoveAmount, iCurrentEdgeElement){
	
	if(stDirection == 'right'){
		iFeaturesLeft = iTotalQuantity-(iCurrentEdgeElement);
		
		if(iFeaturesLeft <= 0){
			return iCurrentEdgeElement;
		}
		
		if(iMoveAmount >= iFeaturesLeft){
			iMoveAmount = iFeaturesLeft;
		}
		
		iCurrentEdgeElement += iMoveAmount;
		if(iCurrentEdgeElement >= iTotalQuantity){
			iCurrentEdgeElement = iTotalQuantity;
		}
		
		iFullMove = iMoveAmount*iFrameWidth;
		$(stFrameID).animate({"left": "-="+iFullMove+"px"}, "slow");
		
	}else if (stDirection == 'left'){
		// Left
		if(iCurrentEdgeElement == iMoveAmount){
			return iCurrentEdgeElement;
			
		}else if((iCurrentEdgeElement-iMoveAmount) > iMoveAmount){
			iShiftAmount = iMoveAmount;
			
		}else{
			iShiftAmount = (iCurrentEdgeElement-iMoveAmount);
		}

		iFullMove = iShiftAmount*iFrameWidth;
		$(stFrameID).animate({"left": "+="+iFullMove+"px"}, "slow");

		iCurrentEdgeElement -= iShiftAmount;
	}
	else {
		iCurrentEdgeElement = 3;
		$(stFrameID).animate({"left": "0px"}, "slow");
	}
	
	return iCurrentEdgeElement;
	
}

function checkButtons(isHorizontal, stLeftArrowID, stRightArrowID, iRightFeature, iTotalFeatures, iQuantityVisible){
	
	if(isHorizontal){
		if(iRightFeature >= iTotalFeatures){
			$(stRightArrowID).removeClass('on').addClass('off');
		}else{
			$(stRightArrowID).removeClass('off').addClass('on');
		}
		
		if((iRightFeature-iQuantityVisible) > 0){
			$(stLeftArrowID).removeClass('off').addClass('on');
		}else{
			$(stLeftArrowID).removeClass('on').addClass('off');
		}
		
	}else{
		if(iRightFeature >= (iTotalFeatures-1)){
			$(stRightArrowID).removeClass('on').addClass('off');
		}else{
			$(stRightArrowID).removeClass('off').addClass('on');
		}
		
		if((iRightFeature-iQuantityVisible) > 0){
			$(stLeftArrowID).removeClass('off').addClass('on');
		}else{
			$(stLeftArrowID).removeClass('on').addClass('off');
		}
		
	}
}


$(document).ready(function() {
	ppanes.init();
});
