function showPopup(docdiv, doclink)
{
  var divel = document.getElementById(docdiv);
  var linkel = document.getElementById(doclink);
  
  // Get window dimensions

  x = document.body.clientWidth;
  y = document.body.clientHeight;
  
  // Get element position
  
  ele_x = findPosX(linkel);
  
  // Determine position of popup
  
  var pos_x = (x - ele_x < 250) ? 580 - (x - ele_x) : 0;

  if (divel.style.display == 'none')
  {
	if (divel && linkel)
	{
	  if (pos_x != 0) {divel.style.left = pos_x;}
	  divel.style.visibility = 'visible';
	  divel.style.display = 'block';
	}

  } else {
  
    divel.style.visibility = 'hidden';
    divel.style.display = 'none';
  
  }
}

function hidePopup(docdiv){
  var divel = document.getElementById(docdiv);
  if (divel){
    divel.style.visibility = 'hidden';
    divel.style.display = 'none';
  }
}

function showOpts(ele)
{
	ele = $(ele);
	var dur = 0.4;
	
	if (ele.style.display == "none")
	{
		new Effect.SlideDown(ele, {duration: dur});
	}
	else{
		new Effect.SlideUp(ele, {duration: dur});
	}
}

function findPosX(obj)
{
  var curleft = 0;
  if(obj.offsetParent)
	  while(1) 
	  {
		curleft += obj.offsetLeft;
		if(!obj.offsetParent)
		  break;
		obj = obj.offsetParent;
	  }
  else if(obj.x)
	  curleft += obj.x;
  return curleft;
}

function findPosY(obj)
{
  var curtop = 0;
  if(obj.offsetParent)
	  while(1)
	  {
		curtop += obj.offsetTop;
		if(!obj.offsetParent)
		  break;
		obj = obj.offsetParent;
	  }
  else if(obj.y)
	  curtop += obj.y;
  return curtop;
}
  
function show( id ) 
{ 
  if (document.getElementById(id).style.visibility == 'hidden')
  {
    document.getElementById(id).style.visibility = 'visible';
    
  } else { 

    document.getElementById(id).style.visibility = 'hidden';
    
  }
} 

function showHelp( id )
{
	var pages = new Array();
	pages[0] = 'help_intro';
	pages[1] = 'help_imgs';
	pages[2] = 'help_docs';
	pages[3] = 'help_ext';
	
	for (i=0; i<pages.length; i++)
	{
		if (pages[i] == id)
		{
			document.getElementById(pages[i]).style.display = 'block';
		}
		else{
			document.getElementById(pages[i]).style.display = 'none';
		}
	}
}

function showToolBox( id ) 
{ 
	var divs = document.getElementsByTagName('div');
  
	for (i=0; i < divs.length; i++)
	{
		if (divs[i] != undefined)
		{
			if (divs[i].id.search('tools') > -1)
			{
				if (divs[i].id == id)
				{
					if (divs[i].style.display == 'none')
					{
						divs[i].style.display = 'block';
					}
					else{
						divs[i].style.display = 'none';
					}
				}
				else{
					divs[i].style.display = 'none';
				}
			}
		}
	}
} 

function langSelect(selected_lang)
{
	url = location.href.split('#');

	if (url[0].search('\\?') > -1)
	{
		operator = '&';
	}
	else{
		operator = '?';
	}
	location.href = url[0] + operator + 'lang=' + selected_lang[selected_lang.selectedIndex].value;
}

function langKeyPrint(langEntries, langVal)
{
	var new_val = '';
	
	if (typeof langVal != 'undefined')
	{
		if (typeof langEntries[langVal] != 'undefined')
		{
			new_val = langEntries[langVal];
		}
		else{
			new_val = langVal;
		}
	}
	else{
		new_val = 'Lang Key Not Defined';
	}
	
	return new_val;
}

function disableDateRange(loaded)
{
  var myRegA = new RegExp('date_range_flag', "i");
  var myRegB = new RegExp('events_end_date_', "i");
  var myRegC = new RegExp('events_time_', "i");
  var toggle = '';

  for (x=0; x < document.forms.length; x++)
  {
	  for (i=0; i < document.forms[x].elements.length; i++)
	  {
		  results = document.forms[x].elements[i].name.search(myRegA);
		  
		  if (results > -1 && document.forms[x].elements[i].checked == true)
		  {
			  toggle = 'isRange';
		  }
	  }
  }
  
  for (x=0; x < document.forms.length; x++)
  {
	  for (i=0; i < document.forms[x].elements.length; i++)
	  {
		  results_date = document.forms[x].elements[i].name.search(myRegB);
		  results_time = document.forms[x].elements[i].name.search(myRegC);
		  
		  if (results_date > -1 && toggle != 'isRange')
		  {
			  document.forms[x].elements[i].disabled = true;
		  
		  } 
		  else if (results_date > -1 && toggle == 'isRange') 
		  {
		  
			  document.forms[x].elements[i].disabled = false;
			
		  }
		  else if (results_time > -1 && toggle != 'isRange')
		  {
		  
			  document.forms[x].elements[i].disabled = false;
			
		  }
		  else if (results_time > -1 && toggle == 'isRange')
		  {
		  
			  document.forms[x].elements[i].disabled = true;
			
		  }
	  }
  }
}

