function addEvent( obj, type, fn ) {
	if (obj.addEventListener) {
		obj.addEventListener( type, fn, false );
		EventCache.add(obj, type, fn);
	}
	else if (obj.attachEvent) {
		obj["e"+type+fn] = fn;
		obj[type+fn] = function() { obj["e"+type+fn]( window.event ); }
		obj.attachEvent( "on"+type, obj[type+fn] );
		EventCache.add(obj, type, fn);
	}
	else {
		obj["on"+type] = obj["e"+type+fn];
	}
}

var EventCache = function(){
	var listEvents = [];
	return {
		listEvents : listEvents,
		add : function(node, sEventName, fHandler){
			listEvents.push(arguments);
		},
		flush : function(){
			var i, item;
			for(i = listEvents.length - 1; i >= 0; i = i - 1){
				item = listEvents[i];
				if(item[0].removeEventListener){
					item[0].removeEventListener(item[1], item[2], item[3]);
				};
				if(item[1].substring(0, 2) != "on"){
					item[1] = "on" + item[1];
				};
				if(item[0].detachEvent){
					item[0].detachEvent(item[1], item[2]);
				};
				item[0][item[1]] = null;
			};
		}
	};
}();
addEvent(window,'unload',EventCache.flush);

/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */

//Optionally, change 1.0 and 0.7 below to affect Wipe gradient size and duration in seconds in IE5.5+:
var filterstring="progid:DXImageTransform.Microsoft.GradientWipe(GradientSize=1.0 Duration=0.7)";
var currimg=0;
var cycletimer;
//set image delay in seconds
var imgdelay=2.5;
imgdelay *= 1000;
var shirtselect;
var thumblinks = new Array;
var mainimg='dynloadarea';

/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */

//declare unique dynimages on each page
function imgpreload() {
	if (typeof dynimages != 'undefined') {
		for (x=0; x<dynimages.length; x++){
			var myimage=new Image();
			myimage.src=dynimages[x][0];
		}
	}
}

function imgByIndex(dynID,imgindex){
	var imgobj=document.getElementById(dynID);
	var actimg=imgobj.getElementsByTagName("img")[0];
	if (imgobj.filters && window.createPopup){
		imgobj.style.filter=filterstring;
		imgobj.filters[0].Apply();
	}
	if (document.images && actimg.src != dynimages[imgindex][0]) {
		actimg.src=dynimages[imgindex][0];
	}
	if (imgobj.filters && window.createPopup) {
		imgobj.filters[0].Play()
	}
	currimg=imgindex;
	return false;
}

function thumbSelect (obj) {
	thumbnum=obj.id.substring(2)*1;
	imgByIndex(mainimg,thumbnum);
	if ((shirtselect != null)&&(typeof dynimages[thumbnum][1] != 'undefined')) {
		selectstyle (dynimages[thumbnum][1]);
	}
}

function initthumbs(){
	var thumbset=document.getElementById("thumbnails");
	thumblinks=thumbset.getElementsByTagName("img");
	if (thumblinks.length > 0) {
		for (var i=0; i<thumblinks.length; i++) {
			thumblinks[i].id = "th" + i;
			
			addEvent(thumblinks[i], 'mouseover', function(){
				thumbSelect(this);
				return false;
			});
		}
	}
}

/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */

function startcycle() {
	cycletimer=setInterval("nextimage()",imgdelay);
}

function stopcycle() {
	clearInterval(cycletimer);
}

function nextimage() {
	currimg++;
	if (currimg == dynimages.length) {
		currimg=0;
	}
	imgByIndex(mainimg,currimg);
}

/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */

function initselect(){
	shirtselect=document.getElementById('os1');
	if (shirtselect != null) {
		addEvent(shirtselect, 'change', function() {          		
			imgByIndex(mainimg,this.selectedIndex);
		});
	}
	
}

function selectstyle(stylenum){
	shirtselect=document.getElementById('os1');
	var shirtops=shirtselect.getElementsByTagName("option");
	if (stylenum < shirtops.length) {
		shirtselect.selectedIndex=stylenum;
	}
}

/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */

addEvent(window, 'load', function() {           		
	imgpreload();
	initthumbs();
	if (typeof cycleon != 'undefined') {
		startcycle();
	}
	initselect();
});