/**
 * Mejor ponemos todo en un solo js, asi carga más rapido. 
 */
var BrowserDetect = {
	init: function () {
		this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
		this.version = this.searchVersion(navigator.userAgent)
			|| this.searchVersion(navigator.appVersion)
			|| "an unknown version";
		this.OS = this.searchString(this.dataOS) || "an unknown OS";
	},
	searchString: function (data) {
		for (var i=0;i<data.length;i++)	{
			var dataString = data[i].string;
			var dataProp = data[i].prop;
			this.versionSearchString = data[i].versionSearch || data[i].identity;
			if (dataString) {
				if (dataString.indexOf(data[i].subString) != -1)
					return data[i].identity;
			}
			else if (dataProp)
				return data[i].identity;
		}
	},
	searchVersion: function (dataString) {
		var index = dataString.indexOf(this.versionSearchString);
		if (index == -1) return;
		return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
	},
	dataBrowser: [
		{
			string: navigator.userAgent,
			subString: "Chrome",
			identity: "Chrome"
		},
		{ 	string: navigator.userAgent,
			subString: "OmniWeb",
			versionSearch: "OmniWeb/",
			identity: "OmniWeb"
		},
		{
			string: navigator.vendor,
			subString: "Apple",
			identity: "Safari"
		},
		{
			prop: window.opera,
			identity: "Opera"
		},
		{
			string: navigator.vendor,
			subString: "iCab",
			identity: "iCab"
		},
		{
			string: navigator.vendor,
			subString: "KDE",
			identity: "Konqueror"
		},
		{
			string: navigator.userAgent,
			subString: "Firefox",
			identity: "Firefox"
		},
		{
			string: navigator.vendor,
			subString: "Camino",
			identity: "Camino"
		},
		{		// for newer Netscapes (6+)
			string: navigator.userAgent,
			subString: "Netscape",
			identity: "Netscape"
		},
		{
			string: navigator.userAgent,
			subString: "MSIE",
			identity: "Explorer",
			versionSearch: "MSIE"
		},
		{
			string: navigator.userAgent,
			subString: "Gecko",
			identity: "Mozilla",
			versionSearch: "rv"
		},
		{ 		// for older Netscapes (4-)
			string: navigator.userAgent,
			subString: "Mozilla",
			identity: "Netscape",
			versionSearch: "Mozilla"
		}
	],
	dataOS : [
		{
			string: navigator.platform,
			subString: "Win",
			identity: "Windows"
		},
		{
			string: navigator.platform,
			subString: "Mac",
			identity: "Mac"
		},
		{
			string: navigator.platform,
			subString: "Linux",
			identity: "Linux"
		}
	]

};
BrowserDetect.init();

function show_tab(tabId) {
	var f = $$('.tab');
	var i = 0;
	for (i=0;i < f.length;i++) {
		if (f[i].id == tabId) {
			$(f[i].id).removeClassName('hidden');
			$("title_"+f[i].id).addClassName('tab_active');
		} else {
			$(f[i].id).addClassName('hidden');
			$("title_"+f[i].id).removeClassName('tab_active');
		}
	}
}

function onMenuOver(what) {
	var f = $$('.menutop');
	var i = 0;
	for (i = 0; i < f.length; i++) {
		if (!f[i].id) f[i].id = "menu_title_" + i;
		if (what == f[i]) {
			var g = $$(".menutop#"+f[i].id+" img.caja_toggle");
			var ii = 0;
			for (ii = 0; ii < g.length; ii++) {
				g[ii].addClassName("visible");
				g[ii].removeClassName("invisible");
			}
			var x = $$(".menutop#"+f[i].id+" a")[0];
			x.addClassName("cajita_menu_background");
		} else {
			var g = $$(".menutop#"+f[i].id+" img.caja_toggle");
			var ii = 0;
			for (g = 0; ii < g.length; ii++) {
				g[ii].removeClassName("visible");
				g[ii].addClassName("invisible");
			}
			var x = $$(".menutop#"+f[i].id+" a")[0];
			x.removeClassName("cajita_menu_background");
		}

	}
}
function onMenuOut(what) {
	var f = $$('.menutop');
	var i = 0;
	for (i = 0; i < f.length; i++) {
		if (!f[i].id) f[i].id = "menu_title_" + i;
		if (what == f[i]) {
			var g = $$(".menutop#"+f[i].id+" img.caja_toggle");
			var ii = 0;
			for (ii = 0; ii < g.length; ii++) {
				g[ii].removeClassName("visible");
				g[ii].addClassName("invisible");
			}
			var x = $$(".menutop#"+f[i].id+" a")[0];
		} else {
			var g = $$(".menutop#"+f[i].id+" img.caja_toggle");
			var ii = 0;
			for (g = 0; ii < g.length; ii++) {
				g[ii].addClassName("visible");
				g[ii].removeClassName("invisible");
			}
		}
		var x = $$(".menutop#"+f[i].id+" a")[0];
		x.removeClassName("cajita_menu_background");

	}
}
		