function testUrl(langEntries, url, ele) 
{ 
	var contents = '';
	
	if (!(url.match(/^http:\/\//) || url.match(/^https:\/\//) || url.match(/^[a-z_]+\.php/)))
	{
		url = 'http://' + url;
	}
	  
	contents = '<a href="' + url + '" target="_blank">' + langKeyPrint(langEntries, 'test_link_opens_window') + ':  ' + url + '</a>';
	
	document.getElementById(ele).innerHTML = contents; 
} 

function expandTab(lang_code, move_x, move_y, dur)
{
	var expandDivs = ['form_' + lang_code, 'tab_' + lang_code];
	var conts = $('forms_container').childElements();
	
	for (i=0; i<conts.length; i++)
	{
		var div = conts[i];
		
		if (expandDivs.indexOf(div.id) > -1 && div.alt != 'Minimize')
		{
			//printOut('test', div.id + ' out');
			// Expand tab
			new Effect.Move(div.id, { duration: dur, x: move_x, y: move_y });
			div.alt = 'Minimize';
		}
		else if (div.alt == 'Minimize') 
		{
			//printOut('test', div.id + ' in');
			// Retract tab
			var new_move_x = -move_x;
			new Effect.Move(div.id, { duration: dur, x: new_move_x, y: move_y });
			div.alt = 'Expand';
		}
	}
	//printOut('test', '<hr />');
}

function drawerSlideDown(drawerDiv)
{
	if ($(drawerDiv).style.display == 'none')
	{
		new Effect.SlideDown(drawerDiv, { duration: 0.5 });
	}
	else{
		new Effect.SlideUp(drawerDiv, { duration: 0.5 });
	}
}

function loadCaptionLinks()
{
	var divs = $$('div');
	
	divs.each(function(i) {
		if (i.id.indexOf('fig') > -1)
		{
			var img_id = i.id.gsub('fig', '');
			var cap = $('caption' + img_id).innerHTML;
			var img_link = $('p' + img_id).firstDescendant();
			var new_href = 'javascript:displaySlide(' + img_id + ', \'' + cap.stripTags().gsub('\'', '&rsquo;') + '\')';
			img_link.href = new_href;
			//printOut('test', 'ID: ' + new_href);
		}
	});
}

function displaySlide(id, cap)
{
	// Get Viewport Dimensions
	var vp = document.viewport.getScrollOffsets();
	
	// Get image
	var img = new Image();
	img.src = mediaPath + 'imgdisplay.php?id=' + id + '&view=4';
	var w = 850;
	if (img.height > w)
	{
		var proportion = (img.width <= img.height) ? (img.width / img.height) : (img.height / img.width);
		var h = Math.round(proportion * 850);
	}
	else{
		var proportion = (img.width <= img.height) ? (img.width / img.height) : (img.height / img.width);
		var h = Math.round(proportion * 850);
	}
	
	createDiv('wrapper', 'slidebox', 116, (vp.top + 100), 870, (h + 100), '', '#000', '', 500);
	createDiv('slidebox', 'slide', 10, 10, w, h, '', '', '', 500);
	createDiv('slidebox', 'caption', 70, (h + 30), 600, 100, '', '', '', 500);

	var exh_time = 0;
	
	exh_time = advanceTime(exh_time, 0, 'slidebox');
	new Effect.Appear('slidebox', { duration: 1.0, from: 0.0, to: 1.0, delay: exh_time });

	exh_time = advanceTime(exh_time, 1, 'slide');
	setTimeout("doSlide(" + exh_time + ", 'img" + id + "', '" + img.src + "', " + w + ", " + h + ", 0, 0, '" + cap + "')", exh_time * 1000);

	exh_time = advanceTime(exh_time, 14, 'disappear');
	new Effect.Appear('slidebox', { duration: 1.0, from: 1.0, to: 0.0, delay: exh_time });	

	exh_time = advanceTime(exh_time, 1, 'destroy');
	setTimeout("removeDivs(['caption', 'slide', 'slidebox'])", (exh_time * 1000));
}

function stopSlide()
{
	var exh_time = 0;
	
	exh_time = advanceTime(exh_time, 0, 'disappear');
	new Effect.Appear('slidebox', { duration: 1.0, from: 1.0, to: 0.0, delay: exh_time });	

	exh_time = advanceTime(exh_time, 1, 'destroy');
	setTimeout("removeDivs(['caption', 'slide', 'slidebox'])", (exh_time * 1000));
}