
function DigRotate(clientId)
{
this.Container=dnn.dom.getById(clientId);
this.Content1Div=dnn.dom.getById(clientId+"Content1");
this.Content2Div=dnn.dom.getById(clientId+"Content2");
this.Content1Div.style.zIndex=1;
this.Content2Div.style.zIndex=2;
this.PagerDiv=dnn.dom.getById(clientId+"Pager1");
this.TransStart=0;
this.MasterWidth="0px";
this.MasterHeight="0px";
this.MasterHeightValue=0;
this.MasterWidthValue=0;
this.PauseRotation=0;
this.ClientID=clientId;
this.CurrentPage=0;
this.LastPage=-1;
this.ScrollStepX=0;
this.ScrollStepY=0;
this.FadeStep=0;
this.FadeCounter=0;
this.ScrollTimeout=window.opera?100:40;
this.SetMasterDimensions();
this.AJAXInitialLoad=0;}
DigRotate.prototype.InitData=function()
{
if(this.ContentLoad==1)
{
this.Transition=998;
this.AJAXInitialLoad=1;
this.AjaxRotate();}
else
{
var id=this.ClientID+"Data"+this.CurrentPage;
var dataDiv=dnn.dom.getById(id);
if(dataDiv!=null)
this.Content1Div.innerHTML=dataDiv.innerHTML;}
if(this.AutoAdvance==0)
this.PauseRotation=1;}
DigRotate.prototype.SetRotateTimer=function()
{
if(this.RotateTimer!=null)
clearTimeout(this.RotateTimer);
var o1=this;
this.RotateTimer=setTimeout(function(){o1.RotateNext();},this.AutoAdvanceDelay);}
DigRotate.prototype.SetScrollInterval=function()
{
if(this.ScrollTimer!=null)
clearInterval(this.ScrollTimer);
var o1=this;
this.ScrollTimer=setInterval(function(){o1.Scroll();},this.ScrollTimeout);}
DigRotate.prototype.Start=function()
{
this.SetTransition();
this.InitData();
this.UpdatePager();
if(this.AutoAdvance==1)
this.SetRotateTimer();}
DigRotate.prototype.Pause=function()
{
if(this.RotateTimer!=null)
clearTimeout(this.RotateTimer);
this.PauseRotation=1;
this.UpdatePager();}
DigRotate.prototype.Play=function()
{
this.RotateNext();}
DigRotate.prototype.RotatePrev=function()
{
if(this.RotateTimer!=null)
clearTimeout(this.RotateTimer);
if(this.ScrollTimer!=null)
clearInterval(this.ScrollTimer);
var page=this.CurrentPage;
if(page==0)
page=this.ContentCount-1;
else
page=page - 1;
this.SetCurrentPage(page);
this.PauseRotation=0;
this.UpdatePager();
this.Rotate();}
DigRotate.prototype.RotateNext=function()
{
if(this.RotateTimer!=null)
clearTimeout(this.RotateTimer);
if(this.ScrollTimer!=null)
clearInterval(this.ScrollTimer);
var page=this.CurrentPage;
if(page==this.ContentCount-1)
page=0;
else
page=page + 1;
this.SetCurrentPage(page);
this.PauseRotation=0;
this.UpdatePager();
this.Rotate();}
DigRotate.prototype.UpdatePager=function()
{
this.HidePagerObjects(this.PauseRotation);
this.EnablePages(this.CurrentPage,this.LastPage);}
DigRotate.prototype.SubmitAt=function(page)
{
if(page==0)
this.SetCurrentPage(this.ContentCount-1);
else
this.SetCurrentPage(page-1);
window.location.reload(false);}
DigRotate.prototype.RotateAt=function(page)
{
if(page!=this.CurrentPage)
{
this.SetCurrentPage(page);
this.PauseRotation=1;
this.UpdatePager();
this.Rotate();}
this.Pause();}
DigRotate.prototype.Rotate=function()
{
if(this.ContentLoad==1)
this.AjaxRotate();
else
{
var id=this.ClientID+"Data"+this.CurrentPage;
var dataDiv=dnn.dom.getById(id);
this.BindContent(dataDiv.innerHTML);}}
DigRotate.prototype.BindContent=function(content)
{
if(this.Transition==998)
{
this.Content1Div.innerHTML=content;
this.MoveTo(this.Content1Div,0,0);
this.EnablePages(this.CurrentPage,this.LastPage);
if(this.PauseRotation==0)
{
var o1=this;
this.RotateTimer=setTimeout(function(){o1.RotateNext();},this.AutoAdvanceDelay);}
if(this.AJAXInitialLoad==1)
this.SetTransition();}
else
{
this.Content2Div.innerHTML=content;
this.EnablePages(this.CurrentPage,this.LastPage);
this.SetDimensions();
this.PrepareScroll();
this.SetScrollInterval();}}
DigRotate.prototype.AjaxRotate=function()
{
clearTimeout(this.RotateTimer);
var o1=this;
dnn.xmlhttp.doCallBack(this.CallbackControl,this.CurrentPage+","+this.ModuleID+","+this.SortOrder,o1.GetRotateHandler,this.ModuleID,o1.GetRotateError,null,null,null,0);}
DigRotate.prototype.GetRotateHandler=function(result,ctx)
{
var o1=window[''+ctx+''];
o1.BindContent(result);}
DigRotate.prototype.GetRotateError=function(result,ctx)
{}
DigRotate.prototype.SetDimensions=function()
{
this.Content1Div.style.height=this.Content2Div.offsetHeight;
this.Content1Div.style.width=this.Content2Div.offsetWidth;
this.Container.style.height=parseInt(this.Content2Div.offsetHeight)+"px";
this.Container.style.width=parseInt(this.Content2Div.offsetWidth)+"px";
this.SetMasterDimensions();}
DigRotate.prototype.SetMasterDimensions=function()
{
this.MasterWidth=this.Container.offsetWidth;
this.MasterHeight=this.Container.offsetHeight;
this.MasterHeightValue=parseInt(this.MasterHeight);
this.MasterWidthValue=parseInt(this.MasterWidth);}
DigRotate.prototype.PrepareScroll=function()
{
this.SetTransition();
this.MoveTo(this.Content1Div,0,0);
this.ScrollStepX=0;
this.ScrollStepY=0;
if(this.Transition==24||this.Transition==28)
{
this.MoveTo(this.Content2Div,0,0);
this.ScrollStepY=-Math.ceil((this.MasterHeightValue/((this.TransitionSpeed*1000.0)/this.ScrollTimeout)));}
else if(this.Transition==25||this.Transition==29)
{
this.MoveTo(this.Content2Div,0,-(this.MasterHeightValue*2));
this.ScrollStepY=Math.ceil((this.MasterHeightValue/((this.TransitionSpeed*1000.0)/this.ScrollTimeout)));}
else if(this.Transition==26||this.Transition==30)
{
this.MoveTo(this.Content2Div,this.MasterWidth,-(this.MasterHeightValue));
this.ScrollStepX=-Math.ceil((this.MasterWidthValue/((this.TransitionSpeed*1000.0)/this.ScrollTimeout)));}
else if(this.Transition==27||this.Transition==31)
{
this.MoveTo(this.Content2Div,-this.MasterWidthValue,-(this.MasterHeightValue));
this.ScrollStepX=Math.ceil((this.MasterWidthValue/((this.TransitionSpeed*1000.0)/this.ScrollTimeout)));}
else if(this.Transition==32||this.Transition==33)
{
this.SetOpacity(this.Content1Div,100);
this.SetOpacity(this.Content2Div,0);
this.MoveTo(this.Content2Div,0,-(this.MasterHeightValue));
this.FadeCounter=0;
this.FadeStep=100.0/((this.TransitionSpeed*1000.0)/this.ScrollTimeout);}}
DigRotate.prototype.MoveTo=function(obj,x,y)
{
obj.style.left=x+"px";
obj.style.top=y+"px";}
DigRotate.prototype.SetOpacity=function(obj,op)
{
obj.style.opacity=(op/100);
obj.opacity=(op/100);
obj.MozOpacity=(op/100);
obj.KhtmlOpacity=(op/100);
if(op==100)
obj.style.filter="";
else
obj.style.filter="alpha(opacity="+ op +")";}
DigRotate.prototype.SetTransition=function()
{
var is_ie=(navigator.userAgent.indexOf('MSIE')>=0&&!window.opera)?1:0;
this.Transition=998;
if(is_ie&&this.IETrans.length>0)
{
transIndex=Math.floor(Math.random()*this.IETrans.length);
this.Transition=this.IETrans[transIndex];}
else
{
if(this.XTrans.length>0)
{
transIndex=Math.floor(Math.random()*this.XTrans.length);
this.Transition=this.XTrans[transIndex];}}}
DigRotate.prototype.Scroll=function()
{
var done=0;
if(this.Transition>=0&&this.Transition<=23)
{
if(this.TransStart==0)
{
this.Content1Div.style.filter="revealTrans(duration="+this.TransitionSpeed+",transition="+this.Transition+")";
this.Content1Div.filters.revealTrans.Apply();
this.Content1Div.innerHTML=this.Content2Div.innerHTML;
this.Content1Div.filters.revealTrans.Play();
this.TransStart=1;}
else
{
if(this.Content1Div.filters.revealTrans.status==0)
{
done=1;
this.TransStart=0;}}}
else if(this.Transition==32)
{
this.FadeCounter=this.FadeCounter + this.FadeStep;
this.SetOpacity(this.Content1Div,100-this.FadeCounter);
this.SetOpacity(this.Content2Div,this.FadeCounter);
if(this.FadeCounter>=100)
done=1;}
else if(this.Transition==33)
{
this.FadeCounter=this.FadeCounter + this.FadeStep;
var use1=100-(this.FadeCounter*2);
if(this.FadeCounter<50)
this.SetOpacity(this.Content1Div,use1);
else
{
this.SetOpacity(this.Content1Div,0);
var use2=(this.FadeCounter-50)*2;
this.SetOpacity(this.Content2Div,(this.FadeCounter-50)*2);}
if(this.FadeCounter>=100)
done=1;}
else
{
var divY=parseInt(this.Content2Div.style.top);
var divX=parseInt(this.Content2Div.style.left);
if(this.Transition==24||this.Transition==28)
{
if(divY+this.ScrollStepY<=-this.MasterHeightValue)
{
this.ScrollStepY=-(this.MasterHeightValue-divY);
done=1;}}
else if(this.Transition==25||this.Transition==29)
{
if((divY+this.ScrollStepY)>=-this.MasterHeightValue)
{
this.ScrollStepY=-this.MasterHeightValue-divY;
done=1;}}
else if(this.Transition==26||this.Transition==30)
{
if((divX+this.ScrollStepX)<=0)
{
this.ScrollStepX=-divX;
done=1;}}
else if(this.Transition==27||this.Transition==31)
{
if((divX+this.ScrollStepX)>=0)
{
this.ScrollStepX=divX;
done=1;}}
this.Content2Div.style.left=(divX+this.ScrollStepX)+"px";
this.Content2Div.style.top=(divY+this.ScrollStepY)+"px";
if(this.Transition==24||this.Transition==25||this.Transition==26||this.Transition==27)
{
this.Content1Div.style.left=(parseInt(this.Content1Div.style.left)+this.ScrollStepX)+"px";
this.Content1Div.style.top=(parseInt(this.Content1Div.style.top)+this.ScrollStepY)+"px";}}
if(done==1)
{
clearInterval(this.ScrollTimer);
this.Content1Div.innerHTML=this.Content2Div.innerHTML;
this.MoveTo(this.Content1Div,0,0);
this.MoveTo(this.Content2Div,0,0);
if(this.Transition==32||this.Transition==33)
{
this.SetOpacity(this.Content1Div,100);
this.SetOpacity(this.Content2Div,100);}
if(this.PauseRotation==0)
this.SetRotateTimer();}}
DigRotate.prototype.EnablePages=function(current,last)
{
var o1=dnn.dom.getById(this.ClientID+"ispage"+current);
var o2=dnn.dom.getById(this.ClientID+"notpage"+current);
this.ShowDiv(o1,1);
this.ShowDiv(o2,0);
if(last!=-1)
{
var o3=dnn.dom.getById(this.ClientID+"ispage"+last);
var o4=dnn.dom.getById(this.ClientID+"notpage"+last);
this.ShowDiv(o3,0);
this.ShowDiv(o4,1);}
var oc=dnn.dom.getById(this.ClientID+"Page"+current);
if(oc==null)
return;
oc.className="current";
if(last!=-1)
{
var oo=dnn.dom.getById(this.ClientID+"Page"+last);
oo.className="";}}
DigRotate.prototype.HidePagerObjects=function(pause)
{
var o1=dnn.dom.getById(this.ClientID+"ispause");
var o2=dnn.dom.getById(this.ClientID+"notpause");
this.ShowDiv(o1,pause);
this.ShowDiv(o2,pause==1?0:1);}
DigRotate.prototype.SetCurrentPage=function(p)
{
this.LastPage=this.CurrentPage;
this.CurrentPage=p;
dnn.dom.setCookie("LastRotate"+this.ModuleID,p,1);}
DigRotate.prototype.ShowDiv=function(o,show)
{
if(o==null)
return;
if(o.style==null)
return;
o.style.display=show==0?"none":"inline";
o.style.visibility=show==0?"hidden":"visible";}