﻿function $(_1){return /^<(.*)>$/.test(_1)?document.createElement(RegExp.$1):document.getElementById(_1);};var FX={};FX.createAnimation=function(){function animate(o){if(o.timeStamp){var _3=new Date().getTime()-o.timeStamp;}else{var _3=0;o.timeStamp=new Date().getTime();}if(_3>o.duration){_3=o.duration;}o.tween(o.mode(_3/o.duration));if(_3==o.duration){stop(o);}};function play(o){if(o.instance){return;}o.instance=setInterval(function(){animate(o);},o.interval);if(o.before){o.before();}};function stop(o){if(!o.instance){return;}clearInterval(o.instance);o.instance=null;o.timeStamp=0;if(o.after){o.after();}};var _6={normal:function(x){return x;},easeIn:function(x){return x*(2-x);},easeOut:function(x){return x*x;},backIn:function(x){return 1.5*x*x-0.5*x;}};return function(_b){var o={before:_b.before,tween:_b.tween,after:_b.after,mode:_b.mode in _6?_6[_b.mode]:_6.normal,duration:_b.duration||1000,interval:_b.interval||10,timeStamp:0,instance:null};var _d={play:function(){play(o);},stop:function(){stop(o);}};return _d;};}();var ElementManager={getDocumentWidth:function(){var _e=document.documentElement.clientWidth?Math.max(document.body.scrollWidth,document.documentElement.scrollWidth):document.body.scrollWidth;if(window.ActiveXObject){_e=Math.max(_e,ElementManager.getWindowWidth());}return _e;},getDocumentHeight:function(){var _f=document.documentElement.clientHeight?Math.max(document.body.scrollHeight,document.documentElement.scrollHeight):document.body.scrollHeight;if(window.ActiveXObject){_f=Math.max(_f,ElementManager.getWindowHeight());}return _f;},getWindowWidth:function(){return window.opera?document.body.clientWidth:document.documentElement.clientWidth||document.body.clientWidth;},getWindowHeight:function(){return window.opera?document.body.clientHeight:document.documentElement.clientHeight||document.body.clientHeight;},getWindowSrollLeft:function(){return document.documentElement.scrollLeft||document.body.scrollLeft;},getWindowSrollTop:function(){return document.documentElement.scrollTop||document.body.scrollTop;},getComputedStyle:function(_10,_11){return document.defaultView?document.defaultView.getComputedStyle(_10,null).getPropertyValue(_11):_10.currentStyle[_11.replace(/-[a-z]/g,function(){return arguments[0].charAt(1).toUpperCase();})];},setOpacity:function(_12,_13){window.ActiveXObject?_12.style.filter="alpha(opacity="+_13*100+")":_12.style.opacity=_13;}};ElementManager.setMaskBehind=function(){function setTabIndex(_14,_15){var _16=["a","button","input","select","textarea"];for(var n=0;n<_16.length;n++){var _18=_14.getElementsByTagName(_16[n]);for(var i=0;i<_18.length;i++){_18[i].tabIndex=_15;}}};function maxSize(){_1a.style.width=ElementManager.getDocumentWidth()+"px";_1a.style.height=ElementManager.getDocumentHeight()+"px";};function setSize(){_1a.style.width=ElementManager.getWindowWidth()+"px";_1a.style.height=ElementManager.getWindowHeight()+"px";setTimeout(maxSize,0);};function createMask(){_1a=document.createElement("div");_1a.style.display="none";_1a.style.position="absolute";_1a.style.left="0px";_1a.style.top="0px";_1a.style.background="#000000";ElementManager.setOpacity(_1a,0.5);document.body.appendChild(_1a);EventManager.bind(window,"resize",setSize);setSize();};function destoryMask(){document.body.removeChild(_1a);EventManager.unbind(window,"resize",setSize);_1a=null;};var _1a=null;return function(_1b){if(_1b){if(!_1a){createMask();}var _1c=parseInt(ElementManager.getComputedStyle(_1b,"z-index"),10);if(!_1c){_1c=_1b.style.zIndex=100;}_1a.style.zIndex=_1c-1;_1a.style.display="block";setTabIndex(document.body,-1);setTabIndex(_1b,0);}else{if(_1a){destoryMask();}setTabIndex(document.body,0);}};}();ElementManager.setFixed=function(){function setXY(o){if(o.xy.x){var _1e=o.$target.offsetWidth;var _1f=ElementManager.getWindowWidth();var x=null;if("left" in o.position){x=o.position.left;x=/\d+%/.test(x)?parseInt(x,10)/100*_1f-_1e/2:x;}else{x=o.position.right;x=/\d+%/.test(x)?(1-parseInt(x,10)/100)*_1f-_1e/2:_1f-_1e-x;}o.xy.x[1]=Math.floor(x);}if(o.xy.y){var _21=o.$target.offsetHeight;var _22=ElementManager.getWindowHeight();var y=null;if("top" in o.position){y=o.position.top;y=/\d+%/.test(y)?parseInt(y,10)/100*_22-_21/2:y;}else{y=o.position.bottom;y=/\d+%/.test(y)?(1-parseInt(y,10)/100)*_22-_21/2:_22-_21-y;}o.xy.y[1]=Math.floor(y);}};function onEvent(_24){if(_24.type=="resize"){for(var i=0;i<_26.length;i++){setXY(_26[i]);}}_27.stop();_27.play();};var _26=[];var _27=FX.createAnimation({before:function(){for(var i=0;i<_26.length;i++){var o=_26[i];if(o.xy.x){o.xy.x[0]=parseInt(o.$target.style.left,10);}if(o.xy.y){o.xy.y[0]=parseInt(o.$target.style.top,10);}}},tween:function(n){for(var i=0;i<_26.length;i++){var o=_26[i];if(o.xy.x){o.$target.style.left=(o.xy.x[0]+(ElementManager.getWindowSrollLeft()+o.xy.x[1]-o.xy.x[0])*n)+"px";}if(o.xy.y){o.$target.style.top=(o.xy.y[0]+(ElementManager.getWindowSrollTop()+o.xy.y[1]-o.xy.y[0])*n)+"px";}}},mode:"easeIn",duration:500});return function(_2d,_2e){if(_2e){if(_26.length==0){EventManager.bind(window,"resize",onEvent);EventManager.bind(window,"scroll",onEvent);}else{for(var i=0;i<_26.length;i++){if(_26[i].$target===_2d){_26.splice(i,1);}}}var o={$target:_2d,position:_2e,xy:{}};if("left" in _2e&&"right" in _2e){delete _2e.left;}if("top" in _2e&&"bottom" in _2e){delete _2e.top;}if("left" in _2e||"right" in _2e){o.xy.x=[];}if("top" in _2e||"bottom" in _2e){o.xy.y=[];}setXY(o);if(o.xy.x){_2d.style.left=ElementManager.getWindowSrollLeft()+o.xy.x[1]+"px";}if(o.xy.y){_2d.style.top=ElementManager.getWindowSrollTop()+o.xy.y[1]+"px";}_26.push(o);}else{if(_26.length==0){return;}for(var i=0;i<_26.length;i++){if(_26[i].$target===_2d){_26.splice(i,1);}}if(_26.length==0){EventManager.unbind(window,"resize",onEvent);EventManager.unbind(window,"scroll",onEvent);}}};}();var EventManager=function(){function bind(_31,_32,_33){function wrapper(_34){_33.call(_31,_34||window.event);};for(var i=0;i<_36.length;i++){var _37=_36[i];if(_37.$element===_31&&_37.eventName===_32&&_37.onEvent===_33){return;}}_36.push({$element:_31,eventName:_32,onEvent:_33,wrapper:wrapper});if(_32=="DOMMouseScroll"&&/compatible|WebKit|Khtml|Opera/i.test(navigator.userAgent)){_32="mousewheel";}if(_31.addEventListener){_31.addEventListener(_32,wrapper,false);}else{if(_31.attachEvent){_31.attachEvent("on"+_32,wrapper);}else{_31["on"+_32]=wrapper;}}};function unbind(_38,_39,_3a){var _3b=null;for(var i=0;i<_36.length;i++){var _3d=_36[i];if(_3d.$element===_38&&_3d.eventName===_39&&_3d.onEvent===_3a){_3b=_3d.wrapper;_36.splice(i,1);break;}}if(!_3b){return;}if(_39=="DOMMouseScroll"&&/compatible|WebKit|Khtml|Opera/i.test(navigator.userAgent)){_39="mousewheel";}if(_38.removeEventListener){_38.removeEventListener(_39,_3b,false);}else{if(_38.detachEvent){_38.detachEvent("on"+_39,_3b);}else{_38["on"+_39]=null;}}};function unbindAll(){while(_36.length>0){var _3e=_36[0];unbind(_3e.$element,_3e.eventName,_3e.onEvent);}if(window.onload){window.onload=null;}};function getElementObject(_3f){for(var i=0;i<pEL.length;i++){if(pEL[i].$element===_3f){return pEL[i];}}};function mouseEnter(_42){var oEL=getElementObject(this);if(oEL.leave){clearTimeout(oEL.leave);oEL.leave=null;}if(oEL.enter){return;}for(var i=0;i<oEL.enterFunctions.length;i++){oEL.enterFunctions[i].call(this,_42);}oEL.enter=true;};function mouseLeave(_45){var oEL=getElementObject(this);oEL.leave=setTimeout(function(){for(var i=0;i<oEL.leaveFunctions.length;i++){oEL.leaveFunctions[i].call(oEL.$element,_45);}oEL.enter=oEL.leave=null;},0);};function bindDOMMouseEnterAndLeave(_48,_49,_4a){for(var i=0;i<pEL.length;i++){if(pEL[i].$element===_48){for(var j=0;j<pEL[i][_4a+"Functions"].length;j++){if(pEL[i][_4a+"Functions"][j]===_49){return;}}pEL[i][_4a+"Functions"].push(_49);return;}}var o={$element:_48,enterFunctions:[],leaveFunctions:[],enter:null,leave:null};o[_4a+"Functions"].push(_49);pEL.push(o);bind(_48,"mouseover",mouseEnter);bind(_48,"mouseout",mouseLeave);};function unbindDOMMouseEnterAndLeave(_4e,_4f,_50){for(var i=0;i<pEL.length;i++){if(pEL[i].$element===_4e){for(var j=0;j<pEL[i][_50+"Functions"].length;j++){if(pEL[i][_50+"Functions"][j]===_4f){pEL[i][_50+"Functions"].splice(j,1);if(pEL[i].enterFunctions.length==0&&pEL[i].leaveFunctions.length==0){pEL.splice(i,1);unbind(_4e,"mouseover",mouseEnter);unbind(_4e,"mouseout",mouseLeave);}return;}}return;}}};function drag(_53){for(var i=0;i<oD.functions.length;i++){oD.functions[i].call(oD.$element,_53,_53.clientX+ElementManager.getWindowSrollLeft()-oD.x,_53.clientY+ElementManager.getWindowSrollTop()-oD.y);}};function drop(_56){if(oD.$element.releaseCapture){oD.$element.releaseCapture();}unbind(document,"mousemove",drag);unbind(document,"mouseup",drop);unbind(window,"blur",drop);document.body.focus();for(var i=0;i<oD.functions.length;i++){if(oD.functions[i].after){oD.functions[i].after.call(oD.$element,_56);}}oD={};};function initDOMDrag(_58){if(!EventManager.getMouseButton(_58).left){return;}EventManager.stopPropagation(_58);EventManager.preventDefault(_58);for(var i=0;i<pD.length;i++){if(pD[i].$element===this){oD.$element=this;oD.functions=pD[i].functions;oD.x=_58.clientX+ElementManager.getWindowSrollLeft();oD.y=_58.clientY+ElementManager.getWindowSrollTop();break;}}for(var i=0;i<oD.functions.length;i++){if(oD.functions[i].before){oD.functions[i].before.call(this,_58);}}if(this.setCapture){this.setCapture();}bind(document,"mousemove",drag);bind(document,"mouseup",drop);bind(window,"blur",drop);};function bindDOMDrag(_5b,_5c){for(var i=0;i<pD.length;i++){if(pD[i].$element===_5b){for(var j=0;j<pD[i].functions.length;j++){if(pD[i].functions[j]===_5c){return;}}pD[i].functions.push(_5c);return;}}pD.push({$element:_5b,functions:[_5c]});bind(_5b,"mousedown",initDOMDrag);};function unbindDOMDrag(_5f,_60){for(var i=0;i<pD.length;i++){if(pD[i].$element===_5f){for(var j=0;j<pD[i].functions.length;j++){if(pD[i].functions[j]===_60){pD[i].functions.splice(j,1);if(pD[i].functions.length==0){pD.splice(i,1);unbind(_5f,"mousedown",initDOMDrag);}return;}}return;}}};var _36=[];var pEL=[];var pD=[];var oD={};var _63={bind:function(_64,_65,_66){if(_65=="DOMDrag"){bindDOMDrag(_64,_66);}else{if(_65=="DOMMouseEnter"){bindDOMMouseEnterAndLeave(_64,_66,"enter");}else{if(_65=="DOMMouseLeave"){bindDOMMouseEnterAndLeave(_64,_66,"leave");}else{bind(_64,_65,_66);}}}},unbind:function(_67,_68,_69){if(_68=="DOMDrag"){unbindDOMDrag(_67,_69);}else{if(_68=="DOMMouseEnter"){unbindDOMMouseEnterAndLeave(_67,_69,"enter");}else{if(_68=="DOMMouseLeave"){unbindDOMMouseEnterAndLeave(_67,_69,"leave");}else{unbind(_67,_68,_69);}}}},getTargetElement:function(_6a){return _6a.target||_6a.srcElement;},getKey:function(_6b){var key={keyCode:_6b.keyCode,ctrlKey:_6b.ctrlKey,altKey:_6b.altKey,shiftKey:_6b.shiftKey,metaKey:_6b.metaKey};return key;},getMouseButton:function(_6d){var eW=_6d.which;var eB=_6d.button;var _70={left:eW?eB==0:!!(eB&1),middle:eW?eB==1:!!(eB&4),right:eW?eB==2:!!(eB&2)};return _70;},getMouseWheel:function(_71){return _71.wheelDelta==0||_71.detail==1?0:_71.wheelDelta<0||_71.detail>0?1:-1;},getMousePosition:function(_72){var _73={clientX:_72.clientX,clientY:_72.clientY,offsetX:"offsetX" in _72?_72.offsetX:_72.layerX-1,offsetY:"offsetY" in _72?_72.offsetY:_72.layerY-1,screenX:_72.screenX,screenY:_72.screenY};return _73;},stopPropagation:function(_74){_74.stopPropagation?_74.stopPropagation():_74.cancelBubble=true;},preventDefault:function(_75){_75.preventDefault?_75.preventDefault():_75.returnValue=false;},onDOMReady:function(){var _76=arguments.callee;_76.pool=[];_76.fire=function(){for(var i=0;i<_76.pool.length;i++){_76.pool[i]();}delete EventManager.onDOMReady;delete EventManager.setOnDOMReady;};if(window.ActiveXObject){document.write("<"+"script src=\"//:\" defer=\"true\" onreadystatechange=\"if(this.readyState=='complete'){this.onreadystatechange=null;this.parentNode.removeChild(this);EventManager.onDOMReady.fire();}\"></script"+">");return;}if(window.opera&&parseInt(window.opera.version())<9){function operaDOMReady(){for(var i=0;i<document.styleSheets.length;i++){if(document.styleSheets[i].disabled){setTimeout(arguments.callee,0);return;}}EventManager.onDOMReady.fire();};(function(){/loaded|complete/.test(document.readyState)?operaDOMReady():setTimeout(arguments.callee,0);})();return;}if(/WebKit|Khtml/i.test(navigator.userAgent)){function safariDOMReady(){var _79=0;var _7a=document.getElementsByTagName("link");var _7b=document.getElementsByTagName("style");for(var i=0;i<_7a.length;i++){if(_7a[i].rel.toLowerCase()=="stylesheet"){_79++;}}_79+=_7b.length;(function(){document.styleSheets.length==_79?EventManager.onDOMReady.fire():setTimeout(arguments.callee,0);})();};(function(){/loaded|complete/.test(document.readyState)?safariDOMReady():setTimeout(arguments.callee,0);})();return;}if(document.addEventListener){document.addEventListener("DOMContentLoaded",EventManager.onDOMReady.fire,false);}else{window.onload=EventManager.onDOMReady.fire;}},setOnDOMReady:function(_7d){EventManager.onDOMReady.pool.push(_7d);}};bind(window,"unload",unbindAll);return _63;}();EventManager.onDOMReady();EventManager.setOnDOMReady(function(){if(typeof onDOMReady=="function"){onDOMReady();}});if(document.domain){document.domain=document.domain.substring(document.domain.indexOf(".")+1);}
/**
 * @name createAdSwitcher
 * @author sundongguo
 * @version 20080909
 * @need ElementManager
 *       EventManager
 *       FX
 *
 * 使用createAdSwitcher(config)创建一个广告切换器。
 * config.$target:	广告切换器要替换的HTMLElement。
 * config.ad:		["图片url","图片alt","链接地址","广告代码"]格式的数组，广告数据。
 * config.duration:	每幅广告持续时间。
 * config.className:	广告切换器的基本样式。
 */
