
/**
	Returns an array of elements that are of the className supplied
	
*/
function getElementByClass(className, context){
	context = (context == null)?  document : context;
	//alert("context:"+context);
	for(var i=0;i<context.childNodes.length;i++){
		if(context.childNodes[i].className){
			var e = context.childNodes[i];
			var classes = e.className.split(" ");
			for(var j=0;j<classes.length;j++){
				if(classes[j] == className){
					return 	e;
				}
			}
		}
	}
}

document.onkeypress = trapEnter; 
function trapEnter(){ 
    if(window.event.keyCode==13) 
    return false; 
} 


function createAttr(name, value){
	var a = document.createAttribute(name);
	a.value = value;
	return a;
}

function correctPNG() // correctly handle PNG transparency in Win IE 5.5 & 6.
{
   var arVersion = navigator.appVersion.split("MSIE") 
   var version = parseFloat(arVersion[1])
   if ((version >= 5.5) && (document.body.filters)) 
   {
	  for(var i=0; i<document.images.length; i++)
	  {
		 var img = document.images[i]
		 var imgName = img.src.toUpperCase()
		 if (imgName.substring(imgName.length-3, imgName.length) == "PNG")
		 {
			var imgID = (img.id) ? "id='" + img.id + "' " : ""
			var imgClass = (img.className) ? "class='" + img.className + "' " : ""
			var imgTitle = (img.title) ? "title='" + img.title + "' " : "title='" + img.alt + "' "
			var imgStyle = "display:inline-block;" + img.style.cssText 
			if (img.align == "left") imgStyle = "float:left;" + imgStyle
			if (img.align == "right") imgStyle = "float:right;" + imgStyle
			if (img.parentElement.href) imgStyle = "cursor:hand;" + imgStyle
			var strNewHTML = "<span " + imgID + imgClass + imgTitle
			+ " style=\"" + "width:" + img.width + "px; height:" + img.height + "px;" + imgStyle + ";"
			+ "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader"
			+ "(src=\'" + img.src + "\', sizingMethod='scale');\"></span>" 
			img.outerHTML = strNewHTML
			i = i-1
		 }
	  }
   }    
}

function drawMap(w, h, data){
	AC_FL_RunContent(
		'codebase', 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0',
		'width', w,
		'height', h,
		'src', 'Map',
		'quality', 'high',
		'pluginspage', 'http://www.macromedia.com/go/getflashplayer',
		'align', 'middle',
		'play', 'true',
		'loop', 'true',
		'scale', 'showall',
		'wmode', 'window',
		'devicefont', 'false',
		'id', 'Map',
		'bgcolor', '#ffffff',
		'name', 'Map',
		'menu', 'true',
		'allowFullScreen', 'false',
		'allowScriptAccess','sameDomain',
		'movie', 'Map',
		'salign', '',
		'flashvars',"&datasrc="+data
		);
}
		

EventManager = {};

EventManager.init = function(){
	if(!EventManager.events){
		EventManager.events = {};	
	}
}

EventManager.addEventListener = function(dispatcher, eventName, reciver, method){
	EventManager.init();
	if(!EventManager.events[dispatcher]){
		EventManager.events[dispatcher] = {};
	}
	if(!EventManager.events[dispatcher][eventName]){
		EventManager.events[dispatcher][eventName] = [];
	}
	if(!EventManager.contains(dispatcher, eventName, reciver, method)){
		EventManager.events[dispatcher][eventName].push({reciver:reciver, method:method});
	}
}

EventManager.contains = function(dispatcher, eventName, reciver, method){
	if(!EventManager.events[dispatcher]){
		return false;
	}
	if(!EventManager.events[dispatcher][eventName]){
		return false
	}
	var eventQueue = EventManager.events[dispatcher][eventName];
	for(var i=0;i<eventQueue.length;i++){
		var queueItem = eventQueue[i];
		if(queueItem.reciver == reciver && queueItem.method == method){
			return true;
		}
	}
	return false;
}

EventManager.dispatchEvent = function(dispatcher, eventName, data){
	EventManager.init();
	if(EventManager.events[dispatcher]){
		if(EventManager.events[dispatcher][eventName]){
			var eventQueue = EventManager.events[dispatcher][eventName];
			for(var i=0;i<eventQueue.length;i++){
				var queueItem = eventQueue[i];
				queueItem.reciver[queueItem.method]({target:dispatcher, type:eventName, data:data});
			}
		}
	}
}

EventManager.decorate = function(obj){
	obj.addEventListener = function(eventName, reciver, method){
		EventManager.addEventListener(this, eventName, reciver, method);
	}
	obj.dispatchEvent = function(eventName, data){
		EventManager.dispatchEvent(this, eventName, data);
	}
}