/*-------------------------------------------------------------------------------------------------------
	name:Core;
	scripts:cssQuery,$Element,$Functions,$UI
	update:2009-01-07
-------------------------------------------------------------------------------------------------------*/
//name: $Functions,version 0.1 (2008-12-24)
var $Functions={
	extend:function(o,from){
		for(prop in from){o[prop]=from[prop];}
		return o;
	}
}

//name: $Element,version 0.1 (2008-01-07)
var $Element={
	get:function(selector){
		var elements=jQuery(selector);
		if(elements.length==1){
			return elements[0];
		}else if(elements.length==0){
			return null;
		}else{
			return elements;
		}
	},
	addClass:function(element, theClass){
	  if (!$Element.hasClass(element, theClass)){
		if (element.className == ""){
		  element.className = theClass;
		}else{
		  element.className += " " + theClass;
		}
	  }
	},
	hasClass:function(element, theClass){
	  var pattern = new RegExp("(^| )" + theClass + "( |$)");
	  if (pattern.test(element.className)){
		return true;
	  }
	  return false;
	},
	removeClass:function(element, theClass){
	  var pattern = new RegExp("(^| )" + theClass + "( |$)");
	  element.className = element.className.replace(pattern, "$1");
	  element.className = element.className.replace(/ $/, "");
	},
	addEvent:function(ele,evtName,fn){//2009-04-21;
		var _fn=fn;
		fn=function(e){
			e=window.event||e;
			if(e.srcElement){
				e.target=e.srcElement;
				e.relatedTarget=e.toElement;
				e.currentTarget=e.fromElement;
			}
			_fn(e);
		}
		if(ele.addEventListener){
			ele.addEventListener(evtName,fn,false);
		}else if(ele.attachEvent){
			ele.attachEvent('on'+evtName,fn);
		}
	}
};

//name:$UI,version 0.2 (2009-04-21)
var $UI={
	Slide:function(){
		var ele,ePicBar,ePics,eNavBar,eNavs,nPosition=0,nTotal;
		var init,createNav,play,gotoAndPlay;
		var timer;
		//初始化：
		init=function(id){
			ele=$Element.get("#"+id);
			if(!ele){return;}

			ePicBar=$Element.get("#"+id+" .slide-pics");
			ePics=ePicBar.getElementsByTagName("a");
			nTotal=ePics.length;
			
			createNav(id);
			gotoAndPlay(0);
		}
		//创建导航条：
		createNav=function(id){
			eNavBar=$Element.get("#"+id+" .slide-nav");
			if(!eNavBar){
				eNavBar=document.createElement("DIV");
				eNavBar.className="slide-nav";
				var sHTML="";
				for(var i=0;i<nTotal;i++){
					sHTML+="<a href=\"javascript:void(0);\">"+(i+1)+"</a>";
				}
				eNavBar.innerHTML=sHTML;
				ele.appendChild(eNavBar);
			}
			
			eNavs=eNavBar.getElementsByTagName("a");
			for(var i=0;i<nTotal;i++){
				eNavs[i].tar=i;
				ePics[i].style.position="absolute";
				ePics[i].style.left=0;
				ePics[i].style.top=0;
				ePics[i].style.zIndex=nTotal-i;
			}
			eNavBar.onclick=function(evt){
				var _evt=window.event||evt;
				var _eTar=_evt.target||_evt.srcElement;
				if(_eTar.tagName.toUpperCase()=="A"){
					gotoAndPlay(_eTar.tar);
				}
			}
		}
		
		play=function(){
			var pos=nPosition+1>=nTotal?0:nPosition+1;
			ePics[pos].style.zIndex=nTotal+1;
			ePics[nPosition].style.zIndex=nTotal-nPosition;
			eNavs[nPosition].className="";
			eNavs[pos].className="alt";
			nPosition=pos;
		}
		
		//播放跳转：
		gotoAndPlay=function(pos){
			clearInterval(timer);
			ePics[pos].style.zIndex=nTotal+1;
			ePics[nPosition].style.zIndex=nTotal-nPosition;
			eNavs[nPosition].className="";
			eNavs[pos].className="alt";
			nPosition=pos;
			timer=setInterval(play,4000);
		}
		
		init(arguments[0]);
	},
	Tab:function(){
		var _lately=0,_eTabs,_eBoards;
		var _config={
			handleType:'hover'
		}
		
		var _construct=function(id,setting){
			
			$Functions.extend(_config,setting);
			_eBoards=$Element.get("#"+id+" .nie-board");
			_eTabs=$Element.get("#"+id+" li");
			
			for(var i=0,j=_eTabs.length;i<j;i++){
				_eTabs[i].tar=i;
				if($Element.hasClass(_eTabs[i],'alt')){
					_lately=i;
				}
			}
			if(_config.handleType.toLowerCase()=='click'){
				$("#"+id+" .nie-tab").bind('click',function(e){
					var element;
					if(e.target.tagName.toUpperCase()=='LI'){
						element=$(e.target);
					}
					if(e.target.tagName.toUpperCase()=='A'){
						element=$(e.target).parent();
					}							
					if(element.attr('tar')==_lately) return;
					
					element.addClass('alt').siblings('.alt').removeClass('alt');
					
					_eBoards[_lately].style.display="none";
					_eBoards[element.attr('tar')].style.display="";
					_lately=element.attr('tar');
				});
			}
			if(_config.handleType.toLowerCase()=='hover'){
				$("#"+id+" .nie-tab li").hover(function(e){
					if($(this).hasClass('alt')){return;}
					$(this).addClass('alt').siblings('.alt').removeClass('alt');
					
					_eBoards[_lately].style.display="none";
					_eBoards[this.tar].style.display="";
					_lately=this.tar;
					
				});	
			}
		}
		
		_construct.apply(this,arguments);

	},
	dropmenu:function(element){
		//$(element+' a').hover(function(e){},function(e){});

		$(element+' > li').hover(function(e){
			$(this).children('ul').show();
			$(this).children('a').addClass('hover');
		//	alert($(this).html());
		
			
		},function(e){
			$(this).children('ul').hide();
			$(this).children('a').removeClass('hover');
		});		
	}
};

