// paths have to be relative, so figure out how deep we are
var iDepth = document.location.pathname.match(/\//g).length - 1;
if(document.location.pathname.toLowerCase().indexOf('/wmpcatalog') != -1) { iDepth--; }
if(document.location.pathname.toLowerCase().indexOf('/wmplugins') != -1) { iDepth--; }
else if(document.location.pathname.toLowerCase().indexOf('/wmprebrand') != -1) { iDepth--; }
var sRelPath = '';
for(var i=0; i<iDepth; i++) { sRelPath += '../'; }

// preload rollovers
var aRollovers = new Array();
aRollovers["NavBar_ItemList"] = preload(sRelPath + "ImagesWMP10/tn_plugIns.gif");
aRollovers["NavBar_ItemList_over"] = preload(sRelPath + "ImagesWMP10/tn_plugIns_o.gif");
aRollovers["NavBar_Skins"] = preload(sRelPath + "ImagesWMP10/tn_skins.gif");
aRollovers["NavBar_Skins_over"] = preload(sRelPath + "ImagesWMP10/tn_skins_o.gif");
aRollovers["NavBar_Visual"] = preload(sRelPath + "imageswmp10/tn_visual.gif");
aRollovers["NavBar_Visual_over"] = preload(sRelPath + "ImagesWMP10/tn_visual_o.gif");
aRollovers["NavBar_Editors"] = preload(sRelPath + "ImagesWMP10/tn_edCorner.gif");
aRollovers["NavBar_Editors_over"] = preload(sRelPath + "ImagesWMP10/tn_edCorner_o.gif");
aRollovers["NavBar_UsersItemList"] = preload(sRelPath + "ImagesWMP10/tn_myPlugIns.gif");
aRollovers["NavBar_UsersItemList_over"] = preload(sRelPath + "ImagesWMP10/tn_myPlugIns_o.gif");
aRollovers["NavBar_Partners"] = preload(sRelPath + "ImagesWMP10/tn_coolLinks.gif");
aRollovers["NavBar_Partners_over"] = preload(sRelPath + "ImagesWMP10/tn_coolLinks_o.gif");
aRollovers["NavBar_Contacts"] = preload(sRelPath + "ImagesWMP10/tn_contacts.gif");
aRollovers["NavBar_Contacts_over"] = preload(sRelPath + "ImagesWMP10/tn_contacts_o.gif");
aRollovers["NavBar_MessageBoards"] = preload(sRelPath + "ImagesWMP10/tn_forums.gif");
aRollovers["NavBar_MessageBoards_over"] = preload(sRelPath + "ImagesWMP10/tn_forums_o.gif");
aRollovers["NavBar_Podcast"] = preload(sRelPath + "ImagesWMP10/tn_podcast.gif");
aRollovers["NavBar_Podcast_over"] = preload(sRelPath + "ImagesWMP10/tn_podcast_o.gif");

// preload the stars for the rateitem page
if(document.location.pathname.toLowerCase().indexOf('rateitem') != -1 || document.location.pathname.toLowerCase().indexOf('ratepost') != -1) {
   var aStars = new Array();
   aStars[0] = preload(sRelPath + "images/stars_0.gif");
   aStars[1] = preload(sRelPath + "images/stars_1.gif");
   aStars[2] = preload(sRelPath + "images/stars_2.gif");
   aStars[3] = preload(sRelPath + "images/stars_3.gif");
   aStars[4] = preload(sRelPath + "images/stars_4.gif");
   aStars[5] = preload(sRelPath + "images/stars_5.gif");
}

// add resize event handlers
if(window.addEventListener) {
	window.addEventListener("resize", handleResize, true);
	window.addEventListener("load", handleResize, true);
} else {
	window.onresize = handleResize;
	window.onload = handleResize;
}


// simple preload function
function preload(sPath) {
	var o = new Image();
	o.src = sPath;
	return o;
}


// handle rollovers
function mOver(sId) {
	if(sId) {
		if(document.getElementById(sId).src.indexOf("_o") == -1) {
   		mOver.lastId = sId;
   		document.getElementById(sId).src = aRollovers[sId + "_over"].src;
	   }
		if(sId != "NavBar_ItemList") { document.getElementById("categorylist").style.visibility = "hidden"; }
	} else if(mOver.lastId) {
		document.getElementById(mOver.lastId).src = aRollovers[mOver.lastId].src;
	}
}


// show and hide the category list in the top nav
function categoryList(bShow, bNow) {
	categoryList.hidedelay = 750;

	if(bShow) {
		clearTimeout(categoryList.timeout);
		document.getElementById("categorylist").style.visibility = "visible";
		mOver('NavBar_ItemList');
	} else {
		if(bNow) {
			document.getElementById("categorylist").style.visibility = "hidden";
		} else {
			categoryList.timeout = setTimeout('document.getElementById("categorylist").style.visibility = "hidden"; document.getElementById("NavBar_ItemList").src = sRelPath + "imageswmp10/tn_plugIns.gif"', categoryList.hidedelay);
		}
	}
}


// handle onchange events for dropdown navs
function jumpTo(oSelect) {
	var sURL = oSelect.options[oSelect.selectedIndex].value;
	if(sURL) { top.location = sURL;	}
}


// handle resize events
function handleResize() {

// find the height of the window
	var iWinHeight = window.innerHeight; // Moz
	iWinHeight = (!iWinHeight) ? document.body.offsetHeight : iWinHeight; // IE/Mac
	iWinHeight = (document.documentElement) ? document.documentElement.clientHeight : iWinHeight; // IE/Win
// find the height of the document
   if(document.getElementById("pagebody")) {
      var iDocHeight = document.getElementById("pagebody").offsetTop + document.getElementById("pagebody").offsetHeight;
      
      // exception for the item detail page
      var oRelated = document.getElementById("relatedbox");
      var oRatings = document.getElementById("ratingbox");
      if(oRelated && oRatings) {
         if(oRelated.offsetHeight > oRatings.offsetHeight) {
            iDocHeight += (oRelated.offsetHeight - oRatings.offsetHeight);
         }
      }
   } else {
	   var aDivs = document.getElementsByTagName("div");
	   var iDocHeight = 0;
	   for(var i=0; i<aDivs.length; i++) {
		   if((aDivs[i].parentNode.tagName == "BODY") && (aDivs[i].id != "footer")) {
			   var iBottom = aDivs[i].offsetTop + aDivs[i].offsetHeight;
			   if(iBottom > iDocHeight) { iDocHeight = iBottom; }
		   }
	   }
   }
// set the properties of the footer
	var oFooter = document.getElementById("footer");
	var iTop = (iWinHeight < iDocHeight + 30) ? iDocHeight + 30 : iWinHeight;
	iTop -= 30;
	
}


// handle the rollovers on the stars on the rateitem page
function showRating(sWhich, iStars) {
   if(!iStars) { iStars = document.getElementById("rating" + sWhich).value; }
   if(!iStars) { iStars = 0; }
   document.getElementById(sWhich).src = aStars[iStars].src;
}


// handle the clicks on the stars on the rateitem page
function setRating(sWhich, iStars) {
   document.getElementById("rating" + sWhich).value = iStars;
}


// popup veritest explanation
function veritested() {
   window.open('Veritested.htm', 'veritested', 'width=450,height=350,status').focus();
   return false;
}

// popup CodecID explanation
function codecDescription() {
   window.open('CodecDesc.htm', 'codecdesc', 'width=450,height=350,status').focus();
   return false;
}

// popup URL entered in a text box
function testLink(elementName){
	var e = document.getElementById(elementName);
	if(e != null) {
		if(e.value != "" && e.value.length > 7 && (e.value.substring(0,7) == "http://" || e.value.substring(0,8) == "https://" || e.value.substring(0,6) == "ftp://")) {
			window.open(e.value, "testlink").focus();
		}
	}
	return false;
}

// validates step 1 on Add/Edit Plug-in pages
function validateClientStep1(s, e) {
	var strErrorMessage = "";
	var bolValid = true;
	var el = document.getElementById("txtDescription"); 
			
	if(el.value.length > 1000)	{
		bolValid = false;
		strErrorMessage = strErrorMessage + "Please limit description to 1000 characters. You currently have " + el.value.length + " characters.";
	}
	
	el = document.getElementById("txtOtherSystemRequirements");
	if(el.value.length > 1000)	{
		if(!bolValid)	strErrorMessage += "<li>";
		strErrorMessage = strErrorMessage + "Please limit other system requirements to 1000 characters. You currently have " + el.value.length + " characters.";
		if(bolValid) bolValid = false; else	strErrorMessage += "</li>";	
	}
	
	if(!validateCheckBoxList("lstType")){
		if(!bolValid) strErrorMessage += "<li>";
		strErrorMessage = strErrorMessage + "Type";
		if(bolValid) bolValid = false; else strErrorMessage += "</li>";
	}
	
	if(!validateCheckBoxList("lstOperatingSystems")){
		if(!bolValid) strErrorMessage += "<li>";
		strErrorMessage = strErrorMessage + "Operating System";
		if(bolValid) bolValid = false; else	strErrorMessage += "</li>";
	}
	
	el = document.getElementById("lstSelectedLanguages");
	if(el != null){
		if(el.options.length == 0) {
			if(!bolValid)	strErrorMessage += "<li>";	
			strErrorMessage = strErrorMessage + "Language";
			if(bolValid) bolValid = false;	else strErrorMessage += "</li>";
		}
	}
	s.errormessage = strErrorMessage;
	e.IsValid = bolValid;
}

// validates step 2 on Add/Edit Plug-in pages			
function validateClientStep2(s, e) {
	var strErrorMessage = "";
	var bolValid = true;
	
	var el = document.getElementById("lstStatus");
	if(el != null) {
		if(el.options[el.selectedIndex].value == 0 && document.getElementById("txtEmailComments").value == "")	{
			strErrorMessage += "Email comments";
			bolValid = false;
		}
	}

	el = document.getElementById("chkTerms");
	if(el != null){
		if(!el.checked)	{
			if(!bolValid) strErrorMessage += "<li>";
			strErrorMessage += "Terms and Conditions";
			if(bolValid) bolValid = false; else strErrorMessage += "</li>";
		}	
	}
	s.errormessage = strErrorMessage;
	e.IsValid = bolValid;
}

// verifies that at least one checkbox in a checkbox list is selected
function validateCheckBoxList(lstName){
	var i = 0;
	var el = document.getElementById(lstName + "_" + i);
	var bolValid = false;
	
	while(el != null) {
		if(el.checked) {
			bolValid = true;
			break;
		}
		i++;
		el = document.getElementById(lstName + "_" + i);
	}
	return bolValid;
}
