// ********************************************************************************************************************
// Billboards Javascript
// Version 1.0.2a
//
// Date Created:  2009-02-11
// Last Modified: 2009-07-13
//
// Requires: Common v1.1+
//
// Created by MeMSO of A Far Site Better
// (c) Copyright 2009
if(typeof(INCLUDES)=='undefined')alert('Error! Common v1.1.0 or higher is required!');else if(VersionCompare('1.1.0',INCLUDES.common)==2)alert('Error! Common v1.1.0 or higher is required!');INCLUDES.page_billboards='1.0.2';var PgbB3pH='/images/billboards/';var PgbB54='main/';var PgbB3I='mini/';var PgbB='BillboardOverlay';var PgbB4='BillboardMiniEntry';var PgbBx='BillboardProgressB';var PgbBpo='BillboardProgressT';var PgbBS='BillboardHighlight';var PgbBith='BillboardButtonPauseIm';var PgbBG='BillboardButtonPlayIm';var PgbBsH1='BillboardButtonPrevIm';var PgbBL='BillboardButtonNextIm';var BILLBOARD_DISPLAYTYPE_NOEXTRA=0;var BILLBOARD_DISPLAYTYPE_MINIIMAGES=1;var BILLBOARD_DISPLAYTYPE_PROGRESSNUMBERS=2;var Billboards=null;var BillboardInternal;BillboardInternal={BillboardNum:0};var PgbB8xh=0x0000;ExecuteOnLoad(Billboard_Initialize);ExecuteOnUnLoad(Billboard_DeInitialize);function Billboard_Initialize(){if(PgbB8xh&0x01)return ;PgbB8xh|=0x02;var _hW;for(_hW=0;_hW<BillboardInternal.BillboardNum;_hW++){Billboard_BBInitialize(_hW);}PgbB8xh&=~0x02;PgbB8xh|=0x01;}function Billboard_DeInitialize(){var _xqB,_0R;PgbB8xh&=~0x01;for(_xqB=0;_xqB<BillboardInternal.BillboardNum;_xqB++){_0R=Billboards[_xqB];_0R.OverlayPnts[0]=null;_0R.OverlayPnts[1]=null;}}function BillboardObject(_h){this.Index=_h;this.CatID=0;this.CatScriptName='';this.CatFlags=0;this.CatMainImageMaxWid=500;this.CatMainImageMaxHei=300;this.CatMiniImageMaxWid=100;this.CatMiniImageMaxHei=100;this.Entries=null;this.EntryNum=0;this.DisplayFlags=0;this.DisplayType=BILLBOARD_DISPLAYTYPE_NOEXTRA;this.BillboardMax=8;this.OverlayClass='BillboardOverlay';this.OverlaySwapTimeout=5000;this.OverlayEffectRate=50;this.OverlayEffectFrames=10;this.MainRegionID='BillboardMain';this.ControlButtonsOuterID='';this.ControlButtonsID='BillboardControlButtons';this.ImagePlay='';this.ImagePlayWid=0;this.ImagePlayHei=0;this.ImagePlayClass='BillboardButtonPlay';this.ImagePause='';this.ImagePauseWid=0;this.ImagePauseHei=0;this.ImagePauseClass='BillboardButtonPause';this.ImagePrevious='';this.ImagePreviousWid=0;this.ImagePreviousHei=0;this.ImagePreviousClass='BillboardButtonPrevious';this.ImageNext='';this.ImageNextWid=0;this.ImageNextHei=0;this.ImageNextClass='BillboardButtonNext';this.EntryListOuterID='BillboardEntryListOuter';this.EntryListInnerID='BillboardEntryList';this.EntryListEntryClass='BillboardELEntry';this.EntryListHighlightClass='BillboardELHighlight';this.HighlightEffectRate=100;this.HighlightEffectFrames=20;this.EntryListProgressOuterClass='BillboardProgressEntryOuter';this.EntryListProgressEmptyClass='BillboardProgressEntryEmpty';this.EntryListProgressFullClass='BillboardProgressEntryFull';this.EntryListProgressWid=100;this.EntryListProgressHei=24;this.Flags=0;this.OverlayPnts=[null,null];this.CurEntryIndex=-1;this.CurTimeout=0;this.OverlayEffect=-1;this.HighlightEffect=-1;}function Billboard_Allocate(){var _=BillboardInternal.BillboardNum++;if(!_)Billboards=[];Billboards[_]=new BillboardObject(_);return _;}function Billboard_BBInitialize(_i_){if(!(PgbB8xh&0x03))return ;if(_i_<0||_i_>=BillboardInternal.BillboardNum)return ;var _i=Billboards[_i_];var _R;if(_i.Flags&0x01)return ;_i.EntryNum=_i.Entries.length;_R='';_R+='<div'+' id="'+PgbB+_i_+'x0"'+' class="'+_i.OverlayClass+'"'+' onclick="Billboard_OverlayClick('+_i_+');"';_R+=' style="opacity: 1.0;';if(User.InIE)_R+=' filter: alpha(opacity=100);';if(User.InSafari||User.InKonqueror)_R+=' -khtml-opacity: 1.0;';_R+='"></div>';_R+='<div'+' id="'+PgbB+_i_+'x1"'+' class="'+_i.OverlayClass+'"'+' onclick="Billboard_OverlayClick('+_i_+');"';_R+=' style="opacity: 1.0;';if(User.InIE)_R+=' filter: alpha(opacity=100);';if(User.InSafari||User.InKonqueror)_R+=' -khtml-opacity: 1.0;';_R+='"></div>';SetContent(_i.MainRegionID,_R);_i.OverlayPnts[0]=GP(PgbB+_i_+'x0');_i.OverlayPnts[1]=GP(PgbB+_i_+'x1');var _Y,_qc,_,_L;var _Ws='';if(!(_i.DisplayFlags&0x04)&&_i.EntryNum>1){if(_i.EntryNum==2){if(Random(2)){_L=_i.Entries[0];_i.Entries[0]=_i.Entries[1];_i.Entries[1]=_L;}}else {for(_=0;_<2;_++){for(_Y=0;_Y<_i.EntryNum;_Y++){do{_qc=Random(_i.EntryNum);}while(_qc==_Y);_L=_i.Entries[_Y];_i.Entries[_Y]=_i.Entries[_qc];_i.Entries[_qc]=_L;}}}}if(_i.EntryNum>_i.BillboardMax&&_i.BillboardMax)_i.EntryNum=_i.BillboardMax;for(_Y=0;_Y<_i.EntryNum;_Y++){if(_Ws!='')_Ws+=',';_Ws+=PgbB3pH+_i.CatScriptName+'/'+PgbB54+_i.Entries[_Y][2];}if(_i.DisplayType!=BILLBOARD_DISPLAYTYPE_NOEXTRA){_R='';switch(_i.DisplayType){case BILLBOARD_DISPLAYTYPE_MINIIMAGES:for(_Y=0;_Y<_i.EntryNum;_Y++){_L=_i.Entries[_Y];_R+='<div'+' id="'+PgbB4+_i_+'x'+_Y+'"'+' class="'+_i.EntryListEntryClass+(_Y?'':' First')+'"'+' onmouseover="SmartMouse(event, this, \'Billboard_EntryMO('+_i_+', '+_Y+', 1);\', 1);"'+' onmouseout="SmartMouse(event, this, \'Billboard_EntryMO('+_i_+', '+_Y+', 0);\', 0);"'+' onclick="Billboard_EntryClick('+_i_+', '+_Y+');">'+'<img src="'+PathFormFix(PgbB3pH+_i.CatScriptName+'/'+PgbB3I+_L[5])+'"'+' width="'+_L[6]+'" height="'+_L[7]+'" alt="" />'+'</div>';}_R+='<div id="'+PgbBS+_i_+'" class="'+_i.EntryListHighlightClass+'">'+'<img src="'+SiteDotImage+'" width="1" height="1" alt="" />'+'</div>';break;case BILLBOARD_DISPLAYTYPE_PROGRESSNUMBERS:for(_Y=0;_Y<_i.EntryNum;_Y++){_L=_i.Entries[_Y];_R+='<div class="'+_i.EntryListProgressOuterClass+(_Y?'':' First')+'">';_R+='<div'+' id="'+PgbBx+_i_+'x'+_Y+'"'+' class="'+_i.EntryListProgressEmptyClass+'"'+' onmouseover="SmartMouse(event, this, \'Billboard_EntryMO('+_i_+', '+_Y+', 1);\', 1);"'+' onmouseout="SmartMouse(event, this, \'Billboard_EntryMO('+_i_+', '+_Y+', 0);\', 0);"'+' onclick="Billboard_EntryClick('+_i_+', '+_Y+');">'+(_Y+1)+'</div>';_R+='<div'+' id="'+PgbBpo+_i_+'x'+_Y+'"'+' class="'+_i.EntryListProgressFullClass+'"'+' onmouseover="SmartMouse(event, this, \'Billboard_EntryMO('+_i_+', '+_Y+', 1);\', 1);"'+' onmouseout="SmartMouse(event, this, \'Billboard_EntryMO('+_i_+', '+_Y+', 0);\', 0);"'+' onclick="Billboard_EntryClick('+_i_+', '+_Y+');">'+(_Y+1)+'</div>';_R+='</div>';}break;default:alert('Invalid display type of '+_i.DisplayType+'!');return ;}SetContent(_i.EntryListInnerID,_R);}if(_i.DisplayFlags&0x03){_R='';if(_i.DisplayFlags&0x02){_R+='<div'+' class="'+_i.ImagePreviousClass+'"'+' onmouseover="Billboard_ButtonMO('+_i_+', 2, 1);"'+' onmouseout="Billboard_ButtonMO('+_i_+', 2, 0);"'+' onmousedown="Billboard_ButtonClick('+_i_+', 2, 1);"'+' onmouseup="Billboard_ButtonClick('+_i_+', 2, 0);"'+'>'+'<img src="'+PathFormFix(_i.ImagePrevious)+'"'+' width="'+_i.ImagePreviousWid+'"'+' height="'+_i.ImagePreviousHei+'"'+' id="'+PgbBsH1+_i_+'"'+' alt="" />'+'</div>';if(_Ws!='')_Ws+=',';_Ws+=FileExtAppend(_i.ImagePrevious,'mo')+','+FileExtAppend(_i.ImagePrevious,'on');}if(_i.DisplayFlags&0x01){_R+='<div'+' class="'+_i.ImagePauseClass+'"'+' onmouseover="Billboard_ButtonMO('+_i_+', 1, 1);"'+' onmouseout="Billboard_ButtonMO('+_i_+', 1, 0);"'+' onmousedown="Billboard_ButtonClick('+_i_+', 1, 1);"'+' onmouseup="Billboard_ButtonClick('+_i_+', 1, 0);"'+'>'+'<img src="'+PathFormFix(_i.ImagePause)+'"'+' width="'+_i.ImagePauseWid+'"'+' height="'+_i.ImagePauseHei+'"'+' id="'+PgbBith+_i_+'"'+' alt="" />'+'</div>';_R+='<div'+' class="'+_i.ImagePlayClass+'"'+' onmouseover="Billboard_ButtonMO('+_i_+', 0, 1);"'+' onmouseout="Billboard_ButtonMO('+_i_+', 0, 0);"'+' onmousedown="Billboard_ButtonClick('+_i_+', 0, 1);"'+' onmouseup="Billboard_ButtonClick('+_i_+', 0, 0);"'+'>'+'<img src="'+PathFormFix(FileExtAppend(_i.ImagePlay,'on'))+'"'+' width="'+_i.ImagePlayWid+'"'+' height="'+_i.ImagePlayHei+'"'+' id="'+PgbBG+_i_+'"'+' alt="" />'+'</div>';if(_Ws!='')_Ws+=',';_Ws+=FileExtAppend(_i.ImagePause,'mo')+','+FileExtAppend(_i.ImagePause,'on')+','+FileExtAppend(_i.ImagePlay,'mo')+','+_i.ImagePlay;}if(_i.DisplayFlags&0x02){_R+='<div'+' class="'+_i.ImageNextClass+'"'+' onmouseover="Billboard_ButtonMO('+_i_+', 3, 1);"'+' onmouseout="Billboard_ButtonMO('+_i_+', 3, 0);"'+' onmousedown="Billboard_ButtonClick('+_i_+', 3, 1);"'+' onmouseup="Billboard_ButtonClick('+_i_+', 3, 0);"'+'>'+'<img src="'+PathFormFix(_i.ImageNext)+'"'+' width="'+_i.ImageNextWid+'"'+' height="'+_i.ImageNextHei+'"'+' id="'+PgbBL+_i_+'"'+' alt="" />'+'</div>';if(_Ws!='')_Ws+=',';_Ws+=FileExtAppend(_i.ImageNext,'mo')+','+FileExtAppend(_i.ImageNext,'on');}SetContent(_i.ControlButtonsID,_R);}setTimeout('Billboard_EntryJump('+_i_+', 0, 0);',10);PreloadImages(_Ws);_i.Flags|=0x01;}function Billboard_StartTimer(_){if(_<0||_>=BillboardInternal.BillboardNum)return ;var _nx=Billboards[_];if(_nx.CurTimeout){clearTimeout(_nx.CurTimeout);_nx.CurTimeout=0;}if(_nx.DisplayType==BILLBOARD_DISPLAYTYPE_PROGRESSNUMBERS){var _94q=GP(PgbBpo+_+'x'+_nx.CurEntryIndex);SetClip(_94q,0,0,0,_nx.EntryListProgressHei);SetVisible(_94q,1);_nx.HighlightEffect=Effect_Add(_94q,EFFECT_CONTENTTYPE_CONTENT,EFFECT_TYPE_CLIP,_nx.HighlightEffectRate,_nx.HighlightEffectFrames,{newclipx1:0,newclipy1:0,newclipx2:_nx.EntryListProgressWid,newclipy2:_nx.EntryListProgressHei,oncomplete:'Billboard_EntryJump('+_+', '+((_nx.CurEntryIndex+1)%_nx.EntryNum)+', 0);'});}else {_nx.CurTimeout=setTimeout('Billboard_EntryJump('+_+', '+((_nx.CurEntryIndex+1)%_nx.EntryNum)+', 0);',_nx.OverlaySwapTimeout);}}function Billboard_EffectStart(_zx){if(_zx<0||_zx>=BillboardInternal.BillboardNum)return ;var _R=Billboards[_zx];_R.OverlayEffect=Effect_Start(_R.OverlayPnts[(_R.Flags&0x02)?1:0],EFFECT_CONTENTTYPE_CONTENT,EFFECT_DOFADEIN,_R.OverlayEffectRate,_R.OverlayEffectFrames,{newopacity:100,oncomplete:'Billboard_EffectComplete('+_zx+', 0);'});if(_R.DisplayType==BILLBOARD_DISPLAYTYPE_MINIIMAGES){var _I,_;_I=GetLeft(PgbB4+_zx+'x'+_R.CurEntryIndex,0)-GetLeft(_R.EntryListInnerID,2);_=GetTop(PgbB4+_zx+'x'+_R.CurEntryIndex,0)-GetTop(_R.EntryListInnerID,2);_R.HighlightEffect=Effect_Add(PgbBS+_zx,EFFECT_CONTENTTYPE_CONTENT,EFFECT_TYPE_SLIDE,_R.HighlightEffectRate,_R.HighlightEffectFrames,{newx:_I,newy:_,oncomplete:'Billboard_EffectComplete('+_zx+', 1);'});}}function Billboard_EffectComplete(_o1e,_VU){if(_o1e<0||_o1e>=BillboardInternal.BillboardNum)return ;var _5=Billboards[_o1e];if(_VU)_5.HighlightEffect=-1;else _5.OverlayEffect=-1;if(_5.HighlightEffect==-1&&_5.OverlayEffect==-1){if(!(_5.Flags&0x04))Billboard_StartTimer(_o1e);}}function Billboard_Stop(_){if(_<0||_>=BillboardInternal.BillboardNum)return ;var _xh=Billboards[_];if(_xh.CurTimeout){clearTimeout(_xh.CurTimeout);_xh.CurTimeout=0;}if(_xh.OverlayEffect!=-1){Effect_Complete(_xh.OverlayEffect);_xh.OverlayEffect=-1;}if(_xh.HighlightEffect!=-1){Effect_Complete(_xh.HighlightEffect);_xh.HighlightEffect=-1;}}function Billboard_EntryJump(_gv,_PA,_J){if(!(PgbB8xh&0x01))return ;if(_gv<0||_gv>=BillboardInternal.BillboardNum)return ;var _5=Billboards[_gv];if(_5.CurEntryIndex==_PA)return ;Billboard_Stop(_gv);var _u=_5.OverlayPnts[(_5.Flags&0x02)?1:0];var _w=_5.OverlayPnts[(_5.Flags&0x02)?0:1];SetVisible(_w,0);if(!_J)SetStyle(_w,'opacity',0);SetStyle(_w,'background-image',PathFormFix(PgbB3pH+_5.CatScriptName+'/'+PgbB54+_5.Entries[_PA][2]));SetStyle(_u,'z-index',1);SetStyle(_w,'z-index',2);_5.Flags^=0x02;Billboard_EntryDisplayUpdate(_gv,_5.CurEntryIndex,_PA);_5.CurEntryIndex=_PA;if(!_J){Billboard_EffectStart(_gv);return ;}if(_5.DisplayFlags&0x08&&!(_5.Flags&0x04)){if(_5.DisplayFlags&0x01){GP(PgbBG+_gv).src=_5.ImagePlay;GP(PgbBith+_gv).src=FileExtAppend(_5.ImagePause,'on');}_5.Flags|=0x04;}SetVisible(_w,1);SetStyle(_w,'opacity',100);SetVisible(_u,0);SetStyle(_u,'opacity',0);if(_5.DisplayType==BILLBOARD_DISPLAYTYPE_MINIIMAGES){var _S,_QR;_S=GetLeft(PgbB4+_gv+'x'+_5.CurEntryIndex,0)-GetLeft(_5.EntryListInnerID,2);_QR=GetTop(PgbB4+_gv+'x'+_5.CurEntryIndex,0)-GetTop(_5.EntryListInnerID,2);Move(PgbBS+_gv,_S,_QR);}if(!(_5.Flags&0x04))Billboard_StartTimer(_gv);}function Billboard_EntryDisplayUpdate(_Kv,_YR,_X){if(!(PgbB8xh&0x01))return ;if(_Kv<0||_Kv>=BillboardInternal.BillboardNum)return ;var _=Billboards[_Kv];if(_.DisplayType==BILLBOARD_DISPLAYTYPE_PROGRESSNUMBERS){var _VpL;if(_YR<0)_YR=0;if(_YR<_X){for(_VpL=_YR;_VpL<_X;_VpL++){RemoveClip(PgbBpo+_Kv+'x'+_VpL);SetVisible(PgbBpo+_Kv+'x'+_VpL,1);}}else if(_YR>_X){for(_VpL=_X+1;_VpL<=_YR;_VpL++){SetVisible(PgbBpo+_Kv+'x'+_VpL,0);}}SetVisible(PgbBpo+_Kv+'x'+_X,0);}}function Billboard_OverlayClick(_){if(_<0||_>=BillboardInternal.BillboardNum)return ;var _Or=Billboards[_];if(_Or.CurEntryIndex==-1)return ;if(_Or.Entries[_Or.CurEntryIndex][1]!='')eval(_Or.Entries[_Or.CurEntryIndex][1]);}function Billboard_EntryMO(__,_Td,_Xk5){if(__<0||__>=BillboardInternal.BillboardNum)return ;var _t=Billboards[__];}function Billboard_EntryClick(_amN,_Q8){if(_amN<0||_amN>=BillboardInternal.BillboardNum)return ;var _6r=Billboards[_amN];Billboard_EntryJump(_amN,_Q8,1);}function Billboard_ButtonMO(_cxM,_tZ,_M0z){if(!(PgbB8xh&0x01))return ;if(_cxM<0||_cxM>=BillboardInternal.BillboardNum)return ;var _yK=Billboards[_cxM];switch(_tZ){case 0:if(!(_yK.Flags&0x04))return ;GP(PgbBG+_cxM).src=_M0z?FileExtAppend(_yK.ImagePlay,'mo'):_yK.ImagePlay;break;case 1:if(_yK.Flags&0x04)return ;GP(PgbBith+_cxM).src=_M0z?FileExtAppend(_yK.ImagePause,'mo'):_yK.ImagePause;break;case 2:GP(PgbBsH1+_cxM).src=_M0z?FileExtAppend(_yK.ImagePrevious,'mo'):_yK.ImagePrevious;break;case 3:GP(PgbBL+_cxM).src=_M0z?FileExtAppend(_yK.ImageNext,'mo'):_yK.ImageNext;break;}}function Billboard_ButtonClick(_sh6,_Q,_Hvn){if(!(PgbB8xh&0x01))return ;if(_sh6<0||_sh6>=BillboardInternal.BillboardNum)return ;var _=Billboards[_sh6];switch(_Q){case 0:if(_Hvn){if(!(_.Flags&0x04))return ;GP(PgbBith+_sh6).src=_.ImagePause;GP(PgbBG+_sh6).src=FileExtAppend(_.ImagePlay,'on');_.Flags&=~0x04;Billboard_StartTimer(_sh6);}break;case 1:if(_Hvn){if(_.Flags&0x04)return ;GP(PgbBG+_sh6).src=_.ImagePlay;GP(PgbBith+_sh6).src=FileExtAppend(_.ImagePause,'on');Billboard_Stop(_sh6);Billboard_EntryDisplayUpdate(_sh6,_.CurEntryIndex,_.CurEntryIndex);_.Flags|=0x04;}break;case 2:if(_Hvn){GP(PgbBsH1+_sh6).src=FileExtAppend(_.ImagePrevious,'on');var _2t=_.CurEntryIndex-1;if(_2t<0)_2t=_.EntryNum-1;Billboard_EntryJump(_sh6,_2t,1);}else {GP(PgbBsH1+_sh6).src=FileExtAppend(_.ImagePrevious,'mo');}break;case 3:if(_Hvn){GP(PgbBL+_sh6).src=FileExtAppend(_.ImageNext,'on');var _2t=(_.CurEntryIndex+1)%_.EntryNum;Billboard_EntryJump(_sh6,_2t,1);}else {GP(PgbBL+_sh6).src=FileExtAppend(_.ImageNext,'mo');}break;}}