function fnOpenWindow(url,parameters)
{
	var aParameters=parameters.split(',');
	var data=new Array();
	for (var i=0;i<aParameters.length;i++)
	{
		var pr=aParameters[i];
		var key = pr.substr(0,pr.indexOf('='));
		var value=pr.substr(pr.indexOf('=')+1);
		data[key]=value;
	}



	if ( (data['hposition'])&&(data['width'])&&(data['hposition']!='system') )
	{
		var posX=null;
		if (data['hposition']=='left')
		{
			posX=0;
		}
		if ( (window.screen)&&(window.screen.availWidth) )
		{
			if (data['hposition']=='center')
				posX=(window.screen.availWidth-data['width'])/2;
			if (data['hposition']=='right')
				posX=window.screen.availWidth-data['width'];
		}

		if (posX!=null)
			parameters+=",left="+parseInt(posX);
	}

	if ( (data['vposition'])&&(data['height'])&&(data['vposition']!='system') )
	{
		var posY=null;
		if (data['vposition']=='top')
		{
			posY=0;
		}
		if ( (window.screen)&&(window.screen.availHeight) )
		{
			if (data['vposition']=='center')
				posY=(window.screen.availHeight-data['height'])/2;
			if (data['vposition']=='bottom')
				posY=window.screen.availHeight-data['height'];
		}

		if (posY!=null)
			parameters+=",top="+parseInt(posY);
	}


	var oWnd=window.open(url,'',parameters);
	oWnd.focus();
}

function getById(el) {
	return document.getElementById(el);
}

function getByTag(par,el) {
	var par = (par == '') ? document.body : par;
	if (!par) return new Array();
	return par.getElementsByTagName(el);
}

function addClass(obj,newClass) {
	if(!obj.className.match(new RegExp(newClass)))
		obj.className+=(obj.className.length>0? " ": "") + newClass;
}
	
function removeClass(obj,oldClass) {
	obj.className=obj.className.replace(new RegExp("( ?|^)"+oldClass+"\\b"), "");
}

function getByClass(cla,par,el) {
	var par = (par == '') ? document.body : par;
	var el = (el == '') ? '*' : el;
	if(/.*native code.*/.test(document.getElementsByClassName)) {
		return par.getElementsByClassName(cla);
	}
	else {
		var tagColl = par.getElementsByTagName(el);
		trimedColl = new Array;
		for (var i = 0; tagColl[i]; i++) {
			if(tagColl[i].className.match(new RegExp(cla))) {
				trimedColl[trimedColl.length]=tagColl[i];
			}
		}
		return trimedColl;
	}
}

function getPageY() {
	var docHeight = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight;
	// Order maters here as for IE 6 documentElement.clientHeight != body.clientHeight
	var docScrollY = document.documentElement.scrollTop || document.body.scrollTop;
	return [docHeight,docScrollY];
}

