var sina = { $: function(objname) { if (document.getelementbyid) { return eval('document.getelementbyid("' + objname + '")') } else { return eval('document.all.' + objname) } }, isie: navigator.appversion.indexof("msie") != -1 ? true : false, addevent: function(l, i, i) { if (l.attachevent) { l.attachevent("on" + i, i) } else { l.addeventlistener(i, i, false) } }, delevent: function(l, i, i) { if (l.detachevent) { l.detachevent("on" + i, i) } else { l.removeeventlistener(i, i, false) } }, readcookie: function(o) { var o = "", l = o + "="; if (document.cookie.length > 0) { var i = document.cookie.indexof(l); if (i != -1) { i += l.length; var i = document.cookie.indexof(";", i); if (i == -1) i = document.cookie.length; o = unescape(document.cookie.substring(i, i)) } }; return o }, writecookie: function(i, l, o, c) { var o = "", i = ""; if (o != null) { o = new date((new date).gettime() + o * 3600000); o = "; expires=" + o.togmtstring() }; if (c != null) { i = ";domain=" + c }; document.cookie = i + "=" + escape(l) + o + i }, readstyle: function(i, l) { if (i.style[l]) { return i.style[l] } else if (i.currentstyle) { return i.currentstyle[l] } else if (document.defaultview && document.defaultview.getcomputedstyle) { var i = document.defaultview.getcomputedstyle(i, null); return i.getpropertyvalue(l) } else { return null } } }; function scrollpic(scrollcontid, arrleftid, arrrightid, dotlistid) { this.scrollcontid = scrollcontid; this.arrleftid = arrleftid; this.arrrightid = arrrightid; this.dotlistid = dotlistid; this.dotclassname = "dotitem"; this.dotonclassname = "dotitemon"; this.dotobjarr = []; this.pagewidth = 0; this.framewidth = 0; this.speed = 10; this.space = 10; this.pageindex = 0; this.autoplay = true; this.autoplaytime = 5; var _autotimeobj, _scrolltimeobj, _state = "ready"; this.stripdiv = document.createelement("div"); this.listdiv01 = document.createelement("div"); this.listdiv02 = document.createelement("div"); if (!scrollpic.childs) { scrollpic.childs = [] }; this.id = scrollpic.childs.length; scrollpic.childs.push(this); this.initialize = function() { if (!this.scrollcontid) { throw new error("必须指定scrollcontid."); return }; this.scrollcontdiv = sina.$(this.scrollcontid); if (!this.scrollcontdiv) { throw new error("scrollcontid不是正确的对象.(scrollcontid = \"" + this.scrollcontid + "\")"); return }; this.scrollcontdiv.style.width = this.framewidth + "px"; this.scrollcontdiv.style.overflow = "hidden"; this.listdiv01.innerhtml = this.listdiv02.innerhtml = this.scrollcontdiv.innerhtml; this.scrollcontdiv.innerhtml = ""; this.scrollcontdiv.appendchild(this.stripdiv); this.stripdiv.appendchild(this.listdiv01); this.stripdiv.appendchild(this.listdiv02); this.stripdiv.style.overflow = "hidden"; this.stripdiv.style.zoom = "1"; this.stripdiv.style.width = "32766px"; if (! +[1, ]) { this.listdiv01.style.stylefloat = "left"; this.listdiv02.style.stylefloat = "left"; } else { this.listdiv01.style.cssfloat = "left"; this.listdiv02.style.cssfloat = "left"; } sina.addevent(this.scrollcontdiv, "mouseover", function("scrollpic.childs[" + this.id + "].stop()")); sina.addevent(this.scrollcontdiv, "mouseout", function("scrollpic.childs[" + this.id + "].play()")); if (this.arrleftid) { this.arrleftobj = sina.$(this.arrleftid); if (this.arrleftobj) { sina.addevent(this.arrleftobj, "mousedown", function("scrollpic.childs[" + this.id + "].rightmousedown()")); sina.addevent(this.arrleftobj, "mouseup", function("scrollpic.childs[" + this.id + "].rightend()")); sina.addevent(this.arrleftobj, "mouseout", function("scrollpic.childs[" + this.id + "].rightend()")) } }; if (this.arrrightid) { this.arrrightobj = sina.$(this.arrrightid); if (this.arrrightobj) { sina.addevent(this.arrrightobj, "mousedown", function("scrollpic.childs[" + this.id + "].leftmousedown()")); sina.addevent(this.arrrightobj, "mouseup", function("scrollpic.childs[" + this.id + "].leftend()")); sina.addevent(this.arrrightobj, "mouseout", function("scrollpic.childs[" + this.id + "].leftend()")) } }; if (this.dotlistid) { this.dotlistobj = sina.$(this.dotlistid); if (this.dotlistobj) { var pages = math.round(this.listdiv01.offsetwidth / this.framewidth + 0.4), i, tempobj; for (i = 0; i < pages; i++) { tempobj = document.createelement("span"); this.dotlistobj.appendchild(tempobj); this.dotobjarr.push(tempobj); if (i == this.pageindex) { tempobj.classname = this.dotclassname } else { tempobj.classname = this.dotonclassname }; tempobj.title = "第" + (i + 1) + "页"; sina.addevent(tempobj, "click", function("scrollpic.childs[" + this.id + "].pageto(" + i + ")")) } } }; if (this.autoplay) { this.play() } }; this.leftmousedown = function() { if (_state != "ready") { return }; _state = "floating"; _scrolltimeobj = setinterval("scrollpic.childs[" + this.id + "].moveleft()", this.speed) }; this.rightmousedown = function() { if (_state != "ready") { return }; _state = "floating"; _scrolltimeobj = setinterval("scrollpic.childs[" + this.id + "].moveright()", this.speed) }; this.moveleft = function() { if (this.scrollcontdiv.scrollleft + this.space >= this.listdiv01.scrollwidth) { this.scrollcontdiv.scrollleft = this.scrollcontdiv.scrollleft + this.space - this.listdiv01.scrollwidth } else { this.scrollcontdiv.scrollleft += this.space }; this.accountpageindex() }; this.moveright = function() { if (this.scrollcontdiv.scrollleft - this.space <= 0) { this.scrollcontdiv.scrollleft = this.listdiv01.scrollwidth + this.scrollcontdiv.scrollleft - this.space } else { this.scrollcontdiv.scrollleft -= this.space }; this.accountpageindex() }; this.leftend = function() { if (_state != "floating") { return }; _state = "stoping"; clearinterval(_scrolltimeobj); var fill = this.pagewidth - this.scrollcontdiv.scrollleft % this.pagewidth; this.move(fill) }; this.rightend = function() { if (_state != "floating") { return }; _state = "stoping"; clearinterval(_scrolltimeobj); var fill = -this.scrollcontdiv.scrollleft % this.pagewidth; this.move(fill) }; this.move = function(num, quick) { var thismove = num / 5; if (!quick) { if (thismove > this.space) { thismove = this.space }; if (thismove < -this.space) { thismove = -this.space } }; if (math.abs(thismove) < 1 && thismove != 0) { thismove = thismove >= 0 ? 1 : -1 } else { thismove = math.round(thismove) }; var temp = this.scrollcontdiv.scrollleft + thismove; if (thismove > 0) { if (this.scrollcontdiv.scrollleft + thismove >= this.listdiv01.scrollwidth) { this.scrollcontdiv.scrollleft = this.scrollcontdiv.scrollleft + thismove - this.listdiv01.scrollwidth } else { this.scrollcontdiv.scrollleft += thismove } } else { if (this.scrollcontdiv.scrollleft - thismove <= 0) { this.scrollcontdiv.scrollleft = this.listdiv01.scrollwidth + this.scrollcontdiv.scrollleft - thismove } else { this.scrollcontdiv.scrollleft += thismove } }; num -= thismove; if (math.abs(num) == 0) { _state = "ready"; if (this.autoplay) { this.play() }; this.accountpageindex(); return } else { this.accountpageindex(); settimeout("scrollpic.childs[" + this.id + "].move(" + num + "," + quick + ")", this.speed) } }; this.next = function() { if (_state != "ready") { return }; _state = "stoping"; this.move(this.pagewidth, true) }; this.play = function() { if (!this.autoplay) { return }; clearinterval(_autotimeobj); _autotimeobj = setinterval("scrollpic.childs[" + this.id + "].next()", this.autoplaytime * 1000) }; this.stop = function() { clearinterval(_autotimeobj) }; this.pageto = function(num) { if (_state != "ready") { return }; _state = "stoping"; var fill = num * this.framewidth - this.scrollcontdiv.scrollleft; this.move(fill, true) }; this.accountpageindex = function() { this.pageindex = math.round(this.scrollcontdiv.scrollleft / this.framewidth); if (this.pageindex > math.round(this.listdiv01.offsetwidth / this.framewidth + 0.4) - 1) { this.pageindex = 0 }; var i; for (i = 0; i < this.dotobjarr.length; i++) { if (i == this.pageindex) { this.dotobjarr[i].classname = this.dotclassname } else { this.dotobjarr[i].classname = this.dotonclassname } } } };