

//////// general JS functions ////////

// general controlling scripts for Document Object Model manipulation

function makeObject(id) {
	this.layer;
	this.unit = "px";// for NS6
	var d = self.document;
	if(d.layers) {
		this.isNS4 = true;
		this.layer = getNsLayer(id, win);
	}
	else if(d.all) {
		this.isAll = true;
		this.layer = d.all[id];
	}
	else if(d.getElementById) {
		this.isDOM = true;
		this.layer = d.getElementById(id);
	}
	if(this.layer) {
		this.style = (this.isNS4)? this.layer: this.layer.style;
	}
	else this.layer = null;
}

// Methods:
makeObject.prototype.show = function () {
	if(this.isNS4) this.style.visibility = "show";
	else this.style.visibility = "visible";
}
makeObject.prototype.hide = function () {
	if(this.isNS4) this.style.visibility = "hide";
	else this.style.visibility = "hidden";
}
makeObject.prototype.replace = function (content) {
	if (this.isNS4) {
		this.layer.document.open();
		this.layer.document.write(content);
		this.layer.document.close();
	}
	else if (this.isAll) {
		this.layer.innerHTML = content;
	}
	else if (this.isDOM) {
		var r = this.layer.ownerDocument.createRange();
		r.selectNodeContents(this.layer);
		r.deleteContents();
		var df = r.createContextualFragment(content);
		this.layer.appendChild(df);
	}
}

function getNsLayer(id, el) {
	el = (el)? el:self;
	var layers = el.document.layers;
	if(layers[id]) return layers[id];
	for(var i=0; i<layers.length; i++) {
		return getNsLayer(id, layers[i]);
		alert('nslayer = ' + id);
	}
	return null;
}

//	Fixes the NS4 / CSS resize bug
nsResizeInit();
function nsResizeInit() {
	if (document.layers) {
		if (typeof document.NsResize == 'undefined')
			document.NsResize = {w:window.innerWidth, h:window.innerHeight}
		window.onresize = nsResizeFix;
	}
}
function nsResizeFix() {
	if (document.NsResize.w != window.innerWidth
	|| document.NsResize.h != window.innerHeight) {
		document.location = document.location;
	}
}

// popup window display and behaviour

function openViewingScreen (loc) { 
	var aw = screen.availWidth - 0;
	var ah = screen.availHeight - 0;
	var adjw = eval(aw-10);
	var adjh = eval(ah-40);	
	var LeftPosition = (screen.availWidth-aw)/2;;
	var TopPosition = (screen.availHeight-ah)/2;
	var url = 'project' + loc + '_intro.html';
	var properties = 'toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1,resizable=1';
	var settings =
	'height='+ adjh +',width=' + adjw + ',top='+TopPosition+',left='+LeftPosition+','+ properties;
	viewingScreen = window.open(url,'picWin',settings);
	if(url.indexOf("://") == -1) viewingScreen.focus();
	top.newWindow = true;
	return false;
}

function closeViewingScreen() {
	if ((opener == null) || (opener.closed == true)) {
		var newSite = window.open('work.html');
	}
	else { 
		opener.focus();
		self.close();
	}
}


// controlling functions for image rollovers

var sampleDelay = null;

function showSamplePic(spnum) {
	sampleDelay = setTimeout("samplePic('" + spnum + "')", 350);
}

function samplePic(spnum) {
	clearTimeout(sampleDelay);
	sampleDelay = null;
	samplepicObj.replace('<img src="images/sample_pics/' + spnum + '.jpg" alt="" border="0">');
}

function imgCache() {
	this.imgs = new Array(arguments.length);
	this.imgsOn = new Array(arguments.length);
	for (i = 0; i < arguments.length; i++) {
		imgs[arguments[i]] = new Image();
		imgsOn[arguments[i]] = new Image();
		imgs[arguments[i]].src = 'images/' + arguments[i] + '.gif';
		imgsOn[arguments[i]].src = 'images/' + arguments[i] + '_on.gif';
	}
	return this;	
}

function imgOn(img) { 
	document[img].src = imgsOn[img].src; 
}

function imgOff(img) { 
	document[img].src = imgs[img].src; 
}

function buttonsCache() {
	this.buttonGryImgs = new Array(arguments.length);
	this.buttonOnImgs = new Array(arguments.length);
	this.buttonOffImgs = new Array(arguments.length);
	for (i = 0; i < arguments.length; i++) {
		buttonGryImgs[arguments[i]] = new Image();
		buttonOnImgs[arguments[i]] = new Image();
		buttonOffImgs[arguments[i]] = new Image();
		buttonGryImgs[arguments[i]].src = 'images/' + arguments[i] + '_gry.gif';
		buttonOnImgs[arguments[i]].src = 'images/' + arguments[i] + '_on.gif';
		buttonOffImgs[arguments[i]].src = 'images/' + arguments[i] + '_off.gif';
	}
	return this;	
}

buttonsCache('bck', 'nxt');


/* function samplePicAlt(spnum) {
	document['spic'].src = photo[spnum];
}*/



