var aServiceTypes = new Array();
var aServiceRelationships = new Array();

var oServiceField;
var oSpecialtyField;

function ServiceType( sService, sSpecialty )
{
	this.Service = sService;
	this.Specialty = sSpecialty;
}

function registerArizonaServiceField( sID )
{
	oServiceField = document.getElementById( sID );			
}

function registerArizonaSpecialtyField( sID )
{
	oSpecialtyField = document.getElementById( sID );			
}

function registerArizonaServiceType( sService, sSpecialty )
{
	var oServiceType = new ServiceType( sService, sSpecialty );
	
	aServiceTypes.push( oServiceType );
}

function initServiceTypeFields( sDefaultService, sDefaultSpecialty )
{
	var sService;
	var nService = 0;
	
	oServiceField.options.length = 0;
	
	for( var nIndex = 0; nIndex < aServiceTypes.length; nIndex++ )
	{
		var oServiceType = aServiceTypes[ nIndex ];				
		var bDefault = false;
		
		if( sService != oServiceType.Service )				
		{
			var oOption = new Option( oServiceType.Service, oServiceType.Service );
			
			if( oServiceType.Service == sDefaultService )
				oOption.selected = true;						
		
			oServiceField.options.add( oOption );
		}
			
		sService = oServiceType.Service;				
	}			

	oServiceField.onchange = onServiceTypeChange;
	
	onServiceTypeChange( sDefaultSpecialty );
}

function registerArizonServiceRelationship( sID, sService )
{
	var oRelationship = new Object();
	
	oRelationship.Field = document.getElementById( sID );
	oRelationship.Service = sService;
		
	aServiceRelationships.push( oRelationship );
}

function onServiceTypeChange( sDefaultSpecialty )
{
	var sService = oServiceField.options[ oServiceField.selectedIndex ].value;
	
	oSpecialtyField.options.length = 0;
	oSpecialtyField.options.add( new Option( 'Display All', '' ) );	
	
	for( var nIndex = 0; nIndex < aServiceTypes.length; nIndex++ )
	{
		var oServiceType = aServiceTypes[ nIndex ];
		
		if( oServiceType.Service == sService )
		{
			if( oServiceType.Specialty.length > 0 )
			{
				var oOption = new Option( oServiceType.Specialty, oServiceType.Specialty );
				
				if( oServiceType.Specialty == sDefaultSpecialty )
					oOption.selected = true;						
					
				oSpecialtyField.options.add( oOption );
			}
		}
	}
	
	if( oSpecialtyField.options.length == 0 )
		oSpecialtyField.disabled = true;
	else
		oSpecialtyField.disabled = false;
				
	for( var nIndex = 0; nIndex < aServiceRelationships.length; nIndex++ )
	{
		var oRelationship = aServiceRelationships[ nIndex ];
		
		if( oRelationship.Service == sService )
		{
			oRelationship.Field.disabled = false;
		}
		else
		{
			oRelationship.Field.selectedIndex = 0;
			oRelationship.Field.disabled = true;
		}
	}
		
}
