
var slidebanner = {
	options:{},
	xmlpath:'',
	container:[],
	Aid:'',
	Sid:'',
	Fid:'',
	target:'',
	init : function()
	{
		this.options = Object.extend({
		  outnode:''
		}, arguments[0] || {});
		
		this.loadXml();
		this.Aid = setInterval(this.autoSlide.bind(this),6000);
		$(this.options.outnode).onmouseout = function(){this.Aid = setInterval(this.autoSlide.bind(this),6000);}.bind(this);
		$(this.options.outnode).onmouseover = function(){clearInterval(this.Aid)}.bind(this);
	},
	
	autoSlide: function()
	{
		var rnd = Math.floor(Math.random()*1)+1;
		this.target = rnd;
		clearInterval(this.Fid);
		this.Fid = setInterval(this.fslide.bind(this),10); 
		clearInterval(this.Sid); 
		this.Sid=setInterval(this.slide.bind(this),10);
	},
	drawBox : function()
	{
		
		var bignode = document.createElement('div');
		bignode.id=this.options.outnode+'_bignode';
		
		$(this.options.outnode).appendChild(bignode);
		Element.setStyle(this.options.outnode+'_bignode',{position:'absolute',top:0,width:'740px',height:'320px'});

		var imgs = new Array();
		
		for(i=0;i<this.container.length;i++)
		{
			imgs.push('<a href="'+this.container[i].link+'"><img src="'+this.container[i].l_img+'" /></a>');
		}
		$(this.options.outnode+'_bignode').innerHTML = imgs.join('');
		
		for(i=0;i<this.container.length;i++)
		{
			var snode = document.createElement('div');
			snode.id = this.options.outnode+'_snode_'+i;
			snode.idx = i;
			
			$(this.options.outnode).appendChild(snode);
			
			Element.setStyle(this.options.outnode+'_snode_'+i,{position:'absolute',top:'265px',left:i*42+10+'px',width:'39px',height:'39px', margin:0, padding:0,border:'2px solid #aaa',background:'url('+this.container[i].s_img+') no-repeat'});
			
			$(this.options.outnode+'_snode_'+i).onmouseover =eval("false||function(){this.target="+i+";clearInterval(this.Fid);this.Fid = setInterval(this.fslide.bind(this),10); clearInterval(this.Sid); this.Sid=setInterval(this.slide.bind(this),10);}.bind(this);");
						
		}
		var nodefocus = document.createElement('div');
		nodefocus.id = this.options.outnode+'_nodefocus';
		$(this.options.outnode).appendChild(nodefocus);
		Element.setStyle(this.options.outnode+'_nodefocus',{position:'absolute',top:'265px',left:'10px',width:'37px',height:'37px', border:'3px solid #fbab00'});
	},
	
	fslide:function()
	{
		var noffset = parseInt(Element.getStyle(this.options.outnode+'_snode_'+this.target,'left'));
		var fleft = parseInt(Element.getStyle(this.options.outnode+'_nodefocus','left'))||0;
		if(Math.abs(noffset - fleft) > 10)
		{
			var nleft = 2;
		} else {
			var nleft = 1;
		}
		if(noffset >= fleft)
		{
			Element.setStyle(this.options.outnode+'_nodefocus',{left:fleft+nleft+'px'});
			if(noffset == fleft)
			{
				clearInterval(this.Fid);
			}				
		} else if(noffset <= fleft)
		{
			Element.setStyle(this.options.outnode+'_nodefocus',{left:fleft-nleft+'px'});
			if(noffset == fleft)
			{
				clearInterval(this.Fid);
			}				
		}
	},
	slide: function()
	{
		var noffset = this.target * 320;
		var btop = Element.getStyle(this.options.outnode+'_bignode','top')||0;
		if(Math.abs((Math.abs(parseInt(btop))) - noffset) > 20)
		{
			var ntop = 10;
		} else {
			var ntop = 1;
		}
		if(Math.abs(parseInt(btop)) <= noffset)
		{
			
			Element.setStyle(this.options.outnode+'_bignode',{top:parseInt(btop)-ntop+'px'});
			if(Math.abs(parseInt(btop)) == noffset) {
				clearInterval(this.Sid);
				Element.setStyle(this.options.outnode+'_bignode',{top:-noffset+'px'});
			}
		} else if(Math.abs(parseInt(btop)) >= noffset){
			Element.setStyle(this.options.outnode+'_bignode',{top:parseInt(btop)+ntop+'px'});
			if(Math.abs(parseInt(btop)) == noffset) {
				clearInterval(this.Sid);
				Element.setStyle(this.options.outnode+'_bignode',{top:noffset+'px'});
			}
		} 
	},
	
	loadXml: function(){
		var xpath = $(this.options.outnode).getAttribute('xmlpath');
		var opt = {
			method:'get',
			parameters:'',
			onComplete: function(r){
				var res = this.parseXml(r);
				var objItem = [];
				for(i=0;i<res.length;i++)
				{
					var item = res[i].childNodes;
					objItem[i] = [];
					for(j=0;j<item.length;j++)
					{
						if(item[j].tagName)	
						{
							objItem[i][item[j].tagName] = item[j].firstChild.nodeValue;
						}	
					}
					
					this.container.push({'l_img':objItem[i].l_img,'s_img':objItem[i].s_img,'link':objItem[i].link});
				}
				
				this.drawBox();
			}.bind(this)
		};
		new Ajax.Request(xpath,opt);
	},
	
	parseXml: function(res)
	{
		var xml = res.responseXML.documentElement;
		var items = xml.getElementsByTagName('Item');
		return items;
	}
};