var Triggers = new Hash();
var MyWindows = new Hash();
var ActiveWindow;
var LastTrigger;

function hideWindow(wid) {
//    console.log("(hideWindow) wid = " + wid + " ActiveWindow was " + ActiveWindow);
	var params = MyWindows.get(wid);
    if (ActiveWindow != wid) {
        $(wid).removeClassName(params.class_show);
        $(wid).addClassName(params.class_hidden);
    }
}

function onTheWindow(wid,pointerX, pointerY) { // devuelve true si esta sobre la caja.
	//console.log("(onTheWindow) wid = "+wid);
	var cajaTop = $(wid).cumulativeOffset().top;
	var cajaLeft = $(wid).cumulativeOffset().left;
	var cajaBottom = cajaTop + $(wid).getHeight();
	var cajaRight = cajaLeft + $(wid).getWidth();
	//console.log("(onTheWindow) pointerX="+pointerX+" pointerY="+pointerY+" cajaTop="+cajaTop+" cajaBottom="+cajaBottom+" cajaLeft="+cajaLeft+" cajaRight="+cajaRight);
	if ((pointerY > cajaTop) && (pointerY < cajaBottom) && (pointerX > cajaLeft) && (pointerX < cajaRight)) { //esta fuera de la caja?
		return true;
	} else {
		return false;
	}
}

function windowOver(event) {
	var params = Triggers.get(LastTrigger)
	var wid = params.wid;
	//console.log("(windowOver) START wid = "+wid);
	if (!onTheWindow(wid, event.pointerX(), event.pointerY())) {
	//	console.log("(windowOver) OFF ActiveWindow = " + ActiveWindow);
		ActiveWindow = "";
		//console.log("hideWindow.delay(" + params.delay + " , " + wid);
		hideWindow.delay(params.delay, wid);
	} else {
		ActiveWindow = wid;
		//console.log("(windowOver) ON ActiveWindow = " + ActiveWindow);
	}
}

function windowOut(event) {
	var params = Triggers.get(LastTrigger);
	var wid = params.wid;
	//console.log("(windowOut) START wid = "+wid);
	if (!onTheWindow(wid, event.pointerX(), event.pointerY())) {
		//console.log("(windowOut) OFF ActiveWindow = " + ActiveWindow);
		ActiveWindow = "";
		//console.log("hideWindow.delay(" + params.delay + " , " + wid);
		hideWindow.delay(params.delay, wid);
	} else {
		ActiveWindow = wid;
		//console.log("(windowOut) ON ActiveWindow = " + ActiveWindow);

	}
}

function triggerOver(event) {
	var params = Triggers.get(LastTrigger)
	if (params) {
		var wid = params.wid;
		var tid = LastTrigger;
		var pos = $(tid).cumulativeOffset();
		var fix = 235 - Math.floor((document.viewport.getWidth() - 940) / 2);
		//alert("fix = " + fix + " pos = " + (pos.left + params.offsetx));
		if (ActiveWindow != wid) {
			$(wid).setStyle({
				top: (pos.top + params.offsety) + "px",
				left: (pos.left + params.offsetx + fix) + "px",
				width: params.width + "px",
				height: params.height + "px"
			});
			$(wid).removeClassName(params.class_hidden);
			$(wid).addClassName(params.class_show);
			$(wid).observe("mouseover", function(event){windowOver(event)});
			$(wid).observe("mouseout", function(event){windowOut(event)});
		}
		ActiveWindow = wid;
		LastTrigger = tid;
		//console.log("(triggerOver) ActiveWindow = " + ActiveWindow);
	} else {
		//console.log("(triggerOver) No encuentro la variable Triggers para '" + element.id +"'");
	}
}

function triggerOut(event) {
	var params = Triggers.get(LastTrigger)
	if (params.delay > 0) {
		ActiveWindow = "";
		//console.log("(triggerOut) event_id = " + element.id + " ActiveWindow = " + ActiveWindow + " hideWindow.delay("+ params.delay +", " + wid + ")")
		//hideWindow(wid);
		hideWindow.delay(params.delay, params.wid);

	}
}

