
function PromoComponent( controlButtonAltText, balloonText, promoPageURL, promoPanelImageSrc, promoPanelImgWidth, promoPanelImgHeight, promoPanelAltText )
{
	this.index                = 0;
	this.controlButton        = null;
	this.controlButtonImage   = null;
	this.controlButtonAltText = controlButtonAltText;
	this.promoBalloon         = null;
	this.balloonText          = balloonText;
	this.promoPageURL         = promoPageURL;
	this.promoPageWidth       = promoPanelImgWidth;
	this.promoPanelImgHeight  = promoPanelImgHeight;
	this.promoPanel           = null;
	this.promoPanelImage      = null;
	this.mainImage            = new Image();
	this.mainImage.src        = promoPanelImageSrc;
	this.mainImage.alt        = promoPanelAltText;
	this.init();
}

PromoComponent.promoComponent         = null;

PromoComponent.defaultPromoIndex      = 0;
PromoComponent.currentPromo           = null;

PromoComponent.promoArray             = new Array();
PromoComponent.promoArrayLength       = 0;

PromoComponent.panelControl           = null;

PromoComponent.toggleButton           = null;
PromoComponent.toggleButtonImage      = null;
PromoComponent.toggleButtonAltText    = 'NEXT PROMOTION';

PromoComponent.nextButtonImage        = new Image();
PromoComponent.nextButtonImage.src    = '/shared/img/component/promo_bt_01.gif';

PromoComponent.defaultButtonImage     = new Image();
PromoComponent.defaultButtonImage.src = '/shared/img/component/promo_bt_03.gif';

PromoComponent.attClassStr;

if( navigator.userAgent.indexOf( 'MSIE' ) != -1 )
{
	if( navigator.userAgent.indexOf( 'Opera' ) != -1 )
	{
		PromoComponent.attClassStr = 'class';
	}
	else
	{
		PromoComponent.attClassStr = 'className';
	}
}
else
{
	PromoComponent.attClassStr = 'class';
}


function PromoComponent_createPanelContorol()
{
	if( PromoComponent.promoComponent != null && PromoComponent.panelControl == null )
	{
		PromoComponent.panelControl = document.createElement( 'div' );
		PromoComponent.panelControl.setAttribute( 'id', 'promoPanel' );
		PromoComponent.promoComponent.appendChild( PromoComponent.panelControl );
	}
}
PromoComponent.createPanelContorol = PromoComponent_createPanelContorol;


function PromoComponent_setToggleButton()
{
	if( PromoComponent.panelControl != null )
	{
		PromoComponent.toggleButton = document.createElement( 'a' );
		PromoComponent.toggleButton.setAttribute( 'href', 'javascript:void(0);' );
		PromoComponent.toggleButtonImage = document.createElement( 'img' );
		PromoComponent.toggleButtonImage.setAttribute( 'src', PromoComponent.nextButtonImage.src );
		PromoComponent.toggleButtonImage.setAttribute( 'width', '83' );
		PromoComponent.toggleButtonImage.setAttribute( 'height', '11' );
		PromoComponent.toggleButtonImage.setAttribute( 'alt', PromoComponent.toggleButtonAltText );
		PromoComponent.toggleButtonImage.setAttribute( PromoComponent.attClassStr, 'rollover' );
		PromoComponent.toggleButton.appendChild( PromoComponent.toggleButtonImage );
		PromoComponent.panelControl.appendChild( PromoComponent.toggleButton );
	}
}
PromoComponent.setToggleButton = PromoComponent_setToggleButton;



