// JavaScript Document

// global vars
var linkURL = new Array();
linkURL['emailFriend'] = "mailto:?subject=Meyer Sound Multimedia&body=http://www.meyersound.com/multimedia/?m_id=idlink";
linkURL['facebook'] = "http://www.facebook.com/share.php?u=http://www.meyersound.com/multimedia/?m_id=idlink"; 
linkURL['twitter'] = "http://twitter.com/home?status=Currently%20viewing%20Meyer%20Sound%20Video:%20http://www.meyersound.com/multimedia/?m_id=idlink";
linkURL['digg'] = "http://digg.com/submit?url=www.meyersound.com/multimedia/?m_id=idlink&title=titlelink&media=&Webstorytopic=Meyer%20Sound%20Multimedia";
linkURL['myspace'] = "http://www.myspace.com/index.cfm?fuseaction=postto&u=http%3A%2F%2Fwww.meyersound.com%2Fmultimedia%2F?m_id=idlink&t=titlelink";

var CDNLoc = 'http://cdnacf.meyersound.com/flash/';

var numImg, maxImg, currentMargin, containerSize, maxScroll;
var imgSize = 84;

// the image tabs...
var imageTabs = ['elements/090820_tab_on_recent.jpg', 'elements/090812_tab_on_products.jpg', 'elements/090812_tab_on_company.jpg', 'elements/090812_tab_on_apps.jpg', 'elements/090812_tab_on_support.jpg', 'elements/090820_tab_off_recent.jpg', 'elements/090812_tab_off_products.jpg', 'elements/090812_tab_off_company.jpg', 'elements/090812_tab_off_apps.jpg', 'elements/090812_tab_off_support.jpg', 'elements/page_left_arrow.gif', 'elements/page_right_arrow.gif'];

<!--
// -----------------------------------------------------------------------------
// Globals
// Major version of Flash required
var requiredMajorVersion = 9;
// Minor version of Flash required
var requiredMinorVersion = 0;
// Revision of Flash required
var requiredRevision = 115;
// -----------------------------------------------------------------------------
// -->

function tryToLoadVideo(url, tries) {
	if(!tries) tries = 1;
	try {
		loadVideo(url);
	} 
	catch(e) {
		if(tries < 1000) {
			tryToLoadVideo(url, tries +1);
		} else {
			//alert(e+' '+tries);	
			return;
		}
	}	
}

function getVideoFromHash()
{
	var hash = window.location.hash;
	hash = hash.replace('#','');
	ajaxFunction('related', hash);
	ajaxFunction('play_video',hash);
}

function loadInitialVideo() {
	var currentID = $('#currentID').val();
	if(currentID) {
		ajaxFunction('related', currentID);
		ajaxFunction('play_video',currentID);
	} else {
		$(".image_on").removeClass("image_on").addClass("image_off");
		tryToLoadVideo('../flash/FlashVideo_MeyerSound_Slug_v1.flv');
	}	
	
}

function loadVideo(url) {
	if (url.indexOf('[cdn]') > -1)
    	getMovie("videoPlayer").loadVideo(CDNLoc + url.replace('[cdn]', ''));
    else
    	getMovie("videoPlayer").loadVideo(url);
}

function setVideoScaleMode(str){
	getMovie("videoPlayer").setVideoScaleMode(str);
}

function getMovie(movieName) {
    if (navigator.appName.indexOf("Microsoft") != -1) {
        return window[movieName];
    }
    else {
        return document[movieName];
    } 
}

//called from Flash when the current video is finished playing
function onVideoComplete(){
	traceOutput("onVideoComplete called");
}

function traceOutput(str){
	var outputBox = document.getElementById("output");
	outputBox.value += str + "\r";
}


$(document).ready(function(){
	calculateMaxValues();
	preLoadImgs(imageTabs);
	
	
	$("#up").click(function(event){	
		calculateMaxValues()
		currentMargin = new Number($("#sub").css("margin-top").replace("px",""));
		
		if(currentMargin < 0) {
			var topVal = (currentMargin + imgSize);
			topVal = (topVal > 0)?0:topVal;
			topVal = topVal.toString() + "px";
			$("#sub").animate({ 
				marginTop: topVal}
			  , 400);
			checkArrows(topVal, maxScroll);
		}
	});
	
	$("#down").click(function(event){
		calculateMaxValues()
		currentMargin = new Number($("#sub").css("margin-top").replace("px",""));
		
		if(currentMargin > maxScroll) {
			var topVal = (currentMargin - imgSize);
			topVal = (topVal < maxScroll)?maxScroll:topVal;
			topVal = topVal.toString() + "px";
			$("#sub").animate({ 
				marginTop: topVal}
			  , 400);
			checkArrows(topVal, maxScroll);
		}
	});
	// attempt to load the video with the hash e.g. #46
	var hash = window.location.hash;
	hash = hash.replace('#','');
	
	if (hash == parseInt(hash))
		var t=setTimeout("javascript: getVideoFromHash();",500);
	else
		var t=setTimeout("javascript: loadInitialVideo();",500);	
});

