/*tutorial---------------------------------------------------------------------------
string Object.settings(Array('divID1','divID2''divID3'....),int secondsHolding,int motionSpeed[,int Smoothly]);
motionSpeed:Set a integer in 1-10 range;10 is the fastest.
Smoothly:Optional,integer in 1-100 ; 100 is the smoothest.
return:The name you have defined.

Following is an example:

new Tweening('obj');
//Define a new set of image motion(Although you can apply to any HTML in a div,but it will not work in IE any elements when is not a image(s).)
obj.settings(['aas','swd','aas2','swd2'],2,10,100);
//Pre set the value of the tweening set.
obj.run();
//Start the tweening.Please put this after the all elements related.

*Caution:

1)Please call the function after two elements.
2)It must be div include the image,and the id of images must be "div's id+'_img'".If not,it will make no any response of the Script.

Powerd by Shinn-Tiger @ 2011
--------------------------------------------------------------------------------*/
/*function _(ename){
	return document.getElementById(ename);
}*/
if(!_){
	function _(ename){
		return document.getElementById(ename);
	}
}
if(!getBrowser){
	function getBrowser(){
		if(userbrowser)
		return userbrowser;
		var sBrowser = navigator.userAgent;
	    if (sBrowser.toLowerCase().indexOf('msie') > 0)
		    return 'ie';
	    else if (sBrowser.toLowerCase().indexOf('firefox') > 0)
		    return 'firefox';
	    else if (sBrowser.toLowerCase().indexOf('applewebkit') > 0)
		    return 'applewebkit';
		else
		return sBrowser.toLowerCase();
	}
}
var isArray = function(obj){
    return Object.prototype.toString.call(obj) === '[object Array]';
}
function Tweening(newname){
	//class start---------------------------------------------------------------------------------------------
	/*if(newname)
	return false;*/
	this.name=newname;

	this.started=false;

this.run=function(){
	if(!this.started && _(this.divlist[this.divlist.length-1]))
	this.started=true;
	else
	return false;
	//div1=_(this.divid1);
	//div2=_(this.divid2);
	//setOpacity(div1,1);
	//setOpacity(div2,1);
	for(var key in this.divlist){
		var objnow=_(this.divlist[key]);
		setOpacity(objnow,0);
		objnow.style.display="none";
		//objnow.onmouseover=function(){alert(this.id);this.divover(this);};
		var oh=this.name+".divover();";
		//alert(oh);
		objnow.master=this;
		objnow.onmouseover=this.divover;
		objnow.onmouseout=this.divout;
		//objnow.onmouseout=function{this.divout(this)};
	}
	/*if(div2.style.display=='none'){
		div1.style.display='block';
		setOpacity(div2,0);
		setTimeout(this.name+".alpha_motion_motion();",this.delaytime);
	}else{*/
		var objnow=_(this.divlist[this.nowdiv]);
		objnow.style.display='block';
		setOpacity(objnow,1);
		var script=this.name+".alpha_motion_motion();";
		setTimeout(script,this.delaytime);
	//}
}

this.nextdiv=function(){
	var ddiv=this.nowdiv;
	ddiv++;
	if(ddiv>this.divtotal)
	ddiv=0;
	return ddiv;
}

this.divover=function(){
	objw=this.master;
	objw.stopTween=true;
	//_('alerting').innerHTML=objw.stopTween;
}
this.divout=function(){
	//alert("out");
	objw=this.master;
	objw.stopTween=false;
	//_('alerting').innerHTML=objw.stopTween;
	var script=objw.name+".alpha_motion_motion();";
	if(objw.isTweening){
		//setTimeout(script,objw.next_delay_time);
	}
}

this.settings=function(divlist,ndelaytime,nalphaforce,nmotionspeed){
	nmotionspeed=Number(nmotionspeed)?parseInt(Number(nmotionspeed)):100;
	nmotionspeed=nmotionspeed>100?nmotionspeed=100:(nmotionspeed<0?nmotionspeed=0:nmotionspeed);
	nmotionspeed=parseInt(35+(100-nmotionspeed));
	if(isArray(divlist)){
		this.divtotal=divlist.length-1;
		this.nowdiv=0;
		this.divlist=divlist;
	}
	//this.divid1=ndivid1;
	//this.divid2=ndivid2;
	this.stopTween=false;
	this.isTweening=false;
	this.delaytime=ndelaytime*1000;
	this.motionspeed=nmotionspeed;
	this.force=0.3/10*(Number(nalphaforce)?(Number(nalphaforce)>10?10:(parseInt(Number(nalphaforce))<0?0:parseInt(Number(nalphaforce)))):5);
	this.nextdelaytime=nmotionspeed;
}

this.setOpacity=function(aimobbj,tv){
	if(!this.stopTween)
	setOpacity(aimobbj,tv);
	//_('alerting').innerHTML=this.stopTween+' !!';
}

this.alpha_motion_motion=function(){
	//obj_1=_(fpara.divid1);
	//obj_2=_(fpara.divid2);
	//obj_1=_(this.divid1);
	//obj_2=_(this.divid2);
	obj_1=_(this.divlist[this.nextdiv()]);
	obj_2=_(this.divlist[this.nowdiv]);
	var opac1=getOpacity(obj_1);
	var opac2=getOpacity(obj_2);
	var now_delay_time=this.nextdelaytime=this.delaytime;
	this.isTweening=true;

	if(opac1>=1){
		this.setOpacity(obj_1,1);
		/*var qq=this.divid1;
		this.divid1=this.divid2;
		this.divid2=qq;*/
		this.isTweening=false;
		this.nextdelaytime=now_delay_time=this.delaytime;
		this.nowdiv=this.nextdiv();
	}else if(obj_2.style.display=="block"){
		var nv=getOpacity(obj_2)-this.force;
		this.setOpacity(obj_2,nv);
		if(getOpacity(obj_2)<=0 || nv<=0){
			setOpacity(obj_1,0);
			setOpacity(obj_2,0);
			obj_1.style.display='block';
			obj_2.style.display='none';
		}
		this.nextdelaytime=now_delay_time=this.motionspeed;
	}else{
		this.setOpacity(obj_1,getOpacity(obj_1)+this.force);
		this.nextdelaytime=now_delay_time=this.motionspeed;
	}
	setTimeout(this.name+".alpha_motion_motion();",now_delay_time);
	
}
	window[newname]=this;
	return newname;
	//class end---------------------------------------------------------------------------------
}
function alpha_motion_define_delay(divid1,divid2,delaytime){
	setTimeout("alpha_motion('"+divid1+"','"+divid2+"',"+delaytime+")",500);
}
function alpha_motion_define(divid1,divid2,delaytime,motionspeed){
	alpha_motion(divid1,divid2,delaytime,motionspeed);
}

//-----------------------------------------------------------------
function setOpacity(aimobjj,newOpacity){
	var sbrowser=getBrowser();
	switch(sbrowser){
	case "ie":
		aimimg=_(aimobjj.id+'_img');
		newOpacity=Number(newOpacity);
		newOpacity*=100;
		aimimg.style.filter="alpha(opacity="+parseInt(newOpacity)+")";  
		break;
	default:
		aimobjj.style.opacity=newOpacity;
		break;
	}
}
function getOpacity(aimobj){
	var sbrowser=getBrowser();
	switch(sbrowser){
	case "ie":
		aimimg=_(aimobj.id+'_img');
		var str=aimimg.style.filter; 
		var patt1=/[0-9]{1,3}/gi;
		var opac=parseInt(Number(str.match(patt1)));
		var finalop=Number(opac)/100;
		return finalop;
		break;
	default:
		return Number(aimobj.style.opacity);
		break;
	}
}
var userbrowser=getBrowser();