function GET_XMLHTTPRequest() {
	var request;
	try{
		request = new ActiveXObject("Microsoft.XMLHTTP");
	}
	catch(ex1){
		try{
			request = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch(ex2){
			try{
				request = new ActiveXObject("Msxml3.XMLHTTP");
			}
			catch(ex3){
				request = null;
			}
		}
	}
	if(!request && typeof XMLHttpRequest != "undefined"){
		request = new XMLHttpRequest();
	}
	return request;
}

var addEvent = function() {
  if (window.addEventListener) {
    return function(el, type, fn) {
      el.addEventListener(type, fn, false);
    };
  } else if (window.attachEvent) {
    return function(el, type, fn) {
      var f = function() {
        fn.call(el, window.event);
      };
      el.attachEvent('on' + type, f);
    };
  }
}();



// function setLinks(linkTags){
// 	var linkCollection = [];
// 	for (var j = 0; j < linkTags.length; j++) {
// 		linkCollection[j] = document.getElementsByTagName(linkTags[j]);
// 		for (var i = 0; i < linkCollection[j].length; i++) {
// 			if(/bookmark|external|corporate|sponsor/.test(linkCollection[j][i].getAttribute('rel'))) {
// 				linkCollection[j][i].onclick = function(e) {
// 					if (!e) var e = window.event;
// 					if (e.shiftKey || e.altKey || e.ctrlKey || e.metaKey)
// 						return true;
// 					if(/\.pdf$/.test(this.href))
// 						return true;
// 					window.open(this.href);
// 					return false;
// 				}
// 			}
// 		}
// 	}
// }

function setLinks(linkTags){
	var linkCollection = [];
	for (var j = 0; linkTags[j]; j++) {
		linkCollection[j] = getByTag('',linkTags[j]);
		for (var i = 0; linkCollection[j][i]; ++i) {
			if(/bookmark|external|corporate|sponsor|download/.test(linkCollection[j][i].getAttribute('rel'))) {
				linkCollection[j][i].onclick = function(e) {
					if (!e) var e = window.event;
					if (e.shiftKey || e.altKey || e.ctrlKey || e.metaKey)
						return true;
					window.open(this.href);
					return false;
				}
			}
			else if(/zoom/.test(linkCollection[j][i].getAttribute('rel'))) {
				new Zoom(linkCollection[j][i]);
			}
		}
	}
}

function graphic() {
	var h2Collection = document.getElementsByTagName('h2');
	for (var i = 0; i < h2Collection.length; i++) {
		if(h2Collection[i].parentNode.id == 'content') {
			var span = document.createElement('span');
			h2Collection[i].appendChild(span);
		}
	}
	var h3Collection = document.getElementById('content').getElementsByTagName('h3');
	for (var i = 0; i < h3Collection.length; i++) {		
		var span = document.createElement('span');
		h3Collection[i].appendChild(span);
	}
	var ns = document.getElementById('navigation-sections');
	if(ns) {
		var liCollection = ns.getElementsByTagName('li');
		for (var i = 0; i < liCollection.length; i++) {
		var lia = liCollection[i].getElementsByTagName('a')[0];
			if(lia) {
				lia.onmouseover = function() {
					addClass(this.parentNode,'on');
				}
				lia.onmouseout = function() {
					removeClass(this.parentNode,'on');
				}
			}
		}
	}
}

function ieGraphic() {
	var ulCollection = document.getElementsByTagName('ul');
	for (var i = 0; i < ulCollection.length; i++) {
		if(ulCollection[i].getElementsByTagName('li')[0]){
			addClass(ulCollection[i].getElementsByTagName('li')[0],'first-child');
			
			var allliCollection = ulCollection[i].getElementsByTagName('li');
			var liCollection = new Array();
			var k = 0;
			for (var j = 0; j < allliCollection.length; j++) {
				if(allliCollection[j].parentNode == ulCollection[i]) {
					liCollection[k] = allliCollection[j];
					k++;
				}
			}			
			for (var j = 0; j < liCollection.length; j++) {
				if(j>0) {
					addClass(liCollection[j],'piped');
				}
				if(j == (liCollection.length - 1)) {
					addClass(liCollection[j],'last-child');
				}
			}			
		}
	}
//	reloadObjects();
}

function reloadObjects() {
	var objs = document.getElementsByTagName('object');
	for (var i = 0; i < objs.length; i++) {
		 objs[ i ].outerHTML = objs[ i ].outerHTML;
	}
}

function addIeFix(obj) {
	var span = document.createElement('span');
	span.className = 'ie-fix';
	obj.appendChild(span);
}

function ieFix() {
	var wc = document.getElementById('wrapper-content');
	if(wc)
		addIeFix(wc.parentNode);
}


function setMarquee() {
	ticker = document.getElementById("marquee");
	if(!ticker) return;
	ticker.innerHTML = "<marquee scrollDelay='1' scrollAmount='3'>" + ticker.innerHTML + "</marquee>";
	

}

function setShowcase() {
	var sc = document.getElementById('showcase');
	if(!sc) return;
	new Showcase(sc);
}

function Showcase(box) {
	this.box = box;
	var items = getByClass('item',box,'div');
	this.items = items;
	this.hover = false;
	if(items.length>3) {
		var rTimeout = setTimeout(function (that) {
	        return function () {
	            that.rotate()
	        }
	    }(this), 3500);
	}
	this.box.onmouseover = function (that) {
        return function () {
            that.hover = true;
        }
    }(this);
	this.box.onmouseout = function (that) {
        return function () {
            that.hover = false;
        }
    }(this);
}

Showcase.prototype = {
	rotate: function() {
		if(this.hover == false) {
			this.box.appendChild(this.items[0]);
			var items = getByClass('item',this.box,'div');
			this.items = items;
		}
		var rTimeout = setTimeout(function (that) {
	        return function () {
	            that.rotate()
	        }
	    }(this), 3500);
	}
}



/* Overlay
---------------------- */
function Zoom(a) {
	initOverlay();
	this.a = a;
	this.overlay = getById('overlay');
	this.container = getById('overlayContainer');
	this.container.w = 400;
	this.container.h = 250;
	this.a.onclick = function (that) {
        return function () {
            that.click(this.href);
			return false;
        }
    }(this);

}

Zoom.prototype.click = function (file) {
	this.file = file;
	this.overlay.innerHTML = '<span id="loading"></span>';
	getById('loading').style.top = ((getPageY()[0] - 36) / 2) + getPageY()[1] + 'px';
//	this.changePosition();
	removeClass(this.overlay,'hidden');
	removeClass(this.container,'hidden');
	// this.changePosition();
	var req = GET_XMLHTTPRequest();
	if (req) {
		req.open("GET", this.file, true);
		req.setRequestHeader('User-Agent','XMLHTTP/1.0');
		req.onreadystatechange = function (that) {
	        return function (aEvt) {
				if (req.readyState != 4) return;
				if (req.status != 200 && req.status != 304) {
					that.handleError(req);
					return;
				}
	            if(req.readyState == 4){
					that.handleRequest(req);
				}
	        }
	    }(this);
		req.send(null);
	}
	else {
		getById('overlayContainer').innerHTML = 'Unable to load content';
		this.createNav();
		this.changePosition();
	}
}

Zoom.prototype.changePosition = function () {
	this.container.style.width = this.container.w + 'px';
	this.container.style.height = this.container.h + 'px';
	this.container.style.marginLeft = -(this.container.w)/2 + 'px';
	this.container.style.top = ((getPageY()[0] - this.container.h) / 2) + getPageY()[1] + 'px';
	this.overlay.innerHTML = '';
}

Zoom.prototype.handleRequest = function(req) {
	this.container.innerHTML = req.responseText;
	var innerContent = getById('overlayInnerContent');
	if(innerContent) {
		this.createNav();
		this.container.w = innerContent.offsetWidth;
		this.container.h = innerContent.offsetHeight;
		this.changePosition();
	}
}

Zoom.prototype.handleError = function(req) {
	this.container.innerHTML = '<strong>Data error :</strong> HTTP error' + req.status + '';
	this.container.w = 400;
	this.container.h = 250;
	this.createNav();
	this.changePosition();
}

Zoom.prototype.createNav = function () {
	if(!getById('overlayNav')){
		var div = document.createElement('div');
		div.id = 'overlayNav';
		this.container.appendChild(div);
	}
	this.nav = getById('overlayNav');
	this.nav.items = getByTag(this.nav,'a');
	for(var i = 0; this.nav.items[i]; i++) {
		new Zoom(this.nav.items[i]);
	}
	var c = document.createElement('a');
	c.href= "#";
	c.className = "closer";
	c.onclick = function (that) {
        return function () {
			that.close();
			return false;
		}
	}(this);
	this.closer = this.nav.appendChild(c);
}

Zoom.prototype.close = function () {
	addClass(this.container,'hidden');
	addClass(this.overlay,'hidden');
	this.container.innerHTML = '';
	return false;
}

function initOverlay () {
	if(!getById('overlay')) {
		var ov = document.createElement('div');
		ov.id = "overlay";
		ov.className = 'hidden';
		ov.style.height = getById('page').offsetHeight + 'px';
		document.getElementsByTagName('body')[0].appendChild(ov); 
	}
	if(!getById('overlayContainer')) {
		var ovCt = document.createElement('div');
		ovCt.id = "overlayContainer";
		ovCt.className = 'hidden';
		document.getElementsByTagName('body')[0].appendChild(ovCt); 
	}
}

/* Init
-------------------- */
var init = function() {
	if (arguments.callee.done) return;
	arguments.callee.done = true;
	if(!document.getElementsByTagName)
		return;
	addClass(getById('page'),'scripted');
	graphic();
	setLinks(['a','area']);
	setMarquee();
	setShowcase();
	/*@cc_on @*/
	/*@if (@_win32) {
		ieFix();
		ieGraphic();
	}
	/*@end @*/
}

if (/WebKit/i.test(navigator.userAgent)) {
	var _timer = setInterval(function() {
		if (/loaded|complete/.test(document.readyState)) {
			clearInterval(_timer);
			init();
		}
	}, 10);
}

else if (document.addEventListener) {
    document.addEventListener("DOMContentLoaded", init, null);
}

else {
	/*@cc_on @*/
	/*@if (@_win32)
	document.write("<script id=__ie_onload defer src=javascript:void(0)><\/script>");
	var script = document.getElementById("__ie_onload");
	script.onreadystatechange = function() {
		if (this.readyState == "complete") {
			init();
		}
	};
	/*@end @*/
	window.onload = init;
}