//name: $Flash,version 0.1 (2008-12-24)
var $Flash={
	insert:function (elmToReplace, src, id, width, height, params){
		//description: FlashReplace is developed by Robert Nyman, http://www.robertnyman.com.
		//License and downloads: http://code.google.com/p/flashreplace/ 
		this.elmToReplace = document.getElementById(elmToReplace);
		if(this.elmToReplace){
			var obj = '<object' + ((window.ActiveXObject)? ' id="' + id + '" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"' : '');
			obj += ' width="' + width + '"';
			obj += ' height="' + height + '"';
			obj += '>';
			var param = '<param';
			param += ' name="movie"';
			param += ' value="' + src + '"';
			param += '>';
			param += '';
			var extraParams = '';
			var extraAttributes = '';
			for(var i in params){
				extraParams += '<param name="' + i + '" value="' + params[i] + '">';
				extraAttributes += ' ' + i + '="' + params[i] + '"';
			}
			var embed = '<embed id="' + id + '" src="' + src + '" type="application/x-shockwave-flash" width="' + width + '" height="' + height + '"';
			var embedEnd = extraAttributes + '></embed>';
			var objEnd = '</object>';
			this.elmToReplace.innerHTML = obj + param + extraParams + embed + embedEnd + objEnd;
		}
	}	
};

//name: $Media,version 0.1 (2008-01-07)
var $Media={
	contents:{},
	containers:{},
	registContainer:function(){
		var id="";
		for(var i=0,j=arguments.length;i<j;i++){
			id=arguments[i];
			this.containers[id]={
				name:id,
				width:$Media.contents[id].width,
				height:$Media.contents[id].height,
				type:$Media.contents[id].type,
				medias:$Media.contents[id].medias
			};
			this.create(this.containers[id]);
		}
	},
	create:function(container){
		switch(container.type){
			case 'slide':this.createSlide(container); break;
			case 'linker':this.createLinker(container); break;
			case 'text':this.createText(container);break;
		}
	},
	createSlide:function(container){
		var element=$Element.get("#"+container.name);
		if(element){
			var HTML='<div class="slide-pics">';
			var len=container.medias.length;
			for(var i=0;i<len;i++){
				HTML+='<a href="'+container.medias[i].link+'" target="_blank"><img src="'+container.medias[i].src+'"/></a>';
			}
			HTML+='</div>';
			element.innerHTML=HTML;
			new $UI.Slide(container.name);
		}
	},
	createLinker:function(container){
		var element=$Element.get("#"+container.name);
		if(element){
			var i=Math.floor(Math.random()*container.medias.length);
			var typePattern=/\.swf$/;
			if(typePattern.test(container.medias[i].src)){
				$Flash.insert(container.name,container.medias[i].src,container.name+'_swf',container.width,container.height,7,{"wmode":"transparent"});
			}else{
				element.innerHTML='<a href="'+container.medias[i].link+'" target="_blank"><img src="'+container.medias[i].src+'" /></a>';
			}
		}
	},
	createText:function(container){
		var element=$Element.get("#"+container.name);
		if(element){
			var HTML="";
			for(var i=0,len=container.medias.length;i<len;i++){
				HTML+=' <a href="'+container.medias[i].link+'" target="_blank">'+container.medias[i].title+'</a>';	
			}
			element.innerHTML=HTML;
		}
	}
	
};




