﻿function tipblocks(TopEleID,menuStr,speed){
	this.instanceID = TopEleID.slice(TopEleID.indexOf("#")+1);
	this.intervalID;
	this.topElement =  CeeCMS.GetElementByStr(TopEleID);
	this.speed = parseInt(speed);
	this._menus  = CeeCMS.GetElementByElement(menuStr,this.topElement,"inner");
	this.blocks = [];
	for( var i  in this._menus ){	
	        var bandding = this._menus[i].getAttribute("bandding");
		    var _tBlock	 = CeeCMS.GetElementByElement( bandding ,this.topElement,"inner");	    	   
			if(_tBlock ){
			this.blocks.push(new tipblock(this._menus[i],_tBlock,bandding));						
			}
		 }		
};

function tipblock(menu,block,bandding){
	this.menu = menu;
	this.block = block;
	this.bandding = bandding;
	};

function tipsBoxs(){
	this.settings = [];
	this.instances = [];	 	
};

tipsBoxs.prototype = {	
	setting:function(settingStr){
		this.settings = settingStr.split("|");		
			for(i in this.settings){	
		         var _setting =	this.settings[i].split("_");
		         this.instances.push(new tipblocks(_setting[0],_setting[1],_setting[2]));			
			} 
		this.init();
		},
	foundInstance:function(evtEle){
		var topEle = CeeCMS.GetElementByElement( "div.tipbox",evtEle,"outer");	
		if(topEle){
			for(i in Tipbox.instances){
				if(Tipbox.instances[i].instanceID == topEle.id ){
					return Tipbox.instances[i];
					}				
				}			
			}
			return null;		
		},
	init:function(){	
	   for(i in this.instances){
		   for( j in this.instances[i].blocks){
			   var block = this.instances[i].blocks[j];
			    block.menu.id = (j==0)?"current":"";
			    block.block.style.display = (j==0)? "block":"none";			   
			   block.menu.onmouseover = this._onmouseover;
			   block.menu.onmouseout = this._onmouseout;
			  // block.block.onmouseover = this.block_onmouseover;
			  // block.block.onmouseout = this.block_onmouseout;
			   }	
			 // this.instances[i].intervalID = setInterval(this.IntervalTips(this.instances[i]),this.instances[i].speed);	   
		   }
		},
		IntervalTips:function (instance){	
		 return function(){
			Tipbox._IntervalTips(instance);			 
			 }
		},
		
		_IntervalTips:function (instance){				
			var t_block;		
			for(var i in instance.blocks){
				 if(instance.blocks[i].menu.id =="current"){					
					  var t = (parseInt(i)+1 > instance.blocks.length-1)?0:parseInt(i)+1;
					  t_block = instance.blocks[t];					 
					  break;
					 }
				}
			Tipbox.clearBlock(instance);				
			t_block.menu.id= "current";
			t_block.block.style.display = "block";
			},
	    clearBlock:function (instance){
			 for (i in instance.blocks){
			   instance.blocks[i].menu.id= "";
			   instance.blocks[i].block.style.display = "none";			  
			  }	
			},
		 
		funodBlock:function(banddinStr,instance){								
				for(i in instance.blocks){					
				 if(instance.blocks[i].bandding == banddinStr){
				 return instance.blocks[i];
		     	}				
			}
			return null;
			},
			
		block_onmouseover:function (evt){	
	   	   var eveEle = CeeCMS.getEventEle(evt);		  
	       var instance = Tipbox.foundInstance(eveEle); 
		   if(instance == null) return;		  
	        clearInterval(instance.intervalID);					
		},
		block_onmouseout:function (evt){	
	   	   var eveEle = CeeCMS.getEventEle(evt);		  
	       var instance = Tipbox.foundInstance(eveEle); 
		   if(instance == null) return;		  
	        clearInterval(instance.intervalID);	
			instance.intervalID = setInterval(Tipbox.IntervalTips(instance),instance.speed);	
		},
		
		_onmouseout:function(evt){			
		   var eveEle = CeeCMS.getEventEle(evt);		  
	       var instance = Tipbox.foundInstance(eveEle); 
		   if(instance == null) return;		  		
		    clearInterval(instance.intervalID);	  
			//instance.intervalID = setInterval(Tipbox.IntervalTips(instance),instance.speed);	
		},
			
	   _onmouseover:function (evt){	
	   	   var eveEle = CeeCMS.getEventEle(evt);		  
	       var instance = Tipbox.foundInstance(eveEle); 
		   if(instance == null) return;		  
	        clearInterval(instance.intervalID);
			Tipbox.clearBlock(instance);		   
			var moverTip =  Tipbox.funodBlock(eveEle.getAttribute("bandding"),instance);  
			moverTip.menu.id= "current";
			moverTip.block.style.display = "block";			
		}
		
};

