Page = function(pageID, navItemID, subNavID, textID, subNavItemID)
{
	this.PageID = pageID;
	this.NavItemID = navItemID;
	this.SubNavID = subNavID;
	this.TextID = textID;
	this.SubNavItemID = subNavItemID;
}
	
var _isMenuEnabled = false;

var _pageOverview = new Page("PageOverview", "NavOverview", "SubNavOverview", "TextOverviewMain", "subNavMain");
var _pageOverviewMain = new Page("PageOverviewMain", "NavOverview", "SubNavOverview", "TextOverviewMain", "subNavMain");		
var _pageOverviewFeatures = new Page("PageOverviewFeatures", "NavOverview", "SubNavOverview", "TextOverviewFeatures", "subNavFeatures");
var _pageOverviewReviews = new Page("PageOverviewReviews", "NavOverview", "SubNavOverview", "TextOverviewReviews", "subNavReviews");
var _pageOverviewFAQs = new Page("PageOverviewFAQs", "NavOverview", "SubNavOverview", "TextOverviewFAQs", "subNavFaq");
var _pageSpecs = new Page("PageSpecs", "NavSpecs", null, "TextSpecs", null);
var _pageDrivers = new Page("PageDrivers", "NavDrivers", null, "TextDrivers", null);
var _pageSupport = new Page("PageSupport", "NavSupport", null, "TextSupport", null);

var _activePage = _pageOverview;

function PageDetailInit()
{
		EnableMenu();
		SetNavItem(_pageOverview);
		ShowPageSubNav(_pageOverview);
		ShowPageText(_pageOverview);
		SetActivePage(_pageOverview);
		SetSubNavItem(_pageOverview);
}
function LoadOverview()
{
	if(MenuEnabled())
	{
		_hbLink('Overview');
		ExitActivePage(_pageOverview);
		SetNavItem(_pageOverview);
		ShowPageSubNav(_pageOverview);
		ShowPageText(_pageOverview);
		SetActivePage(_pageOverview);
		SetSubNavItem(_pageOverview);
	}
}

function LoadOverviewMain()
{
	if(MenuEnabled())
	{
		_hbLink('Main');
		ExitActivePage(_pageOverviewMain);
		SetNavItem(_pageOverviewMain);
		ShowPageSubNav(_pageOverviewMain);
		ShowPageText(_pageOverviewMain);
		SetActivePage(_pageOverviewMain);
		SetSubNavItem(_pageOverviewMain);
	}	
}

function LoadOverviewFeatures()
{
	if(MenuEnabled())
	{
		_hbLink('Features');
		ExitActivePage(_pageOverviewFeatures);
		SetNavItem(_pageOverviewFeatures);
		ShowPageSubNav(_pageOverviewFeatures);
		ShowPageText(_pageOverviewFeatures);
		SetActivePage(_pageOverviewFeatures);
		SetSubNavItem(_pageOverviewFeatures);
	}	
}

function LoadOverviewReviews()
{
	if(MenuEnabled())
	{
		_hbLink('Reviews');
		ExitActivePage(_pageOverviewReviews);
		SetNavItem(_pageOverviewReviews);
		ShowPageSubNav(_pageOverviewReviews);
		ShowPageText(_pageOverviewReviews);
		SetActivePage(_pageOverviewReviews);
		SetSubNavItem(_pageOverviewReviews);
	}	
}

function LoadOverviewFAQs()
{
	if(MenuEnabled())
	{
		_hbLink('FAQs');
		ExitActivePage(_pageOverviewFAQs);
		SetNavItem(_pageOverviewFAQs);
		ShowPageSubNav(_pageOverviewFAQs);
		ShowPageText(_pageOverviewFAQs);
		SetActivePage(_pageOverviewFAQs);
		SetSubNavItem(_pageOverviewFAQs);
	}	
}

function LoadSpecs()
{
	if(MenuEnabled())
	{
		_hbLink('Specifications');
		ExitActivePage(_pageSpecs);
		SetNavItem(_pageSpecs);
		ShowPageText(_pageSpecs);
		SetActivePage(_pageSpecs);
	}
}

