var BRAND_ZONE_ANIMATION_SPEED = 600; //in ms
var NEWS_TICKER_SPEED = 3500; //in ms
var CURRENT_FEATURE_INDEX;
var MAX_NEWS_STORY_LENGTH = 120; //in chars
var ticker = $('#newsTicker');
var polycomPressReleases = new Array(); //populated by the XML	
var INTHUMBNAIL = false;


$(document).ready(function() {

	$('#brandZoneFeatures div').hide(); //hide all features
	//$('#subFeatureContainer #subFeatures li:first').css('visibility', 'visible'); //fix to prevent image flipping
	$('#subFeatureContainer #subFeatures li').css('visibility', 'visible'); //fix to prevent image flipping
	$('#subFeatureContainer #subFeatures li').hide(); //hide all subfeatures
	
		if(DISPLAY_RANDOM_SUBFEATURE == 't') {
			currentSubFeatureIndex = (Math.floor(Math.random()* $('#subFeatureContainer #subFeatures li').size() ) + 1);
			$('#subFeatureContainer #subFeature_' + currentSubFeatureIndex).show(); //show the random feature
			$('#subFeatureContainer #subFeatures').css('background-color', '#333333'); 
		} else {
			$('#subFeatureContainer li:first').show(); //show the first item
			$('#subFeatureContainer #subFeatures').css('background-color', '#333333'); 
		}
	

	// - This is hardcoded to always select the first one.
	//CURRENT_FEATURE_INDEX = (Math.floor(Math.random()* $('#brandZoneFeatures div').size() ) + 1); //generate random index
	var FADE_OUT_SPEED = 800;
	var FADE_IN_SPEED = 1600;
	var GALLERY_ROTATION_SPEED = 6500;
	var currentGalleryIndex = 1;

	CURRENT_FEATURE_INDEX = 1;
	$('#brandZoneFeatures #brandZoneFeature_' + CURRENT_FEATURE_INDEX).show(); //show the random feature and highlight the thumb	
	highlightFeatureThumbnail(CURRENT_FEATURE_INDEX);
	currentGalleryIndex++;

	if( ($('#brandZoneFeatureThumbnails a').length) > 1 ) {
		setTimeout(function(){ rotateBrandZone(); } , (GALLERY_ROTATION_SPEED - 1000));
	}
	

//New Rotation of Brandzone
	function rotateBrandZone() {
		if(currentGalleryIndex == 1 && !INTHUMBNAIL) {
			 //show the random feature and highlight the thumb	
			//highlightFeatureThumbnail(currentGalleryIndex);
			showBrandZoneFeature(currentGalleryIndex);
			currentGalleryIndex++
		} else if (currentGalleryIndex == $('#brandZoneFeatureThumbnails a').length && !INTHUMBNAIL){
			 //show the random feature and highlight the thumb	
			//highlightFeatureThumbnail(currentGalleryIndex);
			showBrandZoneFeature(currentGalleryIndex);
			currentGalleryIndex = 1;
		} else if (!INTHUMBNAIL)
		 {
			//show the random feature and highlight the thumb	
			//highlightFeatureThumbnail(currentGalleryIndex);
			showBrandZoneFeature(currentGalleryIndex);
			currentGalleryIndex++
		}
		setTimeout(function(){ rotateBrandZone(); } , GALLERY_ROTATION_SPEED);
	} //end function	




	//cookie the SEO box to open/close upon return
	if($.cookie('seoBox') == null) {
		$('#moreText').css('display','none');
	} else {
		$('#seoReadMore').hide(); 
		$('#moreText').css('display','inline');
	}

		var NUMBER_SUBFEATURES_TO_DISPLAY = 4;
		var numSubFeatures = $('#subFeatureContainer #subFeatures li').length;
		var currentSubFeatureIndex;
		var lastSubFeatureIndex;
		var numScrolls = Math.ceil(numSubFeatures / NUMBER_SUBFEATURES_TO_DISPLAY);
		var currentSubFeatureLocation;
		var currentScrollLocation = 1;
		var pixelsToScroll = 72;

		if(numSubFeatures > 1) {
			for(var i=0; i<numSubFeatures; i++) {
				$('<div style="width:15px;float:left;margin-right:3px;"><a href="javascript:void(0);" class="subFeatureNav" style="" id="subFeatureNav_' + (i + 1) + '">' + (i + 1) + '</a></div>').appendTo('#subFeatureNumbers');
			}
		}

		if(DISPLAY_RANDOM_SUBFEATURE == 't') {
			//currentSubFeatureIndex = (Math.floor(Math.random()* $('#subFeatureContainer #subFeatures li').size() ) + 1);
			//$('#subFeatureContainer #subFeature_' + currentSubFeatureIndex).show(); //show the random feature
			getCurrentSubFeatureScrollLocation();
			updateSubFeature();
			if(getCurrentSubFeatureScrollLocation() > 1) { //need to sroll?
				scrollSubFeatureNumbers((getCurrentSubFeatureScrollLocation() - 1), 'next'); 
			}
			updateSubFeatureArrows();
		} else {
			//$('#subFeatureContainer li:first').show(); //show the first item
			currentSubFeatureIndex = 1;
			getCurrentSubFeatureScrollLocation();
			updateSubFeature();
			if(getCurrentSubFeatureScrollLocation() > 1) { //need to sroll?
				scrollSubFeatureNumbers((getCurrentSubFeatureScrollLocation() - 1), 'next'); 
			}
			updateSubFeatureArrows();
		}		

		//event listeners for feature thumbnails
		$('#brandZoneFeatureThumbnails a').each(function() {
			var current = this;
			var brandZoneTimer; 	
			$(this).bind('mouseenter', function(event) {
				INTHUMBNAIL = true; // This is to stop rotation
				brandZoneTimer = setTimeout(function(){ 
					
					var feature = $(current).attr('id');
					var featureID = feature.split('_');
					currentGalleryIndex = featureID[1];
					if(featureID[1] != CURRENT_FEATURE_INDEX) { //no reason to run this if the same thumb is selected
						showBrandZoneFeature(featureID[1]);

					}			
				} , 300); //wait 300ms before init
			 });
			 $(this).bind('mouseleave', function(event) {
				 
				INTHUMBNAIL = false; // This is to start rotation again
			
				if(currentGalleryIndex < $('#brandZoneFeatureThumbnails a').length)
					currentGalleryIndex++;
				else
					currentGalleryIndex = 1; // Gallery index changed
				clearTimeout ( brandZoneTimer );
			 });
			
		});
	

		 //event listeners for left news ticker arrow
		 $('#newsTickerLeftArrow').each(function() {
			 var current = this;
			 $(this).bind('click', function(event) {
					pauseNewsTicker(ticker);
					$('#newsTicker>div.newsTickerItem').hide();
					setCurrentNewsTickerIndex(getCurrentNewsTickerIndex() - 1);
					if(getCurrentNewsTickerIndex() == -1) {
						var newLength = ticker.items.length - 1;
						setCurrentNewsTickerIndex(newLength);
						$('#newsTicker div.newsTickerItem:eq(' + getCurrentNewsTickerIndex() + ')').show();						
					} else {
						$('#newsTicker div.newsTickerItem:eq(' + getCurrentNewsTickerIndex() + ')').show();
					}
			});
			$(this).bind('mouseover', function(event) {
				pauseNewsTicker(ticker);
			});
			$(this).bind('mouseout', function(event) {
				resumeNewsTicker(ticker);
			});
		 });

		 //event listeners for right news ticker arrow
		 $('#newsTickerRightArrow').each(function() {
			 var current = this;
			 $(this).bind('click', function(event) {
					pauseNewsTicker(ticker);
					$('#newsTicker>div.newsTickerItem').hide();
					if(ticker.currentitem == (ticker.items.size() - 1)) {
						ticker.currentitem = 0;
					} else {
						setCurrentNewsTickerIndex(getCurrentNewsTickerIndex() + 1);
					}
					$('#newsTicker div.newsTickerItem:eq(' + getCurrentNewsTickerIndex() + ')').show();
			});
			$(this).bind('mouseover', function(event) {
				pauseNewsTicker(ticker);
			});
			$(this).bind('mouseout', function(event) {
				resumeNewsTicker(ticker);
			});
		 });

		//event listener for press releases
		$('#newsTicker').each(function() {
			var current = this;
			$(this).bind('mouseover', function(event) {
				pauseNewsTicker(ticker);
			});
			$(this).bind('mouseout', function(event) {
				resumeNewsTicker(ticker);
			});
		});

		//tracking
		//when we want to track thumbnail clicks: , #brandZoneFeatureThumbnails a
		$('#brandZone #brandZoneFeatures div a').bind('click', function(event) {
			ntptEventTag('ev=FlashClicks&FlashFolderName=/brand_zone&ActionName=' + $(this).attr('id')); //unica
			trackOmnitureLink('brand_zone', $(this).attr('id')); //omniture
		});
		$('#brandZoneFeatureThumbnails a').bind('click', function(event) {
			ntptEventTag('ev=FlashClicks&FlashFolderName=/brand_zone&ActionName=' + getBrandZoneID($(this).attr('id'))); //unica
			trackOmnitureLink('brand_zone', getBrandZoneID($(this).attr('id'))); //omniture
		});
		


	//event listner for the SEO box.
	$('#seoReadMore').bind('click', function(event) {
		$('#seoReadMore').hide(); 
		$('#moreText').seoFadeIn(800); 
		$('#moreText p.more a').seoFadeIn(800);
		$.scrollTo('#smallIntro', 800);
		if($.cookie('seoBox') == null) {
			$.cookie('seoBox', 'true');
		}
	});

	$('#seoCollapse').bind('click', function(event) {
		$.scrollTo('-=600px', 800, {axis:'y',
			onAfter:function(){
				$('#moreText').seoFadeOut(200, function() { 
					$('#littleText p.intro a').seoFadeIn(200);
				})
			}
		})
	});


	$.ajax({
		url: '/includes/news_ticker.xml',
		dataType: (jQuery.browser.msie) ? 'text' : 'xml',
		success: function(xmlData){
			var data; 
			if (typeof xmlData == 'string') { 
				data = new ActiveXObject( 'Microsoft.XMLDOM'); 
				data.async = false; 
				data.loadXML( xmlData); 
			} else { 
				data = xmlData; 
			}
			
			var news_story_count = 0; //limit how many stories in the ticker
			
			if(MAX_NEWS_STORIES == '' || MAX_NEWS_STORIES <= 0 || isNaN(MAX_NEWS_STORIES)) { MAX_NEWS_STORIES = 10 } // DEFAULT value if var not set
			$(data).find("item").each(function(){
				if(news_story_count < MAX_NEWS_STORIES) {
					polycomPressRelease = new PolycomPressRelease(
						$(this).find('title').text(),
						$(this).find('pubDate').text(),
						$(this).find('link').text()
					);				
					polycomPressReleases.push(polycomPressRelease);
					news_story_count++;
				}
			}); //end each				

			$.each(polycomPressReleases, function(index, value) { 
				$('#newsTicker').append('<div class="newsTickerItem"><a class="pressRelease" href="' + polycomPressReleases[index].link + '">' + checkNewsTitleLength(polycomPressReleases[index].title) + ' - ' + polycomPressReleases[index].pubDate + '</a></div>');
			});

			$('#newsTicker>div.newsTickerItem').not(':first').hide(); //hide all ticker items except the first
			initNewsTicker(ticker);
		
		} //end success
	}); //end $.ajax 

	function PolycomPressRelease(title, pubDate, link) {
		this.title = title;
		this.pubDate = pubDate;
		this.link = link;
	}		
function getBrandZoneID(thumbanail_id)
	{
					var featureID = thumbanail_id.split('_');
					return $('#brandZoneFeatures #brandZoneFeature_'+(featureID[1])+ ' a').attr('id');
	}
	
	/** BEGIN SUBFEATURES **/

		$('#subFeaturePrev').bind('click', function(event) {
			lastSubFeatureIndex = currentSubFeatureIndex;
			lastSubFeatureScrollLocation = getCurrentSubFeatureScrollLocation();
			if(currentSubFeatureIndex != 1) {
				currentSubFeatureIndex--
			} else {
				currentSubFeatureIndex = numSubFeatures;
			}
			updateSubFeature();
			updateSubFeatureArrows();
			if(lastSubFeatureScrollLocation != getCurrentSubFeatureScrollLocation()) {
				scrollSubFeatureNumbers((lastSubFeatureScrollLocation - getCurrentSubFeatureScrollLocation()), 'prev' ) 
			}
		});

		$('#subFeatureNext').bind('click', function(event) {
			lastSubFeatureIndex = currentSubFeatureIndex;
			lastSubFeatureScrollLocation = getCurrentSubFeatureScrollLocation();

			if(currentSubFeatureIndex != numSubFeatures) {
				currentSubFeatureIndex++
			} else {
				currentSubFeatureIndex = 1;
			}
			updateSubFeature();
			updateSubFeatureArrows();
			if(lastSubFeatureScrollLocation != getCurrentSubFeatureScrollLocation()) {
				scrollSubFeatureNumbers( (getCurrentSubFeatureScrollLocation() - lastSubFeatureScrollLocation), 'next' ) 
			}
		});

		$('#subFeatureNavigationContainer #subFeatureNumbers .subFeatureNav').bind('click', function(event) {
			lastSubFeatureIndex = currentSubFeatureIndex;
			var temp = $(this).attr('id').split('_');
			currentSubFeatureIndex = temp[1];
			updateSubFeature();
			updateSubFeatureArrows();
		});

		$('#subFeatureContainer #subFeatures li a').bind('click', function(event) {
			ntptEventTag('ev=FlashClicks&FlashFolderName=/feature_zone&ActionName=' + $(this).attr('id')); //unica tracking
			trackOmnitureLink('feature_zone', $(this).attr('id')); //omniture
		});
	
		function updateSubFeature() {
			if(lastSubFeatureIndex != currentSubFeatureIndex) {
				$('#subFeature_' + currentSubFeatureIndex).fadeIn(1200);
				$('#subFeature_' + lastSubFeatureIndex).fadeOut(600);
				$('#subFeatureNav_' + lastSubFeatureIndex).css('color','#000000');
				$('#subFeatureNav_' + currentSubFeatureIndex).css('color', '#e00009');
			}
		}

		function scrollSubFeatureNumbers(scrollAmount, direction) {
			if(direction == 'prev') { //push div in opposite direction
				$("#subFeatureNumbers").animate({"left": "+=" + scrollAmount * getPixelsToScroll('prev') + "px"}, "slow");
			} else {
				$("#subFeatureNumbers").animate({"left": "-=" + scrollAmount * getPixelsToScroll('next') + "px"}, "slow");
			}
		}

		function getPixelsToScroll(direction) {
			return pixelsToScroll;
		}

		function updateSubFeatureArrows() {
			if(numSubFeatures >= NUMBER_SUBFEATURES_TO_DISPLAY + 1) {
				switch(parseFloat(currentSubFeatureIndex)) { 
					case 1:
						$('#subFeaturePrev').css('visibility', 'hidden');
						$('#subFeatureNext').css('visibility', 'visible');
						break;
					case numSubFeatures:
						$('#subFeaturePrev').css('visibility', 'visible');
						$('#subFeatureNext').css('visibility', 'hidden');
						break;
					default: //if not at either end, show both arrows
					$('#subFeaturePrev').css('visibility', 'visible');
					$('#subFeatureNext').css('visibility', 'visible');
				} //end switch
			} else { //only 1 subfeature - hide arrows
				$('#subFeaturePrev').css('visibility', 'hidden');
				$('#subFeatureNext').css('visibility', 'hidden');
			}
		}

		function getCurrentSubFeatureScrollLocation() { //what pane is the current subfeature on?
			return (Math.ceil(currentSubFeatureIndex / NUMBER_SUBFEATURES_TO_DISPLAY));
		}

	/** END SUBFEATURES **/

	/*CONTACT US BOX - This is for now to work on BrandZone. Will go back to this.
	if ( $('#homepageContactOptionsBlock #contactUs').not(':visible') ) {
		$('#homepageContactOptionsBox').css('visibility','visible');
		$('#homepageContactOptionsBox').hide();
	}
	$('#homepageContactOptionsBlock #contactUs').bind('mouseover', function(event) {
		$('#homepageContactOptionsBox').fadeIn('slow');
	});
	$('#homepageContactOptionsBoxClose').bind('click', function(event) {
		$('#homepageContactOptionsBox').fadeOut('slow');
	});
	$('#homepageContactOptionsBox').bind('mouseleave', function(event) {
		$('#homepageContactOptionsBox').fadeOut('slow');
	});*/

}); //end document.ready


