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("\u5fc5\u987b\u6307\u5b9ascrollContId.");
      return ;
    }
    this.scrollContDiv=sina.$(this.scrollContId);
    if(!this.scrollContDiv){
      throw new Error("scrollContId\u4e0d\u662f\u6b63\u786e\u7684\u5bf9\u8c61.(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";
    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="\u7b2c"+(i+1)+"\u9875";
          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;
      }
    }
  };
}



//上下滚动
	var arrowImageHeight = 35;	// Height of arrow image in pixels;
	var displayWaitMessage=true;	// Display a please wait message while images are loading?
	
	var previewImage = false;
	var previewImageParent = false;
	var slideSpeed = 0;
	var previewImagePane = false;
	var slideEndMarker = false;
	var galleryContainer = false;
	var imageGalleryCaptions = new Array();
	function getTopPos(inputObj)
	{		
	
	  var returnValue = inputObj.offsetTop;
	  while((inputObj = inputObj.offsetParent) != null)returnValue += inputObj.offsetTop;
	  return returnValue;
	}
	
	function getLeftPos(inputObj)
	{

	  var returnValue = inputObj.offsetLeft;
	  while((inputObj = inputObj.offsetParent) != null)returnValue += inputObj.offsetLeft;
	  return returnValue;
	}
		

	function initSlide(e)
	{
		if(document.all)e = event;
		
		//if(this.src.indexOf('over')<0)this.src = this.src.replace('.gif','-over.gif');
		
		slideSpeed = e.clientY + Math.max(document.body.scrollTop,document.documentElement.scrollTop) - getTopPos(this);
		if(this.id.toLowerCase().indexOf('bottom')>=0){
			slideSpeed = (slideSpeed)*-1;	
		}else{
			slideSpeed = arrowImageHeight - slideSpeed;
		}
		slideSpeed = Math.round(slideSpeed * 10 / arrowImageHeight);
	}
	
	function stopSlide()
	{		
		slideSpeed = 0;
	}
	
	function slidePreviewPane()
	{
		if(slideSpeed!=0){
			var topPos = previewImagePane.style.top.replace(/[^\-0-9]/g,'')/1;	
			if(slideSpeed<0 && slideEndMarker.offsetTop<(previewImageParent.offsetHeight - topPos)){
				slideSpeed=0;
			
			}
			topPos = topPos + slideSpeed;
			if(topPos>0)topPos=0;

		 	previewImagePane.style.top = topPos + 'px';
	 	
		}
	 	setTimeout('slidePreviewPane()',30);		
	}
	
	function revealThumbnail()
	{
		this.style.filter = 'alpha(opacity=100)';
		this.style.opacity = 1;
	}
	
	function hideThumbnail()
	{
		this.style.filter = 'alpha(opacity=50)';
		this.style.opacity = 0.5;
	}
	
	//function initGalleryScript()
	//{
	//	previewImageParent = document.getElementById('picBody');
	//	previewImagePane = document.getElementById('picContent');
	//	previewImagePane.style.top = '0px';

	//	slideEndMarker = document.getElementById('slideEnd');
		
	//	document.getElementById('picTop').onmousemove = initSlide;
	//	document.getElementById('picTop').onmouseout = stopSlide;
		
	//	document.getElementById('picBottom').onmousemove = initSlide;
	//	document.getElementById('picBottom').onmouseout = stopSlide;

	//	slidePreviewPane();
		
	//}
var _$ = function (id) {
    return "string" == typeof id ? document.getElementById(id) : id;
};

var Class = {
  create: function() {
    return function() {
      this.initialize.apply(this, arguments);
    }
  }
}

Object.extend = function(destination, source) {
    for (var property in source) {
        destination[property] = source[property];
    }
    return destination;
}

function addEventHandler(oTarget, sEventType, fnHandler) {
    if (oTarget.addEventListener) {
        oTarget.addEventListener(sEventType, fnHandler, false);
    } else if (oTarget.attachEvent) {
        oTarget.attachEvent("on" + sEventType, fnHandler);
    } else {
        oTarget["on" + sEventType] = fnHandler;
    }
};