function PromoComponent_setNextPanel()
{
	var tempNextPromoIndex  = PromoComponent.currentPromo.index + 1;
	var maxIndex            = PromoComponent.promoArray.length - 1;
	var nextPromoIndex      = ( tempNextPromoIndex <= maxIndex ) ? tempNextPromoIndex : 0;
	var nextPromo           = PromoComponent.promoArray[nextPromoIndex];
	PromoComponent.currentPromo.controlButton.setAttribute( 'href', 'javascript:void(0);' );
	PromoComponent.currentPromo.controlButtonImage.setAttribute( PromoComponent.attClassStr, 'activeButton' );
	PromoComponent.currentPromo.controlButtonImage.style.background = '#c5c5c5';
	PromoComponent.currentPromo.promoPanel.style.display = 'none';
	PromoComponent.currentPromo = nextPromo;
	PromoComponent.currentPromo.promoPanel.style.display = 'inline';
	PromoComponent.currentPromo.controlButton.removeAttribute( 'href' );
	PromoComponent.currentPromo.controlButtonImage.removeAttribute( PromoComponent.attClassStr );
	PromoComponent.currentPromo.controlButtonImage.style.background = '#644196';
}
PromoComponent.setNextPanel = PromoComponent_setNextPanel;


function PromoComponent_init()
{
	this.setPromoComponent();
	this.setEvent( this.controlButton, 'onmouseover', 'displayBalloon' );
	this.setEvent( this.controlButton, 'onmouseout', 'hideBalloon' );
	this.setEvent( this.controlButton, 'onclick', 'setCurrentProm' );
	if( this.index == ( PromoComponent.promoArrayLength - 1 ) )
	{
		this.setEvent( PromoComponent.toggleButton, 'onclick', 'setNextPanel', 'class' );
	}
}
PromoComponent.prototype.init = PromoComponent_init;

function PromoComponent_setPromoComponent()
{
	var index = PromoComponent.promoArray.length;
	if( PromoComponent.promoComponent == null )
	{
		PromoComponent.promoComponent = document.getElementById( 'promoImg' );
	}
	this.setComponentStatus( index );
	this.setPromoPanel();
	PromoComponent.createPanelContorol();
	this.setContorolButton();
	if( index == ( PromoComponent.promoArrayLength - 1 ) )
	{
		PromoComponent.setToggleButton();
	}
	this.setPromoBalloon();
}
PromoComponent.prototype.setPromoComponent = PromoComponent_setPromoComponent;

function PromoComponent_setComponentStatus( index )
{
	if( PromoComponent.promoComponent != null )
	{
		this.index = index;
		PromoComponent.promoArray[this.index] = this;
		if( this.index == PromoComponent.defaultPromoIndex )
		{
			PromoComponent.currentPromo = this;
		}
	}
}
PromoComponent.prototype.setComponentStatus = PromoComponent_setComponentStatus;

function PromoComponent_setPromoPanel()
{
	if( PromoComponent.promoComponent != null )
	{
		var defaultPanelIndex = PromoComponent.defaultPromoIndex;

		if( this.index == defaultPanelIndex )
		{
			if( typeof PromoComponent.promoComponent.firstChild.href != 'undefined' )
			{
				this.promoPanel = PromoComponent.promoComponent.firstChild;
			}
			else
			{
				this.promoPanel = PromoComponent.promoComponent.firstChild.nextSibling;
			}
			this.promoPanel.href     = this.promoPageURL;
			this.promoPanelImage     = this.promoPanel.firstChild;
			this.promoPanelImage.alt = this.mainImage.alt;
		}
		else
		{
			this.promoPanel = document.createElement( 'a' );
			this.promoPanel.setAttribute( 'href', this.promoPageURL )
			this.promoPanelImage = document.createElement( 'img' );
			this.promoPanelImage.setAttribute( 'src', this.mainImage.src );
			this.promoPanelImage.setAttribute( 'width', this.promoPageWidth );
			this.promoPanelImage.setAttribute( 'height', this.promoPanelImgHeight );
			this.promoPanelImage.setAttribute( 'alt', this.controlButtonAltText );
			this.promoPanel.appendChild( this.promoPanelImage );
			PromoComponent.promoComponent.insertBefore( this.promoPanel, PromoComponent.panelControl );
		}

		if( PromoComponent.currentPromo != this )
		{
			this.promoPanel.style.display = 'none';
		}
	}
}
PromoComponent.prototype.setPromoPanel = PromoComponent_setPromoPanel;


