function toggle(blockId) {
	var ele = document.getElementById("itemDetails_"+blockId);
	var link = document.getElementById("itemLink_"+blockId);
	if (!ele) { return; }

	if(ele.style.display == "block") {
    		ele.style.display = "none";
		link.style.display = "block";
  	}
	else {
		ele.style.display = "block";
		link.style.display = "none";
	}
}

function showdiv(id) {
	//safe function to show an element with a specified id

	if (document.getElementById) { 
		document.getElementById(id).style.display = 'block';
	}
}

var is = {};
is.ie = (document.all) ? true : false;
is.mz = (!document.all && document.getElementById && window.navigator.vendorSub != null) ? true : false;
is.sf = (!document.all && document.getElementById && window.navigator.vendorSub == null) ? true : false;
var contextPath;
var viewButtonTimers = new Array();
var hideButtonTimers = new Array();
var buttonCheat = false;
var toolLayer = new Object(); // USED IN ROLL OVER TIP IN SORT LOGIC
var popupMovable = false;
var popupOffsetX = 5;
var popupOffsetY = 5;

function contains(anArray, element) {
  for (var i = 0; i < anArray.length; i++) {
    if (anArray[i] == element) {
      return true;
    }
  }
  return false;
}

function arrayIndexOf(anArray, element) {
  for (var i = 0; i < anArray.length; i++) {
    if (anArray[i] == element) {
      return i;
    }
  }
  return -1;
}

function stopHere(event) {
  if (is.mz) {
    event.preventDefault();
    event.stopPropagation();
  }
  else if (is.ie) {
    event.cancelBubble = true;
  }
}

function getTarget(event, expectedTag) {
  if (is.mz || is.sf) {
    return event.currentTarget;
  }
  else if (is.ie) {
    return findRecursive(event.srcElement, expectedTag);
  }
}

function findRecursive(element, expectedTag) {
  var parent = is.ie ? element.parentElement : is.mz ? element.parentNode : element.offsetParent;
  if (element.tagName == expectedTag) {
    return element;
  }
  else if (parent == null) return element;
  else return findRecursive(parent, expectedTag);
}

function argsToURL(url, args) {
	for (i in args) url = url + (url.indexOf('?') == -1 ? '?' : '&') + i + '=' + args[i];
	return url;
}

//function toggle(a){
//	var e=document.getElementById(a);
//	if (!e) return true;
//	if (e.style.display=="none") {
//		e.style.display="block"
//	}
//	else{
//		e.style.display="none"
//	}
//	return true;
//}

// move this to its own file, since it's not a real "util" function
function showViewButton(theId) {
	viewButtonTimers[theId] = window.setTimeout("document.getElementById('preview_button_" + theId + "').style.display = 'block'", 500);
}

function hideViewButton(theId) {
	hideButtonTimers[theId] = window.setTimeout("if (!buttonCheat) { window.clearTimeout(viewButtonTimers['" + theId + "']); document.getElementById('preview_button_" + theId + "').style.display = 'none'; }", 50);
}

function previewPopupLayer(url, title, sellText){
	previewPopupLayer(url, title, sellText, '');
}

function previewPopupLayer(url, title, sellText, popupWidth) {
	var shim = document.getElementById('divPopupLayer_shim');
	var layer = document.getElementById('divPopupLayer_container');
	var loader = document.getElementById('popupLoader');
	layer.getElementsByTagName('SPAN')[0].innerHTML = '';
	var htmlString = '';
	if(popupWidth != '' && popupWidth != 0){
		if (is.ie) {

			layer.style.width = parseInt(popupWidth) + 4;
		}
		else {
			layer.style.width = popupWidth;
		}
	}
	else {
		if (is.ie) {
			layer.style.width = "604";
		}
		else {
			layer.style.width = "600";		
		}
	}
	//layer.getElementsByTagName('P')[0].style.display = 'block';
	function populate(event) {
		//layer.getElementsByTagName('P')[0].style.display = 'none';
		if (is.mz) layer.getElementsByTagName('SPAN')[0].innerHTML = loader.contentDocument.body.innerHTML;
		else if (is.ie) layer.getElementsByTagName('SPAN')[0].innerHTML = frames['popupLoader'].document.body.innerHTML;
		shim.style.width = layer.offsetWidth;
		shim.style.height = layer.offsetHeight;
		if (is.ie) shim.style.display = 'block';
	} 
	if (is.ie) {
		layer.style.top = window.screen.height/4 + document.body.scrollTop-20;
		//layer.style.left = window.screen.width/3 + document.body.scrollLeft;
		layer.style.left = window.screen.width/3.7;
//		loader.attachEvent('onload', populate);
	}
	else {
		layer.style.top = window.innerHeight/4 + window.pageYOffset-20;
		//layer.style.left = window.innerWidth/4 + window.pageXOffset;
		layer.style.left = window.innerWidth/3.7;
//		loader.addEventListener('load', populate, false);
	}
	loader.src = url;
	layer.getElementsByTagName('DIV')['headerText'].innerHTML = title;
	
	htmlString = "<img src='"+url+"' alt='"+title+"' />";
	if(sellText != ''){
		htmlString += "<br/>"+ sellText;
	}

	if (is.mz) {
		layer.getElementsByTagName('SPAN')[0].innerHTML = htmlString;
	}
	else if (is.ie) {
		layer.getElementsByTagName('SPAN')[0].innerHTML = htmlString;
	}
	shim.style.width = layer.offsetWidth;
	shim.style.height = layer.offsetHeight;
	if (is.ie) shim.style.display = 'block';

	shim.style.top = layer.style.top;
	shim.style.left = layer.style.left;

	layer.style.display = 'block';
}

function closePopupLayer() {
	document.getElementById('divPopupLayer_container').style.display = 'none';
	document.getElementById('divPopupLayer_shim').style.display = 'none';
}

function movePopup(event) {
	var shim = document.getElementById('divPopupLayer_shim');
	var layer = document.getElementById('divPopupLayer_container');
	var X;
	var Y;
	if (is.ie) {
		X = (event.clientX + document.body.scrollLeft) - 4;
		Y = (event.clientY + document.body.scrollTop) - 4;
	}
	else {
		X = event.pageX;
		Y = event.pageY;
	}
	shim.style.top = Y - popupOffsetY;
	shim.style.left = X - popupOffsetX;
	layer.style.top = Y - popupOffsetY;
	layer.style.left = X - popupOffsetX;
	stopHere(event);
}


function setFileValue(selectBox, fileValue) {
	var dropDown = document.getElementById(selectBox);

	for(i=0; i < dropDown.length;i++)
	{
		if(dropDown.options[i].value==fileValue)
		{
			dropDown.selectedIndex=i
		}
	}
}

function validate_required(field,alerttxt)
{
with (field)
  {
  if (value==null||value=="")
    {
    alert(alerttxt);return false;
    }
  else
    {
    return true;
    }
  }
}

function validate_numeric(field,alerttxt)
{
with (field)
  {
  if (value != null && value != "" && value != parseInt(value))
    {
    alert(alerttxt);return false;
    }
  else
    {
    return true;
    }
  }
}
