/* * * * * * * * * * * * * * * * * * * * */
/* *    JS for WPA Web Site   * */
/* * * * * * * * * * * * * * * * * * * * */

function initWPA ()
{
	initScroll();
	initDropMenu();
}

/* * * * * * * * * * * * */
/*   DropDown Menus   */
/* * * * * * * * * * * * */
var objNavMenu          = null;
var lastObjNavMenu   = null;
var lastObjDropMenu  = null;
var deferredID           = null;
var deferredDelay       = 200;
var numDropMenu        = 4;
/*  Link Styles */
var linkColor       = '#000000';
var bgLinkColor   = '#cccccc'; 
var linkHover      = '#cc9900';
var bgLinkHover  = '#ffffcc';
var linkActive     = '#cc9900';
var bgLinkActive  = '#ffffcc';

var isIE = null;
if (navigator.appName.indexOf('Microsoft Internet Explorer') != -1) isIE=1;

var isSafari = null;
if ((navigator.appName.indexOf('Safari') != -1) || (navigator.userAgent.indexOf('Safari') != -1)) isSafari=1;

function initDropMenu () 
{
	/* global handler to put menus away when they click off the menu on the page */
	document.onclick = DeferredMenuOff;
	/* Hide the drop menus, and set event handlers for nav menus. */
	var i;
	var menuName;
	var objDropMenu;
	var navName;
	var objNavMenu;
	for (i=1; i<=numDropMenu; i++) 
	{
		menuName      = 'dropMenu' + i;
		objDropMenu = document.getElementById(menuName);
		objDropMenu.style.visibility = 'hidden';
		objDropMenu.onmouseover    = clearDeferralTimer;
		objDropMenu.onmouseout     = startDeferralTimer;
		
		navName         = 'navMenu' + i;
		objNavMenu   = document.getElementById(navName);
		objNavMenu.onmouseover = MenuOn;
		objNavMenu.onmouseout   = MenuOff;
		objNavMenu.onclick         = null;
	}
	objNavMenu = null;
	return;
}

function clearDeferralTimer(ignore)
{
	clearTimeout(document.xtimer);
}

function startDeferralTimer(ignore)
{
	document.xtimer = setTimeout('DeferredMenuOff()', deferredDelay);
}

function MenuOff (e) 
{
	deferredID = this.id;
	startDeferralTimer();
}
			
function DeferredMenuOff () 
{
	if (deferredID)
	{
		clearDeferralTimer();
		hideDropMenu();
		document.onclick = DeferredMenuOff;
		outObjNavMenu = document.getElementById(deferredID);
		if (outObjNavMenu != objNavMenu) 
		{
			outObjNavMenu.style.color                  = linkColor;
			outObjNavMenu.style.backgroundColor = bgLinkColor;
		}
		deferredID = null;
	}
}
			
function  MenuOn(e) 
{
	DeferredMenuOff();
	document.onclick = DeferredMenuOff; /*null;*/
	hoverObjNavMenu = document.getElementById(this.id);
	if (hoverObjNavMenu != objNavMenu) 
	{
		hoverObjNavMenu.style.color                  = linkHover;
		hoverObjNavMenu.style.backgroundColor = bgLinkHover;
	}
	/* Pass these values along to showDropMenu, which is no longer an event handler. */
	tid     = this.id;
	idnum = tid.substring(3,tid.length);
	showDropMenu(tid,idnum);
}

function showDropMenu(tid,num) 
{
	/*clearTimeout(document.xtimer);*/
	clearDeferralTimer();
	menuName = 'drop' + num;
	objDropMenu = document.getElementById(menuName);
	objNavMenu  = document.getElementById(tid);
	if ((lastObjNavMenu != objNavMenu ) || (lastObjDropMenu == null)) 
	{
		objNavMenu.style.color                  = linkActive;
		objNavMenu.style.backgroundColor = bgLinkActive;
	}
				
	if (objDropMenu) 
	{
		xPos = objNavMenu.offsetParent.offsetLeft + objNavMenu.offsetLeft;
		yPos = objNavMenu.offsetParent.offsetTop  + objNavMenu.offsetParent.offsetHeight;
		if (isIE) 
		{
			yPos -= 4;   /* 1 */
			xPos -= 1;
		}
		else
		{
			yPos -= 4;
		}
		objDropMenu.style.left = xPos + 'px';
		objDropMenu.style.top  = yPos + 'px';
		objDropMenu.style.visibility = 'visible';
		
		lastObjDropMenu         = objDropMenu;
		lastObjNavMenu           = objNavMenu;
	}
}
			