//--------------------------------------------------[createAdSwitcher]
function createAdSwitcher(config)
{
	function setBackgroundPositionY($target,y)
	{
		var p=$target.style.backgroundPosition;
		$target.style.backgroundPosition=p.substring(0,p.indexOf(" ")+1)+y;
	}
	function show(n)
	{
		animation.stop();
		t=n;
		animation.play();		
	}
	function showNext()
	{
		show(c==aI.length-1?0:c+1);
		timer=null;
		setTimer();
	}
	function setTimer()
	{
		if(!timer)timer=setTimeout(showNext,config.duration||5000);
	}
	function clearTimer()
	{
		if(!timer)return;
		clearTimeout(timer);
		timer=null;
	}
	function mOver()
	{
		if(this.className=="selected")return;
		this.className="mouseover";
		setBackgroundPositionY(this,"center");
	}
	function mOut()
	{
		if(this.className=="selected")return;
		this.className="";
		setBackgroundPositionY(this,"top");
	}
	function mClick(n)
	{
		if(this.className=="selected")return;
		show(n);
	}
	function bindEvent(n)
	{
		var $li=aL[n];
		EventManager.bind($li,"mouseover",mOver);
		EventManager.bind($li,"mouseover",function(){mClick.call(this,n);});	// 放到数字上也进行切换
		EventManager.bind($li,"mouseout",mOut);
		EventManager.bind($li,"click",function(){mClick.call(this,n);});
	}
	var aI=[];
	var aL=[];
	//建立DOM。
	var $target=config.$target;
	var $element=$("<"+$target.tagName.toLowerCase()+">");
	if($target.id)$element.id=$target.id;
	$element.className=config.className;
	var $ul=$("<ul>");
	for(var i=0;i<config.ad.length;i++)
	{
		var $a=$("<a>");
		$a.target="_blank";
		$a.href=config.ad[i][2];		
		$a.onclick = function(){
			var value,
				img = this.getElementsByTagName('img')[0];
			
			for(var k in config.ad){
				if(img.src == config.ad[k][0]){
					value = config.ad[k][3];
					break;
				}				
			}
			
			nciku_ads('20002',value);			
		}
		
		var $img=$("<img>");
		$img.src=config.ad[i][0];
		$img.alt=config.ad[i][1];
		$a.appendChild($img);
		$element.appendChild($a);
		var $li=$("<li>");
		$li.className="";
		$li.style.backgroundPosition=-i*100+"px top";
		var $span=$("<span>");
		$span.innerHTML=i+1;
		$li.appendChild($span);
		$ul.appendChild($li);
		aI.push($img);
		aL.push($li);
		bindEvent(i);
	}
	$element.appendChild($ul);
	$target.parentNode.insertBefore($element,$target);
	$target.parentNode.removeChild($target);
	EventManager.bind($element,"DOMMouseEnter",clearTimer);
	EventManager.bind($element,"DOMMouseLeave",setTimer);
	//创建过渡效果。
	var animation=FX.createAnimation
	({
		before:function()
		{
			aL[c].className="";
			setBackgroundPositionY(aL[c],"top");
			aL[t].className="selected";
			setBackgroundPositionY(aL[t],"bottom");
			aI[c].style.zIndex=10;
			ElementManager.setOpacity(aI[t],0);
			aI[t].style.display="block";
			aI[t].style.zIndex=11;
			nciku_ads('20001',config.ad[t][3]);

		},
		tween:function(n)
		{
			ElementManager.setOpacity(aI[t],n);
			ElementManager.setOpacity(aI[c],1-n);
		},
		after:function()
		{
			aI[c].style.display="none";
			c=t;
			t=null;
		},
		duration:500
	});
	//开始播放。
	var c=aI.length-1;
	var t=null;
	var timer=null;
	showNext();
}
