/*
Event handling code taken from:
HTMLHttpRequest v1.0 beta2
(c) 2001-2005 Angus Turnbull, TwinHelix Designs http://www.twinhelix.com

and applied to work with prototype.js as HTMLHttpRequest.js has bugs with handling 
GET variables in the URL address.

cancelEvent() improved for cross browser compatibility

Leo Plaw http://www.guildmedia.net/leo 2005
*/

var aeOL = [];
function addEvent(o, n, f, l)
{
 var a = 'addEventListener', h = 'on'+n, b = '', s = '';
 if (o[a] && !l) return o[a](n, f, false);
 o._c |= 0;
 if (o[h])
 {
  b = '_f' + o._c++;
  o[b] = o[h];
 }
 s = '_f' + o._c++;
 o[s] = f;
 o[h] = function(e)
 {
  e = e || window.event;
  var r = true;
  if (b) r = o[b](e) != false && r;
  r = o[s](e) != false && r;
  return r;
 };
 aeOL[aeOL.length] = { o: o, h: h };
};
addEvent(window, 'unload', function() {
 for (var i = 0; i < aeOL.length; i++) with (aeOL[i])
 {
  o[h] = null;
  for (var c = 0; o['_f' + c]; c++) o['_f' + c] = null;
 }
});

function cancelEvent(e, c)
{
	if (!e) var e = window.event;
	if (e.preventDefault) e.preventDefault();
	else  e.returnValue = false;								// ie
	if (c)
	{
		if (e.stopPropagation) e.stopPropagation();
		else e.cancelBubble = true;								// ie
	}
};

	function loadInto(the_url,dest,evt,srcTitle,pars,completed,failure)
	{
		var srcTitle = (srcTitle == "") ? "" : srcTitle;
		var pars = (pars == "") ? "" : pars;
		var failure = (failure == "") ? "" : failure;
		var completed = (completed == "") ? "applyBehaviour" : completed;

		if (evt !='') cancelEvent(evt,true);
		var myAjax = new Ajax.Updater(
				{success: dest }, 
				the_url, 
				{
					method: 'get',
					parameters: pars, 
					onFailure: eval(failure),
					onComplete: applyBehaviour // eval(completed)
				});		
	}

	function submitInto (the_url,dest,evt,srcTitle,pars,completed,failure)
	{
			var pars = Form.serialize('addEntry');
			loadInto(url,dest,evt,'',pars,'','gb_reportError')
	}

	function applyBehaviour(originalRequest)
	{
		var activeTab = document.getElementsByClassName("current","tabSet_tabs");
		if ((browser == "msie")||(browser == "MSIE")) {
			fixed_scan();
			$("galleryName").innerText = activeTab[0].innerText;			// non compliant browser !!!
		}else{
			$("galleryName").textContent = activeTab[0].textContent; // compliant browsers !!!
		}
		Try.these(
//			function() {return Behaviour.apply()},	//		Behaviour.register(myrules);
			function() {return EventSelectors.apply()}
		);
		if ($("imageView")) {
			$("imageView").style.opacity = 0;
			//Effect.Grow('imageView');
			Effect.Appear('imageView');
			new Draggable('imageView',{zindex:2001,handle:'handle1'});
		}
	}

function doAddEvent () {
addEvent(document, 'click', function(evt)
{
 evt = evt || window.event;
 var src = evt.target || evt.srcElement;
 if (src.nodeType && src.nodeType != 1) src = src.parentNode;
 while (src)
 {
  var srcName = (src.nodeName||src.tagName||'').toLowerCase();
  if (srcName == 'a' && src.className && src.className.match(/(load|toggle|submit)into-([A-Za-z0-9]*)/))
  {
	 var srcTitle = src.textContent;
   var grandparent = src.parentNode.parentNode;
   for (var i=0;i<grandparent.childNodes.length;i++) {
    if (grandparent.childNodes[i].className) grandparent.childNodes[i].className = '';
   }
   src.parentNode.className = 'current';
   if (RegExp.$1 == 'load') return loadInto(src.href, RegExp.$2, evt, srcTitle,'','','');
   if (RegExp.$1 == 'toggle') return toggleInto(src, RegExp.$2, evt);
   if (RegExp.$1 == 'submit') return submitInto(src.href, RegExp.$2, evt, srcTitle,'','','');
  }
  src = src.parentNode;
 }
}, 1);
}

doAddEvent();