function hideDropMenu(ignore) 
{
	document.onclick = null;
	if (lastObjDropMenu) 
	{
		lastObjDropMenu.style.visibility          = 'hidden';
		lastObjDropMenu                                = null;

		lastObjNavMenu.style.color                  = linkColor;
		lastObjNavMenu.style.backgroundColor = bgLinkColor;
	}
	objNavMenu = null;
}


/* ***************************************************************************** */
/*  AutoScrolling  Combos:  50/8  50/10    66/16    100/25 (ok)  200/50 (jerky)  */
/* ***************************************************************************** */
var scrollDelay = 30;
var scrollBump  = 5;
var scrollRight  = true;
var docBody      = "body";

function initScroll()
{
	var eln = (document.compatMode && document.compatMode == "CSS1Compat") ? "documentElement" : "body";
	docBody = document[eln];
	/*alert('docBody = ' + docBody);*/
}

function getDocElName(){
return (document.compatMode && document.compatMode == "CSS1Compat") ? "documentElement" : "body";
}

function ScrollLeft (targetXPos)
{
	var x = docBody.scrollLeft;
	if (isIE)
	{
		/*alert('scrollLeft=' + x + '  scrollX=' + window.scrollX + '   IE=' + document.body.parentElement.scrollLeft);*/
	}
	else
	{
		/*alert('scrollLeft=' + x + '  scrollX=' + window.scrollX);*/
	}
	if (x > targetXPos) 
	{
		if (isIE)
		{
			/*alert('document.body.scrollLeft=' + x);*/
			/*alert('document.body.parentElement.scrollLeft = ' + document.body.parentElement.scrollLeft);*/
			/*document.body.scrollLeft = x - scrollBump;*/
			scrollBy(-scrollBump,0);
		}
		else
		{
			window.scrollBy(0-scrollBump,0);
		}
		document.scrolltimer = setTimeout('ScrollLeft(' + targetXPos + ')', scrollDelay);
	}
	else
	{
		ScrollOff();
	}
}

function ScrollRight (targetXPos)
{
	var x = docBody.scrollLeft;
	if (isIE)
	{
		/*alert('scrollLeft=' + x + '  scrollX=' + window.scrollX + '   IE=' + document.body.parentElement.scrollRight);*/
	}
	else
	{
		/*alert('scrollLeft=' + x + '  scrollX=' + window.scrollX);*/
	}
	if (x < targetXPos) 
	{
		if (isIE)
		{
			/*alert('document.body.scrollLeft=' + x);*/
			/*alert('document.body.parentElement.scrollLeft = ' + document.body.parentElement.scrollLeft);*/
			/*document.body.scrollLeft = x + scrollBump;*/
			window.scrollBy(scrollBump,0);
		}
		else
		{
			window.scrollBy(scrollBump,0);
		}
		/*window.scrollBy(scrollBump,0);*/
		document.scrolltimer = setTimeout('ScrollRight(' + targetXPos + ')', scrollDelay);
	}
	else 
	{
		ScrollOff();
	}
}

function ScrollOff ()
{
	clearTimeout(document.scrolltimer);
	return false;
}

function getScrollWidth() {
  var scrOfX = 0;
  if ( typeof( window.pageYOffset ) == 'number' ) 
  {
    //Netscape compliant
    scrOfX = window.pageXOffset;
  } 
  else if ( document.body && document.body.scrollLeft ) 
  {
    //DOM compliant
    scrOfX = document.body.scrollLeft;
  } else if ( document.documentElement && document.documentElement.scrollLeft ) 
  {
    //IE6 standards compliant mode
    scrOfX = document.documentElement.scrollLeft;
  }
  /*alert('ScrollWidth = ' + scrOfX);*/
  return scrOfX;
}