function calculateMaxValues() {
	currentMargin = new Number($("#sub").css("margin-top").replace("px",""));
	containerSize = new Number($("#container").css("height").replace("px",""));
	numImg = $(".relatedCell").length;
	maxImg = containerSize / imgSize;
	//alert(numImg);
	maxScroll = (0 - (numImg* imgSize) + containerSize);
	checkArrows(currentMargin, maxScroll, numImg);
}

function checkArrows(currentMargin, maxScroll) {
	checkUpArrow(currentMargin);
	checkDownArrow(currentMargin, maxScroll);
}

function checkUpArrow(currentMargin) {
	 if (numImg <= maxImg) {
		$("#up").css("opacity",0);
	} else if(currentMargin == 0 || currentMargin == "0px") {
		$("#up").css("opacity",.5);
	} else {
		$("#up").css("opacity",1);
	}
}
function checkDownArrow(currentMargin, maxScroll) {
	//alert("'"+currentMargin+"' '"+maxScroll+"'");
	if (numImg <= maxImg) {
		$("#down").css("opacity",0);
	} else if(currentMargin == (maxScroll.toString()+"px") || currentMargin == (maxScroll)) {
		$("#down").css("opacity",.5);
		
	} else {
		$("#down").css("opacity",1);
	}
}


///////////////////////////////////////////////////////
//////////////////  AJAX Event Handler
///////////////////////////////////////////////////////

function ajaxFunction(lookup, param, skip)
  {
  var xmlHttp;
  try
    {
    // Firefox, Opera 8.0+, Safari
    xmlHttp=new XMLHttpRequest();
    }
  catch (e)
    {
    // Internet Explorer
    try
      {
      xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
      }
    catch (e)
      {
      try
        {
        xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
        }
      catch (e)
        {
        alert("Your browser does not support AJAX!");
        return false;
        }
      }
    }
    xmlHttp.onreadystatechange=function() {
      if(xmlHttp.readyState==4) {
	
		var returnVal = xmlHttp.responseText;
		
		if (lookup == "tabs")  {	
			document.getElementById("currentTab").value = param;
		  	document.getElementById("tabs").innerHTML = returnVal;
			ajaxFunction("videos", param);
		} else if (lookup == "videos") {
			
			document.getElementById("inc").innerHTML = returnVal;
		} else if (lookup == "play_video") {
			returnVal = returnVal.split("::::");
			// set URL in iframe
		//	alert(returnVal[0]);
			loadVideo(returnVal[0]);
			setVideoScaleMode('noScale');
			document.getElementById('theTitle').innerHTML = returnVal[1];
			
			// turn off images that are on, and turn on the active image
			$(".image_on").removeClass("image_on").addClass("image_off");
			$("#img"+param).addClass("image_on");
			
			// set the hash on video load
			window.location.hash = '#' + param;
			
			document.getElementById("currentID").value = param;
			var tab = document.getElementById("currentTab").value;
			var socialNetworkingLink;
			for ( var key in linkURL ){
				socialNetworkingLink = linkURL[key];
				socialNetworkingLink = socialNetworkingLink.replace("tablink", tab);
				socialNetworkingLink = socialNetworkingLink.replace("idlink", param);
				socialNetworkingLink = socialNetworkingLink.replace("titlelink", returnVal[1]);
				document.getElementById(key).href = socialNetworkingLink;
			} 
			
			
			ajaxFunction("related", param);
		} else if (lookup == "related") {
			document.getElementById("sub").innerHTML = returnVal;
			document.getElementById("sub").style.marginTop = "0px";
			calculateMaxValues();
		}
      }
    }
	var url;
	/////////////////////////////////////////
	///// formulate URL for php request ////
	///////////////////////////////////////
	if (lookup == "tabs") {
		url = "?tab="+param+"&do=tabs";
		//alert(url);
	} else if (lookup == "videos") {
		url = "?tab="+param+"&do=videos&skip="+skip;
		//alert(url);
	} else if (lookup == "play_video") {
		url = "?id="+param+"&do=play_video";
		//alert(url);
	} else if (lookup == "related") {
		url = "?id="+param+"&do=related";
	}
	
	xmlHttp.open("GET","lookup.php"+url,true);
	xmlHttp.send(null);
  }
  
  
//changes source of an image, when passed the image object
function ImageSwap(element, source) {
	element.src = source;  
}
  
  
// preloads hover images for menu tabs
// accepts array input
function preLoadImgs($imgAr) {
	var preLoad = new Array()
	for (i = 0; i < $imgAr.length; i++){
	   preLoad = new Image();
	   preLoad.src = $imgAr[i];
	}
}  