function LoadDrivers()
{
	if(MenuEnabled())
	{
		_hbLink('Drivers & Downloads');
		ExitActivePage(_pageDrivers);
		SetNavItem(_pageDrivers);
		ShowPageText(_pageDrivers);
		SetActivePage(_pageDrivers);
	}
}

function LoadSupport()
{
	if(MenuEnabled())
	{
		_hbLink('Support');
		ExitActivePage(_pageSupport);
		SetNavItem(_pageSupport);
		ShowPageText(_pageSupport);
		SetActivePage(_pageSupport);
	}
}

function ShowPageText(page)
{
	if(page.TextID != null && page.TextID != _activePage.TextID)
	{
		document.getElementById(page.TextID).style.display = "";
		//new Effect.Appear(page.TextID, {from: 0.0, to: 1.0, duration: 0.9, delay: 0.5, fps: 30});
	}
}

function ShowPageSubNav(page)
{
	if(page.SubNavID != null && page.SubNavID != _activePage.SubNavID)
	{
		//alert(page.SubNavID);
		document.getElementById(page.SubNavID).style.display = "";
		//new Effect.Appear(page.SubNavID, {from: 0.0, to: 1.0, duration: 0.9, delay: 0.5, fps: 30});
		//new Effect.SlideDown(page.SubNavID, {duration: 0.5, delay: 0.5, fps: 30});
	}
}

function SetNavItem(page)
{
	var newNavItem = null;
	
	if(page.NavItemID != null)
	{
		newNavItem = document.getElementById(page.NavItemID + "On");
		
		if(newNavItem == null || newNavItem == 'undefined')
		{
			newNavItem = document.getElementById(page.NavItemID);
		}
		
		if(newNavItem != null && newNavItem != 'undefined')
		{
			newNavItem.id = page.NavItemID + "On";
		}
	}
}

function SetSubNavItem(page)
{
	var newSubNavItem = null;
	
	if(page.SubNavItemID != null)
	{
		newSubNavItem = document.getElementById(page.SubNavItemID + "On");
		
		if(newSubNavItem == null || newSubNavItem == 'undefined')
		{
			newSubNavItem = document.getElementById(page.SubNavItemID);
		}
		
		if(newSubNavItem != null && newSubNavItem != 'undefined')
		{
			newSubNavItem.id = page.SubNavItemID + "On";
		}
	}
}

function SetActivePage(page)
{
	_activePage = page;
}


function _hideLayer(id)
{
	var layer = document.getElementById(id);
	
	if(layer != null && layer != 'undefined')
	{
		layer.style.display = 'none';
	}
}


function ExitActivePage(page)
{
	var activeNavItem = null;
	
	if(_activePage.TextID != null && page.TextID != _activePage.TextID)
	{
		//document.getElementById(_activePage.TextID).style.display = "";
		_hideLayer(_activePage.TextID);
		//window.setTimeout("_hideLayer('" + _activePage.TextID + "');", 0);
	}
	
	if(_activePage.SubNavID != null && page.SubNavID != _activePage.SubNavID)
	{
		//document.getElementById(_activePage.SubNavID).style.display = "";
		_hideLayer(_activePage.SubNavID);
		//new Effect.Appear(_activePage.SubNavID, {from: 1.0, to: 0.0, duration: 0.5, fps: 30});
		//window.setTimeout("_hideLayer('" + _activePage.SubNavID + "');", 500);
	}
	
	if(_activePage.NavItemID != null)
	{
		activeNavItem = document.getElementById(_activePage.NavItemID + "On");
		
		if(activeNavItem != null && activeNavItem != 'undefined')
		{
			activeNavItem.id = _activePage.NavItemID;
		}
	}
	
	if(_activePage.SubNavItemID != null)
	{
		activeSubNavItem = document.getElementById(_activePage.SubNavItemID + "On");
		
		if(activeSubNavItem != null && activeSubNavItem != 'undefined')
		{
			activeSubNavItem.id = _activePage.SubNavItemID;
		}
	}
	
	
	return;
}


