var PROJECTS = {
	settings:{},	
	defparams:{
		ppp: 10,
		start: 1,
		width: 650,
		buttons: 'big',
		showpaging: 1,
		showagency: 1,
		showurl:0
	},
	shuffle : function(o){
		for(var j, x, i = o.length; i; j = parseInt(Math.random() * i), x = o[--i], o[i] = o[j], o[j] = x);
		return o;
	},	
	move : function(id,cp){
		var f=cp-1,u='',x;
		var pcnt=Math.ceil(this.settings[id].data.length/this.settings[id].ppp); //pagecount		
		if (f < 0) { 
			f=0; 
		}
		if (f > pcnt) {
			f=pcnt;
		}
		$(id+'_box').morph('left:-'+(f*this.settings[id].width).toString()+'px', {
			transition: function(pos){
				return S2.FX.Transitions.easeFrom(pos);
			},
			duration: 0.4
		});
		u+='<div class="navleft">';
		if (cp > 1) {
			u+='<img src="/dot.gif" class="inavi arrow'+(this.settings[id].buttons === 'big' ? 'big' : '')+'_l_a" onclick="PROJECTS.move(\''+id+'\','+(cp-1)+')" />';
		}
		else {
			u+='<img src="/dot.gif" class="inavi arrow'+(this.settings[id].buttons === 'big' ? 'big' : '')+'_l_a" onclick="PROJECTS.move(\''+id+'\','+pcnt+')" />';
		}
		u+='</div>';
		for(x=0; x < pcnt; x++){
			u+='<img src="/dot.gif" title="'+(x+1)+'" onclick="PROJECTS.move(\''+id+'\','+(x+1)+')" class="inavi ';
			u+= (x+1 == cp) ? 'bullet_a' : 'bullet_i';	
			u+='" style="margin:5px;" />';
		}
		u+='<div class="navright">';
		if (cp < pcnt) {
			u+='<img src="/dot.gif" class="inavi arrow'+(this.settings[id].buttons === 'big' ? 'big' : '')+'_r_a" onclick="PROJECTS.move(\''+id+'\','+(cp+1)+')" />';
		}	
		else {
			u+='<img src="/dot.gif" class="inavi arrow'+(this.settings[id].buttons === 'big' ? 'big' : '')+'_r_a" onclick="PROJECTS.move(\''+id+'\','+1+')" />';
		}
		u+='</div>';
		$(id+'_paging').update(u);
	},
	
	output : function(id,cp){
		var o='',u='',x,pages=1;
		o+='<div class="projectelement" style="float:left;width:'+this.settings[id].width+'px"><table border="0" cellpadding="2" cellspacing="1">\n';
		for (x=0; x < this.settings[id].data.length; x++){
			if(x % 2 == 0){
				o+='<tr>\n';
			}			
			o+='<td><a href="'+this.settings[id].data[x][0]+'" target="_blank"><b>'+this.settings[id].data[x][1]+'</b></a>';
			if(this.settings[id].showagency){
				o+='<div class="moreinfo">'+this.settings[id].data[x][2]+'</div>';
			}
			if(this.settings[id].showurl){
				o+='<div class="moreinfo"><a href="'+this.settings[id].data[x][0]+'" target="_blank">'+this.settings[id].data[x][0]+'</a></div>';
			}
			o+='</td>\n';
			if(x % 2 == 1){
				o+='</tr>\n';
			}			
			if(x > 0 && x % this.settings[id].ppp == (this.settings[id].ppp-1)) {
				o+='</table></div>\n';
				o+='<div class="projectelement" style="float:left;width:'+this.settings[id].width+'px"><table border="0" cellpadding="2" cellspacing="1">\n';
				pages++;
			}			
		}
		$(id+'_box').setStyle({width:this.settings[id].width*pages+'px'});
		$(id+'_box').update(o);
		if(this.settings[id].showpaging){
			this.move(id,cp);
		}
	},
	
	init: function(id,param){
		this.settings[id]={};
		if(param.start != undefined){
			this.settings[id].start=param.start;
		}
		else{
			this.settings[id].start=this.defparams.start;
		}
		if(param.ppp != undefined){
			this.settings[id].ppp=param.ppp;
		}
		else{
			this.settings[id].ppp=this.defparams.ppp;
		}
		if(param.width != undefined){
			this.settings[id].width=param.width;
		}
		else{
			this.settings[id].width=this.defparams.width;
		}
		if(param.buttons != undefined){
			this.settings[id].buttons=param.buttons;
		}
		else{
			this.settings[id].buttons=this.defparams.buttons;
		}
		if(param.showpaging != undefined){
			this.settings[id].showpaging=param.showpaging;
		}
		else{
			this.settings[id].showpaging=this.defparams.showpaging;
		}
		if(param.showagency != undefined){
			this.settings[id].showagency=param.showagency;
		}
		else{
			this.settings[id].showagency=this.defparams.showagency;
		}
		if(param.showurl != undefined){
			this.settings[id].showurl=param.showurl;
		}
		else{
			this.settings[id].showurl=this.defparams.showurl;
		}

		
		this.settings[id].data=param.data;
		$(id).setStyle({overflow:'hidden',width:this.settings[id].width+'px',position:'relative'});		
		$(id).update('<div id="'+id+'_box" class="projectbox" style="position:relative"></div>');
		if(this.settings[id].showpaging){
			$(id).insert({ top: '<div id="'+id+'_paging" class="wmsliderpaging"></div>' });	
		}
		this.shuffle(param.data);
		this.output(id,this.settings[id].start);
		
	}	
}
