var DealerLocator = Class.create();
DealerLocator.prototype = {
	initialize: function(p_aOptions) {
	    this.m_sLinkIDRemove = Object.isArray(p_aOptions.LinkIDRemove) ? p_aOptions.LinkIDRemove : ['locatorNavLink'];
		this.m_sDealerDivID = Object.isString(p_aOptions.DealerDivID) ? p_aOptions.DealerDivID : 'dealerLocatorCnt';
		this.m_sDealerDiv = $(this.m_sDealerDivID);
		this.m_sCloseDealerEm = Object.isString(p_aOptions.CloseDealerEm) ? p_aOptions.CloseDealerEm : 'closeDealerLocatorButton';
		this.CloseDealerEm = $(this.m_sCloseDealerEm);
		this.m_sDealerDiv.currentState = 2;
		this.timerContainer = null;
		
		var i;
		for(i=0;i<this.m_sLinkIDRemove.length;i++){
			var em = $(this.m_sLinkIDRemove[i]); 
			//Event.observe( em, 'mouseover', this._onDealerOver.bindAsEventListener( this, this.m_sContainerDiv ) );
			//Event.observe( em, 'click', this._onDealerClick.bindAsEventListener( this, this.m_sContainerDiv ) );
			Event.observe( em, 'click', this._forceOpen.bindAsEventListener( this, this.m_sContainerDiv ) );
			//Event.observe( em, 'mouseout', this._onDealerOut.bindAsEventListener( this, this.m_sContainerDiv ) );
			
		}
				
		if($('prodDetailDealer')){
			var prodDetailLink = $('prodDetailDealer');
			Event.observe( prodDetailLink, 'click', this._forceOpen.bindAsEventListener( this, this.m_sContainerDiv ) );
		}
		
		Event.observe(this.CloseDealerEm , 'click', this._onDealerCloseClick.bindAsEventListener( this, this.CloseDealerEm ) );
		
	},
	
	_onDealerOver : function(p_eEvent, p_eContainerDiv){
		this.timerContainer = this._openMenu.bind(this).delay(.25);
	},
	
	_onDealerOut : function(p_eEvent, p_eContainerDiv){
		window.clearTimeout(this.timerContainer);
		this.timerContainer = null;
	},
	
	_forceOpen : function(p_eEvent, p_eContainerDiv){
		p_eEvent.stop();
		this._openMenu();		
	},
	
	_openMenu : function(){
		if(this.m_sDealerDiv.currentState == 2){
			this.m_sDealerDiv.hide();
			this.m_sDealerDiv.setStyle({width:'950px',height:'378px',top:'118px'});
			new Effect.Grow(this.m_sDealerDiv, {duration: .5,direction: 'top-left'});
			this.m_sDealerDiv.currentState = 1;
		}
	},
	
	_onDealerCloseClick : function(p_eEvent, p_eAnchor){
		p_eEvent.stop();
		new Effect.Shrink(this.m_sDealerDiv, {duration: .5, direction: 'top-left'});
		this.m_sDealerDiv.currentState = 2;
	},
	
	_onDealerClick : function(p_eEvent, p_eAnchor){
		p_eEvent.stop();
		return false;
	}
};