
(function(){
if(!window.zzc){window['zzc'] = {} };
function isIE(){ return (document.all) ? true : false;};
window['zzc']['isIE'] = isIE;
function $(id){return typeof id == 'string' ? document.getElementById(id) : id};
window['zzc']['$'] = $;
function $$(id,tag){return $(id).getElementsByTagName(tag);}
window['zzc']['$$'] = $$;
function getElementsByClassName(name,type){
	var r=[];
	var re=new RegExp("(^|\\s)"+name+"(\\s|$)");
	var elem=document.getElementsByTagName(type||"*");
	for(var i=0;i<elem.length;i++){
		if(re.test(elem[i].className)) r.push(elem[i]);
		}
		return r;
	}
window['zzc']['getElementsByClassName'] = getElementsByClassName;	
function addEvent(eventTarget,eventType,fnHandler){
		 if(eventTarget.addEventListener){//for FF
			eventTarget.addEventListener (eventType,fnHandler,false);
		 } else if(eventTarget.attachEvent){//for IE
			eventTarget.attachEvent("on" + eventType,fnHandler);
		 } else{//for other
			eventTarget["on" + eventType] = fnHandler;
		 }
     };
window['zzc']['addEvent'] = addEvent;
function removeEvent(eventTarget,eventType,fnHandler){
		 if(eventTarget.removeEventListener){//for FF
			eventTarget.removeEventListener (eventType,fnHandler,false);
		 } else if(eventTarget.detachEvent){//for IE
			eventTarget.detachEvent("on" + eventType,fnHandler);
		 } else{//for other
			eventTarget["on" + eventType] = null;
		 }
     };
window['zzc']['removeEvent'] = removeEvent;
function getBrowerWindowSize(){
    var de = document.documentElement;
    return{ 
	'width':(self.innerWidth||( de && de.offsetWidth )||document.body.offsetWidth),
	'height':(self.innerHeight||(de && de.offsetHeight)||document.body.offsetHeight)
	}
};
window['zzc']['getBrowerWindowSize'] = getBrowerWindowSize;
function getPageSize(){
	var de=document.documentElement;
	return{
	'width':(document.body.scrollWidth||(de&&de.scrollWidth)),
	'height':(document.body.scrollHeight||(de&&de.scrollHeight))
	}	
};
window['zzc']['getPageSize'] = getPageSize;	
function pageX(elem){
	return elem.offsetParent?(elem.offsetLeft+pageX(elem.offsetParent)):elem.offsetLeft;
		}
window['zzc']['pageX'] = pageX;		
		
function pageY(elem){
	return elem.offsetParent?(elem.offsetTop+pageY(elem.offsetParent)):elem.offsetTop;
		}
window['zzc']['pageY'] = pageY;
})();
function Drag(activeObj,dragObj,options){
     var aObj = zzc.$(activeObj);//激活元素
	 var dObj = zzc.$(dragObj);//拖动元素
	 var iDiffX = 0;
	 var iDiffY = 0;
	 var Options = options || {};
	 var Limit = Options.Limit||false;
	 var mxLeft = parseInt(Options.mxLeft)||0;//左边限制
	 var mxRight = parseInt(Options.mxRight)||0;//右边限制
	 var mxTop = parseInt(Options.mxTop)||0;//上边限制
	 var mxBottom = parseInt(Options.mxBottom)||0;//下边限制
	 var onMove = Options.onMove||function(){};//移动时执行 
	 
(function start(){  
     zzc.addEvent(aObj,'mousedown',handleMouseDown);
	 })();
	 
function handleMouseMove(oEvent){ 
var oEvent = window.event || arguments[0];
var iLeft = oEvent.clientX - iDiffX, iTop = oEvent.clientY - iDiffY;
if(Limit){
var iRight = iLeft + dObj.offsetWidth - mxRight, iBottom = iTop + dObj.offsetHeight - mxBottom;
if(iRight > 0) iLeft -= iRight;
if(iBottom > 0) iTop -= iBottom;
if(mxLeft > iLeft) iLeft = mxLeft;
if(mxTop > iTop) iTop = mxTop;
 }
		  
dObj.style.left = iLeft + 'px';
dObj.style.top = iTop + 'px';
onMove();
};
function handleMouseDown(oEvent){
         //清除选择(ie设置捕获后默认带这个)
	     window.getSelection && window.getSelection().removeAllRanges();
		 var oEvent = window.event || arguments[0];
		 dObj.style.position = "absolute"; 
		 iDiffX = oEvent.clientX - dObj.offsetLeft;
		 iDiffY = oEvent.clientY - dObj.offsetTop;
		 zzc.addEvent(document,'mousemove',handleMouseMove);
		 zzc.addEvent(document,'mouseup',handleMouseUp);
		 if(zzc.isIE()){
		zzc.addEvent(dObj, "losecapture", handleMouseUp);
		dObj.setCapture();
		 }else{
		zzc.addEvent(window, "blur", handleMouseUp);
		 }
     };
function handleMouseUp(){
		 zzc.removeEvent(document,'mousemove',handleMouseMove);
		 zzc.removeEvent(document,'mouseup',handleMouseUp);	
		 if(zzc.isIE()){
		zzc.removeEvent(dObj, "losecapture", handleMouseUp);
		dObj.releaseCapture();
		 }else{
		zzc.removeEvent(window, "blur", handleMouseUp);
		 }	 		 		
     };
}
//使图片滚动。
function picSlideByDrag(picBox,picList,dragObj,options){
     var Options = options || {};
	 var mxLeft = parseInt(Options.mxLeft)||0;//左边限制
	 var mxRight = parseInt(Options.mxRight)||0;//右边限制
	 var mxTop = parseInt(Options.mxTop)||0;//上边限制
	 var mxBottom = mxTop + dragObj.clientHeight;//下边限制
	function init(){
		var picListChild = zzc.$$(picList,'li');
		var picListWidth = picListChild.length * picListChild[0].offsetWidth;
		picList.style.width = picListWidth + 'px';
		if(picListWidth <= picBox.clientWidth){
		dragObj.style.display = "none";
		}
    };
	function picSlide(){
		picList.style.left = -(((zzc.pageX(dragObj) - mxLeft)/(mxRight-mxLeft-dragObj.clientWidth))*(picList.clientWidth-picBox.clientWidth)) + "px";
	};
	
	init();
	Drag(dragObj,dragObj,{Limit:true,mxTop:mxTop,mxRight:mxRight,mxBottom:mxBottom,mxLeft:mxLeft,onMove:picSlide});
	
};
window.onload = function(){
	var picBox = zzc.$("picBox");
	var picList = zzc.$("picList");
	var scrollBar = zzc.$("scrollBar");
	var dragObj = zzc.$("dragObj");
	var initTop = zzc.pageY(scrollBar) + 1;
	var initLeft = zzc.pageX(scrollBar) + 1;
	var initRight = initLeft + scrollBar.clientWidth;
     picSlideByDrag(picBox,picList,dragObj,{mxTop:initTop,mxLeft:initLeft,mxRight:initRight});
}
