if (typeof EAC_defaults != 'undefined') EAC_defaults.loadModules = '';
//-- eac_scripts.js
var EAC = {
Version: {
major : 3, minor : 1, patch : 2, flag : 'l',
releaseDate: 'Sep 4, 2009',
toString: function(){
with (EAC.Version) return 'v'+major+"."+minor+"."+patch+flag+" ("+releaseDate+")";
}
},
Signature:'eac_scripts.js; %s;  [www.KevinBurkholder.com]',
isLoaded:{},
homePath:false,
defaults: {
homePath: '',
helperPath: '',
showEffect: 'SlideDown',
hideEffect: 'BlindUp',
effectDuration: 1,
loadModules: '',
trans_sid: false,
mouse: {
observe: true,
what: 'click'
},
backgroundLayer: {
id: "_bglayer_",
opacity: 1/3,
style: '#000',
within: false,
zindex: 100
},
popupWindow: {
id: "popup",
per: 'always',
scrollbars: "yes",
location: "no",
directories: "no",
status: "yes",
menubar: "no",
toolbar: "no",
resizable: "yes",
prompt: "...",
preLoad: false,
onExitPop: false
},
floatingWindow: {
id: "otp-element",
title: "",
close: "X",
type: null,
style: 'border: .1em solid #777; background-color: #fff; padding: 0;',
effects: null,
hidden: false,
onclose: false,
drop: false,
scroll: true,
play: false,
resize: false,
drag: true,
within: false,
bgopacity: false,
background: '#000',
fgopacity: false,
foreground: 'transparent',
zindex: 500,
time: false,
mainClass: "eacWindow,thickbox",
autoRun: true
},
tabber: {
div : null,
mainClass : "eacTabber",
defaultTab: 0,
titleTags : ['h1','h2','h3','h4','h5','h6'],
type: null,
removeTitle : true,
effects: false,
opacity: false,
rollover: false,
toggle: false,
autoTab: false,
onLoad: null,
onTabClick: null,
onTabDisplay: null,
autoRun: true,
zindex: 400,
addLinkId : false,
linkIdFormat : '<tabberid>nav<tabnumberone>'
},
rollover: {
element: null,
tags : ['img'],
opacity: false,
cssClass: false,
src: false,
effects: false,
onLoad: false,
onMouseOver: null,
onMouseOut: null,
autoRun: true
},
scroller: {
speed: 10,
onScroll: null,
autoRun: true
},
slider: {
div : null,
mainClass : "eacSlider",
speed: 1,
autoSlide: false,
transition: 'linear',
onLoad: null,
onSlide: null,
autoRun: true
},
tracker: {
tags : {'a':'click','area':'click','form':'submit'},
signature: 'eac_scripts.tracker',
gaLoadEvents: true,
autoRun: true
}
},
console:(window.console) ? window.console : {log:function(){}},
browser: {
version: 0.0,
isExplorer: (/MSIE/i.test(navigator.userAgent)) && (typeof opera == 'undefined')
? parseFloat(navigator.userAgent.split("MSIE ")[1]) : 0,
isGecko: (/Gecko/i.test(navigator.userAgent)) && !(/like Gecko/i.test(navigator.userAgent))
? parseFloat(navigator.userAgent.split("Gecko/")[1]) : 0,
isMozilla: (/Gecko/i.test(navigator.userAgent)) && !(/WebKit|Khtml/i.test(navigator.userAgent))
? parseFloat(navigator.userAgent.split("Mozilla/")[1]) : 0,
isWebKit: (/WebKit/i.test(navigator.userAgent))
? (/WebKit\//i.test(navigator.userAgent)) ? parseFloat(navigator.userAgent.split("WebKit/")[1]) : 1 : 0,
isKhtml: (/Khtml/i.test(navigator.userAgent))
? (/Khtml\//i.test(navigator.userAgent)) ? parseFloat(navigator.userAgent.split("KHTML/")[1]) : 1 : 0,
isOpera: (/Opera/i.test(navigator.userAgent))
? parseFloat(window.opera.version()) : 0,
isChrome: (/Chrome/i.test(navigator.userAgent))
? parseFloat(navigator.userAgent.split("Chrome/")[1]) : 0,
isMac: (/Mac/i.test(navigator.platform)) ? 1 : 0,
isWindows: (/Win/i.test(navigator.platform)) ? 1 : 0,
isLinux: (/Linux/i.test(navigator.platform))  ? 1 : 0,
isW3Cdom: (document.getElementById) ? 1 : 0,
compatMode: null,
toString: function() {
var str = '';
for (var prop in EAC.browser) {
if (typeof EAC.browser[prop] != 'function')
str += prop+': '+EAC.browser[prop]+'; ';
}
return str;
}
},
load: function() {
this.isLoaded['base'] = this.Version.toString();
this.Signature = this.Signature.replace('%s',this.isLoaded['base']);
if (typeof Prototype == 'undefined')
throw("eac_scripts: Prototype JavaScript framework required");
this.setDefaults();
var scripts = document.getElementsByTagName("script");
for (var i=0; i < scripts.length; i++) {
if (scripts[i].src.length > 0) {
if (search = new RegExp('(.*)(/eac_scripts\.)(.*)','i').exec(scripts[i].src)) {
if (!scripts[i].id) scripts[i].id = 'eac_scripts';
this.homePath = search[1]+'/';
if (search = new RegExp('^js.load=(.*)','i').exec(search[3])) {
this.defaults.loadModules = search[1];
}
break;
}
}
}
if (!this.homePath) {
if (this.defaults.homePath.substring(0,4) != 'http') {
var url = this.parseURL(document.URL);
this.homePath = url.protocol+'://'+(url.authority+'/'+this.defaults.homePath).replace('//','/');
} else this.homePath = this.defaults.homePath;
}
if (this.defaults.loadModules != '') this.loadModule();
if (this.defaults.helperPath == '') this.defaults.helperPath = this.homePath;
if (this.defaults.mouse.observe) this.mouse.observe();
var nua = navigator.userAgent, ver = 0;
if (typeof opera != 'undefined') ver = opera.version()
else if ((/MSIE/i.test(nua)))ver = parseFloat(nua.split("MSIE ")[1]);
else if ((/Version\//i.test(nua)))ver = parseFloat(nua.split("Version/")[1]);
else if ((/Chrome\//i.test(nua)))ver = parseFloat(nua.split("Chrome/")[1]);
else if ((/Safari/i.test(nua)))ver = 2.0;
else try {ver = parseFloat(nua.split("/").pop());} catch(e) {ver = 0}
EAC.browser.version = ver || parseFloat(navigator.appVersion);
if (document.compatMode) {
EAC.browser.compatMode = document.compatMode;
} else if (EAC.browser.isWebKit) {
var el = document.createElement("div");
el.setAttribute('style','position:absolute;width:1;height:0;');
EAC.browser.compatMode = (el.style.width == '1px') ? 'BackCompat' : 'CSS1Compat';
} else {
EAC.browser.compatMode = 'BackCompat';
}
['info','warn','error','debug'].each(function(e){if (!EAC.console[e]) EAC.console[e] = EAC.console['log'];});
this.load = function(){};
},
setDefaults: function() {
if (typeof eac_homePath    != 'undefined') this.defaults.homePath    = eac_homePath;
if (typeof eac_showEffect  != 'undefined') this.defaults.showEffect  = eac_showEffect;
if (typeof eac_hideEffect  != 'undefined') this.defaults.hideEffect  = eac_hideEffect;
if (typeof eac_loadModules != 'undefined') this.defaults.loadModules = eac_loadModules;
if (typeof eac_onPageStyle != 'undefined') this.defaults.floatingWindow.style = eac_onPageStyle;
if (typeof EAC_defaults != 'undefined')
this.defaults = this.hashMerge(this.defaults,EAC_defaults);
if (this.defaults.floatingWindow.effects == null)
this.defaults.floatingWindow.effects = [this.defaults.showEffect,this.defaults.hideEffect,this.defaults.effectDuration];
},
loadModule: function(module) {
if (module) {
if (!this.isLoaded[module])
this.JS.load(this.homePath+'eac_scripts.'+module+'.js','head',{id:'eac_scripts_'+module});
} else {
if (this.defaults.loadModules != '')
this.defaults.loadModules.split(',').each(this.loadModule.bind(this));
}
},
CSS: {
load: function (url, media) {
this.unload(url);
var h = document.getElementsByTagName("head")[0];
var _media = media || "all";
var e = document.createElement("link");
e.setAttribute("rel", "stylesheet");
e.setAttribute("type", "text/css");
e.setAttribute("media", _media);
e.setAttribute("href", url);
h.appendChild(e);
return e;
},
unload: function (url) {
var l = document.getElementsByTagName("link");
for( i = 0; i < l.length; i++) {
if (l[i]["href"] == url) l[i].parentNode.removeChild(l[i]);
return true;
}
return false;
},
get: function (url, media) {
this.unload(url);
var _media = media || "all";
document.write('<link href="'+url+'" rel="stylesheet" type="text/css" media="'+_media+'" />');
}
},
JS: {
load: function (url,where,attributes) {
if (!where) where = 'head';
if (where == 'head')
var h = document.getElementsByTagName('head')[0];
else if (where == 'body')
var h = document.body || document.getElementsByTagName('body')[0];
else
var h = $(where);
if (!h) return false;
var e = document.createElement("script");
e.setAttribute("type", "text/javascript");
e.setAttribute("language", "javascript");
e.setAttribute("src", url);
if (typeof attributes != 'object') attributes = {};
for (var property in attributes) {
e.setAttribute(property, attributes[property]);
}
if (attributes.id) {
if (EAC.browser.isExplorer) {
e.onreadystatechange = function() {
if (/loaded|complete/.test(e.readyState) && !e.fired) {
document.fire('js:'+e.id,{node:e});
e.fired = true;
}
}
} else {
e.onload = function() {
document.fire('js:'+e.id,{node:e});
}
}
}
EAC.console.log('Script added to '+h.tagName+'->'+url);
h.appendChild(e);
return e;
},
unload: function (url) {
var l = document.getElementsByTagName("script");
for (i = 0; i < l.length; i++) {
if (l[i]["src"] == url) l[i].parentNode.removeChild(l[i]);
return true;
}
return false;
},
get: function (url) {
document.write('<scr'+'ipt type="text/javascript" src="'+url+'"></scr'+'ipt>');
},
request: function (url) {
var h = document.getElementsByTagName("head")[0];
var e = document.createElement("script");
var n = EAC.elementId(e,'js');
e.setAttribute("type", "text/javascript");
e.setAttribute("language", "javascript");
e.setAttribute("id", n);
h.appendChild(e);
var http = new Ajax.Updater(n,url,{method:'get', asynchronous: true, evalScripts: true});
}
},
cookie: {
set: function (name,value,days) {
if (days) {
var date = new Date();
date.setTime(date.getTime()+(days*24*60*60*1000));
var expires = "; expires="+date.toGMTString();
} else {
var expires = "";
}
document.cookie = name+"="+value+expires+"; path=/";
},
get: function (name) {
name += "=";
var ca = document.cookie.split(';');
for(var i=0;i < ca.length;i++) {
var c = ca[i];
c = c.replace(/^\s+|\s+$/g, '');
if (c.indexOf(name) == 0) return c.substring(name.length,c.length);
}
return false;
},
erase: function (name) {
for (var i = 0; i < arguments.length; i++) {
if (this.get(arguments[i])) this.set(arguments[i],"",-10);
}
}
},
mouse:{
lastEvent:null,
observing:false,
get: function() {
return EAC.getCursorPosition(arguments[0] || EAC.mouse.lastEvent);
},
set: function(event) {
EAC.mouse.lastEvent = Object.clone(event);
var cursor = EAC.getCursorPosition(event);
EAC.mouse.lastEvent.pageX = cursor.x;
EAC.mouse.lastEvent.pageY = cursor.y;
if (!EAC.defaults.mouse.observe) EAC.mouse.stop();
if (EAC.mouse.callbacks) {
for (var i=0; i < EAC.mouse.callbacks.length; i++) {
if (typeof EAC.mouse.callbacks[i] == "function")
EAC.mouse.callbacks[i](event);
}
}
},
observe: function(what) {
var what = what || EAC.defaults.mouse.what;
Event.observe(document,what,function(event) {EAC.mouse.set(event);});
EAC.mouse.observing = true;
return true;
},
stop: function(what) {
var what = what || EAC.defaults.mouse.what;
Event.stopObserving(document,what,function(event) {EAC.mouse.set(event);});
EAC.mouse.observing = false;
},
addCallback: function(func) {
if (typeof func != "function") return false;
if (!EAC.mouse.callbacks) EAC.mouse.callbacks = new Array;
EAC.mouse.callbacks[EAC.mouse.callbacks.length] = func;
}
},
elementId: function(element) {
element = EAC.getElement(element);
if (!element) return false;
if (element.id) return element.id;
if (element.name && ! document.getElementById(element.name)) {
element.id = element.name;
return element.id;
}
element.id = (arguments[1] || 'eac')+'_'+Math.random().toString().replace('.','');
return element.id;
},
getElement: function (element) {
if (typeof element == 'string')
return document.getElementById(element);
if (typeof element != 'undefined')
return element;
return false;
},
elementIsVisible: function (element) {
element = EAC.getElement(element);
if (element.type && element.type == 'hidden') return false;
return ( (element.style.display != 'none') && (element.style.visibility != 'hidden') );
},
elementIsTrulyVisible: function(element) {
if (element = EAC.getElement(element)) {
if (element.type && element.type == 'hidden') return false;
if (EAC.getComputedStyle(element,'display') != 'none' && EAC.getComputedStyle(element,'visibility') != 'hidden')
return (element.parentNode) ? EAC.elementIsTruelyVisible(element.parentNode) : true;
else return false;
} else return true;
},
effectHide: function (element,_effect,after) {
element = EAC.getElement(element);
if (typeof(Effect) != "undefined") {
_effect = _effect || EAC.defaults.hideEffect;
if (typeof after == 'function')
Effect[_effect](element.id, {duration: EAC.defaults.effectDuration,afterFinish: after});
else
Effect[_effect](element.id, after || {duration: EAC.defaults.effectDuration});
} else EAC.blockHide(element,after);
return element;
},
effectShow: function (element,_effect,after) {
element = EAC.getElement(element);
if (typeof(Effect) != "undefined") {
_effect = _effect || EAC.defaults.showEffect;
if (typeof after == 'function')
Effect[_effect](element.id, {duration: EAC.defaults.effectDuration,afterFinish: after});
else
Effect[_effect](element.id, after || {duration: EAC.defaults.effectDuration});
} else EAC.blockShow(element,after);
return element;
},
effectToggle: function (element,_effect,after) {
element = EAC.getElement(element);
_effect = _effect || [EAC.defaults.showEffect,EAC.defaults.hideEffect];
if (typeof(Effect) == "string") _effect = [_effect,_effect];
if (!EAC.elementIsVisible(element.id))
EAC.effectShow(element,_effect[0],after);
else
EAC.effectHide(element,_effect[1],after);
return element;
},
effectRemove: function (element,_effect,after) {
element = EAC.getElement(element);
if (typeof(Effect) != "undefined") {
_effect = _effect || EAC.defaults.hideEffect;
if (typeof after == 'function')
Effect[_effect](element,{afterFinish: function() {EAC.blockRemove(element);after}});
else
Effect[_effect](element,{afterFinish: function() {EAC.blockRemove(element);}});
} else EAC.blockRemove(element,after);
return element;
},
inlineHide: function (element,after) {
try {
element = EAC.getElement(element);
element.style.visibility = 'hidden';
if (typeof after == 'function') after;
} catch(e) {}
return element;
},
inlineShow: function (element,after) {
try {
element = EAC.getElement(element);
element.style.visibility = 'visible';
if (typeof after == 'function') after;
} catch(e) {}
return element;
},
inlineToggle: function (_span,after) {
if (!EAC.elementIsVisible(_span))
inlineShow(_span,after);
else
inlineHide(_span,after);
return element;
},
blockHide: function (element,after) {
try {
element = EAC.getElement(element);
element.style.display = 'none';
if (typeof after == 'function') after;
} catch(e) {}
return element;
},
blockShow: function (element,after) {
try {
element = EAC.getElement(element);
element.style.display = 'block';
if (typeof after == 'function') after;
} catch(e) {}
return element;
},
blockToggle: function (element,after) {
if (!EAC.elementIsVisible(element))
return EAC.blockShow(element,after);
else
return EAC.blockHide(element,after);
},
blockRemove: function (element,after) {
if (element = EAC.getElement(element)) {
try {
var parent = element.parentNode;
parent.removeChild(element);
if (typeof after == 'function') after;
return parent;
} catch(e) {}
}
return element;
},
getDocumentSize: function() {
var size = {x:0, y:0};
size.x = document.body.scrollWidth  || document.documentElement.scrollWidth;
size.y = document.body.scrollHeight || document.documentElement.scrollHeight;
return size;
},
getWindowSize: function() {
var size = {x:0, y:0};
size.x = window.innerWidth  || document.documentElement.clientWidth  || document.body.clientWidth;
size.y = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight;
if (!EAC.browser.isExplorer && !EAC.browser.isWebKit) {
var w2 = document.documentElement.clientWidth  || document.body.clientWidth;
var h2 = document.documentElement.clientHeight || document.body.clientHeight;
size.x = (w2 > 0) ? Math.min(size.x,w2) : size.x;
size.y = (w2 > 0) ? Math.min(size.y,h2) : size.y;
}
return size;
},
getElementSize: function(element,margins) {
var size = {x:0, y:0};
var dim = $(element).getDimensions();
size.x = parseInt(EAC.getComputedStyle(element,'width')) || 0;
size.y = parseInt(EAC.getComputedStyle(element,'height')) || 0;
if (dim.width > size.x) {
size.x = dim.width;
size.y = dim.height;
}
size.t = parseInt(EAC.getComputedStyle(element,'margin-top')) || 0;
size.r = parseInt(EAC.getComputedStyle(element,'margin-right')) || 0;
size.b = parseInt(EAC.getComputedStyle(element,'margin-bottom')) || 0;
size.l = parseInt(EAC.getComputedStyle(element,'margin-left')) || 0;
if (margins) {
if (!EAC.browser.isExplorer) {
size.x += (size.l+size.r);
size.y += (size.t+size.b);
}
} else {
if (EAC.browser.isExplorer) {
size.x -= (size.l+size.r);
size.y -= (size.t+size.b);
}
}
return size;
},
getIframeSize: function(iframe) {
var iframe = EAC.getElement(iframe);
var size = {x:0, y:0};
try {
size.x = iframe.contentWindow.document.body.scrollWidth  || iframe.contentWindow.document.documentElement.scrollWidth;
size.y = iframe.contentWindow.document.body.scrollHeight || iframe.contentWindow.document.documentElement.scrollHeight;
} catch(err) {}
return size;
},
getScrollPosition: function() {
var scroll = {x:0, y:0};
scroll.x = window.pageXOffset || document.body.scrollLeft || document.documentElement.scrollLeft;
scroll.y = window.pageYOffset || document.body.scrollTop  || document.documentElement.scrollTop;
return scroll;
},
getCursorPosition: function (event) {
if (!event) var event = window.event;
var cursor = {x:0, y:0};
cursor.x = event.pageX || (event.clientX + (document.body.scrollLeft || document.documentElement.scrollLeft))
cursor.y = event.pageY || (event.clientY + (document.body.scrollTop  || document.documentElement.scrollTop));
if (document.documentElement.clientLeft) cursor.x -= document.documentElement.clientLeft;
if (document.documentElement.clientTop)  cursor.y -= document.documentElement.clientTop;
return cursor;
},
getComputedStyle: function(element, styleName) {
return $(element).getStyle(styleName);
},
getElementTop: function(element) {
var cur = 0;
do {
cur += element.offsetTop || 0;
if (element = element.offsetParent) {
if (EAC.getComputedStyle(element,'position') != 'static')
return cur;
if (element.tagName.toLowerCase() == 'body')
return cur;
}
} while (element);
return cur;
},
getElementLeft: function(element) {
var cur = 0;
do {
cur += element.offsetLeft || 0;
if (element = element.offsetParent) {
if (EAC.getComputedStyle(element,'position') != 'static')
return cur;
if (element.tagName.toLowerCase() == 'body')
return cur;
}
} while (element);
return cur;
},
addWindowEvent: function (evt, fn) {
Event.observe(window, evt, fn);
},
addDocumentEvent: function (evt, fn) {
Event.observe(document, evt, fn);
},
parseURL: function(sourceUri){
var uriPartNames = ["source","protocol","authority","domain","port","path","directoryPath","fileName","query","anchor"];
var uriParts = new RegExp("^(?:([^:/?#.]+):)?(?://)?(([^:/?#]*)(?::(\\d*))?)?((/(?:[^?#](?![^?#/]*\\.[^?#/.]+(?:[\\?#]|$)))*/?)?([^?#/]*))?(?:\\?([^#]*))?(?:#(.*))?").exec(sourceUri);
var uri = {};
for(var i = 0; i < 10; i++){
uri[uriPartNames[i]] = (uriParts[i] ? uriParts[i] : "");
}
if(uri.directoryPath.length > 0){
uri.directoryPath = uri.directoryPath.replace(/\/?$/, "/");
}
return uri;
},
explode_with_keys: function(glue,string) {
var rtn = {};
var ary = string.split(glue);
for (i=0; i<ary.length; i++) {
var value = ary[i].split('=');
rtn[value[0]] = value[1];
}
return rtn;
},
implode_with_keys: function(glue,hash) {
var rtn = '';
for (var item in hash) {
rtn += item+'='+hash[item]+glue;
}
return rtn.substr(0,(rtn.length-1));
},
inArray: function(needle, haystack) {
for (var i in haystack)
if (haystack[i] == needle) return true;
return false;
},
isDefined: function(o) {
return (o != undefined);
},
isType: function(o,type) {
if (typeof type != 'string') type = EAC.typeOf(type);
switch (type.toLowerCase()) {
case 'number': return (typeof o == 'number');
case 'string': return (typeof o == 'string');
case 'boolean': return (typeof o == 'boolean');
case 'object': return (typeof o == 'object');
case 'function': return (typeof o == 'function');
case 'undefined': return (typeof o == 'undefined');
}
return EAC.typeOf(o) == type.toLowerCase();
},
typeOf: function(obj) {
if (obj == null) return 'null';
if (!EAC.isDefined(obj)) return 'undefined';
if (obj.htmlElement) return 'element';
var type = typeof obj;
if (type == 'object' && obj.nodeType) {
switch(obj.nodeType) {
case  1: return 'element';
case  2: return 'attribute';
case  3: return 'text';
case  4: return 'cdata';
case  5: return 'reference';
case  6: return 'entity';
case  7: return 'instruction';
case  8: return 'comment';
case  9: return 'document';
case 10: return 'doctype';
case 11: return 'fragment';
case 12: return 'notation';
}
}
if (type == 'object' || type == 'function') {
if (obj.constructor) {
switch(obj.constructor) {
case Array: return 'array';
case RegExp: return 'regexp';
case Class: return 'class';
case Date: return 'date';
case Object: return 'generic';
default:
if (obj.constructor.toString().indexOf('Event') != -1 && obj.target)
return 'event';
}
}
if (typeof obj.length == 'number'){
if (obj.item) return 'collection';
if (obj.callee) return 'arguments';
} else if (typeof obj.keyCode != 'undefined') {
return 'event';
} else return 'generic';
}
return type;
},
toHash: function(string) {
var hash = {}, key, i, a1, a2;
if (string.substr(0,1) != "{" || string.substr(string.length-1,1) != "}") return false;
string = string.substr(1,string.length-2);
a1 = string.split(',');
for (i = 0; i < a1.length; i++) {
a2 = a1[i].split(':');
key = a2.shift();
try {hash[key.strip()] = eval(a2.join(':'));} catch(e) {return false}
}
return hash;
},
hashMerge: function() {
var hash = {};
for (var i = 0; i < arguments.length; i++) {
for (var property in arguments[i]) {
if (arguments[i][property] && EAC.typeOf(arguments[i][property]) == 'generic')
hash[property] = EAC.hashMerge((hash[property] || {}),arguments[i][property]);
else
hash[property] = (arguments[i][property]);
}
}
return hash;
},
backgroundLayer: function(onoff,id) {
var onoff = (onoff === true || onoff == 'on') ? true : false;
var params = EAC.hashMerge(EAC.defaults.backgroundLayer, {id: id}, arguments[2]);
if (onoff) {
var wsize = EAC.getWindowSize();
var dsize = EAC.getDocumentSize();
if (params.opacity > 1) params.opacity /= 100;
var bgdiv = document.createElement('div');
bgdiv.setAttribute('id',params.id);
$(bgdiv).setStyle({
position:'absolute',
top:'0px',
left:'0px',
width:Math.max(wsize.x,dsize.x)+'px',
height:Math.max(wsize.y,dsize.y)+'px',
display:'block',
overflow:'hidden',
opacity:params.opacity,
zIndex:params.zindex,
background: params.style}
);
if (params.within) {
$(params.within).makePositioned().appendChild(bgdiv);
var wsize = EAC.getElementSize(params.within);
//alert(params.within+"->"+wsize.x+":"+wsize.y);
$(bgdiv).setStyle({
width:(wsize.x) ? wsize.x+'px' : '100%',
height:(wsize.y) ? wsize.y+'px' : '100%'});
} else
document.body.appendChild(bgdiv);
} else {
EAC.blockRemove(params.id);
}
},
hasRelation: function(element, rel) {
if (!(element = $(element))) return;
var elementRelName = element.rel || '';
return (elementRelName.length > 0 && (elementRelName == rel ||
new RegExp("(^|\\s)" + rel + "(\\s|$)").test(elementRelName)));
},
addRelation: function(element, rel) {
if (!(element = $(element))) return;
if (!element.hasRelName(rel))
element.rel += (element.rel ? ' ' : '') + rel;
return element;
},
removeRelation: function(element, rel) {
if (!(element = $(element))) return;
element.rel = element.rel.replace(
new RegExp("(^|\\s+)" + rel + "(\\s+|$)"), ' ').strip();
return element;
},
newWindow: function () {
var args = EAC._parseWindowArgs(arguments);
var params = EAC.hashMerge(EAC.defaults.popupWindow,
{url: args[0], width: args[1], height: args[2], top: args[3], left: args[4]}, args[5]);
return EAC.inWindow(params.url,params.width,params.height,EAC._parseWindowParams(params),params.id)
},
inWindow: function (url,width,height,params,name) {
name = name || 'popup';
if (!params) var params = 'toolbar=0,location=0,directories=0,status=1,menubar=0,scrollbars=1,resizable=1';
var popup = window.open(url,name,params+',width='+width+',height='+height);
if (popup.focus) popup.focus();
return popup;
},
_parseWindowArgs: function (args) {
var parsed = new Array;
parsed[0] = args[0];//url
parsed[1] = args[1];//width
parsed[2] = args[2];//height
if (typeof args[5] != 'undefinded' && args[5] != null ) {
var pos = {y:args[3], x:args[4]};
var params = args[5];
} else if (typeof args[3] == 'number' || typeof args[4] == 'string') {
var pos = {y:args[3], x:args[4]};
var params = {};
} else if (args[3] && (typeof args[3].pageX   != 'undefined' ||
typeof args[3].clientX != 'undefined') ) {
var pos = EAC.getCursorPosition(args[3]);
var params = args[4] || {};
} else {
var pos = (EAC.mouse.observing) ? {y:'cursor', x:'cursor'} : {y:'center', x:'center'};
var params = args[3] || {};
}
parsed[3] = params.top || pos.y;//top
parsed[4] = params.left || pos.x;//left
parsed[5] = params;//params
return parsed;
},
_parseWindowParams: function (params) {
if (typeof params.top == 'string')
switch(params.top.toLowerCase()) {
case 'top': params.top = 0; break;
case 'bottom':params.top = (screen.height-params.height)-84; break;
default:params.top = (screen.height-params.height)/2; break;
}
if (typeof params.left == 'string')
switch(params.left.toLowerCase()) {
case 'left':params.left = 0; break;
case 'right':params.left = (screen.width-params.width)-12; break;
default:params.left = (screen.width-params.width)/2; break;
}
return"top="+ params.top
+",left="+ params.left
+",scrollbars="+ params.scrollbars
+",location="+ params.location
+",directories="+ params.directories
+",status="+ params.status
+",menubar="+ params.menubar
+",toolbar="+ params.toolbar
+",resizable="+ params.resizable;
}
};
if (typeof(Effect) != "undefined") {
Effect.ReSize = Class.create();
Object.extend(Object.extend(Effect.ReSize.prototype, Effect.Base.prototype), {
initialize: function(element) {
this.element = $(element);
if(!this.element) throw(Effect._elementDoesNotExistError);
var options = Object.extend({ amount: 100, direction: 'vert', toSize:null }, arguments[1] || {});
if( options.direction == 'vert' )
this.originalSize = options.originalSize || parseInt(this.element.style.height);
else
this.originalSize = options.originalSize || parseInt(this.element.style.width);
if( options.toSize != null )
options.amount = options.toSize - this.originalSize;
this.start(options);
},
setup: function() {
if(this.element.getStyle('display')=='none') { this.cancel(); return; }
},
update: function(position) {
if( this.options.direction == 'vert' ){
this.element.setStyle({height: this.originalSize+(this.options.amount*position)+'px'});
} else {
this.element.setStyle({width: this.originalSize+(this.options.amount*position)+'px'});
}
},
finish: function(){
if( this.options.direction == 'vert' ){
this.element.setStyle({height: this.originalSize+this.options.amount+'px'});
} else {
this.element.setStyle({width: this.originalSize+this.options.amount+'px'});
}
}
});
Effect.PhaseIn = function(element) {
element = $(element);
new Effect.BlindDown(element, arguments[1] || {});
new Effect.Appear(element, arguments[2] || arguments[1] || {});
}
Effect.PhaseOut = function(element) {
element = $(element);
new Effect.Fade(element, arguments[1] || {});
new Effect.BlindUp(element, arguments[2] || arguments[1] || {});
}
Effect.Phase = function(element) {
element = $(element);
if (element.style.display == 'none')
new Effect.PhaseIn(element, arguments[1] || {}, arguments[2] || arguments[1] || {});
else
new Effect.PhaseOut(element, arguments[1] || {}, arguments[2] || arguments[1] || {});
}
Effect.FadeIn = function(element) {
element = $(element);
new Effect.Opacity(element, arguments[1] || {duration:1.0, from:0.1, to:1.0});
}
Effect.FadeOut = function(element) {
element = $(element);
new Effect.Opacity(element, arguments[1] || {duration:1.0, from:1.0, to:0.1});
}
Effect.BlindLeft = function(element) {
element = $(element);
element.makeClipping();
return new Effect.Scale(element, 0, Object.extend({
scaleContent: false,
scaleY: false,
restoreAfterFinish: true,
afterFinishInternal: function(effect) {
effect.element.hide().undoClipping();
}
}, arguments[1] || {}));
}
Effect.BlindRight = function(element) {
element = $(element);
var elementDimensions = element.getDimensions();
return new Effect.Scale(element, 100, Object.extend({
scaleContent: false,
scaleY: false,
scaleFrom: 0,
scaleMode: {
originalHeight: elementDimensions.height, originalWidth: elementDimensions.width
},
restoreAfterFinish: true,
afterSetup: function(effect) {
effect.element.makeClipping().setStyle({width: '0px'}).show();
},
afterFinishInternal: function(effect) {
effect.element.undoClipping();
}
}, arguments[1] || {}));
}
Effect.SoundIn = function(element) {
if (typeof(Sound) != "undefined")
Sound.play('sword.mp3',{replace:true});
new Effect[EAC.defaults.showEffect](element, arguments[1] || {});
}
Effect.SoundOut = function(element) {
if (typeof(Sound) != "undefined")
Sound.play('sword.mp3',{replace:true});
new Effect[EAC.defaults.hideEffect](element, arguments[1] || {});
}
if (typeof(Builder) != "undefined") {
Effect.Reflect = function(element) {
element = $(element);
options = $H({
amount: 1/3,
opacity: 1/3
}).merge(arguments[1] || {});
var p = element.parentNode, n = element.nextSibling;
var d = 1.0/(element.height*options.amount);
(element.height*options.amount).times( function(line) {
var h = Builder.node('div',{style:'height:1px;overflow:hidden'},
[Builder.node('img',{src:element.src,
style:'margin-top:-'+(element.height-line-1)+'px'
})]);
p.insertBefore(h,n);
$(h).setOpacity((1-d*line)*options.opacity);
});
}
}
}
EAC.Track = function() {EAC.console.info('Tracker not loaded');}
EAC.gaTrack = function() {}
EAC.load();
document.EAC = EAC;
//try {if (!window.getComputedStyle) window.getComputedStyle = document.defaultView.getComputedStyle;} catch(e) {}
try {document.fire('js:eac_scripts');} catch(e){}
//-- START eac_scripts.defaults.js
EAC.defaults.showEffect= 'BlindDown';
EAC.defaults.hideEffect= 'BlindUp';
EAC.defaults.floatingWindow.style= 'border: .1em solid #777; background-color: #fff; padding: 0em;';
//-- END eac_scripts.defaults.js
//-- eac_scripts.helper.js
EAC.isLoaded['helper'] = 'v3.1.5 (Aug 27, 2009)';
EAC.helper = {
Name:'eac_scripts.helper.php',
URL:null,
Password:'',
Response:null,
JSON:null,
trans_sid:'',
_ASYNCHRONOUS:true,
_SYNCHRONOUS:false,
ajax: function(params)
{
if (typeof params == 'string') {
var fn= params;
params= {};
} else {
var fn= params.fn || "";
}
if (typeof params.async != 'boolean') {
params.async = (params.callback||params.element) ? EAC.helper._ASYNCHRONOUS : EAC.helper._SYNCHRONOUS;
}
var callback= params.callback|| function(){};
var element= params.element || false;
var token= encodeURIComponent(document.cookie);
var args = (arguments.length > 1) ? $A(arguments).slice(1).join('~') : "";
if (EAC.defaults.trans_sid) {
EAC.helper.trans_sid = (document.cookie.indexOf(EAC.defaults.trans_sid) == -1) ? '&'+EAC.defaults.trans_sid : '';
}
EAC.helper.Response = null;
EAC.helper.JSON = null;
var ajaxStructure = {
asynchronous: params.async,
requestHeaders: {'X-EAC-Request': EAC.Signature,'X-EAC-Token': token},
method: 'post',
postBody: '_ajax=y&_fn='+fn+'&_pw='+EAC.helper.Password  + '&_args='+args + EAC.helper.trans_sid,
onSuccess: function(transport,json) {
EAC.helper.Response = transport.responseText;
EAC.helper.JSON = (json) ? json : null;
callback(transport.responseText,json);
},
onFailure: function(transport) {
EAC.helper.ajaxFailure(transport.request,transport);
},
onException: function(request,exception) {
EAC.helper.ajaxFailure(request,null,exception);
}
};
if (typeof element == 'string') {
var ajax = new Ajax.Updater(element,EAC.helper.URL,ajaxStructure);
return null;
} else {
var ajax = new Ajax.Request(EAC.helper.URL,ajaxStructure);
return EAC.helper.Response;
}
},
ajaxFailure: function(request,transport,exception)
{
if (request.url.indexOf(EAC.helper.Name) != -1) return;
if (transport) {
var errorLevel = (parseInt(transport.status) > 399) ? EAC.E_USER_ERROR : EAC.E_USER_LEVEL;
if (parseInt(transport.status) > 499)
EAC.trigger_error('Ajax '+request.method.toUpperCase()+' failure '+transport.status+' '+transport.statusText+
'\n(may be cause by firewall or security settings)',request.url,0,errorLevel,'\n'+transport.responseText);
else if (parseInt(transport.status) < 400)
EAC.trigger_error('Ajax '+request.method.toUpperCase()+' failure '+transport.status+' '+transport.statusText,
request.url,0,errorLevel,'\n'+transport.responseText);
} else {
if (typeof exception == 'object')
EAC.trigger_error('Ajax '+request.method.toUpperCase()+' '+exception.name+': '+
exception.message,request.url+' ('+exception.fileName+')',(exception.lineNumber||0));
else
EAC.trigger_error('Ajax '+request.method.toUpperCase()+' exception: '+exception,request.url);
}
}
}
EAC.E_USER_ERROR = 256;
EAC.E_USER_WARNING = 512;
EAC.E_USER_NOTICE = 1024;
EAC.E_USER_IGNORE = 0;
EAC.E_USER_LEVEL= EAC.E_USER_WARNING;
EAC.$_SESSION = function (varName,varValue) {
if (varValue)
return EAC.helper.ajax('session',varName,varValue);
else
return EAC.helper.ajax('session',varName);
}
EAC.$GLOBALS = function (varName) {
return EAC.helper.ajax('globals',varName);
}
EAC.$_SERVER = function (varName) {
return EAC.helper.ajax('server',varName);
}
EAC.$CONSTANT = function (varName) {
return EAC.helper.ajax('constant',varName);
}
EAC.$DEBUG = function () {
var type = arguments[0] || 'all';
if (!document.getElementById('Debug-Output')) {
div = document.createElement('div');
div.setAttribute('id','Debug-Output');
document.body.appendChild(div);
}
EAC.getElement('Debug-Output').innerHTML = EAC.helper.ajax('debug',type);
EAC.onThisPage('Debug-Output',550,550,'top','center',{title:'Debug Server Variables',id:'Debug-Window',bgopacity:40});
EAC.blockRemove('Debug-Output');
}
EAC.SetPW = function (pw) {
EAC.helper.Password = pw;
}
EAC.trigger_error = function (msg) {
if (EAC._trace_name(EAC.trigger_error.caller).indexOf('__flash_unloadHandler') != -1)
return true;
if (EAC.E_USER_LEVEL == EAC.E_USER_IGNORE) return true;
if (typeof msg == 'object') {
url  = msg.fileName || document.location.href;
line = msg.lineNumber || 0;
code = EAC.E_USER_LEVEL;
msg  = msg.name+': '+msg.message;
text = '';
} else {
url  = arguments[1] || document.location.href;
line = arguments[2] || 0;
code = arguments[3] || EAC.E_USER_LEVEL;
text = arguments[4] || '';
}
try {
var trace = EAC._trace_error(EAC.trigger_error.caller);
} catch (e) {}
EAC.helper.ajax('trigger_error',encodeURIComponent(msg+text),encodeURIComponent(url),line,code,trace);
if ((code & EAC.E_USER_ERROR) == EAC.E_USER_ERROR)
alert('Error : '+msg+'\nIn '+url);
return true;
}
EAC._trace_error = function (startingPoint) {
if (!startingPoint) return "";
var stackTraceMessage = "Stack trace: \n";
var nextCaller = startingPoint;
while (nextCaller) {
stackTraceMessage += EAC._trace_sig(nextCaller) + "\n";
nextCaller = nextCaller.caller;
}
return stackTraceMessage;
}
EAC._trace_sig = function (theFunction) {
var signature = EAC._trace_name(theFunction)+"(";
for(var x=0; x<theFunction.arguments.length; x++) {
var nextArgument = theFunction.arguments[x];
if (nextArgument.length > 50)
nextArgument = nextArgument.substring(0,50) + "...";
signature += "'" + nextArgument + "'";
if(x < theFunction.arguments.length - 1)
signature += " ";
}
signature += ")";
return signature;
}
EAC._trace_name = function (theFunction) {
if (!theFunction) return "";
if(theFunction.name) return theFunction.name;
var definition = theFunction.toString();
if (definition.indexOf('function') != -1) {
var name = definition.substring(0,definition.indexOf(' = function'));
if (name) return name;
var name = definition.substring(definition.indexOf('function') + 8,definition.indexOf('('));
if (name) return name;
}
return "anonymous";
}
EAC.helper.URL = EAC.defaults.helperPath + EAC.helper.Name;
EAC.Remote = EAC.helper.ajax;
//-- eac_scripts.window.js
EAC.isLoaded['window'] = 'v3.0.5 (Nov 2, 2009)';
EAC.floatingWindow = Class.create();
EAC.floatingWindow.prototype = {
params: {},
initialize: function () {
var args = EAC._parseWindowArgs(arguments);
this.params = EAC.hashMerge(EAC.defaults.floatingWindow,
{url: args[0], width: args[1], height: args[2], top: args[3], left: args[4]}, args[5]);
this.params.type= (document.getElementById(this.params.url)) ? 'div' :
this.params.type || this.params.url.substr(this.params.url.lastIndexOf('.')+1,3);
this.params.type= this.params.type.toLowerCase();
this.params.scroll= (this.params.scroll) ? 'auto' : 'hidden';
this.params.play= (this.params.play)   ? 'true' : 'false';
if (this.params.url.indexOf(EAC.helper.Name) != -1 && this.params.type != 'ajax') {
this.params.url += (this.params.url.indexOf('?') > 0) ? '&_ajax=n' : '?_ajax=n';
this.params.url += '&_token='+encodeURIComponent(document.cookie);
}
this.event = (arguments[3] && typeof arguments[3].clientX != 'undefined') ? arguments[3] : EAC.mouse.lastEvent;
this.params.drop = this.params.drop || (arguments[3] && typeof arguments[3].clientX != 'undefined') ? 'auto' : 'right';
args = null;
var fontsize = (this.params.within)
? EAC.getComputedStyle(this.params.within, 'font-size')
: EAC.getComputedStyle(document.body, 'font-size');
if (!fontsize)
var fontsize = (this.params.within)
? EAC.getComputedStyle(this.params.within, 'fontSize')
: EAC.getComputedStyle(document.body, 'fontSize');
fontsize = parseInt(fontsize);
this.widthEM  = (this.params.width == 0) ? 1 : this.params.width / fontsize;
this.heightEM = (this.params.height == 0) ? 1 : this.params.height / fontsize;
this.create();
this.containerId= this.params.id+'-content';
this.container = this.setMedia(this.params.type);
var closeEvent = this.close.bindAsEventListener(this);
switch (this.params.close) {
case 'onclick':
Event.observe(this.opendiv,'click',function(e) {closeEvent()});
this.params.close = false;
break;
case 'ondblclick':
Event.observe(this.opendiv,'dblclick',function(e) {closeEvent()});
this.params.close = false;
break;
case 'onmouseout':
Event.observe(this.opendiv,'mouseout',function(e) {closeEvent()});
this.params.close = false;
break;
}
this.opendiv.innerHTML = this.setContent();
if (this.params.close)
Event.observe(this.params.id+"-close",'click',function(e) {closeEvent()});
this.open();
this.isVisible = true;
try {Event.observe(this.containerId,'unload',function(e) {closeEvent()});} catch(e) {}
if (this.params.time) window.setTimeout(this.close.bind(this),this.params.time*1000);
this.free();
},
free: function () {
this.initialize= null;
this.create= null;
this.open= null;
this.setStyle= null;
this.setMedia= null;
this.setContent= null;
this.setPosition= null;
this.free= null;
},
create: function () {
this.divstyle = "display: none; position: absolute; z-index: "+this.params.zindex+"; "+this.params.style;
this.opendiv = document.createElement('div');
this.opendiv.setAttribute('id',this.params.id);
this.setStyle(this.divstyle);
if (this.params.within) {
$(this.params.within).innerHTML = '';
$(this.params.within).appendChild(this.opendiv);
$(this.params.within).makePositioned();
} else
document.body.appendChild(this.opendiv);
$(this.opendiv).addClassName('otp-element');
},
open: function () {
if (this.params.type == 'ajax')
eval(this.ajaxLoad);
else if (this.params.type == 'div') {
document.getElementById(this.params.id+'-inner').style.backgroundImage = 'none';
document.getElementById(this.containerId).innerHTML = document.getElementById(this.params.url).innerHTML;
} else if (this.params.type == 'iframe'){
document.body.style.cursor = "wait";
document.getElementById(this.containerId).src = this.params.url;
if (this.params.resize) {
var resizer = function() {
var element = EAC.getElement(this.containerId);
var isize = EAC.getIframeSize(element);
if (isize.y > 0) element.style.height=isize.y+'px';
document.body.style.cursor = "auto";
}.bindAsEventListener(this);
Event.observe(this.containerId,'load',function(e) {resizer();});
} else document.body.style.cursor = "auto";
}
this.divstyle = this.setPosition(this.params.top,this.params.left) + this.divstyle;
this.setStyle(this.divstyle);
//Effect[this.params.effects[0]](this.params.id);
if (!this.params.hidden) this.show();
if (this.params.drag && (this.params.close || this.params.title) && (typeof Draggable != 'undefined')) {
this.drag = new Draggable(this.params.id,{handle: this.params.id+'-handle'} );
EAC.getElement(this.params.id+'-handle').style.cursor = 'move';
}
//if (this.params.bgopacity)
if (this.params.fgopacity)
EAC.backgroundLayer(true,this.params.id+'-fglayer',{opacity: this.params.fgopacity, zindex: (this.params.zindex+5), style: this.params.foreground, within: this.params.id+'-inner'});
},
setStyle: function (divstyle) {
if (this.opendiv.style.setAttribute)
this.opendiv.style.setAttribute('cssText',divstyle);
else
this.opendiv.setAttribute('style',divstyle);
},
setMedia: function (type) {
switch (type) {
case 'jpg':
case 'jpe':
case 'gif':
case 'png':
case 'img':
case 'image':
case 'jpeg':
case 'bmp':
container = "<img style='padding:0; width:"+this.widthEM+"em; height:"+this.heightEM+"em;' id='"+this.containerId+"' height='"+this.params.height+"' width='"+this.params.width+"' src='"+this.params.url+"' />";
break;
case 'swf':
case 'flash':
if (EAC.browser.isExplorer)
var objtype = "classid='clsid:D27CDB6E-AE6D-11cf-96B8-444553540000'";
else
var objtype = "data='"+this.params.url+"' type='application/x-shockwave-flash'";
var container = "<object style='margin:0; padding:0;' id='"+this.containerId+"' name='"+this.params.id+"-Flash'"
+ objtype+" height='"+this.params.height+"' width='"+this.params.width+"' standby='Loading Media...' valign='top'>"
+" <param name='movie' value='"+this.params.url+"' />"
+" <param name='quality' value='best' />"
+" <param name='play' value='"+this.params.play+"' />"
+" <param name='wmode' value='opaque' />";
if (this.params.params) {
for (var property in this.params.params) container += " <param name='"+property+"' value='"+this.params.params[property]+"' />";
}
container += " <p><a href='http://www.adobe.com/go/getflashplayer'><img src='http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif' alt='Get Adobe Flash player' /></a></p>";
+"</object>"
+"<scr"+"ipt type='text/javascript'>if (swfobject) swfobject.registerObject('"+this.containerId+"','8.0.0','"+EAC.defaults.helperPath+"expressInstall.swf');</scr"+"ipt>";
this.closeInner = function() {EAC.blockRemove(this.params.id+"-inner")};
break;
case 'aac':
case 'mov':
case 'mpg':
case 'mpeg':
case 'mp4':
case 'quicktime':
if (EAC.browser.isExplorer)
var objtype = "classid='clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B' codebase='http://www.apple.com/qtactivex/qtplugin.cab'";
else
var objtype = "data='"+this.params.url+"' type='video/quicktime'";
var container = "<object style='margin:0; padding:0;' id='"+this.containerId+"' name='"+this.params.id+"-QuickTime'"
+ objtype+" height='"+this.params.height+"' width='"+this.params.width+"' standby='Loading Media...' valign='top'>"
+" <param name='cache' value='true' />"
+" <param name='src' value='"+this.params.url+"' />"
+" <param name='autoplay' value='"+this.params.play+"' />"
+" <param name='controller' value='true' />";
if (this.params.params) {
for (var property in this.params.params) container += " <param name='"+property+"' value='"+this.params.params[property]+"' />";
}
container += " <p><a href='http://www.apple.com/quicktime/download/'><img src='http://images.apple.com/about/webbadges/images/qt7badge_getQTfreeDownload.gif' alt='Get QuickTime player' /></a></p>"
+"</object>"
this.closeInner = function() {EAC.blockRemove(this.params.id+"-inner")};
break;
case 'wmv':
case 'wma':
case 'asf':
case 'avi':
case 'msvideo':
case 'windowsmedia':
if (EAC.browser.isExplorer)
var objtype = "classid='clsid:22D6F312-B0F6-11D0-94AB-0080C74C7E95' type='application/x-oleobject'";
else
var objtype = "data='"+this.params.url+"' type='application/x-mplayer2'";
var container = "<object style='margin:0; padding:0;' id='"+this.containerId+"' name='"+this.params.id+"-MediaPlayer'"
+ objtype+" height='"+this.params.height+"' width='"+this.params.width+"' standby='Loading Media...' valign='top'>"
+" <param name=FileName value='"+this.params.url+"' />"
+" <param name=AutoStart value='"+this.params.play+"' />"
+" <param name=ShowControls value='true' />"
+" <param name=ShowStatusBar value='false' />"
+" <param name=ShowDisplay value='false' />"
+" <param name=ShowTracker value='false' />"
+" <param name=WindowlessVideo value='true' />";
if (this.params.params) {
for (var property in this.params.params) container += " <param name='"+property+"' value='"+this.params.params[property]+"' />";
}
container += " <p><a href='http://www.microsoft.com/windows/windowsmedia/download/AllDownloads.aspx'><img src='http://www.microsoft.com/library/toolbar/3.0/images/banners/windowsmedia_masthead_ltr.gif' alt='Get Windows Media player' /></a></p>";
+"</object>"
this.closeInner = function() {EAC.blockRemove(this.params.id+"-inner")};
break;
case 'svg':
var container = "<embed id='"+this.containerId+"' style='padding:0; width:"+this.widthEM+" height:"+this.heightEM+"' src='"+this.params.url+"' type='image/svg+xml' height='"+this.params.height+"' width='"+this.params.width+"'></embed>"
break;
case 'div':
var sWidth  = (this.params.width  == 0) ? 'width:auto;'  : 'width:'+this.widthEM+'em;';
var sHeight = (this.params.height == 0 || this.params.resize) ? 'height:auto;' : 'height:'+this.heightEM+'em;';
var container = "<div style='padding:0; "+sWidth+sHeight+" overflow:"+this.params.scroll+"' id='"+this.containerId+"' align='left'></div>";
break;
case 'ajax':
var sWidth  = (this.params.width  == 0) ? 'width:auto;'  : 'width:'+this.widthEM+'em;';
var sHeight = (this.params.height == 0 || this.params.resize) ? 'height:auto;' : 'height:'+this.heightEM+'em;';
var container = "<div style='padding:0; "+sWidth+sHeight+" overflow:"+this.params.scroll+"' id='"+this.containerId+"' align='left'></div>";
var token= encodeURIComponent(document.cookie);
this.ajaxLoad = "var x = new Ajax.Updater("
+" {success: this.containerId, failure: this.containerId },"
+" this.params.url,"
+" {method: 'get', evalScripts: true, requestHeaders: {'X-EAC-Request': EAC.Signature,'X-EAC-Token': '"+token+"'},parameters: {_ajax: 'y'},"
+" onComplete: function() {document.getElementById('"+this.params.id+"-inner').style.backgroundImage = 'none';} });";
break;
case 'object':
var container = "<object style='display: none; padding:0;' id='"+this.containerId+"' name='"+this.params.id+"-Object'"
+"data='"+this.params.url+"' height='"+this.params.height+"' width='"+this.params.width+"' standby='Loading...'>";
if (this.params.params) {
for (var property in this.params.params) container += " <param name='"+property+"' value='"+this.params.params[property]+"' />";
}
container += "<p>unable to load object "+this.params.url+"</p>";
+"</object>"
break;
default:
type = 'iframe';
this.params.type = type;
break;
}
if (type == 'iframe') {
if (this.params.scroll == 'hidden') this.params.scroll = 'no';
container = "<iframe style='padding:0; width:"+this.widthEM+"em; height:"+this.heightEM+"em; min-height:"+this.heightEM+"em;' id='"+this.containerId+"' name='"+this.containerId+"' src='' frameborder='0' scrolling='"+this.params.scroll+"'></iframe>";
}
return container;
},
setContent: function () {
var margin = "padding-bottom: .3em";
var HTML = "<center><div style='z-index: "+(this.params.zindex+5)+"; width: "+(this.widthEM)+"em;'>";
if (this.params.title || this.params.close) {
HTML +="<div id='"+this.params.id+"-title' class='otp-title' style='min-width: "+(this.widthEM)+"em; float: none; "+margin+"'>";
if (this.params.close)
HTML += "<div id='"+this.params.id+"-close' style='border: .15em outset #ddd; background-color: #fff; float: right; clear: right; cursor: pointer; padding: 0 .15em;'>"
+this.params.close+"</div>";
HTML += "<span id='"+this.params.id+"-handle'>&nbsp;"+this.params.title+"&nbsp;</span></div>";
}
HTML +=
"<div id='"+this.params.id+"-inner' class='otp-inner' style='min-width: "+(this.widthEM)+"em; margin: 0; padding: 0; float: none; clear: both; vertical-align: top; position: relative;'>"
+this.container
+"</div></div></center>";
return HTML;
},
setPosition: function (top,left) {
var size= EAC.getElementSize(this.opendiv);
var width= size.x;
var height= size.y;
var offset= 6;
var size= (this.params.within) ? EAC.getElementSize(this.params.within) : EAC.getWindowSize();
var scroll= (this.params.within) ? {x:0,y:0} : EAC.getScrollPosition();
if (typeof top == 'string') {
switch(top.toLowerCase()) {
case 'top': top = 0; break;
case 'bottom':top = ((size.y + scroll.y) - height) - offset; break;
case 'middle':
case 'center':top = ((size.y/2) + scroll.y) - (height/2); break;
case 'down':top = EAC.getCursorPosition(this.event).y;break;
case 'cursor':top = EAC.getCursorPosition(this.event).y - (height/2);break;
}
if (top < 0) top = offset;
}
if (typeof left == 'string') {
switch(left.toLowerCase()) {
case 'left':left = 0; break;
case 'right':left = ((size.x + scroll.x) - width) - offset; break;
case 'center':left = ((size.x/2) + scroll.x) - (width/2); break;
case 'over':left = EAC.getCursorPosition(this.event).x;break;
case 'cursor':left = EAC.getCursorPosition(this.event).x - (width/2);break;
}
if (left < 0) left = offset;
if ((left + width + offset) > (size.x + scroll.x))
left = ((size.x + scroll.x) - width) - offset;
}
if (left < 0)
left += (size.x + scroll.x);
else {
if ( (left > (size.x + scroll.x)/2 && this.params.drop == 'auto') ||
((left + width + offset) > (size.x + scroll.x)) ||
(this.params.drop == 'left') )
left -= width;
}
if (left - scroll.x <= 0) left = scroll.x + offset;
if (top < 0)
top += (size.y + scroll.y);
else {
if ((top + height + offset) > (size.y + scroll.y))
top = (size.y - height - offset) + scroll.y;
if (top - scroll.y <= 0) top = scroll.y + offset;
}
var position = "width:" + width + "px; max-height:" + size.y + "px; "
+"position: absolute; top:" + top + "px; left:" + left + "px;";
return position;
},
destroy: function () {
if (this.opendiv) {
EAC.blockRemove(this.opendiv);
EAC.backgroundLayer(false,this.params.id+'-bglayer');
}
this.opendiv = false;
},
close: function (after) {
if (this.opendiv) {
if (typeof this.closeInner == 'function') this.closeInner();
if (this.drag) this.drag.destroy();
EAC.effectRemove(this.opendiv,this.params.effects[1],EAC.backgroundLayer(false,this.params.id+'-bglayer'));
if (this.params.onclose) eval(this.params.onclose);
if (typeof after == 'function') try {after()} catch(e) {alert(e)};
if (typeof after == 'string') try {eval(after)} catch(e) {alert(e)};
}
EAC.backgroundLayer(false,this.params.id+'-bglayer');
this.opendiv = false;
},
hide: function (_effect,after) {
if (_effect !== false && typeof(Effect) != "undefined") {
_effect = _effect || this.params.effects[1];
if (typeof after == 'function')
this.effect(_effect,{afterFinish:after, duration: (this.params.effects[2] || 1.0)});
else
this.effect(_effect,{duration: (this.params.effects[2] || 1.0)});
} else Element.hide(this.opendiv);
EAC.backgroundLayer(false,this.params.id+'-bglayer');
this.isVisible = false;
},
show: function (_effect,after) {
if (this.params.bgopacity)
EAC.backgroundLayer(true,this.params.id+'-bglayer',{opacity: this.params.bgopacity, zindex: (this.params.zindex-10), style: this.params.background, within: this.params.within});
if (_effect !== false && typeof(Effect) != "undefined") {
_effect = _effect || this.params.effects[0];
if (typeof after == 'function')
this.effect(_effect,{afterFinish:after, duration: (this.params.effects[2] || 1.0)});
else
this.effect(_effect,{duration: (this.params.effects[2] || 1.0)});
} else Element.show(this.opendiv);
this.isVisible = true;
},
toggle: function(_effects,after) {
_effects = _effects || this.params.effects;
if (this.isVisible) this.hide(_effects[1],after);
elsethis.show(_effects[0],after);
},
move: function (top,left,position,after) {
if (typeof(Effect) == "undefined") return;
var position = position || 'absolute';
if (typeof after == 'function')
this.effect('Move',{y:top, x:left, mode:position, afterFinish:after});
else
this.effect('Move',{y:top, x:left, mode:position});
},
scale: function (percent,after) {
if (typeof(Effect) == "undefined") return;
if (percent < 2) percent *= 100;
if (typeof after == 'function')
this.effect('Scale',percent,{scaleMode:'content', afterFinish:after});
else
this.effect('Scale',percent,{scaleMode:'content'});
},
effect: function (_effect) {
if (typeof(Effect) == "undefined") return;
if (arguments.length > 2)
new Effect[_effect](this.opendiv,arguments[1],arguments[2]);
else
new Effect[_effect](this.opendiv,arguments[1]);
}
}
EAC.anchorWindow = Class.create();
EAC.anchorWindow.prototype = {
initialize: function (windowArgs) {
var url = windowArgs.div.href;
var baseURL = (url.indexOf("?")!==-1) ? url.substr(0, url.indexOf("?")) : url;
var query = url.replace(/^[^\?]+\??/,'');
var params = {};
params.title = windowArgs.div.title || '';
params.close = 'Close';
//params.bgopacity = 3/5;
if (query) {
var pairs = query.split(/[;&]/);
for (var k = 0; k < pairs.length; k++) {
var KeyVal = pairs[k].split('=');
if (!KeyVal || KeyVal.length != 2 ) {continue;}
var key = unescape(KeyVal[0]);
var val = unescape(KeyVal[1]);
val = val.replace(/\+/g, ' ');
params[key] = val;
}
}
if (!params['width']) params['width'] = 600;
if (!params['height']) params['height'] = 400;
windowArgs.div.href = "javascript:void(null)";
Event.observe(windowArgs.div, 'click', function(event) {
return EAC.onThisPage(baseURL,params['width'],params['height'],'center','center',params);
}.bindAsEventListener(this));
}
}
EAC.autoWindow = function() {
var windowArgs = (EAC.typeOf(arguments[0]) == 'event') ? arguments[1] || {} : arguments[0] || {};
if (!windowArgs.mainClass) windowArgs.mainClass = EAC.defaults.floatingWindow.mainClass;
var classes = windowArgs.mainClass.split(',');
var divs = document.getElementsByTagName("a");
for (i=0; i < divs.length; i++) {
if (divs[i].className) {
for (j=0; j < classes.length; j++) {
if ((' ' + divs[i].className + ' ').indexOf(' ' + classes[j] +' ') != -1) {
windowArgs.div = divs[i];
if (windowArgs.div.href) {
windowArgs.mainClass = classes[j];
var w = new EAC.anchorWindow(windowArgs);
}
break;
}
}
}
}
}
EAC.onThisPage = function (a1,a2,a3,a4,a5,a6) {
var args = EAC._parseWindowArgs(arguments);
var name = ( (args[5].id || EAC.defaults.floatingWindow.id) + "-controller").camelize();
if (window[name] && window[name].destroy) window[name].destroy();
window[name] = new EAC.floatingWindow(a1,a2,a3,a4,a5,a6);
window[name].params.effects = [EAC.defaults.showEffect,EAC.defaults.hideEffect];
return false;
}
if (EAC.defaults.floatingWindow.autoRun) {
Event.observe(window, 'load', EAC.autoWindow);
//document.observe('dom:loaded', EAC.autoWindow);
}