function registerTrigger(tid, wid, class_hidden, class_show, offsetx, offsety, width, height, delay, onLoad) {
    var params = new Hash;
    params = {
        wid:wid,
        tid:tid,
        class_hidden:class_hidden,
        class_show:class_show,
        offsetx:offsetx,
        offsety:offsety,
        width:width,
        height:height,
        delay:delay,
		onLoad:onLoad
    };
    LastTrigger = tid;
	Triggers.set(tid, params);
    MyWindows.set(wid,params);
	//console.log("Register Trigger wid = " + wid + ", tid = " + tid);
    $(tid).observe("mouseover",function(event) { triggerOver(event)});
    $(tid).observe("mouseout",function(event) { triggerOut(event)});
}

function registerTriggerStd(tid, wid) {
    registerTrigger(tid, wid, "popup_hidden","popup_show",0,17,200,200,1);
}		

function getShareholderNews(id, anchorClassName, width, type) {
	if (!width) width=227;
	var content = "<div style='padding:0;margin:0 auto;width:238px;'>";
	if (typeof irxmlnewsreleases != 'undefined' && 	irxmlnewsreleases.length > 0) {
		for (var i = 0; i < irxmlnewsreleases.length; i++) {
			var downloadUrl = '&nbsp;', newsrelease = irxmlnewsreleases[i];	
			if (newsrelease.attachmentfileid) 
				downloadUrl = '<a target="_NEW" href="http://investor.elandiagroup.com/common/download/download.cfm?companyid=ELAN' +
				'&amp;fileid=' + newsrelease.attachmentfileid + '&amp;filekey=' + newsrelease.attachmentfilekey + 
				'&amp;filename=' + escape(newsrelease.attachmentfilename).replace(/[+]/g, '%2B') + 
				'"><img src="http://investor.elandiagroup.com/common/images/ico_pdf.gif" border="0"></a>';
			// index 1 because filesize is in KB
			if (type == "short") {
			    if(newsrelease.releaseid != '394283'){
					if (newsrelease.releaseid != '430503'){
						content = content + '<div class="news_left"><img src="images/bullet_2.png"/></div>' +
							'<div class="news_right"><a target="_new"  class="' + anchorClassName + '" href="http://investor.elandiagroup.com/releasedetail.cfm?ReleaseID=' +
							newsrelease.releaseid + '">' + newsrelease.title + '</a></div><br style="clear:both"><br style="clear:both">';
					}
				} 	
			} 	else {
				 if (newsrelease.releaseid != '394283'){
					if (newsrelease.releaseid != '430503'){
						content = content + '<table border="0" cellpadding="0" cellspacing="0" width="100%">' +
						'<tr><td colspan="2">' +
						irxmlfunctions.formatDate(newsrelease.releasedate, 'M/dd/yyyy') +
						"&nbsp;&nbsp;" +
						downloadUrl +
						'</td></tr> ' +
						'<tr><td style="width:99%"><a class="' +
						anchorClassName +
						'" href="http://investor.elandiagroup.com/releasedetail.cfm?ReleaseID=' +
						newsrelease.releaseid +
						'">' +
						newsrelease.title +
						'</a></td>' +
						'<td valign="bottom"><img src="images/flecha_cajitas.gif"/></td>' +
						'</tr>' +
						'<tr><td colspan="2" id="separador_cajitas"><img src="images/separador_cajitas.gif" width="238" height="5" /></td></tr>' +
						'</table>';
						}
				}
			}
			if (i == 2)  break;
		}
		if (type == "short") {
			content = content + '<div class="news_left" style="padding-top:5px" ><img src="images/bullet_2.png"/></div>' +
				'<div class="news_right" style="padding-top:5px" ><a class="' + anchorClassName + '" href="http://investor.elandiagroup.com/news/index.cfm">More News</a></div>';
				content = content + "</div>";
		} else {
			content = content + '<table border="0" cellpadding="0" cellspacing="0" width="100%">' + 
				'<tr><td width="99%"><a class="' + anchorClassName + '" href="http://investor.elandiagroup.com/news/index.cfm">More News</a></td>' + 
				'<td valign="bottom"><img src="images/flecha_cajitas.gif"/></td></tr></table>';
		}
	} else {
		content = 'Recent news releases are not available at this time.';
	}
	$(id).update(content);
}
