function gfx(path)
{

	
	this.ie = (document.all)? true : false;
	this.ie55 = (this.ie && (navigator.appVersion.indexOf("5.5") > 0 || navigator.appVersion.indexOf("6.0") > 0) ? true : false)
	
	this.path = path
	this.aInit = new Array()
	this.aSlide = new Array()
	this.aTrans = new Array()
	this.hadd = function (gfxname,maxstan)
	{
		for(var i=0; i < maxstan; i++)
		{
			this[gfxname.replace(/0/,i)] = new Image()
			this[gfxname.replace(/0/,i)].src = this.path + gfxname.replace(/0/,i)
		}
	}
	
	this.add = function (gfxname)
	{
		this[gfxname] = new Image()
		this[gfxname].src = this.path + gfxname
		this[gfxname.replace(/0/,"1")] = new Image()
		this[gfxname.replace(/0/,"1")].src = this.path + gfxname.replace(/0/,"1")
	}
	
	this.ou = function (gfxname,imgname)
	{
		document.images[imgname].src = this[gfxname].src
	}
	
	this.ov = function (gfxname,imgname)
	{
		document.images[imgname].src = this[gfxname.replace(/\d/,"1")].src
	}
	
	this.ch = function (gfxname,imgname,stan) 
	{
		document.images[imgname].src = this[gfxname.replace(/\d/,stan)].src
	}
	
	this.attach = function(gfxname,imgname)
	{
		var i = this.aInit.length
		if(!this[gfxname])
			this.add(gfxname)
		this.aInit[i] = [gfxname,imgname] 
	}
	
	this.init = function()
	{
		var i
		for(i=0; i < this.aInit.length; i++)
			{
			document.images[this.aInit[i][1]].onmouseover = new Function("g.ov('" + this.aInit[i][0] + "','" +  this.aInit[i][1] + "')")
			document.images[this.aInit[i][1]].onmouseout = new Function("g.ou('" + this.aInit[i][0] + "','" +  this.aInit[i][1] + "')")
			}
		for(i=0; i < this.aTrans.length; i++)
			{
			this.aptrans(this.aTrans[i].imagename,this.aTrans[i].trans_type,this.aTrans[i].arg)
			if(this.aTrans[i].trans_type == 6)
				{
				this.transapply(this.aTrans[i].imagename)
				this.transplay(this.aTrans[i].imagename)
				}
			}
		
		this.aInit = null
		this.aTrans = null	
		
	}	
	this.slideinit = function(imagename, gallength, gfxname)
	{
		this[imagename] = new Object()
		this[imagename].i = gallength
		this[imagename].timer = false
		this[imagename].loop = false
		this[imagename].curr_stan = 1
		this[imagename].trans = false
		this[imagename].trans_type = 0
		this[imagename].st = new Array()
		
		for(var i=0; i < gallength; i++)
			{
			this[imagename].st[i] = new Image()	
			this[imagename].st[i].src = this.path + gfxname.replace(/\d/,i)
			}
	}
	
	this.slideadd = function(imagename)
	{
		this[imagename] = new Object()
		this[imagename].i = arguments.length - 1
		this[imagename].timer = false
		this[imagename].loop = false
		this[imagename].curr_stan = 1
		this[imagename].trans = false
		this[imagename].trans_type = 0
		this[imagename].st = new Array()
		
		for(var i=0; i < arguments.length-1; i++)
			{
			this[imagename].st[i] = new Image()	
			this[imagename].st[i].src = this.path + arguments[i+1]
			}
	}
	
	
	
	
	
	this.slideset = function(imagename,stan)
	{
		
		if(this[imagename].curr_stan == this[imagename].i)
			{
			this[imagename].curr_stan = 0
			if(!this[imagename].loop)
				{
				this.slidestop(imagename)
				this[imagename].curr_stan = this[imagename].i - 1
				return
				}
			}
		if(arguments.length > 1)
			{
			this.slidestop(imagename)
			this.transapply(imagename)
			document.images[imagename].src = this[imagename].st[stan].src
			this.transplay(imagename)
			this[imagename].curr_stan = stan
			}
		else
			{
			this.transapply(imagename)
			document.images[imagename].src = this[imagename].st[this[imagename].curr_stan++].src	
			this.transplay(imagename)
			}
		
	}
	
	this.slideplay = function(imagename,time,loop)
	{
		if(!this[imagename].timer)
		{
			this[imagename].loop = loop
			this[imagename].curr_stan = 1
			this[imagename].timer = window.setInterval("g.slideset('" + imagename + "')",time)
		}
	}
	
	this.slidestop = function(imagename)
	{
		window.clearInterval(~~this[imagename].timer)
		this[imagename].timer = false
	}
	
	this.slidenext = function(imagename)
	{
		this[imagename].curr_stan++
		if(this[imagename].curr_stan >= this[imagename].i && this[imagename].loop)
			this[imagename].curr_stan = 0
		if(this[imagename].curr_stan >= this[imagename].i && !this[imagename].loop)
			this[imagename].curr_stan = this[imagename].i - 1
			
		this.slideset(imagename,this[imagename].curr_stan)
	}
	
	
	this.slideprev = function(imagename)
	{
		this[imagename].curr_stan--
		if(this[imagename].curr_stan < 0 && this[imagename].loop)
			this[imagename].curr_stan = this[imagename].i - 1
		if(this[imagename].curr_stan < 0 && !this[imagename].loop)
			this[imagename].curr_stan = 0
		
		
		this.slideset(imagename,this[imagename].curr_stan)
	}
	
	
	this.settrans = function(imagename,type)
	{
	
		if(this.ie)
		{
			this[imagename].trans_type = type
			this[imagename].trans = true
			
			var l = this.aTrans.length
			this.aTrans[l] = new Object()
			this.aTrans[l].trans_type = type
			this.aTrans[l].imagename = imagename
			this.aTrans[l].arg = new Array()
			for(var i=2; i < arguments.length; i++)
				this.aTrans[l].arg[i-2] = arguments[i]	
			
		}
	}
	
	this.aptrans = function(imagename,trans_type,arg) 
	{
		if(trans_type == 1)
			document.images[imagename].style.filter = "BlendTrans(duration=" + arg[0] + ")"
		else if(trans_type == 2)
			document.images[imagename].style.filter = "RevealTrans(duration=" + arg[0] + ", transition=" + arg[1] + ")"
		else if(trans_type == 3 && this.ie55)
			document.images[imagename].style.filter = "progid:DXImageTransform.Microsoft.Slide(duration=" + arg[0] + ", slideStyle='" + arg[1] + "', bands=" + arg[2] + ")"
		else if(trans_type == 4 && this.ie55)
			document.images[imagename].style.filter = "progid:DXImageTransform.Microsoft.Stretch(duration=" + arg[0] + ", stretchStyle='" + arg[1] + "')"
		else if(trans_type == 5 && this.ie55)
			document.images[imagename].style.filter = "progid:DXImageTransform.Microsoft.Wipe(duration=" + arg[0] + ", GradientSize=" + arg[1] + ", wipeStyle=" + arg[2] + ",motion='" + arg[3] + "')"
		else if(trans_type == 6 && this.ie55)
			document.images[imagename].style.filter = "progid:DXImageTransform.Microsoft.Pixelate(duration=" + arg[0] + ", MaxSquare=" + arg[1] + ")"
				
		else
			document.images[imagename].style.filter = "BlendTrans(duration=" + arg[0] + ")"
		
	}
	
	
	
	this.transapply = function(imagename)
	{
		if(this.ie && this[imagename].trans)
			document.images[imagename].filters[0].apply()
	}
	
	this.transplay = function(imagename)
	{
		if(this.ie && this[imagename].trans)
			document.images[imagename].filters[0].play()
	}

	this.transstop = function(imagename)
	{
		this[imagename].trans = false
	}

	this.transstart = function(imagename)
	{
		this[imagename].trans = true
	}

	this.setpath = function(path)
	{
		this.path = path
	}
	
	this.setloop = function(imagename,loop)
	{
		this[imagename].loop = loop
	}

	this.slidesetstart = function(imagename, stan)
	{
		this[imagename].curr_stan = stan
	}


}

