/*
	This script (c) 2000-2001 Ivanopulo
	You're free to use it, but please leave this message intact if you do it.
*/

var ImagesDir = "images/toolbar/";

var bNetscape4     = false;
var bNetscape6     = false;
var bExplorer4plus = false;
var bOpera5        = false;

var ButtonOffset = 75; // Offset up from bottom of visible page
var ButtonTop = 400; // Offset from top of page to top of button
var MenuOffset = 125; // Offset down from top of page to top of menu

if ( (navigator.userAgent.indexOf("Opera 5") > -1) || (navigator.userAgent.indexOf("Opera/5") > -1) )
{
	bOpera5 = true;
}
else if ( navigator.appName == "Microsoft Internet Explorer" && navigator.appVersion.substring(0,1) >= "4" )
{
	bExplorer4plus = true;
}
else if ( navigator.appName == "Netscape" && navigator.appVersion.substring(0,1) == "4" )
{
	bNetscape4 = true;
}
else if ( navigator.appName == "Netscape" && navigator.appVersion.substring(0,1) >= "5" )
{
	bNetscape6 = true;
}

var nn6DivMenu, nn6DivButton; // specially for NN6 to speed up things at least a little

function CheckUIElements()
{
	var yMenuFrom, yMenuTo, yButtonFrom, yButtonTo, yOffset, timeoutNextCheck;
	
	if ( bNetscape4 ) {
		yButtonFrom = document["divLinkButton"].top;
		yButtonTo   = top.pageYOffset + top.innerHeight - ButtonOffset;
		// yButtonTo   = top.pageYOffset + ButtonTop;
		yMenuFrom   = document["divMenu"].top;
		yMenuTo     = top.pageYOffset + MenuOffset;
	}
	else if ( bExplorer4plus ) {
		yButtonFrom = parseInt (divLinkButton.style.top, 10);
		yButtonTo   = document.body.scrollTop + document.body.clientHeight - ButtonOffset;
		// yButtonTo   = document.body.scrollTop + ButtonTop;
		yMenuFrom   = parseInt (divMenu.style.top, 10);
		yMenuTo     = document.body.scrollTop + MenuOffset;
	}
	else if ( bNetscape6 ) {
		yButtonFrom = nn6DivButton.style.top.replace(/px/,"");
		yButtonTo   = top.pageYOffset + top.innerHeight - ButtonOffset;
		// yButtonTo   = top.pageYOffset + ButtonTop;
		yMenuFrom   = nn6DivMenu.style.top.replace(/px/,"");
		yMenuTo     = top.pageYOffset + MenuOffset;
	}
	else if ( bOpera5 ) {
//		nn6DivMenu = document.getElementById('divMenu');
		yButtonFrom = nn6DivButton.style.top;
		yButtonTo   = top.pageYOffset + top.innerHeight - ButtonOffset;
		// yButtonTo   = top.pageYOffset + ButtonTop;
		yMenuFrom   = nn6DivMenu.style.top;
		yMenuTo     = top.pageYOffset + MenuOffset;
	}

	timeoutNextCheck = 500;

	if ( Math.abs(yButtonFrom - (yMenuTo + 152)) < 6 && yButtonTo < yButtonFrom ) {
		setTimeout ("CheckUIElements()", timeoutNextCheck);
		return;
	}

	if ( yButtonFrom != yButtonTo ) {

		if ( bNetscape6 )
			yOffset = Math.ceil( Math.abs( yButtonTo - yButtonFrom ) / 10 );
		else
			yOffset = Math.ceil( Math.abs( yButtonTo - yButtonFrom ) / 20 );
			
		if ( yButtonTo < yButtonFrom )
			yOffset = -yOffset;
		
		timeoutNextCheck = 10;

		if ( bNetscape4 )
			document["divLinkButton"].top += yOffset;
		else if ( bExplorer4plus )
			divLinkButton.style.top = parseInt (divLinkButton.style.top, 10) + yOffset;
		else if ( bOpera5 )
			nn6DivButton.style.top += yOffset;
		else if ( bNetscape6 ) {
			nn6DivButton.style.top = eval(nn6DivButton.style.top.replace(/px/,"")) + yOffset;
//			document.getElementById('divLinkButton').style.top = eval(document.getElementById('divLinkButton').style.top.replace(/px/,"")) + yOffset;
			timeoutNextCheck = 50;
		}

	}
	if ( yMenuFrom != yMenuTo ) {
	
		if ( bNetscape6 )
			yOffset = Math.ceil( Math.abs( yMenuTo - yMenuFrom ) / 10 );
		else
			yOffset = Math.ceil( Math.abs( yMenuTo - yMenuFrom ) / 30 );
			
		if ( yMenuTo < yMenuFrom )
			yOffset = -yOffset;
		
		timeoutNextCheck = 10;

		if ( bNetscape4 )
			document["divMenu"].top += yOffset;
		else if ( bExplorer4plus )
			divMenu.style.top = parseInt (divMenu.style.top, 10) + yOffset;
		else if ( bOpera5 )
			nn6DivMenu.style.top += yOffset;
		else if ( bNetscape6 ) {
			nn6DivMenu.style.top = eval(nn6DivMenu.style.top.replace(/px/,"")) + yOffset;
//			document.getElementById('divMenu').style.top = eval(document.getElementById('divMenu').style.top.replace(/px/,"")) + yOffset;
			timeoutNextCheck = 50;
		}

		timeoutNextCheck = 10;
	}

	setTimeout ("CheckUIElements()", timeoutNextCheck);
}

function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}


