﻿
function netvgallery(name, list, width, speed){
	this.list=list;
	this.name=name;
	this.width=width;
	
	var index=0;
	var oindex=0;
	var running=false;
	var me=this;
	var divs=Element.immediateDescendants(name+'_container');
	try{
		var directlinks=Element.immediateDescendants(name+'_browser');
	}
	catch(error){
	}
	var duration=speed;
	this.load_=function (){
		var nindex=(index<list.length-1)? index+1: 0;
		var pindex=(index>0)? index-1: list.length-1;
		
		var pdiv=divs[pindex];
		var div=divs[index];
		var ndiv=divs[nindex];
		
		var pimg=Element.immediateDescendants(pdiv);
		var img=Element.immediateDescendants(div);
		var nimg=Element.immediateDescendants(ndiv);
		
		Element.setStyle(divs[oindex], 'z-index:5;');
		Element.setStyle(pdiv, 'z-index:5;left:-'+width+'px;');
		Element.setStyle(div, 'z-index:10;left:0px;');
		Element.setStyle(ndiv, 'z-index:5;left:'+width+'px;');

		pimg[0].src=list[pindex][0];
		img[0].src=list[index][0];
		nimg[0].src=list[nindex][0];
		try{
			Element.removeClassName(directlinks[oindex], "netvgallery_browseitem_act");
			Element.addClassName(directlinks[index], "netvgallery_browseitem_act");
		}
		catch(error){
		}
		
	};

	this.next=function (){
		if(!running){
			running=true;
			oindex=index;
			index=(index<list.length-1)? index+1: 0;
			var odiv=divs[oindex];
			var ndiv=divs[index];
			Element.setStyle(ndiv, 'z-index:11;');
			new Effect.Move(ndiv, { x: 0, y: 0, mode: 'absolute', duration: duration, transition: Effect.Transitions.sinoidal});
			new Effect.Move(odiv, { x: -width, y: 0, mode: 'absolute', duration: duration, transition: Effect.Transitions.sinoidal,afterFinish:this.remove});
			
		}
	};

	this.prev=function (){
		if(!running){
			running=true;
			oindex=index;
			index=(index>0)? index-1: list.length-1;
			var odiv=divs[oindex];
			var ndiv=divs[index];
			Element.setStyle(ndiv, 'z-index:11;');
			new Effect.Move(ndiv, { x: 0, y: 0, mode: 'absolute', duration: duration, transition: Effect.Transitions.sinoidal });
			new Effect.Move(odiv, { x: width, y: 0, mode: 'absolute', duration: duration, transition: Effect.Transitions.sinoidal ,afterFinish:this.remove});
		}
	};
	/*
	this.next2=function (){
		if(!running){
			running=true;
			oindex=index;
			index=(index<list.length-1)? index+1: 0;
			var odiv=divs[oindex];
			var ndiv=divs[index];
			Element.setStyle(ndiv, 'z-index:11;left:0px;display:none;');
			new Effect.Appear(ndiv, { duration: 1.0, transition: Effect.Transitions.linear,afterFinish:this.remove});
			//new Effect.Fade(odiv, { duration: 1.0, transition: Effect.Transitions.spring,afterFinish:this.remove});
			
		}
	};

	this.prev2=function (){
		if(!running){
			running=true;
			index=(index>0)? index-1: list.length-1;
			oindex=index;
			var odiv=divs[oindex];
			var ndiv=divs[index];
			Element.setStyle(ndiv, 'z-index:11;left:0px;display:none;');
			new Effect.Appear(ndiv, { duration: 1.0, transition: Effect.Transitions.linear,afterFinish:this.remove });
			//new Effect.Fade(odiv, { duration: 1.0, transition: Effect.Transitions.spring ,afterFinish:this.remove});
		}
	};
	*/
	this.jump=function (i){
		if(!running){
			running=true;
			oindex=index;
			index=i;
			this.remove();
		}
	};

	this.remove=function (){
		$(name+'_caption').innerHTML=list[index][1];
		$(name+'_picnum').innerHTML=index+1;
		me.load_();
		running=false;
	};
	this.load_();
}
