//
function getHcwhyFlashObject()
{
    if (navigator.appName.indexOf("Microsoft") != -1)
    {
		return $get('hcwhy');
	}
	else
	{
		return document.hcwhy;
	}
}

//
function get_data()
{
    //CallHcwhyDataService();
    CallHcwhyDataPage();
}

//
function PushHcwhyData(data)
{
	var flashObject = getHcwhyFlashObject();
	
	if (flashObject)
	{
	    flashObject.return_data(data);
	}
}

//
function CallHcwhyDataService()
{
    var svc = new DesertBloom.WallaceSaunders.WebUI.HcwhyData();
    
    svc.set_defaultSucceededCallback(OnHcwhySucceeded);
    svc.set_defaultFailedCallback(OnHcwhyFailed);
    
    svc.GetData();
}

//
function OnHcwhySucceeded(result, eventArgs, methodName)
{
    PushHcwhyData(result);
}

//
function OnHcwhyFailed(error, userContext, methodName)
{
    alert('Failed to retrieve Intro data:\r\n' + error.get_message());
}

//
function CallHcwhyDataPage()
{
    var wRequest =  new Sys.Net.WebRequest();
    
    wRequest.set_url("HcwhyData.aspx");
    wRequest.set_httpVerb("GET");
    wRequest.add_completed(OnWebRequestCompleted);
    
    wRequest.invoke();
}

//
function OnWebRequestCompleted(executor, eventArgs) 
{
    if(executor.get_responseAvailable()) 
    {
        PushHcwhyData(executor.get_responseData());
    }
}

//
function detectFlash(requiredVersion)
{
    var pluginFound = false; 
    
    pluginFound = detectFlashPlugin(requiredVersion); 
    
    if(!pluginFound && detectableWithVB)
    {
		pluginFound = detectActiveXControl('ShockwaveFlash.ShockwaveFlash.' + requiredVersion);
    }
    
    return pluginFound;
}

//
function detectFlashPlugin(requiredVersion)
{
    var pluginFound = false;
    var detectedVersion = 0;
    var newVersion = 0;
    var re = /^.*Shockwave.*Flash.*?((\d)+).*$/i;
    
    if (navigator.plugins && navigator.plugins.length > 0)
    {
		var pluginsArrayLength = navigator.plugins.length;
		
		for (var pluginsArrayCounter=0; pluginsArrayCounter < pluginsArrayLength; pluginsArrayCounter++ )
		{
			if (navigator.plugins[pluginsArrayCounter].name.match(re))
			{
				pluginFound = true;
				
				newVersion = parseInt(RegExp.$1);
				
				if (newVersion > detectedVersion)
				{
					detectedVersion = newVersion;
				}
			}
			else if (navigator.plugins[pluginsArrayCounter].description.match(re))
			{
				pluginFound = true;
				newVersion = parseInt(RegExp.$1);
				
				if (newVersion > detectedVersion)
				{
					detectedVersion = newVersion;
				}
			}
		}
    }
    
    return pluginFound && detectedVersion >= requiredVersion;
}
