/***Generic trim function***/
String.prototype.trim = function(){
		return( this.replace(/^\s*([\s\S]*\S+)\s*$|^\s*$/,'$1') );
	}

/***Mouseover method for menu***/
function MenuOver(el)
{
	el.className ="headerMenuOver";
}

/***Mouseout method for menu***/
function MenuOut(el)
{
	el.className ="headerMenu";
}

function BoxLinkOver(el)
{
	el.className ="boxTDMiscOver";
}

function BoxLinkOut(el)
{
	el.className ="boxTDMisc";
}

function BoxLinkLargeOver(el)
{
	el.className ="boxTDMiscLargeOver";
}

function BoxLinkLargeOut(el)
{
	el.className ="boxTDMiscLarge";
}

function ChangeButtonImage(el, evnt)
{
	switch(el.name)
	{
		case 'btnGo':
			switch(evnt)
			{
				case 'over':
					el.src = "images/btnGoOver.png";
				break;
				
				case 'out':
					el.src = "images/btnGo.png";
				break;
				
				case 'down':
					el.src = "images/btnGoDown.png";
				break;
			}
			break;
			
		case 'btnPassword':
			switch(evnt)
			{
				case 'over':
					el.src = "images/btnPasswordOver.png";
				break;
				
				case 'out':
					el.src = "images/btnPassword.png";
				break;
				
				case 'down':
					el.src = "images/btnPasswordDown.png";
				break;
			}
			break;
		
		case 'btnDownload':
			switch(evnt)
			{
				case 'over':
					el.src = "images/btnDownloadOver.png";
				break;
				
				case 'out':
					el.src = "images/btnDownload.png";
				break;
				
				case 'down':
					el.src = "images/btnDownloadDown.png";
				break;
			}
			break;
			
		case 'btnSearch':
			switch(evnt)
			{
				case 'over':
					el.src = "images/btnSearchOver.png";
				break;
				
				case 'out':
					el.src = "images/btnSearch.png";
				break;
				
				case 'down':
					el.src = "images/btnSearchDown.png";
				break;
			}
			break;
	}
}

function FeatureOver(el)
{
	document.getElementById(el.id + "_2").className = "functionSpanOver";
	document.getElementById(el.id + "_1").src = "images/bullet_arrowDown.png";
}

function FeatureOut(el)
{
	document.getElementById(el.id + "_2").className = "functionSpan";
	document.getElementById(el.id + "_1").src = "images/bullet_arrow.png";
}

function FeedbackOver(el)
{
	document.getElementById(el.id + "_2").className = "spanFeedbackOver";
	document.getElementById(el.id + "_1").src = "images/bullet_arrowDown.png";
}

function FeedbackOut(el)
{
	document.getElementById(el.id + "_2").className = "spanFeedback";
	document.getElementById(el.id + "_1").src = "images/bullet_arrow.png";
}

function CheckText(el)
{
	if((el.value == "Email Address") || (el.value == "password12345"))
	{
		el.value = "";
	}
}

/***Method that sets the text of a specified textbox***/
function CheckNewText(el)
{
	if(el.value == "")
	{
		switch(el.id)
		{
			case "txtUsername":
				el.value = "Email Address";
				break;
				
			case "txtEmailForgot":
				el.value = "Email Address";
				break;
				
			case "txtPassword":
				el.value = "password12345";
				break;
				
			case "txtPasswordLogin":
				el.value = "password12345";
				break;
		}
	}
}

/***Generic method that navigates to the specified page or opens the specified page in a new window***/
function NavigateToPage(pageName, newPage)
{
	if(newPage == null)
	{
		document.location.href = pageName;
	}
	else
	{
		window.open(pageName);
	}
}

/***Generic method that sets the status text of the window***/
function SetWindowStatus(statusText)
{
	if(statusText == null)
	{
		window.status = '';
		return true;
	}
	else
	{
		window.status = statusText;
		return true;
	}	
}

/***Methods that shows/hides feedback topic/submit***/
function ShowFeedBackSection(sectionID)
{
	switch(sectionID)
	{
		case "sectionSubmit":
			document.getElementById("sectionTopic").style.display = "none";
			document.getElementById(sectionID).style.display = "";
		break;
		
		case "sectionTopic":
			document.getElementById("sectionSubmit").style.display = "none";
			document.getElementById(sectionID).style.display = "";
		break;
	}
}

/***Method that determines that search button must be clicked when enter is pressed on search page***/
function DetermineSearchButton()
{
	if(event.keyCode == 13)
	{
		document.getElementById("buttonSearch").click();
		return false;
	}
	else
	{
		return true;
	}
}

/***Method that determines that submit button must be clicked when enter is pressed on feedback page***/
function DetermineFeedbackButton()
{
	if(event.keyCode == 13)
	{
		document.getElementById("buttonSubmit").click();
		return false;
	}
	else
	{
		return true;
	}
}