function getScrollXY() {
  var scrOfX = 0, scrOfY = 0;
  if( typeof( window.pageYOffset ) == 'number' ) {
    //Netscape compliant
    scrOfY = window.pageYOffset;
    scrOfX = window.pageXOffset;
  } else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
    //DOM compliant
    scrOfY = document.body.scrollTop;
    scrOfX = document.body.scrollLeft;
  } else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
    //IE6 standards compliant mode
    scrOfY = document.documentElement.scrollTop;
    scrOfX = document.documentElement.scrollLeft;
  }
  alert('X=' + scrOfX + '   Y=' + scrOfY);
  return [ scrOfX, scrOfY ];
}

function scrollPageTo(x) 
{
	/*alert('ScrollPageTo = ' + x);*/
	var y = 0;
	/*alert('FF: ScrollPageTo = ' + x);*/
	scrollTo(x,y)
}

function XXXscrollPageTo(x) 
{
	/*alert('ScrollPageTo = ' + x);*/
	var y = 0;
	if (document.body.scrollLeft) 
	{
		alert('IE: ScrollPageTo = ' + x);
		document.body.scrollLeft = x;
		document.body.scrollTop = y;
		return;
	}
	////// Needed for Netscape 6 compatibility
	else if ( isIE ) 
	{
		alert('IE2: ScrollPageTo = ' + x);
    	document.documentElement.scrollLeft = x;
	}
	else 
	{
		alert('FF: ScrollPageTo = ' + x);
		scrollTo(x,y)
		return;
	}
}

/* ******************************************************************** */
/*                                       Misc Functions                                         */
/* ******************************************************************** */
function set_opacity(el,val) 
{
	var post = document.getElementById(el);
	alert('OPACITY: el = ' + el + ' : ' + post);
	post.style.opacity='0.' + val ;
	post.style.filter="alpha(opacity=" + val + ")";
}

var popups = new Array();

function dopen(url, pid, width, height)
{
	if (isIE)
	{
		return true;
	}
	else
	{
		var thispopup = popups[pid];
		if ( (thispopup == null) || thispopup.closed)
		{
			var popname = 'Gallery Item: ' + pid;
			var popargs = 'width=' + width + ',height=' + height + ',directories=yes,menubar=yes,status=yes,left=0,top=0';
			thispopup = window.open(url,popname,popargs);
			if (thispopup) 
			{
				thispopup.title = popname;
				popups[pid]=thispopup;
				thispopup.focus();
				return false;
			}
			else 
			{
				// popups blocked by something, so just follow the link....
				return true;
			}
		}
		else
		{
			thispopup.focus();
			return false;
		}
		return false;
	}
}

var portraitpop = null;

function portraitdialog(url, width, height)
{
	/*alert('DOPEN: id=' + pid + '  window=' + oldwindow);*/
	if (isIE)
	{
		return true;
	}
	else 
	{
		if ( (portraitpop == null) || portraitpop.closed)
		{
			var popname = 'Commission a Portrait';
			var popargs = 'width=' + width + ',height=' + height + ',scrollbars=no,resizable=yes,toolbar=no,directories=yes,location=no,menubar=yes,status=yes,left=0,top=0';
			portraitpop = window.open(url,popname,popargs);
			if (portraitpop)
			{
				portraitpop.title = popname;
				portraitpop.focus();
				return false;
			}
			else
			{
				return true;
			}
		}
		else
		{
			portraitpop.focus();
			return false;
		}
	}
}

/*function dclose(pid)
{
	window.close();
	if (pid)
	{
		popups[pid] = null;
	}
}*/


function ValidateCustomPayment(formname)
{
	var price = formname.os0.value;
	if (!price)
	{
		alert("You must put in the price here.");
		formname.os0.focus();
		return false;
	}
	var desc = formname.ox0.value;
	if ((!desc) || (desc == "<enter description>"))
	{
		alert("You must put in a description of the payment here.");
		formname.ox0.focus();
		return false;
	}
	SetCustomPrice(formname, price,desc);
	return true;
}

function SetCustomPrice(formname, price, desc)
{
	alert('CustomPay: ' + formname + ' : ' + price + '   Desc = ' + desc);
	formname.amount.value = price;
	formname.item_name.value = desc;
	formname.shipping.value = 0;			
	formname.shipping2.value = 0;			
}

/* submit the View Shopping Cart form */
function ViewShoppingCart()
{
	document.viewcart.submit();
}

/* DREAMWEAVER STUFF */
function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