function ADFeature(title,ulink,pic){
	this._title = title;
	this._pic = pic;
	this._link = ulink;	
};

function ADfeatureBlock(topEle_s,pic_s,title_s,menu_s){
	this._instance = this;
	this.speed = 4000;	
	this.picURLRoot = CeeCMS.baseUrl+"Content/images/ADfeature/";
	this.ADfeatures = new Array(
								new ADFeature("title01","#01:","fad01.jpg"),
								new ADFeature("title02","#02:","fad02.jpg"),
								new ADFeature("title03","#03:","fad03.jpg")
								);
	this.topEle = CeeCMS.GetElementByStr(topEle_s);		
	var s_pic01 = 	pic_s.split("|")[0];
	var s_pic02  =  pic_s.split("|")[1];
	this.picBox01 =  CeeCMS.GetElementByElement(s_pic01,this.topEle,"inner");
	this.picLink01 = this.picBox01.getElementsByTagName("A")[0];
	this.pic01  = new Image();
	this.pic01 = this.picLink01.getElementsByTagName("IMG")[0];
	this.picBox02 =  CeeCMS.GetElementByElement(s_pic02,this.topEle,"inner");
	this.picLink02 = this.picBox02.getElementsByTagName("A")[0];
	this.pic02  = new Image();
	this.pic02 = this.picLink02.getElementsByTagName("IMG")[0];
	this.title =  CeeCMS.GetElementByElement(title_s,this.topEle,"inner");	
	this.menus =  CeeCMS.GetElementByElement(menu_s,this.topEle,"inner");	
	this.intervalID;
	this.init();
};
ADfeatureBlock.prototype = {
	init:function(){
		this.picBox01.style.position = "absolute";
		this.picBox01.style.zIndex = "1";
		this.picBox02.style.position = "relative";
		this.picBox02.style.zIndex = "0";
		this._setADFeatureCurrnet("0");					
		for(i in this.menus){
			this.menus[i].getElementsByTagName("A")[0].onmouseover = this._menuOnmouseover;
			}
		this.picLink01.onmouseover = this._picOnmouseoverl;
		this.picLink02.onmouseover = this._picOnmouseoverl;
		this.picLink01.onmouseout = this._picOnmouseout;
		this.picLink02.onmouseout = this._picOnmouseout;
		 for(i in this.ADfeatures){
			  if(this.ADfeatures[i].current){				  
				CeeCMS._replaceImager(this.picURLRoot+this.ADfeatures[i]._pic,this.pic02,this._loadPicBack);
				break;
				  }
			 }		
		},	
	_picOnmouseout:function(){
		var _instance = ADfeature._instance;		 
		  clearInterval(_instance.intervalID);	
		  for(i in _instance.ADfeatures){
			  if(_instance.ADfeatures[i].current){				  
				CeeCMS._replaceImager(_instance.picURLRoot+_instance.ADfeatures[i]._pic,_instance.pic02,_instance._loadPicBack);
				break;
				  }
			 }		  
		},
	_picOnmouseoverl:function (){
		 var _instance = ADfeature._instance;		 
		  clearInterval(_instance.intervalID);	
		},
	 
	  _menuOnmouseover:function (){
		  var _instance = ADfeature._instance;
		  var id = parseInt(this.innerHTML)- 1;
		  clearInterval(_instance.intervalID);		  
		  _instance._setMenuid(id);
		  _instance._setADFeatureCurrnet(id);	
		  CeeCMS._replaceImager(_instance.picURLRoot+_instance.ADfeatures[id]._pic,_instance.pic02,_instance._loadPicBack);
		  },
	 _loadPicBack:function(){		     
	     var _instance = ADfeature._instance;
		  clearInterval(_instance.intervalID);	
		  CeeCMS.setImageAlpha(_instance.pic01,100);
		  CeeCMS.setImageAlpha(_instance.pic02,100);
		  CeeCMS.setDynamicalpha(_instance.pic01,0,_instance._upMainUI);			  
		 },
	 _upMainUI:function(){	
	    var _instance = ADfeature._instance;
		clearInterval(_instance.intervalID);
	 	var t = 0;
		var crt;
	     for(i in _instance.ADfeatures){			 
			 if(_instance.ADfeatures[i].current){	
			     crt = i;
				 t = parseInt(i)+1;
				 t = (t >= _instance.ADfeatures.length) ? 0: t;	
				 break;
				 }
		 }			 	
		 _instance._setADFeatureCurrnet(t.toString());		 
		 _instance._turnPicLeve();	
		 var ADfeaturesCrt = _instance.ADfeatures[crt];
		 _instance.title.innerHTML = "<a title="+ADfeaturesCrt._title+"  href="+ADfeaturesCrt._link+ "> "+ADfeaturesCrt._title+"</a>";	
		 _instance.picLink01.setAttribute("title",ADfeaturesCrt._title);	
		 _instance.picLink01.setAttribute("href",ADfeaturesCrt._link);
		 _instance.pic01.setAttribute("alt",ADfeaturesCrt._title);	
		 _instance._setMenuid(crt);
		 _instance.intervalID = setInterval(_instance._Interval,_instance.speed); 
	},
	_setMenuid : function(number){
		var _instance = ADfeature._instance;
		for(i in  _instance.menus){
		_instance.menus[i].id ="";
		}
		_instance.menus[number].id = "current";
		},
	_Interval:function(){
		var _instance = ADfeature._instance;
		clearInterval(_instance.intervalID);		
		CeeCMS.setImageAlpha(_instance.pic01,100);
		CeeCMS.setImageAlpha(_instance.pic02,100);	
		 for(i in _instance.ADfeatures){
			  if(_instance.ADfeatures[i].current){				  
				CeeCMS._replaceImager(_instance.picURLRoot+_instance.ADfeatures[i]._pic,_instance.pic02,_instance._loadPicBack);
				break;
				  }
			 }		
		},
		
		_setADFeatureCurrnet:function(ids){			
			for(i in this.ADfeatures){
				if(i == ids){
					this.ADfeatures[i].current = true;
					}else{
						this.ADfeatures[i].current = false;
						}
				}		
			},
		
	 _turnPicLeve : function(){		 
	 var t;
	 var l;
	 var _instance = ADfeature._instance;
		 switch(_instance.picBox01.style.zIndex.toString()){
			 case "0":
			 	_instance.picBox01.style.zIndex = "1";
				_instance.picBox02.style.zIndex = "0";				
							
			break;
			 case "1":
			  	_instance.picBox01.style.zIndex = "0";
			 	_instance.picBox02.style.zIndex = "1";
			 break;
			 }	
		t = _instance.pic01;	
		_instance.pic01 = _instance.pic02;
		_instance.pic02 = t;
		l = _instance.picLink01;	
		_instance.picLink01 = _instance.picLink02;
		_instance.picLink02 = l;
		 }
	};
