<!-- 

function $id(eleID) {
	return document.getElementById(eleID);
}

function wrap(newparent,ele) {
	if(ele.nextSibling) {
		var n = ele.nextSibling;
		n.parentNode.insertBefore(newparent,n);
	}else if(ele.previousSibling) {
		insertAfter(newparent,ele.previousSibling);
	}else {
		ele.parentNode.appendChild(newparent);
	}
	newparent.appendChild(ele);
}

function addEvent(tar,ev,fn) {
	if(document.attachEvent) {
		tar.attachEvent('on'+ev,fn);
	}else if(document.addEventListener) {
		tar.addEventListener(ev,fn,false);
	}
}

function removeEvent(tar,ev,fn) {
	if(document.detachEvent) {
		tar.detachEvent('on'+ev,fn);
	}else if(document.removeEventListener) {
		tar.removeEventListener(ev,fn,false);
	}
}

function insertAfter(newElement,tarElement) {
	var pnode = tarElement.parentNode;
	if (pnode.lastChild == tarElement) {
		pnode.appendChild(newElement);
	} else {
		pnode.insertBefore(newElement,tarElement.nextSibling);
	}
}

function prepend(element,tarElement) {
	if(tarElement.firstChild) {
		tarElement.insertBefore(element,tarElement.firstChild);
	}else {
		tarElement.appendChild(element);
	}
}

function getStyle(ele,attr) {
	var rs;
	if(ele.style[attr]) {
		rs = ele.style[attr];
	}else if(window.getComputedStyle) {
		attr=attr.replace(/([A-Z])/g,"-$1");
		//value=value.toLowerCase();
		rs = window.getComputedStyle(ele,'').getPropertyValue(attr);
		if(attr == 'color') {rs = colorToHex(rs);} //???color?16????
	}else if(ele.currentStyle) {
		rs = ele.currentStyle[attr];
	}else {
		return null;
	}
	return rs;
}

function getTotalHeight(ele) {
	var rs = (ele.offsetHeight||0) + (parseInt(getStyle(ele,'marginTop'))||0) + (parseInt(getStyle(ele,'marginBottom'))||0);
	return rs;
}

function getTotalWidth(ele) {
	var rs = (ele.offsetWidth||0) + (parseInt(getStyle(ele,'marginLeft')) || 0) + (parseInt(getStyle(ele,'marginRight')) || 0);
	return rs;
}

function moveElement(elem,final_x,final_y,interval) {

	var elem = $id(elem) || elem;
	if(elem.style.position == '') {elem.style.position = 'relative';}
	if (elem.vvmoveElement) {clearInterval(elem.vvmoveElement);}
	if (!elem.style.left) {elem.style.left = "0px";}
	if (!elem.style.top) {elem.style.top = "0px";}
	var xpos = parseInt(elem.style.left);
	var ypos = parseInt(elem.style.top);
	if (xpos == final_x && ypos == final_y) {
		return true;
	}
	if (xpos < final_x) {
		var dist = Math.ceil((final_x - xpos)/10);
		xpos = xpos + dist;
	}
	if (xpos > final_x) {
		var dist = Math.ceil((xpos - final_x)/10);
		xpos = xpos - dist;
	}
	if (ypos < final_y) {
		var dist = Math.ceil((final_y - ypos)/10);
		ypos = ypos + dist;
	}
	if (ypos > final_y) {
		var dist = Math.ceil((ypos - final_y)/10);
		ypos = ypos - dist;
	}
	elem.style.left = xpos + "px";
	elem.style.top = ypos + "px";
	var ele = elem;
	var repeat = 'moveElement("'+elem.getAttribute('id')+'",'+final_x+','+final_y+','+interval+')';
	elem.vvmoveElement = setInterval(repeat,interval);
}