function Zoom()
	{
		
		//document.getElementById("productZoom").style.display = "";
		//document.getElementById("productHighlights").style.display = "none";
		new Effect.Fade("productHighlights", {from: 1.0, to: 0.0, duration: 0.2, delay: 0.0, fps: 30});
		new Effect.Appear("productZoom", {from: 0.0, to: 1.0, duration: 0.2, delay: 0.2, fps: 30});
	}

function CloseZoom()
	{
		//document.getElementById("productZoom").style.display = "none";
		//document.getElementById("productHighlights").style.display = "";
		new Effect.Fade("productZoom", {from: 1.0, to: 0.0, duration: 0.3, delay: 0.1, fps: 30});
		new Effect.Appear("productHighlights", {from: 0.0, to: 1.0, duration: 0.5, delay: 0.3, fps: 30});
	}

// collapsing menus for specs
function mouseover_section(section_id)
	{
		switch(section_id)
		{
			case 'specs_group1':
				new Effect.Move('specs_group2', {x: 0, y: 371, mode: 'absolute', duration: 0.2, delay: 0.0, fps: 30});
				new Effect.Move('specs_group3', {x: 0, y: 397, mode: 'absolute', duration: 0.2, delay: 0.0, fps: 30});
				new Effect.Move('specs_group4', {x: 0, y: 424, mode: 'absolute', duration: 0.2, delay: 0.0, fps: 30});
				document.getElementById('specs_group4_header').className = "collapsableBottom";
				//document.getElementById('specs').className = "specsBGOpen";
				document.getElementById('specs_group1_content').style.display = "";
				document.getElementById('specs_group2_content').style.display = "none";
				document.getElementById('specs_group3_content').style.display = "none";
				document.getElementById('specs_group4_content').style.display = "none";
				break;
			case 'specs_group2':
				new Effect.Move('specs_group2', {x: 0, y: 28, mode: 'absolute', duration: 0.2, delay: 0.0, fps: 30});
				new Effect.Move('specs_group3', {x: 0, y: 397, mode: 'absolute', duration: 0.2, delay: 0.0, fps: 30});
				new Effect.Move('specs_group4', {x: 0, y: 424, mode: 'absolute', duration: 0.2, delay: 0.0, fps: 30});
				document.getElementById('specs_group4_header').className = "collapsableBottom";
				//document.getElementById('specs').className = "specsBGOpen";
				document.getElementById('specs_group1_content').style.display = "none";
				document.getElementById('specs_group2_content').style.display = "";
				document.getElementById('specs_group3_content').style.display = "none";
				document.getElementById('specs_group4_content').style.display = "none";
				break;
			case 'specs_group3':
				new Effect.Move('specs_group2', {x: 0, y: 28, mode: 'absolute', duration: 0.2, delay: 0.0, fps: 30});
				new Effect.Move('specs_group3', {x: 0, y: 54, mode: 'absolute', duration: 0.2, delay: 0.0, fps: 30});
				new Effect.Move('specs_group4', {x: 0, y: 424, mode: 'absolute', duration: 0.2, delay: 0.0, fps: 30});
				document.getElementById('specs_group4_header').className = "collapsableBottom";
				//document.getElementById('specs').className = "specsBGOpen";
				document.getElementById('specs_group1_content').style.display = "none";
				document.getElementById('specs_group2_content').style.display = "none";
				document.getElementById('specs_group3_content').style.display = "";
				document.getElementById('specs_group4_content').style.display = "none";
				break;
			case 'specs_group4':
				new Effect.Move('specs_group2', {x: 0, y: 28, mode: 'absolute', duration: 0.2, delay: 0.0, fps: 30});
				new Effect.Move('specs_group3', {x: 0, y: 54, mode: 'absolute', duration: 0.2, delay: 0.0, fps: 30});
				new Effect.Move('specs_group4', {x: 0, y: 80, mode: 'absolute', duration: 0.2, delay: 0.0, fps: 30});
				document.getElementById('specs_group4_header').className = "collapsableHeading";
				//document.getElementById('specs').className = "specsBGOpen";
				document.getElementById('specs_group1_content').style.display = "none";
				document.getElementById('specs_group2_content').style.display = "none";
				document.getElementById('specs_group3_content').style.display = "none";
				document.getElementById('specs_group4_content').style.display = "";
				break;
		}
	}
