var lastvideosource = "";

function FlashRequest(status, args) {
  if (status == "goFullscreen") {
    if (typeof(this.goFullscreen)!="undefined") {
      eval("goFullscreen(" + args + ")");
    }
  } else if (status == "clickVideo") {
    //doThumbPreviewClick();
    //stopflashpreview();
  } else if (status == "donePlaying") {
  	stopflashpreview();
    //playNextVideo();
  }
}

function doThumbPreviewClick() {
  var candidates = ele("thumbflashpreview_"+lastvideosource).parentNode.parentNode.childNodes;
  stopflashpreview();
  for (var x = 0 ; x < candidates.length; x++ ) {
    if (candidates[x].nodeName == "A") {
      var url = candidates[x].href;
      if (url.indexOf("http://")==0) {
        var target = candidates[x].target;
        if (target == "") {
          target = "_blank";
        }
        window.open(url, target);
        return;
      }
    }
  }
}

function setCookie(cookieName, newValue) {
  var expDate = new Date();
  expDate.setDate(expDate.getDate() + 365);
  document.cookie = cookieName + "=" + newValue + "; expires=" + expDate.toGMTString();
}

function setChildVisibilityWithNodeName(element, name, show) {
	for (var x = 0 ; x < element.childNodes.length; x++ ) {
		if (element.childNodes[x].nodeName == name) {
			setEleVisibility(element.childNodes[x], show);
		}
	}
}

function stopflashpreview() {
	var element = ele("thumbflashpreview_"+lastvideosource);
	if ((element) && typeof(element)!= "undefined") {
		var parent = element.parentNode.parentNode;
	
		// clancour - make sure the freakn flash play really gets cleaned up!
		var fo = new FlashObject( "", "VideoPlayback", 0, 0, "7", "#ffffff", false ); // clancour
		fo.write("thumbflashpreview_"+lastvideosource); //clancour
	
		removeEle(element.parentNode);
		setChildVisibilityWithNodeName(parent, "A", true);
	}
}

function switchflash(element, videosourceurl, width, height, videosource) {
	stopflashpreview( videosource); 
	flash7OrHigher(true);

	var newhtml = "<div id=\"thumbflashpreview_" + videosource + "\"></div>";
	
	var newEle = document.createElement('div');
	newEle.innerHTML = newhtml;

	setChildVisibilityWithNodeName(element.parentNode, "A", false);
	element.parentNode.appendChild(newEle);

	var fo = new FlashObject( videosourceurl, "VideoPlayback", width, height, "7", "#ffffff", true ); // clancour	
	fo.addParam("quality", "best");
	fo.addParam("allowScriptAccess", "always");
	fo.addParam("scale", "noScale");
	fo.addParam("wmode", "window");
	fo.addParam("salign", "TL");
	fo.addParam("FlashVars", "playerMode=embedded");

	fo.write("thumbflashpreview_" + videosource);
	
	lastvideosource = videosource;

	return false;

}

var isIE  = (navigator.appVersion.indexOf("MSIE") != -1) ? true : false;
var isWin = (navigator.appVersion.toLowerCase().indexOf("win") != -1) ? true : false;
var isOpera = (navigator.userAgent.indexOf("Opera") != -1) ? true : false;

function flash7OrHigher(checkIE) {
  if (!checkIE && isIE && isWin) return;

  for (i=25;i>0;i--) {
    if (isIE && isWin && !isOpera) {
      versionStr = VBGetSwfVer(i);
    } else {
      versionStr = navigator.plugins["Shockwave Flash"].description.substring(16,19);
    }
    if (versionStr == -1) {
      displayFlashErrorAndNavigate();
      return false;
    } else if (versionStr != 0) {
      if(isIE && isWin && !isOpera) {
	tempArray = versionStr.split(" ");
	tempString = tempArray[1];
	versionArray = tempString .split(",");
      } else {
	versionArray = versionStr.split(".");
      }
      versionMajor = versionArray[0];
      if(versionMajor < 7)  {
        displayFlashErrorAndNavigate();
        return false;
      } else {
        return true;
      }
    }
  }
  displayFlashErrorAndNavigate();
  return false;  
}

function displayFlashErrorAndNavigate() {
  if(confirm("You need Flash 7 or higher to watch videos.")) {
    window.location = "http://www.macromedia.com/go/getflashplayer";
  }
}

function ele(eleName) {
 if(document.getElementById && document.getElementById(eleName)) {
    return document.getElementById(eleName);
  }
  else if (document.all && document.all(eleName)) {
    return document.all(eleName);
  }
  else if (document.layers && document.layers[eleName]) {
    return document.layers[eleName];
  } else {
    return false;
  }
}

function hideEle(el) {
  el.style.display = "none";
}

function showEle(el) {
  el.style.display = "";
}

function setEleVisibility(el, vis) {
	if (vis) {
		showEle(el);
	} else {
		hideEle(el);
	}
}

function toggleVisibility(eleName) {
  var el = ele(eleName);
  if (!el) {
    return true;
  } else if (cascadedstyle(el, "display", "display") == "block") {
    el.className = "invisible";
  } else {
    el.className = "visible";
  }
}

function cascadedstyle(ele, cssproperty, csspropertyNS){
  if (ele.currentStyle) {
    return ele.currentStyle[cssproperty];
  } else if (window.getComputedStyle) {
    var elestyle = window.getComputedStyle(ele, "");
    return elestyle.getPropertyValue(csspropertyNS);
  }
}


function removeEle(el) {
  el.parentNode.removeChild(el);
}


function prepareSearchParams(p) {
  if (typeof(this.encodeURIComponent)!="undefined") {
    p = encodeURIComponent(p);
  } else {
    p = escape(p);
  }
  var re = /(%20)+/g;
  return p.replace(re, "+");
}

function searchthisshow(thequery) {
  var thedocid = window.location.search.split("docid=")[1].split("&")[0];
  window.location = "/videopreview?q=" + prepareSearchParams(thequery) + "&docid=" + thedocid;
  return false;
}

function pvsearch(thequery) {
  window.location = "/videosearch?q=" + prepareSearchParams(thequery);
}


function rtclk(e) {
  if (document.all && !document.getElementById) {
    if (event.button == 2) 
      return false;} 
  else if (document.layers) {
    if (e.which == 2 || e.which == 3) {
      return false;
    }
  }
} 


function install_rtclk() {
  if (document.layers)
    document.captureEvents(Event.MOUSEDOWN);
  document.onmousedown = rtclk;
  document.oncontextmenu = function() {return false;}
}


function numberFilter(evt) {
  var charCode;
  if (navigator.appName == "Microsoft Internet Explorer") {
    charCode = evt.keyCode;
  } else {
    charCode = evt.charCode;
  }
  return evt.metaKey || 
		(charCode < 31 
		 ||  (charCode > 47 && charCode < 58) 
		 || (charCode > 63231 && charCode < 63236));
}


function switchTab(link,color) {
  for (i=0; i<tabs.length; i++) {
    document.getElementById("l"+tabs[i]).className = "unselected";
    document.getElementById("l"+tabs[i]).style.backgroundColor = "#"+color;
  }

  link.parentNode.className = "selected";
  link.parentNode.style.backgroundColor = "#FFFFFF";
}

function switchLink(link) {
  for (i=0; i<links.length; i++) {
    document.getElementById("l"+links[i]).className = "unselectedlink";
  }

  link.className = "selectedlink";
}