function trackOmnitureLink(applicationName, linkEvent) {
	var accountName;
	if(window.location.hostname == 'www.polycom.ca') {
		if((window.location.pathname).indexOf('/ca_fr/') != -1) { 
			accountName = 'polycomwww.polycom.ca.fr,polycomglobal.public2';
		} else {
			accountName = 'polycomwww.polycom.ca,polycomglobal.public2';
		}
	} else {
		accountName = 'polycom' + window.location.hostname + ',polycomglobal.public2';
	}

	var s=s_gi(accountName);
	s.linkTrackVars='eVar9,eVar10,events'; 
	s.linkTrackEvents='event10'; 
	s.eVar9=linkEvent;
	s.eVar10=applicationName;
	s.events='event10';
	s.tl(s,'o','appEvent'); 
}



function checkNewsTitleLength(title) {
	if (title.length > MAX_NEWS_STORY_LENGTH) {
		var tempTitle = title.substring(0, MAX_NEWS_STORY_LENGTH - 3); //-3 to account for '...'
		var tempIndex = tempTitle.length;
		
		if(tempTitle.charAt(tempIndex) == ' ') {
			return tempTitle + '...';
		} else {
			tempIndex--
			while(tempTitle.charAt(tempIndex) != ' ') {
				tempIndex--
			}
			return title.substring(0, tempIndex) + '...';
		}
	} else {
		return title;
	}
}

