function init() {
	if(document.getElementById('find-bank')) {
		addRollover(document.getElementById('find-bank').getElementsByTagName('img')[0]);		
	}
	if(document.getElementById('submit')) {
		addRollover(document.getElementById('submit'));
	}
	ebTags = getElementsByClass('eye-blaster', document.body, 'a');
	for (ebTag in ebTags){
		addEvent(ebTags[ebTag], 'click', handleEyeBlasterTag);
	}
}

function handleEyeBlasterTag (event) {
	event.preventDefault();
	link = event.target;
	while(link.tagName!='A' && link.tagName != 'BODY'){
		link = link.parentNode;
	} 
	if(link.tagName == 'BODY'){
		return true;
	}
	queryString = link.href.substr(link.href.indexOf('?'));
	if(queryString){		
		aidStart = queryString.indexOf('aid=') + 4;
		aidEnd = queryString.indexOf('&', aidStart - 1);
		aid = queryString.substr(aidStart, aidEnd-aidStart);
		
		redirectURL = queryString.substr(aidEnd+aidStart);
		
		/*
		creates a new image object and sets the activity tag img src for the activity tag which is passed
		it then redirects via javascript redirect to the clickthrough page
		*/
		var ebRand = Math.random()+ ' ';
		ebRand = ebRand * 1000000;

		//create new image obj
		var newActivtyImg = new Image();
		
		//set image src for the appropriate tag with the activity tag passed in
		newActivtyImg.src = 'HTTP://activity.serving-sys.com/Activity/Pipe.asp?ActivityID='+ aid + '&rnd=' + ebRand;
				
		if(target = link.getAttribute('target')){
			window.open(redirectURL, target);
		} else {
			window.location = redirectURL;
		}
		
		
		return false;
	}
	return true;
}

function addRollover (obj) {
	addEvent(obj, 'mouseover', toggleRollover);
	addEvent(obj, 'mouseout', toggleRollover);
}
function toggleRollover (event) {
	img = event.target;
	if(img.src.indexOf('hover')<0){
		imgSrcBegin = img.src.substring(0, img.src.lastIndexOf('.'));	
		imgSrcEnd = img.src.substring(img.src.lastIndexOf('.'));
		img.src = imgSrcBegin + '-hover' + imgSrcEnd;
	} else {
		imgSrcBegin = img.src.substring(0, img.src.lastIndexOf('-hover'));	
		imgSrcEnd = img.src.substring(img.src.lastIndexOf('-hover')+6);
		img.src = imgSrcBegin + imgSrcEnd;		
	}
}

// written by Dean Edwards, 2005
// with input from Tino Zijdel, Matthias Miller, Diego Perini

// http://dean.edwards.name/weblog/2005/10/add-event/

function addEvent(element, type, handler) {
	if (element.addEventListener) {
		element.addEventListener(type, handler, false);
	} else {
		// assign each event handler a unique ID
		if (!handler.$$guid) handler.$$guid = addEvent.guid++;
		// create a hash table of event types for the element
		if (!element.events) element.events = {};
		// create a hash table of event handlers for each element/event pair
		var handlers = element.events[type];
		if (!handlers) {
			handlers = element.events[type] = {};
			// store the existing event handler (if there is one)
			if (element["on" + type]) {
				handlers[0] = element["on" + type];
			}
		}
		// store the event handler in the hash table
		handlers[handler.$$guid] = handler;
		// assign a global event handler to do all the work
		element["on" + type] = handleEvent;
	}
};
// a counter used to create unique IDs
addEvent.guid = 1;

function removeEvent(element, type, handler) {
	if (element.removeEventListener) {
		element.removeEventListener(type, handler, false);
	} else {
		// delete the event handler from the hash table
		if (element.events && element.events[type]) {
			delete element.events[type][handler.$$guid];
		}
	}
};

function handleEvent(event) {
	var returnValue = true;
	// grab the event object (IE uses a global event object)
	event = event || fixEvent(((this.ownerDocument || this.document || this).parentWindow || window).event);
	// get a reference to the hash table of event handlers
	var handlers = this.events[event.type];
	// execute each event handler
	for (var i in handlers) {
		this.$$handleEvent = handlers[i];
		if (this.$$handleEvent(event) === false) {
			returnValue = false;
		}
	}
	return returnValue;
};

function fixEvent(event) {
	// add W3C standard event methods
	event.preventDefault = fixEvent.preventDefault;
	event.stopPropagation = fixEvent.stopPropagation;
	event.target = event.target || event.srcElement;
	return event;
};
fixEvent.preventDefault = function() {
	this.returnValue = false;
};
fixEvent.stopPropagation = function() {
	this.cancelBubble = true;
};

// http://www.dustindiaz.com/getelementsbyclass/
function getElementsByClass(searchClass,node,tag) {
	var classElements = new Array();
	if ( node == null )
		node = document;
	if ( tag == null )
		tag = '*';
	var els = node.getElementsByTagName(tag);
	var elsLen = els.length;
	var pattern = new RegExp("(^|\\\\s)"+searchClass+"(\\\\s|$)");
	for (i = 0, j = 0; i < elsLen; i++) {
		if ( pattern.test(els[i].className) ) {
			classElements[j] = els[i];
			j++;
		}
	}
	return classElements;
}

function addLoadEvent(func) {
	var oldonload = window.onload;
	if (typeof window.onload != 'function') {
		window.onload = func;
	} else {
		window.onload = function() {
			if (oldonload) {
				oldonload();
			}
			func();
		}
	}
}

addLoadEvent(init);
