// $Revision: 4$
// $Date: 1/8/2008 2:43:39 PM$
// $Author: Richard Travis Davis$
// $NoKeywords$

function EX_Log( message )
{
    try
    {
        var callerInfo = VM_WIDGET_SOURCE + ", " + VM_WIDGET_VERSION + ", " +VM_WIDGET_OS_VERSION;

        ( new Image() ).src = "/~r.asp?act=1&caller=" + UTILS.escapeUri( callerInfo ) + "&msg=" + UTILS.escapeUri( message );
    }
    catch ( e )
    {
        // ignore
    }
}

/******************************************************************************
  MigrateSettings

    Migrates down-rev settings. This was introduced with the introduction of the
    mobile number control.

******************************************************************************/
function MigrateSettings( )
{
    try
    {
        /******************************************
            Migrate down-rev settings relating to
            the sender's mobile phone number.
        ******************************************/
        var PREF_KEY_DOWNREV_SENDER_PHONE = 'phoneNumber';
        var PREF_KEY_DOWNREV_COUNTRY_CODE = 'countryCd';

        // get and clear the down-rev sender number info
        var downRevSenderPhone = VM_GetPreference( PREF_KEY_DOWNREV_SENDER_PHONE );
        VM_SetPreference( PREF_KEY_DOWNREV_SENDER_PHONE, '' );

        var downRevSenderCountryCode = VM_GetPreference( PREF_KEY_DOWNREV_COUNTRY_CODE );
        VM_SetPreference( PREF_KEY_DOWNREV_COUNTRY_CODE, '' );

        // if the down-rev info isn't available there's nothing to do
        if ( downRevSenderPhone === null ||
             typeof downRevSenderPhone == 'undefined' ||
             downRevSenderPhone.length == 0 )
        {
            return;
        }

        // if the down-rev info is available but we already have
        // up-rev data - there's nothing to do
        var senderMobile = VM_GetPreference( PREF_KEY_SENDER_MOBILE );

        if ( senderMobile )
        {
            return;
        }

        // normalize the down-rev CC setting
        if ( downRevSenderCountryCode === null ||
             typeof downRevSenderCountryCode == 'undefined' ||
             downRevSenderCountryCode.length == 0 )
        {
            downRevSenderCountryCode = CMD_COUNTRY_CODE_CONTROL_ID;
        }

        // Create the up-rev state off of the down-rev data
        senderMobile = new SMS_MobileNumberControlPersistentState( downRevSenderCountryCode, '', downRevSenderPhone );

        // Store the up-rev state in the up-rev key.
        VM_SetPreference( PREF_KEY_SENDER_MOBILE, senderMobile.AsString( ) );
    }
    catch ( e )
    {
        EX_ASSERT_NO_EXCEPTIONS( e, "SMS.js::MigrateSettings( )" );
    }
}

var SMS_ViewController = null;
var PREFERENCES = null;
function startSMSApplication( )
{
    try
    {
        if ( typeof _IG_Prefs != "undefined" )
        {
            PREFERENCES = new _IG_Prefs( );
        }
        else
        {
            PREFERENCES = new PREF_Emulate( );
        }

        MigrateSettings( );

        VM_URL.set_targetService('sms');
        VM_URL._updateUrls();

        SMS_ViewController = new SMS_GadgetViewController( VM_WIDGET_SOURCE, VM_WIDGET_VERSION, VM_WIDGET_OS_VERSION );

        SMS_ViewController.init( );

        GOOGLE_IG_AdjustIFrameHeight( );
    }
    catch ( e )
    {
        EX_Log( "SMS.js::startSMSApplication( )\n" + e.message );
    }
}