var d;
var df;
var sideBarContent;
var navs = new Array('navProducts','navArtwork','navMyCart','navContact');
var navTabs = [];
var navArtwork = [];
navArtwork[0] = ('requirements,Requirements');
navArtwork[1] = ('clipart,Clipart');
navArtwork[2] = ('fonts,Fonts');
var navSpecials = [];
var navMyCart = [];
navMyCart[0] = ('mycart,Shopping Cart');
var navContact = [];
navContact[0] = ('contact,Contact');
navContact[1] = ('club,Savers Club');
navContact[2] = ('faq,FAQ');
var navLnksAr = [];
var interval;
var okayToClose = true;
var menuShowing;
// for qMarks...
var iframe;
var scrollHeight;
// keep the iframe open...
var holdTight = false;
var timer;
//////////////////////////////////////////////////////////
/* util */
function mathRound(value) {
  // 10000 is percision...
  return Math.round((value)*10000)/10000;
}
//////////////////////////////////////////////////////////
function showSideBar(toggle) {
	if(!toggle) {
		hideSideBar();
		return;
	}
  try {
  	$('sideBar').style.display = 'table-cell';
  }
  catch(e) {
    // ie method...
  	$('sideBar').style.display = 'block';
  }
  if(sideBarContent == 'categories') {
    $('actionIs').style.height = 650 + 'px';
  }
}
function hideSideBar() {
  $('sideBar').style.display = 'none';
  $('actionIs').style.height = 100 + '%';
}
function setNavHandlers() {
  $('menu').onclick = function() {
    toggleMenu('menuHide');
  }
  $('menu').onmouseover = function() {
	  okayToClose = false;
	}
  $('menu').onmouseout = function(e) {
    var e = e || window.event;
	  if(checkMouseLeave(this, e)) {
	  	okayToClose = true;
			toggleMenu('menuHide');
			setTabs(0);
		}
	}
  for(t in navTabs) {
    // make sure the img has an id...
    if(!navTabs[t].id) continue;
    navTabs[t].onmouseover = function() {
      if(populateMenu(this.id)) {
        switch(this.id) {
          case 'navArtwork' :
            $('menu').style.left = 173 + 'px';
            $('menuPanel').style.width = 160 + 'px';
            break;
          case 'navMyCart' :
            $('menu').style.left = 654 + 'px';
            $('menuPanel').style.width = 160 + 'px';
            break;
          case 'navContact' :
            $('menu').style.left = 826 + 'px';
            $('menuPanel').style.width = 160 + 'px';
            break;
          // products...
          default :
            $('menu').style.left = 0 + 'px';
            $('menuPanel').style.width = 160 + 'px';
            break;
        }
	      toggleMenu('menuShow');
				setTabs(this);
      }
			this.src = this.src.replace(/_off/,'_on');      
    }
		navTabs[t].onmouseout = function(e) {
			this.src = this.src.replace(/_on/,'_off');			
			interval = setInterval('toggleMenu(\'menuHide\')', 2500);
		}
  }
}
function setTabs(tab) {
  for(t = 0;t < navTabs.length;t++) {
    var ts = navTabs[t].src;
    if(navTabs[t].id != tab.id) {
		  navTabs[t].src = ts.replace(/On/,'Off');
		}
  }
}
function toggleMenu(className) {
	if(okayToClose) $('menu').className = className;  
	interval = clearInterval(interval);
}
function populateMenu(id) {
  try {
  	navLnksAr = eval(id);
  }
  catch(e) {
    return false;
  } 
  len = navLnksAr.length;
  if(len > 0) {
	  $('menuPanel').innerHTML = '';
	  var ul = document.createElement('ul');
	  ul.className = 'ulLnkGrp';
	  cntr = column = 0;
	  for(n in navLnksAr) {
	    var parts = navLnksAr[n].split(',');
	    var li = document.createElement('li');
	    li.id = parts[0];
	    li.innerHTML = parts[1];
	    li.className = 'tLinks';
	    li.onclick = function() {
	      switch(this.id) {
	        case 'art__' :
	        case 'cart_' :
	        case 'conta' :
	        case 'club_' :
	        case 'faq__' :
	        	navGoTo('page', this.id);
	          break;
	        case 'clipart' :
	        case 'fonts' :
	          popUp(this.id);
	          break;
	        default :
	          navGoTo('id', this.id);
	          break;
	      }
	    }
			ul.appendChild(li);
			column++; 
	    cntr++; 
	    if(column == 12 || (column < 12 && cntr == len)) {  		
				$('menuPanel').appendChild(ul); 
	  		ul = document.createElement('ul');
	  		ul.className = 'ulLnkGrp';
	  		column = 0;
	    } 
	  }
	  return $('menuPanel').innerHTML != '' ? 1 : 0;
  }
  return false
}
function checkMouseLeave (element, evt) {
  if (element.contains && evt.toElement) {
    return !element.contains(evt.toElement);
  }
  else if (evt.relatedTarget) {
    return !containsDOM(element, evt.relatedTarget);
  }
}
function containsDOM (container, containee) {
  var isParent = false;
  do {
    if ((isParent = container == containee)) break;
    containee = containee.parentNode;
  }
  while (containee != null);
  return isParent;
}
// fix no category redirects...
function navGoTo(which, data) {
  window.location = data.replace(/ /,'-').toLowerCase() + '.html';
}
function showBanner(toggle) {
	if(!toggle) {
		$('banner').style.display = 'none';
		return;
	}
	$('banner').style.display = 'block';
}
function openQmark(e, width, height) {
  var pos;  
  if(d) {
    // if present, shut down qMark...
    if(iframe) {
      closeQmark(1);
      // and kill timer or qMark will close unexpectedly...
      clearTimeout(timer);
    }
    if(pos = findPos(e)) {
      scrollHeight = 0;
		  iframe = d.createElement('iframe');
		  iframe.src = 'static/q_marks/' + e.id + '.html';
		  iframe.setAttribute('frameBorder',0);
		  iframe.className = 'qMarkFrame';
		  iframe.style.width = width + 'px';
		  iframe.style.height = height + 'px';
		  iframe.style.left = (pos[0] + 20) + 'px';
		  iframe.style.top = (pos[1] + 10) + 'px';
		  iframe.onmouseover = function() {
		    holdTight = true;
		  }
		  iframe.onmouseout = function() {
		    holdTight = false;
		    closeQmark(1);
		  }
		  d.body.appendChild(iframe);
  	}
  }
}
function closeQmark(flag) {  
  // make sure iframe exists...
  if(iframe) {
	  if(flag) {
	    if(holdTight) return false;
		  d.body.removeChild(iframe);
		  iframe = null;
		  return;
	  }
	  // is there a scrollbar?...
	  if(scrollHeight > parseInt(iframe.style.height)) {
	    // activate 2s timer...
	    timer = setTimeout('closeQmark(1)',1000);
	  }
	  else {
	    closeQmark(1);
	  }
  }
}
function testDbCheck() {
  if(db_selected.match(/test/)) {
    $('testDb').style.display = 'block';
  }
}
window.onload = function(e) {
  // globals...
  d = document;
  df = document.form;
	try {
		//df['search'].focus();
	}
	catch(e) {}
	try {
		df.I_quantity.focus();
	}
	catch(e) {}
	try {
	  // if no hidden flag input, create one...
	  df['flag'].type;
	} 
	catch(e) {
	  var _input = d.createElement('input');
	  _input.name = 'flag';
	  _input.type = 'hidden';
	  df.appendChild(_input);
	}
	navTabs = $('navBtGrp').getElementsByTagName('img');
	setNavHandlers();
	showBanner(false);
	// for search enter...
	d.onkeydown = function(e) {
	  if(!e) e = event;
	  if(e.keyCode == 13) {
			submitForm('search');
			// kill single input submit...
			return false;
		}
	}
	// last...
	try {
	  // a.k.a "onload event" for templates...
	  // --> only one per page cycle!
		init();
		testDbCheck();
	}
	catch(e) {
	  //alert('no init found!');
	  // no init...
	}
}