function checkQuantities() {
  if ((document.f.cdquantity.value <= 0) && (document.f.tapequantity.value <= 0)) {
    alert('You need to enter a positive Quantity value for either the CD or tape (or both)');
    return false;
  }
  else return true;
} // end of fuction checkQuantities()

function checkAddresses() {
  // make sure all necessary fields are correct
  // *** 1) Check Credit Card Validity
  var typeindex = -1;
  for (i=0;i<document.f.cardtype.length;i++) { if (document.f.cardtype[i].checked) typeindex = i; }
  if (typeindex < 0) { alert("You must choose a Credit Card type."); return false; }
  var year = document.f.expireyear.selectedIndex+parseInt(document.f.expireyear[0].value);
 var validcc = validateCard(document.f.cardnumber.value, document.f.cardtype[typeindex].value, document.f.expiremonth.selectedIndex+1, year);
  if (!validcc) {
 // 	alert('Your Credit Card Number or Type is invalid\nPlease re-enter or use a different credit card.');
	document.f.cardnumber.focus();
	return false;
  }
  // *** 2) Make sure CC Name is entered
  if (document.f.cardholder.value == "") {
     alert('Please enter the Cardholder Name as shown on the Credit Card.');
	 document.f.cardholder.focus();
     return false;
  }
  // *** 3) Need Billing Address, city, state, zip, phone, email
  if (document.f.street.value == "") {
    alert('Please enter the Street Address (Billing Address).');
	document.f.street.focus();
	return false;
  }
  if (document.f.city.value == "") {
    alert('Please enter the City (Billing Address).');
	document.f.city.focus();
	return false;
  }
  if (document.f.state.value == "") {
    alert('Please enter the State/Providence (Billing Address).');
	document.f.state.focus();
	return false;
  }
  if (document.f.zip.value == "") {
    alert('Please enter the Zip Code/Postal Code (Billing Address).');
	document.f.zip.focus();
	return false;
  }
  if ((document.f.phone.value == "") && (document.f.ephone.value == "")) {
    alert('Please enter a Daytime or Evening Phone Number.');
	document.f.phone.focus();
	return false;
  }
  if (document.f.email.value == "") {
    alert('Please enter a valid Email address.');
	document.f.email.focus();
	return false;
  } 
  
  // ---- ALL IS FINE! ----
  return true;
} // end of fuction checkAddresses()

function OnLoad()
{
	var y;
	
	// we're not gonna be loaded in frames, no sir!
	if ( top.frames.length )
		top.location.href = self.location.href;
		
	// setting initial UI elements positions
	if ( bNetscape4 ) {
		document["divMenu"].top = top.pageYOffset + 50;
		document["divMenu"].visibility = "visible";
		document["divLinkButton"].top = top.pageYOffset + top.innerHeight - 55;
		document["divLinkButton"].visibility = "visible";
	}
	else if ( bExplorer4plus ) {
		divMenu.style.top = document.body.scrollTop + 50;
		divMenu.style.visibility = "visible";
		divLinkButton.style.top = document.body.scrollTop + document.body.clientHeight - 55;
		divLinkButton.style.visibility = "visible";
		// and fixing incorect css property handling in msie
		//bodyText.style.right = -150;
	}
	else if ( bNetscape6 || bOpera5 ) {
		nn6DivMenu = document.getElementById('divMenu');
		nn6DivMenu.style.top = top.pageYOffset + 50;
		nn6DivMenu.style.visibility = "visible";
		nn6DivButton = document.getElementById('divLinkButton');
		nn6DivButton.style.top = top.pageYOffset + top.innerHeight - 55;
		nn6DivButton.style.visibility = "visible";

//		document.getElementById('divMenu').style.top = top.pageYOffset + 50;
//		document.getElementById('divMenu').style.visibility = "visible";
//		document.getElementById('divLinkButton').style.top = top.pageYOffset + top.innerHeight - 55;
//		document.getElementById('divLinkButton').style.visibility = "visible";
	}
	
	// initializing UI update timer
	CheckUIElements();
	return true;
}


/*
function SwapImage(imageName, bHilite) {
// DUMB Netscape (prior to v6) doesn't see img names if they're inside a <div> that has an id
// if they're just in <div></div> - it's okay, but that's not the case :\
// Workaround (using layers) was provided by Kostya. Tnx man :)
	if ( bExplorer4plus || bNetscape6 || bOpera5 ) {
		document.images[imageName].src = ImagesDir + imageName + (bHilite == 1 ? "-hi.gif" : ".gif");
	}
	else if ( bNetscape4 ) {
		document.layers["divMenu"].document.images[imageName].src = ImagesDir + imageName + (bHilite == 1 ? "-hi.gif" : ".gif");
	}
	return false;
}

function PreloadMenuRollovers() {
	// preloading rollovers
	home=new Image;
	home.src=ImagesDir + "home-hi.gif";
	about_brent=new Image;
	about_brent.src=ImagesDir + "about_brent-hi.gif";	
	tour_the_cd=new Image;
	tour_the_cd.src=ImagesDir + "tour_the_cd-hi.gif";
	samples=new Image;
	samples.src=ImagesDir + "samples-hi.gif";
	order_music=new Image;
	order_music.src=ImagesDir + "order_music-hi.gif";
//	photos=new Image;
//	photos.src=ImagesDir + "photos-hi.gif";
	forum=new Image;
	forum.src=ImagesDir + "forum-hi.gif";
	guestbook=new Image;
	guestbook.src=ImagesDir + "guestbook-hi.gif";
	contact=new Image;
	contact.src=ImagesDir + "contact-hi.gif";
}
*/