function showBrandZoneFeature(featureID) {
	$('#brandZoneFeatures #brandZoneFeature_' + CURRENT_FEATURE_INDEX).fadeOut(BRAND_ZONE_ANIMATION_SPEED, function() {
		$('#brandZoneFeatures #brandZoneFeature_' + featureID).fadeIn(BRAND_ZONE_ANIMATION_SPEED + 25);
	});
	CURRENT_FEATURE_INDEX = featureID;
	highlightFeatureThumbnail(featureID);
}
function highlightFeatureThumbnail(featureIndex) {
	$('#brandZoneFeatureThumbnails a').fadeTo(0, 1.0); //reset
	$('#brandZoneFeatureThumbnails #brandZoneThumbnail_' + featureIndex).fadeTo(50, 0.5);
}
function initNewsTicker(ticker) {
	stopNewsTicker(ticker);
	ticker.items = $('#newsTicker div.newsTickerItem')
	ticker.currentitem = 0;
	startNewsTicker(ticker);
}
function startNewsTicker(ticker) {
	ticker.pause = false;
	ticker.tick = setInterval(function() { tickNewsItem(ticker) }, NEWS_TICKER_SPEED)
}
function stopNewsTicker(ticker) {
	clearInterval(ticker.tick);
}
function pauseNewsTicker(ticker) {
	ticker.pause = true;
}
function resumeNewsTicker(ticker) {
	ticker.pause = false;
}
function getCurrentNewsTickerIndex() {
	return ticker.currentitem;			
}
function setCurrentNewsTickerIndex(index) {
	ticker.currentitem = index;
}
function rebindNewsTicker() { //force rebind to cover cases where mouse is over in the middle of an animation.
	$('#newsTicker').mouseover(function(){
		pauseNewsTicker(ticker);
	});
}
function tickNewsItem(ticker){
	rebindNewsTicker();
	if(!ticker.pause) {
		$(ticker.items[ticker.currentitem]).fadeOut('fast',
			function() {
				$(this).hide();
				if(ticker.currentitem++ == (ticker.items.size() - 1)) {
					ticker.currentitem = 0;
				}
				$(ticker.items[ticker.currentitem]).fadeIn('slow');
			}
		);
	}  //end if
}

//overwrite core function to fix IE7 cleartype font glitch

jQuery.fn.seoFadeIn = function(speed, callback) { 
	return this.animate({opacity: 'show'}, speed, function() { 
		if (jQuery.browser.msie)  
			this.style.removeAttribute('filter');  
		if (jQuery.isFunction(callback)) 
			callback();  
	}); 
}; 
jQuery.fn.seoFadeOut = function(speed, callback) { 
	return this.animate({opacity: 'hide'}, speed, function() { 
		if (jQuery.browser.msie)  
			this.style.removeAttribute('filter');  
		if (jQuery.isFunction(callback)) 
			callback();  
	}); 
};
