var dom = document.getElementById;var iex = document.all;var ns4 = document.layers;var rollOvers = new Object(), rollOverList = new Object();var mouseX, mouseY, enterX, enterY;var currentItem, currentText;function popup( filename, params, width, height, resizable, scrollbars, windowName, centered ){	if ( width == 0 ) width = screen.availWidth - 20;	if ( height == 0 ) height = screen.availHeight - 20;	if ( centered == true ) {		topX = (screen.availWidth/2)-(width/2);		topY = (screen.availHeight/2)-(height/2);	} else {		topX = 20;		topY = 20;	}	if ( params != "" ) params = "?" + params;	window.open( filename + params, windowName, "resizable=" + resizable + ",scrollbars=" + scrollbars + ",top=" + topY + ", left=" + topX + ",width=" + width + ",height=" + height);}RollOver = function(root, ext){	this.root = root;	this.ext = ext;	this.over = new Image();	this.over = new Object();	this.over.src = root+"-over"+ext;	this.out = new Image();	this.out = new Object();	this.out.src = root+ext;}RollOverSet = function() {	this.rollOvers = new Object();	this.rollOverList = new Object();}RollOverSet.prototype.addRollOver = function( name, path, ext){	var ro = new Object();	ro.path = path;	ro.ext = ext;	this.rollOverList[name] = ro;}RollOverSet.prototype.loadRollOvers = function(){	var name;	for ( name in this.rollOverList ) {		var rol = this.rollOverList[name];		this.rollOvers[name] = new RollOver( rol.path, rol.ext );	}}RollOverSet.prototype.mouseOver = function( imgName ){	getElement(imgName).src = this.rollOvers[imgName].over.src;}RollOverSet.prototype.mouseOut = function( imgName ){	getElement(imgName).src = this.rollOvers[imgName].out.src;}function addEvent(event,method){	this[event] = method;	if(ns4) this.captureEvents(Event[event.substr(2,event.length).toUpperCase()]);}function removeEvent(event){	this[event] = null;	if(ns4) this.releaseEvents(Event[event.substr(2,event.length).toUpperCase()]);}function getElement(name){	var el = dom ? document.getElementById(name) : iex ? document.all[name] : ns4 ? eval("document."+name) : false;	if ( el == null ) return null;	el.css = ns4 ? el : el.style;	el.getTop = function(){return parseInt(el.css.top) || 0};	el.setTop = function(y){el.css.top = ns4 ? y: y+"px"};	el.getLeft = function(){return parseInt(el.css.left) || 0};	el.setLeft = function(x){el.css.left = ns4 ? x: x+"px"};	el.getHeight = function(){return ns4 ? el.document.height : el.offsetHeight};	el.getWidth = function(){return ns4 ? el.document.width : el.offsetWidth};	el.getClipHeight = function(){return ns4 ? el.clip.height : el.offsetHeight};	el.hideVis = function(){el.css.visibility="hidden"};	el.showVis = function(){el.css.visibility="visible"};	el.addEvent = addEvent;	el.removeEvent = removeEvent;	return el;}function getYMouse(e){	return iex ? event.clientY : e.pageY;}document.addEvent = addEvent;document.removeEvent = removeEvent;ScrollObj = function(speed, groupName){	this.speed = speed;	this.trackObj = getElement(groupName+"ScrollTrack");//	this.upObj = getElement(groupName+"ScrollUp");//	this.downObj = getElement(groupName+"ScrollDown");	this.dragObj = getElement(groupName+"ScrollThumb");	this.contentMaskObj = getElement(groupName+"ContentClip");	this.contentObj = getElement(groupName+"Content");	this.obj = groupName+"ContentObject";	eval(this.obj+"=this");		this.dragHeight = this.dragObj.getHeight()-2 - (iex ? 4 : 0);	this.trackHeight = getElement(groupName+"ScrollThumbTrack").getHeight();	this.trackTop = this.trackObj.getTop();	this.trackLength = this.trackHeight-this.dragHeight;	this.trackBottom = this.trackTop+this.trackLength;	this.contentMaskHeight = this.contentMaskObj.getClipHeight();	this.contentHeight = this.contentObj.getHeight();	this.contentLength = this.contentHeight-this.contentMaskHeight;	this.scrollLength = this.trackLength/this.contentLength;	this.scrollTimer = null;		if (this.contentHeight <= this.contentMaskHeight) {		this.dragObj.hideVis();//		this.upObj.hideVis();//		this.downObj.hideVis();//		this.trackObj.hideVis();	} else {		var self = this;//		this.trackObj.addEvent("onmousedown", function(e){self.scrollJump(e);return false});//		this.upObj.addEvent("onmousedown", function(){self.scroll(self.speed);return false});//		this.upObj.addEvent("onmouseup", function(){self.stopScroll()});//		this.upObj.addEvent("onmouseout", function(){self.stopScroll()});//		this.downObj.addEvent("onmousedown", function(){self.scroll(-self.speed);return false});//		this.downObj.addEvent("onmouseup", function(){self.stopScroll()});//		this.downObj.addEvent("onmouseout", function(){self.stopScroll()});		this.dragObj.addEvent("onmousedown", function(e){self.startDrag(e);return false});		if(iex) this.dragObj.addEvent("ondragstart", function(){return false});	}}ScrollObj.prototype.startDrag = function(e){	this.dragStartMouse = getYMouse(e);	this.dragStartOffset = this.dragObj.getTop();	var self = this;	document.removeEvent("onmousemove");	document.addEvent("onmousemove", function(e){self.drag(e)});	document.addEvent("onmouseup", function(){self.stopDrag()});}ScrollObj.prototype.stopDrag = function() {	document.removeEvent("onmousemove");	document.addEvent("onmousemove", getMouse);	document.removeEvent("onmouseup");}ScrollObj.prototype.drag = function(e){	var currentMouse = getYMouse(e);//	var currentMouse = getMouseY();	var mouseDifference = currentMouse-this.dragStartMouse;	var dragDistance = this.dragStartOffset+mouseDifference;	var dragMovement = (dragDistance<this.trackTop) ? this.trackTop : (dragDistance>this.trackBottom) ? this.trackBottom : dragDistance;	this.dragObj.setTop(dragMovement);	var contentMovement = -(dragMovement-this.trackTop)*(1/this.scrollLength);	this.contentObj.setTop(contentMovement);}ScrollObj.prototype.scroll = function(speed){	var contentMovement = this.contentObj.getTop()+speed;	var dragMovement = this.trackTop-Math.round(this.contentObj.getTop()*(this.trackLength/this.contentLength));	if(contentMovement > 0){		contentMovement = 0;	}else if(contentMovement < -this.contentLength){		contentMovement = -this.contentLength;	}	if ( dragMovement < this.trackTop ) {		dragMovement = this.trackTop;	} else if ( dragMovement > this.trackBottom ) {		dragMovement = this.trackBottom;	}	this.contentObj.setTop(contentMovement);	this.dragObj.setTop(dragMovement);	this.scrollTimer = window.setTimeout(this.obj+".scroll("+speed+")",25);}ScrollObj.prototype.stopScroll = function(){	if(this.scrollTimer){		window.clearTimeout(this.scrollTimer);		this.scrollTimer = null;	}}ScrollObj.prototype.scrollJump = function(e){	var currentMouse = getYMouse(e);	var dragDistance = currentMouse-(this.dragHeight/2);	var dragMovement = (dragDistance<this.trackTop) ? this.trackTop : (dragDistance>this.trackBottom) ? this.trackBottom : dragDistance;	this.dragObj.setTop(dragMovement);	var contentMovement = -(dragMovement-this.trackTop)*(1/this.scrollLength);	this.contentObj.setTop(contentMovement);}Portfolio = function(){	this.items = new Object();}Portfolio.prototype.getItem = function( itemName ){	return this.items[itemName];}Portfolio.prototype.addItem = function( item ){	this.items[item.getName()] = item;}Portfolio.prototype.load = function(){	var i;	this.loaded = false;	for ( i in this.items ) {		this.items[i].load();	}}PortfolioItem = function( name, filename, numPages ){	this.name = name;	this.filename = filename;	this.numPages = numPages;	this.pages = new Array("");	for ( i = 1; i <= this.numPages; i++ ) {		this.pages[i] = new Image();		this.pages[i].src = "images/portfolio/loading.jpg";	}}PortfolioItem.prototype.load = function(){	for ( i = 1; i <= this.numPages; i++ ) {		if ( this.pages[i] == null ) this.pages[i] = new Image();		this.pages[i].src = "images/portfolio/samples/" + this.filename + i + ".jpg";	}}PortfolioItem.prototype.getName = function(){	return this.name;}PortfolioItem.prototype.getSrc = function(page){	return this.pages[page].src;}PortfolioItem.prototype.getNumPages = function(){	return this.numPages;}function displayItem( name, page ){	if ( currentItem != null ) getElement(currentItem + "Label").className = "item";	if ( currentText != null ) currentText.className = "itemText";	var item = portfolio.getItem(name);	if ( item == null ) return;	getElement("item").src = "images/portfolio/loading.jpg";	item.load();	currentItem = item.getName();	currentText = getElement(currentItem+"Text"+page);	currentText.className = "itemTextOn";	getElement(currentItem + "Label").className = "itemOn";	getElement("item").src = item.pages[page].src;	for ( i = 1; i < 4; i++ ) {		element = getElement("page"+i);		if ( i <= item.getNumPages() ) element.showVis();		else element.hideVis();		if ( i == page ) element.src = "images/portfolio/page-on.gif";		else element.src = "images/portfolio/page.gif";	}}function getMouse(e){	mouseY = iex ? event.clientY : e.pageY;	mouseX = iex ? event.clientX : e.pageX;}function getMouseY(){	return mouseY;}function fixNetscape4(){	if ( ns4origWidth != window.innerWidth || ns4origHeight != window.innerHeight ) {		window.location.reload();	}	}if (document.layers){	ns4origWidth = window.innerWidth;	ns4origHeight = window.innerHeight;	window.onresize = fixNetscape4;}document.addEvent("onmousemove", getMouse);