var Scroller = Class.create();
Scroller.prototype = {
  initialize: function(idScroller, idScrollMid, options) {
    var oThis = this, oScroller = _$(idScroller), oScrollMid = _$(idScrollMid);
    
    this.SetOptions(options);
    this.Side = this.options.Side || ["up"];//方向
    this.scroller = oScroller;            //对象
    this.speed = this.options.Speed;    //速度
    this.timer = null;                    //时间
    this.pauseHeight = 0;                //定高
    this.pauseWidth = 0;                //定宽
    this.pause = 0;                        //定高(宽)
    this.side = 0;                        //参数
    
    //用于上下滚动
    this.heightScroller = parseInt(oScroller.style.height) || oScroller.offsetHeight;
    this.heightList = oScrollMid.offsetHeight;
    
    //用于左右滚动
    this.widthScroller = parseInt(oScroller.style.width) || oScroller.offsetWidth;
    this.widthList = oScrollMid.offsetWidth;
    
    //js取不到css设置的height和width
    
    oScroller.style.overflow = "hidden";
    oScrollMid.appendChild(oScrollMid.cloneNode(true));
    oScrollMid.appendChild(oScrollMid.cloneNode(true));
    
    addEventHandler(oScroller, "mouseover", function() { oThis.Stop(); });
    addEventHandler(oScroller, "mouseout", function() { oThis.Start(); });
    
    this.Start();
  },
  //设置默认属性
  SetOptions: function(options) {
    this.options = {//默认值
      Step:            1,//每次变化的px量
      Speed:        20,//速度(越大越慢)
      Side:            ["up"],//滚动方向:"up"是上，"down"是下，"left"是左，"right"是右
      PauseHeight:    0,//隔多高停一次
      PauseWidth:    0,//隔多宽停一次
      //当上下和左右一起使用时必须设置PauseHeight和PauseWidth来设置转向位置
      PauseStep:    1000//停顿时间(PauseHeight或PauseWidth大于0该参数才有效)
    };
    Object.extend(this.options, options || {});
  }, 
  //转向
  Turn: function() {
    //通过设置方向数组的排列来转向
    this.Side.push(this.Side.shift().toLowerCase());
  },
  //上下滚动
  ScrollUpDown: function() {
    this.pause = this.pauseHeight;
    this.scroller.scrollTop = this.GetScroll(this.scroller.scrollTop, this.heightScroller, this.heightList, this.options.PauseHeight);
    this.pauseHeight = this.pause;
    
    var oThis = this;
    this.timer = window.setTimeout(function(){ oThis.Start(); }, this.speed);
  },
  //左右滚动
  ScrollLeftRight: function() {
    this.pause = this.pauseWidth;
    //注意:scrollLeft超过1400会自动变回1400 注意长度
    this.scroller.scrollLeft = this.GetScroll(this.scroller.scrollLeft, this.widthScroller, this.widthList, this.options.PauseWidth);
    this.pauseWidth = this.pause;
    
    var oThis = this;
    this.timer = window.setTimeout(function(){ oThis.Start(); }, this.speed);
  },
  //获取设置滚动数据
  GetScroll: function(iScroll, iScroller, iList, iPause) {
    var iStep = this.options.Step * this.side;
    
    if(this.side > 0){
        if(iScroll >= (iList * 2 - iScroller)){ iScroll -= iList; }
    } else {
        if(iScroll <= 0){ iScroll += iList; }
    }
    
    this.speed = this.options.Speed;
    if(iPause > 0){
        if(Math.abs(this.pause) >= iPause){
            this.speed = this.options.PauseStep; this.pause = iStep = 0; this.Turn();
        } else {
            this.pause += iStep;
        }
    }
    
    return (iScroll + iStep);
  },
  //开始
  Start: function() {    
    //方向设置
    switch (this.Side[0].toLowerCase()) {
        case "right" :
            if(this.widthList < this.widthScroller) return;
            this.side = -1;
            this.ScrollLeftRight();
            break;
        case "left" :
            if(this.widthList < this.widthScroller) return;
            this.side = 1;
            this.ScrollLeftRight();
            break;
        case "down" :
            if(this.heightList < this.heightScroller) return;
            this.side = -1;
            this.ScrollUpDown();
            break;
        case "up" :
        default :
            if(this.heightList < this.heightScroller) return;
            this.side = 1;
            this.ScrollUpDown();
    }
  },
  //停止
  Stop: function() {
    clearTimeout(this.timer);
  }
};