﻿function PhBusinessList( skin_prefix, sizing_mode, info_mode, list_id, width, height )
{
	this.m_oAjax			= null;
	this.m_iSizingMode		= sizing_mode;
	this.m_iInfoMode		= info_mode;
	this.m_oContent			= null;
	this.m_oCell			= null;
	this.m_strSkinPrefix	= skin_prefix;
	this.m_iListId			= list_id;
	
	if( sizing_mode == PhBusinessList.SIZING_MODE_FIXED )
	{
		this.m_iWidth	= width;
		this.m_iHeight	= height;
	}
	else
		this.m_iWidth	= width;
	
	this.InitObject();
}

PhBusinessList.prototype = new PhWidget;

PhBusinessList.SIZING_MODE_UNDEFINED	= 0;
PhBusinessList.SIZING_MODE_FIXED		= 1;
PhBusinessList.SIZING_MODE_STRETCH		= 2;

PhBusinessList.INFO_MODE_UNDEFINED		= 0;
PhBusinessList.INFO_MODE_BRIEF_SUMMARY	= 1;
PhBusinessList.INFO_MODE_FEATURED		= 2;

PhBusinessList.ACTION_UNDEFINED		= 0;
PhBusinessList.ACTION_OPEN_FULL_LIST	= 1;

PhBusinessList.prototype.InitObject = function()
{
	this.m_oAjax = new PhAjaxJson();
	
	this.m_oContainer = document.createElement( 'div' );
	this.m_oContainer.style.width = this.m_iWidth+'px';
	
	if( this.m_iSizingMode == PhBusinessList.SIZING_MODE_FIXED )
		this.m_oContainer.style.height = this.m_iHeight+'px';
		
	this.SetupSkin();
	this.GetBusinesses();
}

PhBusinessList.prototype.SetupSkin = function()
{
	this.m_oContent				= document.createElement( 'div' );
	this.m_oContent.className	= this.m_strSkinPrefix+'_list_content';
	
	var html = '';
	
	html += '<table cellpadding="0" cellspacing="0" width="100%" height="100%">';
	html += '<tr><td class="'+this.m_strSkinPrefix+'_list_header"></td></tr>';
	html += '<tr><td valign="top" align="center" class="'+this.m_strSkinPrefix+'_list_body"></td></tr>';
	html += '<tr><td class="'+this.m_strSkinPrefix+'_list_footer"></td></tr>';
	html += '</table>';
	
	this.m_oContainer.innerHTML = html;
	this.m_oCell = this.m_oContainer.getElementsByTagName( 'td' )[1];
	this.m_oCell.appendChild( this.m_oContent );
}

PhBusinessList.prototype.AttachControl = function( ctrl, action )
{
	switch( action )
	{
		case PhBusinessList.ACTION_OPEN_FULL_LIST:
			ctrl.SetMargins( 0, 0, 5, 0 );
			ctrl.SetActionScript( 'alert( "The full members page is not yet done." );' );
			ctrl.AttachToElement( this.m_oCell, this.m_oContent );
			break;		
	}
}

PhBusinessList.prototype.GetBusinesses = function()
{
	var current_date	= new Date();
	var date_str		= current_date.getMonth()+'/'+current_date.getDate()+'/'+current_date.getFullYear();
	var me				= this;
	var cb				= null;
	
	if( this.m_iInfoMode == PhBusinessList.INFO_MODE_BRIEF_SUMMARY )
		cb = function( obj ){ me.GetBusinessNamesCallback( obj ); };
	
	this.m_oAjax.SendRequest( 'system/widgets/business_list/business_list_request.aspx', 'm='+this.m_iInfoMode+'&list_id='+this.m_iListId, null, cb );
}

PhBusinessList.prototype.GetBusinessNamesCallback = function( obj )
{
	var evt_div		= null;
	var title_div	= null;
	var i			= 0;
	var mc_access	= '';
	
	for( i = 0; i < obj.BusinessSummaries.length; i++ )
	{
		evt_div	= document.createElement( 'div' );
		
		if( obj.BusinessSummaries[i].motorcoach_accessible == 'true' ){
			mc_access = ' *';}
		else{
			mc_access = '';}
			
		title_div = document.createElement( 'div' );
		title_div.className = ''+this.m_strSkinPrefix+'_list_item_title';
		title_div.innerHTML = '<a class="'+this.m_strSkinPrefix+'_list_item_link" href="business_details.aspx?business_id='+obj.BusinessSummaries[i].id+'">'+obj.BusinessSummaries[i].name+mc_access+'</a>';
		evt_div.appendChild( title_div );
		
		this.m_oContent.appendChild( evt_div );
	}
}