/***Method that collapses/expands topic heading(usually date) table***/
function CollapseExpandTable(srcID,alt,tableID)
{
	if(alt == "collapse")
	{
		document.getElementById(srcID).alt = "expand";
		document.getElementById(srcID).src = "images/expand.png";
		document.getElementById(tableID).style.display = "none";
	}
	if(alt == "expand")
	{
		document.getElementById(srcID).alt = "collapse";
		document.getElementById(srcID).src = "images/collapse.png";
		document.getElementById(tableID).style.display = "";
	}
}

/***Method that sets HTML for floating div and shows floating div when topic is clicked on***/
function ShowTopic(tableID,evnt)
{
	var newLeft = 0;
	var newTop = document.body.scrollTop + 20;
	var startLeft = document.body.clientWidth - 550;
	var startTop =  document.body.clientHeight + document.body.scrollTop;
	
	document.getElementById("floater").className = "floaterVisible";
	document.getElementById("floater").innerHTML = "<img title='close' onclick='CloseFloater();' style='cursor:pointer' src='images/close.png'><table class='feedbackTable' cellpadding='0' cellspacing='0' border='0'>" + document.getElementById(tableID).innerHTML.replace("tdDescription_","tdFloater_").replace("<TD vAlign=top rowSpan=11>","<TD id='tempTD' vAlign=top rowSpan=11>") + "<table>";
	
	if(document.getElementById("tempTD") != null)
	{
		document.getElementById("tempTD").style.display = "none";
	}
	
	var element = document.getElementById(tableID.replace("tableTopic_","tdFloater_"))
	
	element.innerHTML = element.abbr;
		
	if(document.body.clientWidth > 550);
	{
		newLeft = (document.body.clientWidth - 550) / 2;
	}
	
	MoveFloaterLeft(startLeft,newLeft);
	MoveFloaterUp(startTop, newTop)
	ResizeFloater(0,550);
}

/***Method that moves floating div when topic is clicked on for animation effect***/
function MoveFloaterLeft(startLeft, newLeft)
{
	document.getElementById("floater").style.left = startLeft;
		
	if(startLeft > newLeft)
	{
		if((startLeft - 35) < newLeft)
		{
			startLeft = newLeft;
		}
		else
		{
			startLeft = startLeft - 35;
		}
		
		setTimeout("MoveFloaterLeft(" + startLeft + "," + newLeft + ")",1);
	}
}

/***Method that moves floating div when topic is clicked on for animation effect***/
function MoveFloaterUp(startTop, newTop)
{
	document.getElementById("floater").style.top = startTop;
	
	if(startTop	> newTop)
	{	
		if((startTop - 35) < newTop)
		{
			startTop = newTop;
		}
		else
		{
			startTop = startTop - 35;
		}
		setTimeout("MoveFloaterUp(" + startTop + "," + newTop + ")",1);
	}
}

/***Method that resizes floating div when topic is clicked on for animation effect***/
function ResizeFloater(startSize, newSize)
{
	document.getElementById("floater").style.width = startSize;
	
	//if the size of the floating div is smaller than the new size - resize floating div by 25px or to new size
	if(startSize < newSize)
	{	
		if((startSize + 25) > newSize)
		{
			startSize = newSize;
		}
		else
		{
			startSize = startSize + 25;
		}
		setTimeout("ResizeFloater(" + startSize + "," + newSize + ")",1);
	}
}

/***Method that hides floating div***/
function CloseFloater()
{
	document.getElementById("floater").className = "floaterHidden";
}


/***Method that moves floating div as page is scrolled***/
function MoveFloater()
{
	//if floating div height + space from top is smaller than the height of the page
	if(document.getElementById("floater").offsetHeight + 20 < document.body.clientHeight)
	{
		//move floating div to the scroll position + 20px
		document.getElementById("floater").style.top = document.body.scrollTop + 20;
	}
}


/***Mouseover and -out method for submit buttons***/
function ButtonOver(el, evnt)
{
	if(evnt == 'over')
	{
		el.className='submitButtonOver';
	}
	else
	{
		el.className='submitButton';
	}
}

function AddProduct(userID)
{
	var dialogArgs = new Object();
	dialogArgs.userID = userID;
	window.showModalDialog("BWXAddProduct.aspx",dialogArgs,"dialogHeight: 170px; dialogWidth: 400px; dialogTop: px; dialogLeft: px; edge: Raised; center: Yes; help: No; resizable: No; status: 0;");
}

function CheckAddProductValues()
{
	document.getElementById("btnAdd").disabled = ((document.getElementById("comboProducts").value == "-1") || (document.getElementById("txtSerial").value.trim() == ""));
}


function GetDialogArguments()
{	
	document.getElementById("hdnUserID").value = window.dialogArguments.userID;
}

function ShowScreenshot(path)
{
	var height, width;
	if(screen.availHeight > 768)
	{
		height = 768;
		width = 1024;
	}
	else
	{
		height = 660;
		width = 950;
	}
	window.open("BWXScreenshot.aspx?image=screenshots/" + path, "Screenshot", "toolbar = 0, scrollbars = 1, width=" + width + ", height=" + height + ", top=0, left=0, resizable=1");
}