function PromoComponent_setContorolButton()
{
	if( PromoComponent.panelControl != null )
	{
		this.controlButton = document.createElement( 'a' );
		if( PromoComponent.currentPromo != this )
		{
			this.controlButton.setAttribute( 'href', 'javascript:void(0);' );
		}
		this.controlButtonImage = document.createElement( 'img' );
		this.controlButtonImage.setAttribute( 'src', PromoComponent.defaultButtonImage.src );
		this.controlButtonImage.setAttribute( 'width', '11' );
		this.controlButtonImage.setAttribute( 'height', '11' );
		this.controlButtonImage.setAttribute( 'alt', this.controlButtonAltText );
		if( PromoComponent.currentPromo != this )
		{
			this.controlButtonImage.setAttribute( PromoComponent.attClassStr, 'activeButton' );
		}

		this.controlButton.appendChild( this.controlButtonImage );
		PromoComponent.panelControl.appendChild( this.controlButton );
	}
}
PromoComponent.prototype.setContorolButton = PromoComponent_setContorolButton;

function PromoComponent_setPromoBalloon()
{
	if( PromoComponent.panelControl != null )
	{
		var idStr    = 'promoBalloon0' + ( this.index + 1 ).toString();
		this.promoBalloon = document.createElement( 'div' );
		this.promoBalloon.setAttribute( PromoComponent.attClassStr, 'promoBalloon' );
		this.promoBalloon.setAttribute( 'id', idStr );
		var promoDesc = document.createElement( 'div' );
		promoDesc.setAttribute( PromoComponent.attClassStr, 'promoDesc' );
		var desc = document.createElement( 'p' );
		desc.setAttribute( PromoComponent.attClassStr, 'desc' );
		var balloonText = document.createTextNode( this.balloonText );
		desc.appendChild( balloonText );
		promoDesc.appendChild( desc );
		this.promoBalloon.appendChild( promoDesc );
		PromoComponent.promoComponent.insertBefore( this.promoBalloon, this.promoPanel );
		this.promoBalloon.style.display = 'none';
	}
}
PromoComponent.prototype.setPromoBalloon = PromoComponent_setPromoBalloon;


function PromoComponent_setEvent( instance, event, method, methodType  )
{
	if( methodType == 'class' )
	{
		var classStr      = 'PromoComponent';
		instance[ event ] = function()
		{
			eval( classStr + '.' + method + '()' );
		}
	}
	else
	{
		var instanceStr   = 'PromoComponent.promoArray[' + this.index + ']';
		instance[ event ] = function()
		{
			eval( instanceStr + '.' + method + '()' );
		}
	}

}
PromoComponent.prototype.setEvent = PromoComponent_setEvent;

function PromoComponent_displayBalloon()
{
	if( PromoComponent.currentPromo != this )
	{
		this.promoBalloon.style.display = 'block';
		this.controlButtonImage.style.background = '#a184c9';
	}
}
PromoComponent.prototype.displayBalloon = PromoComponent_displayBalloon;

function PromoComponent_hideBalloon()
{
	if( PromoComponent.currentPromo != this )
	{
		this.promoBalloon.style.display = 'none';
		this.controlButtonImage.style.background = '#c5c5c5';
	}
}
PromoComponent.prototype.hideBalloon = PromoComponent_hideBalloon;

function PromoComponent_setCurrentProm()
{
	this.promoBalloon.style.display = 'none';
	PromoComponent.currentPromo.controlButton.setAttribute( 'href', 'javascript:void(0);' );
	PromoComponent.currentPromo.controlButtonImage.setAttribute( PromoComponent.attClassStr, 'activeButton' );
	PromoComponent.currentPromo.controlButtonImage.style.background = '#c5c5c5';
	PromoComponent.currentPromo.promoPanel.style.display = 'none';
	PromoComponent.currentPromo = this;
	PromoComponent.currentPromo.promoPanel.style.display = 'inline';
	PromoComponent.currentPromo.controlButton.removeAttribute( 'href' );
	PromoComponent.currentPromo.controlButtonImage.removeAttribute( PromoComponent.attClassStr );
	PromoComponent.currentPromo.controlButtonImage.style.background = '#644196';
}
PromoComponent.prototype.setCurrentProm = PromoComponent_setCurrentProm;