// product film strip

// Toggle arrows depending on if you are at the first or last slide
var slideNum = 0
function incrementState()
{
	if (slideNum<2)
	{
		slideNum++;
		//document.getElementById('output').innerHTML = slideNum
		document.getElementById('ArrowPrev').style.display = "";
		if (slideNum==2)
		{
			document.getElementById('ArrowNext').style.display = "none";
		}
	}
}

function decrementState()
{
	if (slideNum>0)
	{
		slideNum--;
		//document.getElementById('output').innerHTML = slideNum
		document.getElementById('ArrowNext').style.display = "";
		if (slideNum==0)
		{
			document.getElementById('ArrowPrev').style.display = "none";
		}
	}
}

// slide mover 
var currentPosition = 0;
function SlideLeft()
	{
		var obj = document.getElementById('filmStrip');
		
		currentPosition = currentPosition + 551;
		
		new Effect.Move (obj,{ x: currentPosition, y: 0, duration: .2, mode: 'absolute'});
		
		decrementState();
	}

function SlideRight()
	{
		var obj = document.getElementById('filmStrip');
		
		currentPosition = currentPosition - 551;
		
		new Effect.Move(obj,{ x: currentPosition, y: 0, duration: .2, mode: 'absolute'});
		
		incrementState();
	}

function MoveTo(position)
	{
		var obj = document.getElementById('filmStrip');
		
		new Effect.Move(obj,{ x: position, y: 0, duration: .2, mode: 'absolute', fps: 30});
	}
	
// get driver info
function getDriverXP(URL)
{
	new Ajax.Request(URL, 
		{
			method: 'get', 
			onComplete: function(response)
			{
				var driverXML = response.responseXML;
				var _WHQL = "WHQL";
				
				$('DriverNameXP').innerHTML = driverXML.getElementsByTagName("Name")[0].firstChild.nodeValue;
				$('DriverVersionXP').innerHTML = driverXML.getElementsByTagName("Version")[0].firstChild.nodeValue;
				$('DriverDateXP').innerHTML = driverXML.getElementsByTagName("ReleaseDate")[0].firstChild.nodeValue;
				//$('DriverWHQL').innerHTML = driverXML.getElementsByTagName("WHQL")[0].firstChild.nodeValue;
				$('DriverURLXP').href = driverXML.getElementsByTagName("URL")[0].firstChild.nodeValue;
				//$('DriverHighlights').innerHTML = driverXML.getElementsByTagName("ReleaseHighlights")[0].firstChild.nodeValue;
				if (driverXML.getElementsByTagName("WHQL")[0].firstChild.nodeValue == 'True')
				{
					$('DriverWHQLXP').innerHTML = _WHQL;
				}
			}
		}
	);
}

function getDriverVista(URL)
{
	new Ajax.Request(URL, 
		{
			method: 'get', 
			onComplete: function(response)
			{
				var driverXML = response.responseXML;
				var _WHQL = "WHQL";
				
				$('DriverNameVista').innerHTML = driverXML.getElementsByTagName("Name")[0].firstChild.nodeValue;
				$('DriverVersionVista').innerHTML = driverXML.getElementsByTagName("Version")[0].firstChild.nodeValue;
				$('DriverDateVista').innerHTML = driverXML.getElementsByTagName("ReleaseDate")[0].firstChild.nodeValue;
				$('DriverURLVista').href = driverXML.getElementsByTagName("URL")[0].firstChild.nodeValue;
				if (driverXML.getElementsByTagName("WHQL")[0].firstChild.nodeValue == 'True')
				{
					$('DriverWHQLVista').innerHTML = _WHQL;
				}
			}
		}
	);
}

// buy now & add to cart actions
function StartShopping(URL)
{
	window.open(URL, "_top");
	buyTracking();
}

function buyTracking()
{
	_hbLink('Buy now');
}


function EnableMenu()
{
	_isMenuEnabled = true;
}

function MenuEnabled()
{
	return _isMenuEnabled;
}

//bold active subnav link
function subNavActive(linkID)
{
	document.getElementById(linkID).className = "SubNavBold";
}