CeeCMS.add(CeeCMS_Engine,{
	setDynamicalpha : function (imgObj,targetValue,fcallback){		
	 	 var opacity = this.getImageAlpha (imgObj);
		 if(targetValue == 100){opacity = opacity + 6;};
		 if(targetValue == 0 ){opacity = opacity -6;};
		 opacity = (opacity < 0 )? 0: opacity;
		 opacity = (opacity >100)? 100: opacity;
		 this.setImageAlpha(imgObj,opacity);
		 if(opacity==0||opacity==100){			
			 if(typeof fcallback == "function" ){				
				 fcallback();				 
				 }	
				 return;	
		 }
		 setTimeout(function(){CeeCMS.setDynamicalpha(imgObj,targetValue,fcallback);},20);
		 },
    getImageAlpha:function(imgObj){
		var opacity = null;
		 switch(this.Browser){
	    case "msie":	
		   	  if(imgObj.style.filter){
				  var Sopacity = imgObj.style.filter;				      
				   opacity  = Number(Sopacity.substring(Sopacity.indexOf("=")+1,Sopacity.indexOf(")")));				  
				  }		
			break;
		case "gecko": 
			if(imgObj.style.opacity){
				 opacity =  imgObj.style.opacity*100;				 
				}		  	
			break;
			}	
		return opacity;
		 },
		 
	setImageAlpha:function(imgObj,value){		
		 switch(this.Browser){
	    case "msie":	
		   	 imgObj.style.filter = "alpha(opacity="+value+")";				  
			break;
		case "gecko": 
			imgObj.style.opacity = value/100;				 				  	
			break;
			}	
		
		 },
		
	getEventEle:function(evt){
		switch(CeeCMS.Browser){
	    case "msie":
			if(event.toElement)	return event.toElement;
			break;
		case "gecko":			
	        if(evt.currentTarget) return evt.currentTarget;
			break;
			}
	   return null;
	 },
	_replaceImager:function (surl,sourceImg,fCallback){		
		       sourceImg.setAttribute("src",surl+"?rand="+Math.random());		
			   	switch(this.Browser){
					case "msie":
					 sourceImg.onreadystatechange = function(){						 
                                if (this.readyState=="loaded" || this.readyState=="complete"){                                        
										sourceImg.onreadystatechange= null;
										fCallback();									  
										
                                }
                        };
						break;
					case "gecko":
					 sourceImg.onload = function(){
						 sourceImg.onload = null;
						 fCallback();						 
                        };
						break;					
					}    			 		  
		}
 });


	