function SCROLLSINGLE() {
	var self = this;

	this.pause = false;

	this.scroll = function (way) {
		if(self.pause && (way != self.scrollKey1 && way!=self.scrollKey2)) {return false;}
		var LI = self.scrollElement.getElementsByTagName(self.child);

		if(parseInt(self.scrollElement.style[self.scrollKey1]) != 0  && way!=self.scrollKey2) {
			self.scrollElement.appendChild(LI[0]);
			self.scrollElement.style[self.scrollKey1] = '0';
		}

		if(way==self.scrollKey2 && parseInt(self.scrollElement.style.top) ==0) {
			var lc = LI[LI.length-1];
			var lcw;
			if(self.mode == 'x') {
				lcw = getTotalWidth(lc);
			}else if(self.mode == 'y') {
				lcw = getTotalHeight(lc);
			}
			self.scrollElement.style[self.scrollKey1] = -lcw + 'px';
			prepend(lc,self.scrollElement);
		}
		var leftwidth = 0;

		var cw;
		if(self.mode == 'x') {
			cw = getTotalWidth(LI[0]);
		}else if(self.mode == 'y') {
			cw = getTotalHeight(LI[0]);
		}
		if(way == self.scrollKey2) {cw = leftwidth;}
		else {cw = -cw-leftwidth;}

		var cl = getStyle(self.scrollElement,self.scrollKey1);
		cl = (cl=='auto')?0:parseInt(cl);

		if(self.mode == 'x') {
			moveElement(self.scrollElement,cw,0,30);
		}else if(self.mode == 'y') {
			moveElement(self.scrollElement,0,cw,30);
		}
	}
	this.creatBtn = function () {
		var paused = function () {
			self.pause = true;
		};
		var goon = function () {
			self.pause = false;
		};
		var s1 = function () {
			self.scroll(self.scrollKey1);
		};
		var s2 = function () {
			self.scroll(self.scrollKey2);
		};
		var scrollwrap = $id(self.scrollElement.getAttribute('id')+'_scrollWrap_vv');
		if(self.btn1) {
			var botton1;
			if(self.btn1.nodeType) {
				botton1 = self.btn1;
			}else if(typeof(self.btn1) == 'string') {
				botton1 = document.createElement('a');
				botton1.className = self.btn1;
				scrollwrap.appendChild(botton1);
			}
			addEvent(botton1,'mouseover',paused);
			addEvent(botton1,'mouseout',goon);
			//addEvent(botton1,'click',s1);
			botton1.onclick = function () {
				s1();
				return false;
			}
		}
		if(self.btn2) {
			var botton2;
			if(self.btn2.nodeType) {
				botton2 = self.btn2;
			}else if(typeof(self.btn2) == 'string') {
				botton2 = document.createElement('a');
				botton2.className = self.btn2;
				scrollwrap.appendChild(botton2);
			}
			addEvent(botton2,'mouseover',paused);
			addEvent(botton2,'mouseout',goon);
			//addEvent(botton2,'click',s2);
			botton2.onclick = function () {
				s2();
				return false;
			}
		}
	}
	this.start = function () {
		if(self.mode == 'x') {
			self.scrollKey1 = 'left';
			self.scrollKey2 = 'right';
		}else if(self.mode == 'y') {
			self.scrollKey1 = 'top';
			self.scrollKey2 = 'bottom';
		}
		var LI = self.scrollElement.getElementsByTagName(self.child);
		if(LI.length <= self.num) {
			clearInterval(self.scrollElement.vvscrollSingle);
			try {
				(self.leftBtn).style.display = 'none';
				(self.rightBtn).style.display = 'none';
			}catch(e) {}
			return false;
		}
		if($id(self.scrollElement.getAttribute('id')+'_scrollWrap_vv')) {return false;}

		var h = self.h + 'px';
		var w = self.w + 'px';
		var scrollWrap = document.createElement('div');
		scrollWrap.setAttribute('id',self.scrollElement.getAttribute('id')+'_scrollWrap_vv');
		with(scrollWrap.style) {
			height = h;
			width = w;
			overflow = 'hidden';
			position = 'relative';
		}
		wrap(scrollWrap,self.scrollElement);

		if (!self.scrollElement.style.left) {self.scrollElement.style.left = "0px";}
		if (!self.scrollElement.style.top) {self.scrollElement.style.top = "0px";}
		with(self.scrollElement.style) {
			if(self.mode == 'x') {width = '999999px';}
			if(self.mode == 'y') {height = '999999px';}
			margin='0';
			padding='0';
			border='none';
		}

		self.creatBtn();
        if(self.delay != 0)
		    setInterval(self.scroll,self.delay);
	}

}

function scrollSingle(mode,element,w,h,childTag,num,delay,btn1,btn2) {
  var ss = new SCROLLSINGLE();
  ss.mode = mode;
  ss.scrollElement = element;
  ss.w = w;
  ss.h = h;
  ss.child = childTag;
  ss.num = num||5;
  ss.delay = delay;
  ss.btn1 = btn1;
  ss.btn2 = btn2;
  ss.start();
}

-->
