
// Copyright 2009 - 2010, Jason Sinclair Astorquia, All rights reserved

var ie   = navigator.appName.indexOf("Microsoft") != -1;
var mobile = navigator.userAgent.toLowerCase().indexOf("iphone") != -1;
if (!mobile) mobile = navigator.appName.toLowerCase().indexOf("blackberry") != -1;
var gallery = null;

function cortex()
{
	this.counter = 0;
	this.objs = new Array();
}
cortex.prototype.OID = 'oid:';

function cortex_getOID()
{
	return (this.OID + this.counter++);
}
cortex.prototype.getOID = cortex_getOID;

function cortex_addObj(obj)
{
	this.objs[obj.oid + ''] = obj;
}
cortex.prototype.addObj = cortex_addObj;

function cortex_removeObj(oid)
{
	this.objs[oid + ''] = null;
}
cortex.prototype.removeObj = cortex_removeObj;

function cortex_getObjByID(oid)
{
	return this.objs[oid + ''];
}
cortex.prototype.getObjByID = cortex_getObjByID;

function cortex_getObj(evt)
{
	var evt = setEvt(evt);
	var src = getSrc(evt);
	
	while (true) {
		if (src == null) 	return null;
		if ((src.id != null) && (src.id != '')) return this.getObjByID(src.id);
		src = src.parentNode;
	}
}
cortex.prototype.getObj = cortex_getObj;

function cortex_mouseOver(evt)
{
	var evt = setEvt(evt);
	var id;

	id = getSrc(evt).id;
	if (gallery) {
		gallery.mouseOver(id, evt);
	}
}
cortex.prototype.mouseOver = cortex_mouseOver;

function cortex_mouseOut(evt)
{
	var evt = setEvt(evt);
	var id;

	id = getSrc(evt).id;
	if (gallery) {
		gallery.mouseOut(id);
	}
}
cortex.prototype.mouseOut = cortex_mouseOut;

function cortex_mouseMove(evt)
{
	var evt = setEvt(evt);
	var id;

	id = getSrc(evt).id;
	if (gallery) {
		gallery.mouseMove(id, evt);
	}
}
cortex.prototype.mouseMove = cortex_mouseMove;

function cortex_mouseDown(evt)
{
}
cortex.prototype.mouseDown = cortex_mouseDown;

function cortex_mouseUp(evt)
{
}
cortex.prototype.mouseUp = cortex_mouseUp;

function cortex_click(evt)
{
	var obj = cortex.getObj(evt);

	if (obj == null) 				return;
	if (obj.handleClick == null) 	return;

	obj.handleClick();	
}
cortex.prototype.click = cortex_click;

function cortex_doubleClick(evt)
{
}
cortex.prototype.doubleClick = cortex_doubleClick;

function cortex_keyDown(evt)
{
}
cortex.prototype.keyDown = cortex_keyDown;

function cortex_keyPress(evt)
{
}
cortex.prototype.keyPress = cortex_keyPress;

function cortex_redraw()
{
	if (gallery) {
		gallery.redraw();
	}
}
cortex.prototype.redraw = cortex_redraw;

function obtainElement(type)
{
	var element;
	
	element = document.createElement(type);
	element.style.position = 'absolute';
	element.style.overflow = 'hidden';
	
	return element;
}

function setEvt(evt)
{
	if (ie) {
		return window.event;
	}
	return evt;
}

function getSrc(evt)
{
	if (ie) {
		return evt.srcElement;
	}
	return evt.target;
}


