dLength = window.location.hostname.length + 7;

lastHref = '';
tradeSharesValid = 0;
tradePriceValid  = 0;

function loadSection( section )
{
   timerTotal = 0;

   if( typeof( lastHref ) == 'undefined' )
   {
     lastHref = '';
   }
   else if( lastHref == "?" )
   {
     lastHref = '';
   }
   else if( lastHref.search( "http" ) == 0 )
   {
      var position = lastHref.indexOf( "?" );

      lastHref = lastHref.substr( position );
   }
   else
   {
      var url = window.location.href;
      var position = url.indexOf( "?" );

      if(position >= 0)
      {
         lastHref = url.substr( position );
      }
      else
      {
         //lastHref = '';
      }
   }

   if( section.substr(0,6) == 'trade_' )
   {
      subSection = section.substr(6);

      if( subSection.search( "__" ) > 0 )
      {
         subSection = subSection.substring( 0, subSection.search( "__" ) );
      }

      if( subSection == 'confirm' || subSection == 'complete' ){
         submitTrade( submitButtonValue );
      } else if( subSection == 'outstanding' ){
         getData( '/trade/outstanding.cgi' + lastHref, 'parseMain', '0' );
      } else {  // request
         var setRequestFocus = function() {
            YAHOO.util.Event.onAvailable('buySell', function() {this.focus()});
         };
         getData( '/trade/request.cgi' + lastHref, 'parseMain', '0', setRequestFocus );
      }
   }
   else if( section.substr(0,4) == 'ipo_' )
   {
      subSection = section.substr(4);
      
      if( subSection == 'confirm' || subSection == 'complete' )
         submitIPO( submitButtonValue );
      else  // request
         getData( '/trade/ipo.cgi' + lastHref, 'parseMain', '0' );
   }
   else if( section.substring(0,7) == 'social_' )
   {
      subSection = section.substring(7);

      if( subSection.search( "__" ) > 0 )
      {
         subSection = subSection.substring( 0, subSection.search( "__" ) );
      }

      if( subSection == 'friends' )
         getData( '/account/friends.cgi' + lastHref, 'parseMain', '0' );
      else if( subSection == 'shoutbox' )
         getData( '/account/shoutbox.cgi' + lastHref, 'parseMain', '0' );
      else if( subSection == 'groups' )
         getData( '/account/groups.cgi' + lastHref, 'parseMain', '0' );
      else if( subSection == 'photo' )
         getData( '/account/photo.cgi' + lastHref, 'parseMain', '0' );
      else if( subSection == 'account_info_submit' )
         submitSocialAccountInfo( submitButtonValue );
      else if( subSection == 'suggestPhoto' )
         getData( '/account/athlete/photo.cgi' + lastHref, 'parseMain', '0' );
      else
         getData( '/account/bio.cgi' + lastHref, 'parseMain', '0' );
      
   }
   else if( section.substring(0,9) == 'settings_' )
   {
      subSection = section.substring(9);

      if( subSection.search( "__" ) > 0 )
      {
         subSection = subSection.substring( 0, subSection.search( "__" ) );
      }

      if( subSection == 'notification' )
         getData( '/account/notification.cgi' + lastHref, 'parseMain', '0' );
      else if( subSection == 'notification_submit' )
         submitNotification( submitButtonValue );
      else if( subSection == 'privacy_overview' )
         getData( '/account/privacy/overview.cgi' + lastHref, 'parseMain', '0' );
      else if( subSection == 'privacy_overview_default' )
         submitOverview( submitButtonValue );
      else if( subSection == 'privacy_overview_fm_rankings' )
         submitFanMogulRankings( submitButtonValue );
      else if( subSection == 'privacy_profile_submit' )
         submitPrivacyProfile( submitButtonValue );
      else if( subSection == 'privacy_search_submit' )
         submitPrivacySearch( submitButtonValue );
      else if( subSection == 'privacy_profile' )
         getData( '/account/privacy/profile.cgi' + lastHref, 'parseMain', '0' );
      else if( subSection == 'privacy_search' )
         getData( '/account/privacy/search.cgi' + lastHref, 'parseMain', '0' );
      else if( subSection == 'account_info_submit' )
         submitSettingsAccountInfo( submitButtonValue );
      else if( subSection == 'messageBoard_main' )
         getData( '/account/messageBoard.cgi' + lastHref, 'parseMain', '0' );
      else if( subSection == 'funding_main' ) 
         getData( '/commerce/accounts.cgi', 'parseMain', '0', fundingInit );
      else if( subSection == 'funding_select' ) 
         submitSettingsFundingSelect( submitButtonValue );
      else if( subSection == 'funding_verify_pending' )
         submitSettingsFundingVerifyPending( submitButtonValue );
      else // Account Info
         getData( '/account/information.cgi' + lastHref, 'parseMain', '0' );

   }
   else if( section.substring(0,5) == 'watch' )
   {
      getData( '/account/watch.cgi' + lastHref, 'parseMain', '0' );
   }
   else if( section.substring(0,7) == 'report_' )
   {
      subSection = section.substring(7);

      if( subSection.search( "__" ) > 0 )
      {
         subSection = subSection.substring( 0, subSection.search( "__" ) );
      }

      if( subSection == 'download' )
      {
         var outputId = document.getElementById( 'output' );
         var formId = document.getElementById( 'downloadForm' );

         if( outputId.value == 'online' )
         {
            getReport( submitButtonValue );
         }
         else
         {
            formId.submit();
            fixLinks();
         }
      }
      else
      {
         getData( '/account/report.cgi' + lastHref, 'parseMain', '0' );
      }
   }
   else if( section == 'transactions' )
   {
      var transInit = function() {
         // add listeners to the payment form submits
         YAHOO.util.Event.addListener("depositForm", "submit", transactions.handleDepositSubmit);
         YAHOO.util.Event.addListener("withdrawForm", "submit", transactions.handleWithdrawSubmit);
      };

      getData( '/account/transactions.cgi', 'parseMain', '0', transInit);
   }
   else if( section.substring(0,13) == 'transactions_' )
   {
      subSection = section.substring(13);

      if( subSection.search( "__" ) > 0 )
      {
         subSection = subSection.substring( 0, subSection.search( "__" ) );
      }

      if( subSection == 'security' )
      {
         submitSecurityQA( 'Submit' );
      }
      else if( subSection == 'needsaddress' )
      {
         getData( '/account/transactions.cgi', 'parseAddress', '0' );
      }
      else if( subSection == 'address' )
      {
         submitMailingAddress( 'Submit' );
      }
      else
      {
         if(document.getElementById('transactions') == undefined)
            getData( '/account/transactions.cgi', 'parseMain', '0' );
      }
   }
   else if( section.substring(0,13) == 'messageBoard_' )
   {
      subSection = section.substring(13);

      getData( '/account/messageBoard.cgi?section=' + lastHref, 'parseMB', subSection );
   }
   else if( section.substring(0,19) == 'messageBoardSubmit_' )
   {
      subSection = section.substring(19);

      if( subSection.search( "__" ) > 0 )
      {
         subSection = subSection.substring( 0, subSection.search( "__" ) );
      }

      submitForm( '/account/messageBoard.cgi?section=' + lastHref, 'submitMB', subSection );
   }
   else if( section.substr(0,6) == 'inbox_' ) // PM
   {
      subSection = section.substr(6);

      if( subSection.search( "__" ) > 0 )
      {
         subSection = subSection.substring( 0, subSection.search( "__" ) );
      }

      if( subSection == 'delete' )
         getData( '/account/pm/home.cgi' + lastHref, 'parseThreadAction', 'delete,inbox' );
      else if( subSection == 'deleteMultiple' )
         submitPMForm( document.getElementById( 'threadForm' ), 'submitThreadAction', 'delete,inbox' );
      else if( subSection == 'markRead' )
         getData( '/account/pm/home.cgi' + lastHref, 'parseThreadAction', 'markRead,inbox' );
      else if( subSection == 'markReadMultiple' )
         submitPMForm( document.getElementById( 'threadForm' ), 'submitThreadAction', 'markRead,inbox' );
      else if( subSection == 'markUnread' )
         getData( '/account/pm/home.cgi' + lastHref, 'parseThreadAction', 'markUnread,inbox' );
      else if( subSection == 'markUnreadMultiple' )
         submitPMForm( document.getElementById( 'threadForm' ), 'submitThreadAction', 'markUnread,inbox' );
      else
         getData( '/account/pm/home.cgi' + lastHref, 'parseThread', 'inbox' );
   }
   else if( section.substr(0,7) == 'notify_' )
   {
      subSection = section.substr(7);

      if( subSection.search( "__" ) > 0 )
      {
         subSection = subSection.substring( 0, subSection.search( "__" ) );
      }

      if( subSection == 'delete' )
         getData( '/account/pm/home.cgi' + lastHref, 'parseThreadAction', 'delete,notify' );
      else if( subSection == 'deleteMultiple' )
         submitPMForm( document.getElementById( 'threadForm' ), 'submitThreadAction', 'delete,notify' );
      else if( subSection == 'markRead' )
         getData( '/account/pm/home.cgi' + lastHref, 'parseThreadAction', 'markRead,notify' );
      else if( subSection == 'markReadMultiple' )
         submitPMForm( document.getElementById( 'threadForm' ), 'submitThreadAction', 'markRead,notify' );
      else if( subSection == 'markUnread' )
         getData( '/account/pm/home.cgi' + lastHref, 'parseThreadAction', 'markUnread,notify' );
      else if( subSection == 'markUnreadMultiple' )
         submitPMForm( document.getElementById( 'threadForm' ), 'submitThreadAction', 'markUnread,notify' );
      else
         getData( '/account/pm/home.cgi' + lastHref, 'parseThread', 'notify' );
   }
   else if( section.substring(0,5) == 'sent_' )
   {
      subSection = section.substring(5);

      if( subSection.search( "__" ) > 0 )
      {
         subSection = subSection.substring( 0, subSection.search( "__" ) );
      }

      if( subSection == 'delete' )
         getData( '/account/pm/home.cgi' + lastHref, 'parseThreadAction', 'delete,sent' );
      else if( subSection == 'deleteMultiple' )
         submitPMForm( document.getElementById( 'threadForm' ), 'submitThreadAction', 'delete,sent' );
      else
         getData( '/account/pm/home.cgi' + lastHref, 'parseThread', 'sent' );
   }
   else if( section.substring(0,8) == 'compose_' )
   {
      subSection = section.substring(8);

      if( subSection.search( "__" ) > 0 )
      {
         subSection = subSection.substring( 0, subSection.search( "__" ) );
      }

      if( subSection == 'send' )
         submitPMForm( document.getElementById( 'composeForm' ), 'sendMessage', 'compose' );
      else
         getData( '/account/pm/home.cgi' + lastHref, 'parseCompose', '0' );
   }
   else if( section.substring(0,5) == 'read_' )
   {
      subSection = section.substring(5);

      if( subSection.search( "__" ) > 0 )
      {
         subSection = subSection.substring( 0, subSection.search( "__" ) );
      }

      if( subSection == 'send' )
         submitPMForm( document.getElementById( 'readForm' ), 'sendMessage', 'read' );
      else
         getData( '/account/pm/home.cgi' + lastHref, 'parseRead', '' );
   } // End PM
   else
   {
      try {
         var el = document.getElementById('pcEmbed');

         if(el == undefined || el == null)
            getData( '/account/home.cgi', 'parseMain', '0', initPlayerCards);
      }
      catch(e) {
         getData( '/account/home.cgi', 'parseMain', '0', initPlayerCards);
      }

      YAHOO.util.Event.onAvailable('pcEmbed', initPlayerCards);
   }
}

function fixLinks()
{
  modules = YAHOO.util.Dom.getElementsByClassName( 'historyModule', 'span' );

  for( j = 0, lenj = modules.length; j < lenj; j++ )
  {
    anchors = modules[j].getElementsByTagName('a');
    for (i = 0, len = anchors.length; i < len; i++) {
        anchor = anchors[i];
        YAHOO.util.Event.addListener(anchor, "click", function (evt) {
            href = this.getAttribute("href");
            lastHref = this.getAttribute("href");

            section = YAHOO.util.History.getQueryStringParameter("section", href) || "home";

            if( section == "home" && href.search( "/mb/" ) > 0 )
            {
               var partialHref;

               partialHref = href.substr(dLength);

               section = "messageBoard_" + partialHref;
            }

               try {
                   YAHOO.util.History.navigate("accountModule", section);
               } catch (e) {
                   loadSection(section);
               }
               YAHOO.util.Event.preventDefault(evt);
        });
    }

    submits = modules[j].getElementsByTagName('input');
    for (i = 0, len = submits.length; i < len; i++ ) {
        submit = submits[i];

        YAHOO.util.Event.addListener(submit, "click", function (evt) {
            section = this.getAttribute("section");
            submitButtonValue   = this.getAttribute("value");

            parentRef = this.parentNode;

            var aa = 0;

            action = "";

            while( 1 )
            {
               if( parentRef.getAttribute( "action" ) )
               {
                  form = document.getElementById( parentRef.id );

                  action = parentRef.getAttribute( "action" );

                  break;
               }

               parentRef = parentRef.parentNode;

               ++aa;

               if( aa > 10 )
                 break;
            }

            if( action != "" && action.search( "/mb/" ) > 0 )
            {
               var partialHref;

               partialHref = action.substr(dLength);

               section = "messageBoardSubmit_" + partialHref + '__' + Math.floor( Math.random() * 11 );
            }

            if( section == 'report_download' )
               section = 'report_download__' + Math.floor( Math.random() * 11 );

               try {
                   YAHOO.util.History.navigate("accountModule", section);
               } catch (e) {
                   //alert(e.message);
                   var browser = navigator.userAgent.toLowerCase();
                   if(section=='ipo_confirm' && browser.indexOf("opera",0) > -1) {
                        return confirm('Warning: You are using the Opera browser. This browser is not fully supported and 3 IPO orders will be placed instead of 1.'+"\n\n"+'Click "Ok" to proceed.');
                   }
                   loadSection(section);
               }
               YAHOO.util.Event.preventDefault(evt);
        });
    }
  }
}

function initializeAccount( lastLink )
{
      var anchors, i, len, anchor, href, section, currentSection;
      modules = YAHOO.util.Dom.getElementsByClassName( 'historyModule', 'span' );

      lastHref = lastLink;

      for( j = 0, lenj = modules.length; j < lenj; j++ )
      {
        anchors = modules[j].getElementsByTagName('a');
        for (i = 0, len = anchors.length; i < len; i++) {
            anchor = anchors[i];
            YAHOO.util.Event.addListener(anchor, "click", function (evt) {
                href = this.getAttribute("href");

                section = YAHOO.util.History.getQueryStringParameter("section", href) || "home";

                   try {
                       YAHOO.util.History.navigate("accountModule", section);
                   } catch (e) {
                       loadSection(section);
                   }
                   YAHOO.util.Event.preventDefault(evt);
            });
        }
      }

  currentSection = YAHOO.util.History.getCurrentState("accountModule");
  loadSection(currentSection);
}

function getData( url, action, params, successFunction )
{
   bsId = document.getElementById( 'bottomSection' );

   showLoading = 1;

   setTimeout( "loading( 'bottomSection' )", 1000 );

   var handleSuccess = function(o){
     if(o.responseText !== undefined ){

         showLoading = 0;

         if( o.responseText.substring(0,9) == '<!DOCTYPE' )
            window.location.replace( '/' );
         else
            bsId.innerHTML = o.responseText;

         fixLinks();

         if( document.getElementById( 'line1' ) )
            initMainCharts();

         if(o.argument[0] != undefined)
            o.argument[0]();
     }
   };

   var handleFailure = function(o){
     if(o.responseText !== undefined && o.response){
     }
   };

   var callback =
   {
     success:handleSuccess,
     failure:handleFailure,
     argument:[successFunction]
   };

   var postData = "data={\"function\":\"" + action + "\",\"params\":\"" + params + "\"}";

   var request = YAHOO.util.Connect.asyncRequest('POST', url, callback, postData);
}

function getDataElement( url, action, params, successFunction, element )
{
   bsId = document.getElementById( element );

   var handleSuccess = function(o){
     if(o.responseText !== undefined ){

         if( o.responseText.substring(0,9) == '<!DOCTYPE' )
            window.location.replace( '/' );
         else
            bsId.innerHTML = o.responseText;

         fixLinks();

         if(o.argument[0] != undefined)
            o.argument[0]();
     }
   };

   var handleFailure = function(o){
     if(o.responseText !== undefined && o.response){
     }
   };

   var callback =
   {
     success:handleSuccess,
     failure:handleFailure,
     argument:[successFunction]
   };

   var postData = "data={\"function\":\"" + action + "\",\"params\":\"" + params + "\"}";

   var request = YAHOO.util.Connect.asyncRequest('POST', url, callback, postData);
}


// successFunction is a function that you can give that will be called inside the success callback default is undefined
function submitBottomSection( url, postData, formId, successFunction )
{
   bsId = document.getElementById( 'bottomSection' );
   
   showLoading = 1;

   setTimeout( "loading( 'bottomSection' )", 1000 );

   var handleSuccess = function(o){
     if(o.responseText !== undefined ){

         showLoading = 0;

         if( o.responseText.substring(0,9) == '<!DOCTYPE' )
            window.location.replace( '/' );
         else
            bsId.innerHTML = o.responseText;

         fixLinks();

         // call the success function if available
         if(o.argument[0] != undefined)
            o.argument[0]();
     }

     unhideDataElem = document.getElementById( 'unhideSections' );
     if( unhideDataElem != null )
     {
       var unhideSections = unhideDataElem.value.split( ',' );
       for( var i in unhideSections )
       {
         var section = unhideSections[i];
         if( ! section )
            continue;
         toggle( section + 'Link', 'change', 'hide', section + 'NoForm', section + 'Form', section + 'Hidden' );
       }
     }
   };
   
   var handleFailure = function(o){
     if(o.responseText !== undefined && o.response){
     }
   };

   var callback =
   {
     success:handleSuccess,
     failure:handleFailure,
     argument:[successFunction]
   };

   if(formId != undefined)
      YAHOO.util.Connect.setForm(document.getElementById(formId));

   var request = YAHOO.util.Connect.asyncRequest('POST', url, callback, postData);
}

function submitTradeHeadSection( url, postData, formId, successFunction )
{
   bsId = document.getElementById( 'tradeHeader' );

   var handleSuccess = function(o){
     if(o.responseText !== undefined ){

         if( o.responseText.substring(0,9) == '<!DOCTYPE' )
            window.location.replace( '/' );
         else
            bsId.innerHTML = o.responseText;

         fixLinks();

         // call the success function if available
         if(o.argument[0] != undefined)
            o.argument[0]();
     }

     unhideDataElem = document.getElementById( 'unhideSections' );
     if( unhideDataElem != null )
     {
       var unhideSections = unhideDataElem.value.split( ',' );
       for( var i in unhideSections )
       {
         var section = unhideSections[i];
         if( ! section )
            continue;
         toggle( section + 'Link', 'change', 'hide', section + 'NoForm', section + 'Form', section + 'Hidden' );
       }
     }
   };

   var handleFailure = function(o){
     if(o.responseText !== undefined && o.response){
     }
   };

   var callback =
   {
     success:handleSuccess,
     failure:handleFailure,
     argument:[successFunction]
   };

   if(formId != undefined)
      YAHOO.util.Connect.setForm(document.getElementById(formId));

   var request = YAHOO.util.Connect.asyncRequest('POST', url, callback, postData);
}


function submitTrade( smbBtn )
{
   var action = 'parseMain';
   var url = '/trade/request.cgi';
   var params = '0';

   //var aon  = document.getElementById( 'allOrNone' );

   //if(aon.type == 'checkbox')
   //{
      //if( aon.checked == false )
         //aon.value = '';
   //}

   var postData = "data={\"function\":\"" + action + "\",\"params\":\"" + params + "\"}&" +
                  "buySell=" + document.getElementById( 'buySell' ).value +
                  "&numShares=" + document.getElementById( 'numShares' ).value +
                  "&allOrNone=" + '' + //document.getElementById( 'allOrNone' ).value +
                  "&symbol=" + document.getElementById( 'symbol' ).value +
                  "&orderType=" + document.getElementById( 'orderType' ).value +
                  "&duration=" + document.getElementById( 'duration' ).value +
                  "&prevSelect=" + document.getElementById( 'prevSelect' ).value +
                  "&smbBtn=" + smbBtn;

   if( document.getElementById( 'price' ) )
      postData += "&price=" + document.getElementById( 'price' ).value;
   if( document.getElementById( 'marketAgree' ) )
   {
      if( document.getElementById( 'marketAgree' ).checked == true )
         postData += "&marketAgree=" + document.getElementById( 'marketAgree' ).value;
   }

   submitBottomSection( url, postData );
} 

function submitTradeHead( smbBtn )
{
   if( checkBuySellStatus( smbBtn ) != false )
   {
      var action = 'parseMain';
      var url = '/trade/request.cgi';
      var params = '2';
   
      //var aon  = document.getElementById( 'allOrNone' );
   
      //if(aon.type == 'checkbox')
      //{
         //if( aon.checked == false )
            //aon.value = '';
      //}
   
      if( document.getElementById( 'headBuySellHidden' ) )
      {
         var buySellVal = document.getElementById( 'headBuySellHidden' ).value;
      }
      else
      {
         buySellVal = document.getElementById( 'headBuySell' ).value;
      }
   
      var postData = "data={\"function\":\"" + action + "\",\"params\":\"" + params + "\"}&" +
                     "buySell=" + buySellVal +
                     "&numShares=" + document.getElementById( 'headNumShares' ).value +
                     "&allOrNone=" + '' + //document.getElementById( 'allOrNone' ).value +
                     "&symbol=" + document.getElementById( 'headSymbol' ).value +
                     "&orderType=" + document.getElementById( 'headOrderType' ).value +
                     "&duration=" + document.getElementById( 'headDuration' ).value +
                     "&prevSelect=" + document.getElementById( 'headPrevSelect' ).value +
                     "&smbBtn=" + smbBtn;
   
      if( document.getElementById( 'headPrice' ) )
         postData += "&price=" + document.getElementById( 'headPrice' ).value;
   
      if( document.getElementById( 'headMarketAgree' ) )
      {
         if( document.getElementById( 'headMarketAgree' ).checked == true )
            postData += "&marketAgree=" + document.getElementById( 'headMarketAgree' ).value;
      }
   
      submitTradeHeadSection( url, postData );

   }
}

function submitIPO( smbBtn )
{     
   var action = 'parseMain';
   var url = '/trade/ipo.cgi';
   var params = '0';

   var postData = "data={\"function\":\"" + action + "\",\"params\":\"" + params + "\"}&" +
                  "&numShares=" + document.getElementById( 'numShares' ).value +
                  "&symbol=" + document.getElementById( 'symbol' ).value +
                  "&smbBtn=" + smbBtn;
   
   submitBottomSection( url, postData );
} 

function submitSecurityQA( smbBtn )
{     
   var action = 'parseMain';
   var url = '/account/transactions.cgi';
   var params = '0';
   
   var postData = "data={\"function\":\"" + action + "\",\"params\":\"" + params + "\"}" +
                  "&securityQuestion=" + escape( document.getElementById( 'securityQuestion' ).value ) +
                  "&securityAnswer=" + escape( document.getElementById( 'securityAnswer' ).value ) +
                  "&smbBtn=" + smbBtn;
   
   submitBottomSection( url, postData );
} 

function submitMailingAddress( smbBtn )
{     
   var action = 'saveAddress';
   var url = '/account/transactions.cgi';
   var params = '0';
   
   var stateSelect = document.getElementById( 'stateProvince' );

   var postData = "data={\"function\":\"" + action + "\",\"params\":\"" + params + "\"}" +
                  "&address1=" + escape( document.getElementById( 'address1' ).value ) +
                  "&address2=" + escape( document.getElementById( 'address2' ).value ) +
                  "&city=" + escape( document.getElementById( 'city' ).value ) +
                  "&stateProvince=" + escape( stateSelect[document.getElementById( 'stateProvince' ).selectedIndex].value) +
                  "&postalCode=" + escape( document.getElementById( 'postalCode' ).value ) +
                  "&smbBtn=" + smbBtn;

   var handleSuccess = function(o){
      try {
         var errorArray = YAHOO.lang.JSON.parse(o.responseText);
         // if we get here we have an error object
         if(errorArray['result'] == 'invalid') {
            // display the errors
            for(key in errorArray['errors']) {
               var errEl = document.getElementById(key + 'Error');
   
               if(errEl != null)
                  errEl.innerHTML = errorArray['errors'][key];
            }
         }
         else {
            // no errors found
            loadSection('transactions');
         }
      }
      catch (ex) {
      }
   };

   var handleFailure = function(o){
     if(o.responseText !== undefined && o.response){
     }
   };

   var callback =
   {
     success:handleSuccess,
     failure:handleFailure,
     argument:[]
   };

   var request = YAHOO.util.Connect.asyncRequest('POST', url, callback, postData);
} 

function submitNotification( smbBtn )
{
   var action = 'parseMain';
   var url = '/account/notification.cgi';
   var params = '0';

   var postData = "data={\"function\":\"" + action + "\",\"params\":\"" + params + "\"}&" +
                  "splits=" + document.getElementById( 'splits' ).value +
                  "&reverse=" + document.getElementById( 'reverse' ).value +
                  "&trade=" + document.getElementById( 'trade' ).value +
                  "&newIPO=" + document.getElementById( 'newIPO' ).value +
                  "&watchList=" + document.getElementById( 'watchList' ).value +
                  "&friendRequest=" + document.getElementById( 'friendRequest' ).value +
                  "&profileComment=" + document.getElementById( 'profileComment' ).value +
                  "&privateMessage=" + document.getElementById( 'privateMessage' ).value +
                  "&newsletter=" + document.getElementById( 'newsletter' ).value +
                  "&cellPhoneArea=" + document.getElementById( 'cellPhoneArea' ).value +
                  "&cellPhoneFirst=" + document.getElementById( 'cellPhoneFirst' ).value +
                  "&cellPhoneLast=" + document.getElementById( 'cellPhoneLast' ).value +
                  "&cellCarrier=" + document.getElementById( 'cellCarrier' ).value +
                  "&smbBtn=" + smbBtn;

   submitBottomSection( url, postData );
}

function submitPrivacyProfile( smbBtn )
{
   var action = 'parseMain';
   var url = '/account/privacy/profile.cgi';
   var params = '0';

   var postData = "data={\"function\":\"" + action + "\",\"params\":\"" + params + "\"}&" +
                  "&hometown=" + document.getElementById( 'hometown' ).value +
                  "&college=" + document.getElementById( 'college' ).value +
                  "&onlineStatus=" + document.getElementById( 'onlineStatus' ).value +
                  "&sportfolio=" + document.getElementById( 'sportfolio' ).value +
                  "&performanceGraph=" + document.getElementById( 'performanceGraph' ).value +
                  "&groups=" + document.getElementById( 'groups' ).value +
                  "&shoutbox=" + document.getElementById( 'shoutbox' ).value +
                  "&tradingInfo=" + document.getElementById( 'tradingInfo' ).value +
                  "&rank=" + document.getElementById( 'rank' ).value +
                  "&friends=" + document.getElementById( 'friends' ).value +
                  "&shoutboxAct=" + document.getElementById( 'shoutboxAct' ).value +
                  "&groupAct=" + document.getElementById( 'groupAct' ).value +
                  "&smbBtn=" + smbBtn;

   submitBottomSection( url, postData );
}

function submitSettingsAccountInfo( smbBtn )
{
   var action = 'parseMain';
   var url = '/account/information.cgi';
   var params = '0';

   var postData = "data={\"function\":\"" + action + "\",\"params\":\"" + params + "\"}";

   if( smbBtn == 'Change Screen Name' )
   {
      postData = postData +
                 "&screenName=" + document.getElementById( 'screenName' ).value;
   }
   else if( smbBtn == 'Change Password' )
   {
      postData = postData +
                 "&passwordOld=" + document.getElementById( 'passwordOld' ).value +
                 "&passwordNew=" + document.getElementById( 'passwordNew' ).value +
                 "&passwordConfirm=" + document.getElementById( 'passwordConfirm' ).value;
   }
   else if( smbBtn == 'Change Security' )
   {
      postData = postData +
                 "&questionNew=" + document.getElementById( 'questionNew' ).value +
                 "&answerNew=" + document.getElementById( 'answerNew' ).value;

      if( document.getElementById( 'securityPasswordOld' ) )
      {
         postData += "&securityPasswordOld=" + document.getElementById( 'securityPasswordOld' ).value;
      }
      else
      {
         postData += "&answerOld=" + document.getElementById( 'answerOld' ).value;
      }
   }
   else if( smbBtn == 'Change Name' )
   {
      postData = postData +
                 "&namePassword=" + document.getElementById( 'namePassword' ).value +
                 "&firstName=" + document.getElementById( 'firstName' ).value +
                 "&lastName=" + document.getElementById( 'lastName' ).value;
   }
   else if( smbBtn == 'Change Email' )
   {
      postData = postData +
                 "&emailPassword=" + document.getElementById( 'emailPassword' ).value +
                 "&email=" + document.getElementById( 'email' ).value;
   }
   else if( smbBtn == 'Change Address' )
   {
      postData = postData +
                 "&addressPassword=" + document.getElementById( 'addressPassword' ).value +
                 "&address=" + document.getElementById( 'address' ).value +
                 "&postalCode=" + document.getElementById( 'postalCode' ).value +
                 "&stateProvince=" + document.getElementById( 'stateProvince' ).value +
                 "&city=" + document.getElementById( 'city' ).value;
   }
   else if( smbBtn == 'Change Billing Address' )
   {
      postData = postData +
                 "&billPassword=" + document.getElementById( 'billPassword' ).value +
                 "&billFullName=" + document.getElementById( 'billFullName' ).value +
                 "&billAddress1=" + document.getElementById( 'billAddress1' ).value +
                 "&billAddress2=" + document.getElementById( 'billAddress2' ).value +
                 "&billPostalCode=" + document.getElementById( 'billPostalCode' ).value +
                 "&billStateProvince=" + document.getElementById( 'billStateProvince' ).value +
                 "&billCity=" + document.getElementById( 'billCity' ).value;
   }
   else if( smbBtn == 'Change Phones' )
   {
      postData = postData +
                 "&phoneArea=" + document.getElementById( 'phoneArea' ).value +
                 "&phoneFirst=" + document.getElementById( 'phoneFirst' ).value +
                 "&phoneLast=" + document.getElementById( 'phoneLast' ).value +
                 "&cellArea=" + document.getElementById( 'cellArea' ).value +
                 "&cellFirst=" + document.getElementById( 'cellFirst' ).value +
                 "&cellLast=" + document.getElementById( 'cellLast' ).value;
   }

   postData = postData + "&smbBtn=" + smbBtn;
      
   submitBottomSection( url, postData );
}  

function submitSocialAccountInfo( smbBtn )
{
   var action = 'parseMain';
   var url = '/account/bio.cgi';
   var params = '0';

   var postData = "data={\"function\":\"" + action + "\",\"params\":\"" + params + "\"}";

   if( smbBtn == 'Add College' )
   {
      var collegeId = parseInt( document.getElementById( 'collegeId' ).value );
      var collegeState = parseInt( document.getElementById( 'collegeState' ).value );
      var collegeYear = parseInt( document.getElementById( 'collegeYear' ).value );
      var msg = "";
      if( ! collegeId )
         msg += "\nCollege";
      if( ! collegeYear )
         msg += "\nGraduating Class";
      if( msg )
      {
         alert( "The following must be filled in to continue:" + msg );
         runAction( '/account/bio.cgi', '' );
         return false;
      }
      postData = postData +
                 "&collegeId=" + collegeId + "&collegeYear=" + collegeYear;
   }
   else if( smbBtn == 'Add Sport' )
   {
      var sportId = parseInt( document.getElementById( 'sportId' ).value );
      var msg = "";
      if( ! sportId )
         msg += "\nSport";
      if( msg )
      {
         alert( "The following must be filled in to continue:" + msg );
         return;
      }
      postData = postData +
                 "&sportId=" + sportId;
   }
   else if( smbBtn == 'Add Team' )
   {
      var teamId = parseInt( document.getElementById( 'teamId' ).value );
      var msg = "";
      if( ! teamId )
         msg += "\nTeam";
      if( msg )
      {
         alert( "The following must be filled in to continue:" + msg );
         return;
      }
      postData = postData +
                 "&teamId=" + teamId;
   }
   else if( smbBtn == 'Change Hometown' )
   {
      var city = document.getElementById( 'hometownCity' ).value;
      var state = document.getElementById( 'hometownState' ).value;
      var msg = "";
      if( ! city )
         msg += "\nTown/City";
      if( ! state )
         msg += "\nState/Province";
      if( msg )
      {
         alert( "The following must be filled in to continue:" + msg );
         return;
      }
      postData = postData + "&hometownCity=" + city + "&hometownState=" + state;
   }

   postData = postData + "&smbBtn=" + smbBtn;
      
   submitBottomSection( url, postData );
}  

function runAction( url, data )
{
   var action = 'parseMain';
   var params = '0';

   var postData = "data={\"function\":\"" + action + "\",\"params\":\"" + params + "\"}";
   postData += '&' + data;
   submitBottomSection( url, postData );
}

function runSocialAccountAction( data )
{
   var action = 'parseMain';
   var url = '/account/bio.cgi';
   var params = '0';

   var postData = "data={\"function\":\"" + action + "\",\"params\":\"" + params + "\"}";
   postData += '&' + data;
   submitBottomSection( url, postData );
}

function submitPrivacySearch( smbBtn )
{
   var action = 'parseMain';
   var url = '/account/privacy/search.cgi';
   var params = '0';

   var pictureId    = document.getElementById( 'picture' );
   var messageId    = document.getElementById( 'message' );
   var friendId     = document.getElementById( 'friend' );
   var friendListId = document.getElementById( 'friendList' );

   if( pictureId.checked != true )
      pictureId.value = 'N';

   if( messageId.checked != true )
      messageId.value = 'N';

   if( friendId.checked != true )
      friendId.value = 'N';

   if( friendListId.checked != true )
      friendListId.value = 'N';

   var postData = "data={\"function\":\"" + action + "\",\"params\":\"" + params + "\"}&" +
                  "findInSearch=" + document.getElementById( 'findInSearch' ).value +
                  "&picture=" + document.getElementById( 'picture' ).value +
                  "&message=" + document.getElementById( 'message' ).value +
                  "&friend=" + document.getElementById( 'friend' ).value +
                  "&friendList=" + document.getElementById( 'friendList' ).value +
                  "&smbBtn=" + smbBtn;

   submitBottomSection( url, postData );
}

function submitOverview( smbBtn )
{
   var action = 'parseMain';
   var url = '/account/privacy/overview.cgi';
   var params = '0';

   var postData = "data={\"function\":\"" + action + "\",\"params\":\"" + params + "\"}&" +
                  "defaultLevel=" + document.getElementById( 'defaultLevel' ).value +
                  "&smbBtn=" + smbBtn;

   submitBottomSection( url, postData );
}  

function submitFanMogulRankings( smbBtn )
{
   var action = 'parseMain';
   var url = '/account/privacy/overview.cgi';
   var params = '0';

   var postData = "data={\"function\":\"" + action + "\",\"params\":\"" + params + "\"}&" +
                  "fmDisplay=" + document.getElementById( 'fmDisplay' ).value +
                  "&smbBtn=" + smbBtn;

   submitBottomSection( url, postData );
}  

function submitSettingsFundingSelect( smbBtn )
{
   var action = 'parseMain';
   var url = '/commerce/accounts.cgi';
   var params = '0';

   var postData = "data={\"function\":\"" + action + "\",\"params\":\"" + params + "\"}";

   if(smbBtn == 'Select Credit Card')
      submitBottomSection( url, postData, 'storedCreditForm', initSettingsFunding);
   else
      submitBottomSection( url, postData, 'storedCheckingForm', initSettingsFunding);
}

function submitSettingsFundingVerifyPending( smbBtn )
{
   var action = 'parseMain';
   var url = '/commerce/accounts.cgi';
   var params = '0';

   var postData = "data={\"function\":\"" + action + "\",\"params\":\"" + params + "\"}";

   var initSettingsFundingPending = function() {
      fundingInit();
  
      var formObj = document.getElementById("pendingAccountForm");

      var submitVerifyObj = {
         form:formObj,
         redisplayFn: function() {
            loadSection("settings_funding_verify_pending");
         },
         successFn: function() {
            loadSection("settings_funding_main");
         }
      };

      YAHOO.util.Event.addListener("verifyPendingBtn", "click", accountVerifySubmit, submitVerifyObj, true);
   };

   submitBottomSection( url, postData, 'pendingVerifiedForm', initSettingsFundingPending);
}

function initSettingsFunding()
{
   var formObj = document.getElementById("accountForm");

   var checkObj = {
     form:formObj,
     successFn: function() {
        saveAccountInfo(this);
     },
     redisplayFn: function() {
        loadSection('settings_funding_main');
     },
     checkStoredAccounts: true
   };

   setMainFormButtonIds(Array('smbBtn'));
   YAHOO.util.Event.addListener("smbBtn", "click", checkForm, checkObj, true); // causes our object to be "this" in checkForm

   var deleteObj = {
      form:formObj,
      redisplayFn:function() {
         loadSection('settings_funding_main');
      }
   };

   YAHOO.util.Event.addListener("delBtn", "click", deleteAccountInfo, deleteObj, true);
   changeMainFormButtons(false);
   fundingInit();

   try {
      var storedId = formObj.storedId.value;
   
      if(storedId != '')
         showHideBtn('delBtn', true); //show
      else
         showHideBtn('delBtn', false); //don't showw
   }
   catch(ex) {
      // couldn't find the element
   }
}


function getReport( smbBtn )
{
   var action = 'parseMain';
   var url = '/account/report.cgi';
   var params = '0';

   var postData = "data={\"function\":\"" + action + "\",\"params\":\"" + params + "\"}&" +
                  "type=" + document.getElementById( 'type' ).value +
                  "&monthSelect=" + document.getElementById( 'monthSelect' ).value +
                  "&daySelect=" + document.getElementById( 'daySelect' ).value +
                  "&fromMonth=" + document.getElementById( 'fromMonth' ).value +
                  "&fromDay=" + document.getElementById( 'fromDay' ).value +
                  "&fromYear=" + document.getElementById( 'fromYear' ).value +
                  "&toMonth=" + document.getElementById( 'toMonth' ).value +
                  "&toDay=" + document.getElementById( 'toDay' ).value +
                  "&toYear=" + document.getElementById( 'toYear' ).value +
                  "&output=" + document.getElementById( 'output' ).value +
                  "&smbBtn=" + smbBtn;

   submitBottomSection( url, postData );
}

function removeRequest( id, requestType, requestCode )
{
   elId = document.getElementById(id);

   var handleSuccess = function(o){
     if(o.responseText !== undefined ){
         elId.className = 'hidden';
     if(o.responseText == 'REFRESH')
         getData( '/account/watch.cgi', 'parseMain', '0' );
         //window.location = '/account/home/#accountModule=watch';
     }
   };

   var handleFailure = function(o){
     if(o.responseText !== undefined && o.response){
       elId.innerHTML = elId.innerHTML + '<br />Failed to remove this player.';
     }
   };

   var callback =
   {
     success:handleSuccess,
     failure:handleFailure,
     argument:[]
   };

   var sUrl = "/account/watch.cgi";

   var postData = "data={\"function\":\"removeRequest\",\"params\":\"" + requestType + "," + requestCode + "\"}";

   request = YAHOO.util.Connect.asyncRequest('POST', sUrl, callback, postData);
}

  function modifyDuration()
  {
    var allOrNone  = document.getElementById( 'allOrNone' );
    var duration   = document.getElementById( 'duration' );
    var prevSelect = document.getElementById( 'prevSelect' );

    var labelArray = Array();
    var valueArray = Array();

    if( allOrNone.checked == true )
    {
      setPreviousSelection( duration, prevSelect );

      labelArray[0] = 'Immediate Only';
      valueArray[0] = 'immediate';
    }
    else
    {
      labelArray[0] = 'End of day';
      valueArray[0] = 'day';

      labelArray[1] = 'Good Until Canceled';
      valueArray[1] = 'canceled';

      labelArray[2] = 'Immediate Only';
      valueArray[2] = 'immediate';
    }

    emptySelect( duration );

    fillSelect( duration, labelArray, valueArray, prevSelect );
  }

  function modifyPrice()
  {
     var orderType = document.getElementById( 'orderType' );
     var priceRow = document.getElementById( 'priceRow' );
     var priceField = document.getElementById('price');
     var durationField = document.getElementById('duration');

     if( orderType.options[0].selected == true )
     {
        priceRow.className = 'unhidden';
        priceField.focus();
     }
     else
     {
        priceRow.className = 'hidden';
        durationField.focus();
     }
  }

  function modifyMarket()
  {
     var orderType = document.getElementById( 'orderType' );
     var marketAgreeRow = document.getElementById( 'marketAgreeRow' );

     if( orderType.options[1].selected == true )
        marketAgreeRow.className = 'unhidden';
     else
        marketAgreeRow.className = 'hidden';
  }

  function modifyAllOrNone()
  {
    var allOrNone = document.getElementById( 'allOrNone' );
    var duration  = document.getElementById( 'duration' );

    if( allOrNone.checked == true && duration.value != 'immediate' )
    {
      allOrNone.checked = false;
    }
  }

  function setPreviousSelection( duration, prevSelect )
  {
    for( ii = 0; ii < duration.length; ++ii )
    {
      if( duration.options[ii].selected == true )
        prevSelect.value = duration.options[ii].value;
    }
  }

  function emptySelect( duration )
  {
    for( ii = duration.length; ii >= 0; --ii )
       duration.options[ii] = null;
  }

  function fillSelect( duration, labelArray, valueArray, prevSelect )
  {
    for( ii = 0; ii < labelArray.length; ++ii )
    {
      option = new Option( labelArray[ii], valueArray[ii] );
      duration.options[ii] = option;

      if( valueArray[ii] == prevSelect.value )
        duration.options[ii].selected = true;
    }
  }

  function checkSymbol( symbol, errorId, inputFieldId )
  {
     var span = document.getElementById( errorId );

     var handleSuccess = function(o){
             if(o.responseText !== undefined && o.responseText == 'false'){
                     errorMsg = "The symbol \"" + symbol + "\" is not valid.";
                     if ( inputFieldId != "" && inputFieldId != undefined )
                     {
                        displayError( errorId, errorMsg, span, inputFieldId );
                     }
                     else
                        displayError( errorId, errorMsg, span );

             }
             else if( o.responseText !== undefined && o.responseText == 'true'){
                span.innerHTML = "";

                // If Error Clear Set Field Border Color To Normal
                if ( inputFieldId != "" && inputFieldId != undefined )
                {
                   document.getElementById( inputFieldId ).style.borderColor = "#666";
                }
             }
     };

     var callback =
     {
       success:handleSuccess
     };

     var sUrl = "/trade/request.cgi";

     var postData = "data={\"function\":\"isValidSymbol\",\"params\":\"" + symbol + "\"}";

     var request = YAHOO.util.Connect.asyncRequest('POST', sUrl, callback, postData);
  }
  
  function getBestPrePrice( symbol, targetId, buySell )
  {
     var handleSuccess = function(o){
        el = document.getElementById( targetId );
        el.innerHTML =  o.responseText;
     };

     var callback = { success:handleSuccess };
     var sUrl = "/trade/request.cgi";
     var postData = "data={\"function\":\"getBestPrice\",\"params\":\"" + symbol + "," + buySell + "\"}";
     var request = YAHOO.util.Connect.asyncRequest('POST', sUrl, callback, postData);
  }

  function getBestPrice( symbol, bestPriceId, showOrdersId, inputElement )
  {
     var inputElement = ( inputElement !== null ? inputElement : 'headBuySell' );
     
     if( document.getElementById( inputElement ).value !== null )
     {
        var buySellVal = '';
        buySellVal = document.getElementById( inputElement ).value;
     }

     var bestId = document.getElementById( bestPriceId );
     var showId = document.getElementById( showOrdersId );

     var handleSuccess = function(o){
       document.getElementById( 'bestPrice' ).style.display = 'block';   
       document.getElementById( 'bestPriceDivider' ).style.display = 'block';   

       bestId.innerHTML =  o.responseText;
       showId.innerHTML = '<a href="/' + symbol + '">Show All<br />Trade Orders</a>';
     };

     var callback =
     {
       success:handleSuccess
     };
   
     var sUrl = "/trade/request.cgi";

     var postData = "data={\"function\":\"getBestPrice\",\"params\":\"" + symbol + "," + buySellVal + "\"}";

     var request = YAHOO.util.Connect.asyncRequest('POST', sUrl, callback, postData);
  }

  function getBestPriceBody( symbol, bestPriceId, showOrdersId, inputElement )
  {
     inputElement = ( inputElement !== null ? inputElement : 'headBuySell' );

     if( document.getElementById( inputElement ).value !== null )
     {
        var buySellVal = '';
        buySellVal = document.getElementById( inputElement ).value;
     }

     var bestId = document.getElementById( bestPriceId );
     //var showId = document.getElementById( showOrdersId );

     var handleSuccess = function(o){
       //document.getElementById( 'bestPrice' ).style.display = 'block';
       //document.getElementById( 'bestPriceDivider' ).style.display = 'block';

       bestId.innerHTML =  o.responseText;
       //showId.innerHTML = '<a href="/' + symbol + '">Show All<br />Trade Orders</a>';
     };

     var callback =
     {
       success:handleSuccess
     };

     var sUrl = "/trade/request.cgi";

     var postData = "data={\"function\":\"getBestPrice\",\"params\":\"" + symbol + "," + buySellVal + "\"}";

     var request = YAHOO.util.Connect.asyncRequest('POST', sUrl, callback, postData);
  }

  function checkMaxShares( symbol, buySell, numShares, errorId, inputFieldId )
  {
     var span = document.getElementById(errorId);

     if( !isInt( numShares ) )
     {
        errorMsg = "The number of shares must be a whole number.";
        if ( inputFieldId != "" && inputFieldId != undefined )
        {
           displayError( errorId, errorMsg, span, inputFieldId );
        }
        else
        {
           displayError( errorId, errorMsg, span );
        }
        return false;
     }
     /* If Error Clear Set Field Border Color To Normal
     */
     else
     {
        if ( inputFieldId != "" && inputFieldId != undefined )
        {
           document.getElementById( inputFieldId ).style.borderColor = "#666";
        }
     }

     if( buySell != 'sell' || symbol == '' || numShares == '' )
     {
        if( buySell == 'buy' && symbol != '' && numShares != '' && parseInt(numShares) > 0 )
           tradeSharesValid = 1;
        else
           tradeSharesValid = 0;

        span.innerHTML = '';
        return false;
     }

     var handleSuccess = function(o){
             if(o.responseText !== undefined )
             {
                if( parseInt(o.responseText) < parseInt(numShares) )               
                {
                   errorMsg = "The maximum shares you may sell is " + o.responseText + ".";
                   if ( inputFieldId != "" && inputFieldId != undefined )
                   {
                      displayError( errorId, errorMsg, span, inputFieldId );
                   }
                   else
                   {
                      displayError( errorId, errorMsg, span );
                      return false;
                   }
                }

                /* If Error Clear Set Field Border Color To Normal
                */
                else
                {
                   tradeSharesValid = 1;

                   if ( inputFieldId != "" && inputFieldId != undefined )
                   {
                      document.getElementById( inputFieldId ).style.borderColor = "#666";
                   }
                }
             }
             else
             {
                tradeSharesValid = 1;

                span.innerHTML = '';
                errorMsg = "Unexpected response from checkShares.";
                displayError( errorId, errorMsg, span );
                return false;
             }

     };

     var callback =
     {
       success:handleSuccess
     };

     var sUrl = "/trade/request.cgi";

     var postData = "data={\"function\":\"getMaxShares\",\"params\":\"" + symbol + "\"}";

     var request = YAHOO.util.Connect.asyncRequest('POST', sUrl, callback, postData);

  }

  /* 
  Check To Make Sure Buy or Sell
  Button Was Clicked Before Trying
  To Submit Trade
  */
  function checkBuySellStatus( origin ) 
  {
     /*
     If On First Trade Header Cell
     And Review Order Button Clicked
     */
     if ( origin == "Review Order" || origin == "buy" || origin == "sell" || origin== "symbol" || origin == "soi" || origin == "price"  )
     {

        /* Determine Where To Display Error
        */
        if ( origin == "Review Order" )
        {
           var errorId = "headSubmitError";
        }
        else
        if ( origin == "symbol" )
        {
           var errorId = "headSymbolError";
        }
        else
        if ( origin == "soi" || origin == "price" )
        {
           var errorId = "headSharesError";
        }
        else
        {
           var errorId = "headSharesError";
        }

        var buySellField = document.getElementById('headBuySell').value;

        /* If Buy/Sell Not Clicked Display Error
        */
        if ( buySellField != "buy" && buySellField != "sell" )
        {

           buttonStatus ( 'error' );
           var errorMsg = "You must click the \"Buy\" or \"Sell\" button to indicate desired transaction type.";
           displayError( errorId, errorMsg );
           if ( origin == "Review Order" )
           {
	      return false;
           }
        }

        /* If Buy/Sell Is Clicked After Display Error
           Automatically Close Error Display
        */
        else
        if ( ( origin == "buy" || origin == "sell" ) && ( buySellField == "buy" || buySellField == "sell" ) )
        {
           var errorIds = new Array('headSymbolError', 'headSharesError', 'headSubmitError');
           for ( i=0; i<errorIds.length; i++ )
           {
              errorId = errorIds[i];
              errorDiv = document.getElementById( errorId );
              if ( errorDiv.style.display == "block" )
              {
	         closeDiv( errorId );
              }
           }

           if ( origin == "sell" && document.getElementById( 'headSymbol').value != '' )
           {
              // Force Check Of Max Shares
              var checkMaxStatus = checkMaxShares( document.getElementById( 'headSymbol' ).value, document.getElementById( 'headBuySell' ).value, document.getElementById( 'headNumShares' ).value, 'headSharesError', 'headNumShares');

              if ( checkMaxStatus == false )
              {
                 return false;
              }
           }

        }
     }
     else
     {
        return;
     }
  }  

  /* Display Trade Header Errors
  */
  function displayError( errorId, errorMsg, span, inputFieldId ) {
     if ( span == "" || span == null )
     {
       var span = document.getElementById( errorId );
     }

     if ( inputFieldId != "" && inputFieldId != undefined )
     {
        errorIdVal = errorId + "\',\'" + inputFieldId;
     }
     else
     {
        errorIdVal = errorId;
     }

     document.getElementById( errorId ).style.display = "block";
     span.innerHTML  = "<a href=\"javascript:closeDiv(\'" + errorIdVal + "\');\">" + errorMsg + " <span class=\"errorCloseLink\">(CLOSE ERROR)</span></a>";
  }

  function closeDiv( name, inputFieldId ) {
          // Close Error Div
          document.getElementById( name ).style.display = "none";

          // If Text Input Clear Field
          if ( inputFieldId != "" && inputFieldId != undefined )
          {
//             document.getElementById( inputFieldId ).value = "";
             document.getElementById( inputFieldId ).style.borderColor = "#f30";
             document.getElementById( inputFieldId ).focus();
          }

  }

  function checkIPO( symbol )
  {
     var div = document.getElementById('content_standard');

     var handleSuccess = function(o){ 
             if(o.responseText !== undefined ){
                     div.innerHTML  = o.responseText;
                     fixLinks();
             }
     };

     var callback =
     {
       success:handleSuccess
     };

     var sUrl = "/trade/ipo.cgi";

     var postData = "data={\"function\":\"isValidSymbol\",\"params\":\"" + symbol + "\"}";

     var request = YAHOO.util.Connect.asyncRequest('POST', sUrl, callback, postData);
  }


function showCheckPrintForm()
{
   var width = 480;
   var height = 340;

   if (window.innerWidth) {
      if(!(document.documentElement.clientWidth == 0)) {
         width = document.documentElement.clientWidth;
         height = document.documentElement.clientHeight;
      }
      else {
         width = document.body.clientWidth;
         height = document.body.clientHeight;
      }
   }
   else {
      width = window.innerWidth;
      height = window.innerHeight;
   }

   var pWidth = 300;
   var pHeight = 250;

   var leftPos = (width-pWidth)/2;
   var topPos = (height-pHeight)/2;

  popup=window.open('/account/transactions/?showCheckPrintForm=1','name','height='+pHeight+',width='+pWidth+
     ',top='+topPos+',left='+leftPos);
  var tmp = popup.document;
  return false;
}

function toggle( linkId, linkNameDiv1, linkNameDiv2, div1, div2, divStatus )
{
  linkElement  = document.getElementById( linkId );
  toggleStatus = document.getElementById( divStatus );
  divOne       = document.getElementById( div1 );
  divTwo       = document.getElementById( div2 );

  if( toggleStatus.value == 0 )
  {
    linkElement.innerHTML = linkNameDiv2;
    divOne.className = 'hidden';
    divTwo.className = 'unhidden';
    toggleStatus.value = 1;
  }
  else
  {
    linkElement.innerHTML = linkNameDiv1;
    divOne.className = 'unhidden';
    divTwo.className = 'hidden';
    toggleStatus.value = 0;
  }

}

function upcomingIPO( pageNum )
{
  span = document.getElementById( 'upcomingIPO' );

   var handleSuccess = function(o){
     if(o.responseText !== undefined ){
       span.innerHTML = o.responseText;
     }
   };
   
   var handleFailure = function(o){
     if(o.responseText !== undefined && o.response){
     }
   };

   var callback =
   {
     success:handleSuccess,
     failure:handleFailure
   };
   
   var sUrl = "/home.cgi";

   var postData = "data={\"function\":\"upcomingIPO\",\"params\":\"" + pageNum + "\"}";
   
   var request = YAHOO.util.Connect.asyncRequest('POST', sUrl, callback, postData);

}

function mvpIndex( sport, playerType, sort, pageNum )
{
  span = document.getElementById( 'mvpiBlock' );

   var handleSuccess = function(o){
     if(o.responseText !== undefined ){
       span.innerHTML = o.responseText;
     }
   };

   var handleFailure = function(o){
     if(o.responseText !== undefined && o.response){
     }
   };

   var callback =
   {
     success:handleSuccess,
     failure:handleFailure
   };

   var sUrl = "/home.cgi";

   var postData = "data={\"function\":\"mvpiTable\",\"params\":\"" + sport + "," + playerType + "," + sort + "," + pageNum + "\"}";

   var request = YAHOO.util.Connect.asyncRequest('POST', sUrl, callback, postData);

}

function topFans( symbol, pageNum )
{
  span = document.getElementById( 'allFans' );

   var handleSuccess = function(o){
     if(o.responseText !== undefined ){
       span.innerHTML = o.responseText;
     }
   };

   var handleFailure = function(o){
     if(o.responseText !== undefined && o.response){
     }
   };

   var callback =
   {
     success:handleSuccess,
     failure:handleFailure
   };

   var sUrl = "/home.cgi";

   var postData = "data={\"function\":\"topFans\",\"params\":\"" + symbol + "," + pageNum + "\"}";

   var request = YAHOO.util.Connect.asyncRequest('POST', sUrl, callback, postData);

}

function diehardFans( symbol, pageNum )
{
  span = document.getElementById( 'allFans' );

   var handleSuccess = function(o){
     if(o.responseText !== undefined ){
       span.innerHTML = o.responseText;
     }
   };

   var handleFailure = function(o){
     if(o.responseText !== undefined && o.response){
     }
   };

   var callback =
   {
     success:handleSuccess,
     failure:handleFailure
   };

   var sUrl = "/home.cgi";

   var postData = "data={\"function\":\"diehardFans\",\"params\":\"" + symbol + "," + pageNum + "\"}";

   var request = YAHOO.util.Connect.asyncRequest('POST', sUrl, callback, postData);

}

function bandwagonFans( symbol, pageNum )
{
  span = document.getElementById( 'allFans' );

   var handleSuccess = function(o){
     if(o.responseText !== undefined ){
       span.innerHTML = o.responseText;
     }
   };

   var handleFailure = function(o){
     if(o.responseText !== undefined && o.response){
     }
   };

   var callback =
   {
     success:handleSuccess,
     failure:handleFailure
   };

   var sUrl = "/home.cgi";

   var postData = "data={\"function\":\"bandwagonFans\",\"params\":\"" + symbol + "," + pageNum + "\"}";

   var request = YAHOO.util.Connect.asyncRequest('POST', sUrl, callback, postData);

}

function selloutFans( symbol, pageNum )
{
  span = document.getElementById( 'allFans' );

   var handleSuccess = function(o){
     if(o.responseText !== undefined ){
       span.innerHTML = o.responseText;
     }
   };

   var handleFailure = function(o){
     if(o.responseText !== undefined && o.response){
     }
   };

   var callback =
   {
     success:handleSuccess,
     failure:handleFailure
   };

   var sUrl = "/home.cgi";

   var postData = "data={\"function\":\"selloutFans\",\"params\":\"" + symbol + "," + pageNum + "\"}";

   var request = YAHOO.util.Connect.asyncRequest('POST', sUrl, callback, postData);

}

/**
* Privacy - Remove someone from your block list
*/

function removeBlock( id, blockType, blockId )
{
   p = document.getElementById(id);

   var handleSuccess = function(o){
     if(o.responseText !== undefined ){
       //p.innerHTML = '';
         p.className = 'hidden';
     }
   };

   var handleFailure = function(o){
     if(o.responseText !== undefined && o.response){
       p.innerHTML = p.innerHTML + '<br />Failed to unblock this user.';
                       div.innerHTML;
     }
   };

   var callback =
   {
     success:handleSuccess,
     failure:handleFailure
   };

   var sUrl = "/account/privacy/overview.cgi";

   var postData = "data={\"function\":\"removeBlock\",\"params\":\"" + blockType + "," + blockId + "\"}";

   var request = YAHOO.util.Connect.asyncRequest('POST', sUrl, callback, postData);
}

function cancelWithdrawal( holdId )
{

   var handleSuccess = function(o){
     if(o.responseText !== undefined ){

        if( o.responseText.length < 25 )
           document.getElementById( 'hError_' + holdId ).innerHTML = '<font color="green">' + o.responseText + '</font>';
        else
           document.getElementById( 'hError_' + holdId ).innerHTML = '<font color="red">' + o.responseText + '</font>';
     }
   };

   var handleFailure = function(o){
     if(o.responseText !== undefined && o.response){
        document.getElementById( 'hError_' + holdId).innerHTML = 'Failed to cancel withdrawal.';
     }
   };

   var callback =
   {
     success:handleSuccess,
     failure:handleFailure
   };

   var sUrl = "/account/transactions.cgi";

   var postData = "data={\"function\":\"cancelWithdrawal\",\"params\":\"" + holdId + "\"}";

   var request = YAHOO.util.Connect.asyncRequest('POST', sUrl, callback, postData);
}

/**
* Cancel an order request that has not gone through yet
*/

function cancelOrder( rowId, errorId, orderId )
{  
   row   = document.getElementById(rowId);
   error = document.getElementById(errorId);

   var handleSuccess = function(o){ 
     if(o.responseText !== undefined ){
        if( o.responseText == 'Success' )
           row.className = 'hidden';
        else
           error.innerHTML = 'Failed to cancel order.';
     }
   };

   var handleFailure = function(o){
     if(o.responseText !== undefined && o.response){
       error.innerHTML = 'Failed to cancel order.';
     }
   };
   
   var callback =
   {
     success:handleSuccess,
     failure:handleFailure
   };

   var sUrl = "/trade/outstanding.cgi";
   
   var postData = "data={\"function\":\"cancelOrder\",\"params\":\"" + orderId + "\"}";

   var request = YAHOO.util.Connect.asyncRequest('POST', sUrl, callback, postData);
}

function cancelIPOOrder( rowId, errorId, orderId )
{  
   row   = document.getElementById(rowId);
   error = document.getElementById(errorId);

   var handleSuccess = function(o){
     if(o.responseText !== undefined ){
        if( o.responseText == 'Success' )
           row.className = 'hidden';
        else
           error.innerHTML = 'Failed to cancel order.';
     }
   };

   var handleFailure = function(o){
     if(o.responseText !== undefined && o.response){
       error.innerHTML = 'Failed to cancel order.';
     }
   };

   var callback =
   {
     success:handleSuccess,
     failure:handleFailure
   };
   
   var sUrl = "/trade/outstanding.cgi";

   var postData = "data={\"function\":\"cancelRequest\",\"params\":\"" + orderId + "\"}";

   var request = YAHOO.util.Connect.asyncRequest('POST', sUrl, callback, postData);
}



function fixDateRange( id, type )
{
   if( type == 'month' )
   {
      if( id.value < 1 )
         id.value = 1;
      else if( id.value > 12 )
         id.value = 12;
   }
   else if( type == 'day' )
   {
      if( id.value < 1 )
         id.value = 1;
      else if( id.value > 31 )
         id.value = 31;
   }
   else
   {
      if( id.value < 2008 )
         id.value = 2008;
      else if( id.value > 2099 )
         id.value = 2099;
   }
}

function isNumberKey(evt)
{
   if( evt.which == 0 )
      return true;

   var charCode = (evt.which) ? evt.which : event.keyCode
   if (charCode > 31 && (charCode < 48 || charCode > 57))
      return false;

   return true;
}

function submitForm( url, method, params )
{
   var action = 'submitMB';
   var url = '/account/messageBoard.cgi'; 
   var params = params;
   
   var postData = "data={\"function\":\"" + action + "\",\"params\":\"" + params + "\"}";

   for( ii = 0; ii < form.elements.length; ii++ )
   {
      if( ( form.elements[ii].type != 'submit' && form.elements[ii].type != 'checkbox' ) ||
          ( form.elements[ii].type == 'checkbox' && form.elements[ii].checked ) ||
          ( form.elements[ii].type == 'submit' && form.elements[ii].value == submitButtonValue ) )
      {
         postData += "&" + form.elements[ii].name + "=" + form.elements[ii].value;
      } 
   }

   submitBottomSection( url, postData );
}

function submitPMForm( form, action, params )
{
   var url = '/account/pm/home.cgi';
   var action = action;
   var params = params;

   var postData = "data={\"function\":\"" + action + "\",\"params\":\"" + params + "\"}";

   for( ii = 0; ii < form.elements.length; ii++ )
   {
      if( ( form.elements[ii].type != 'submit' && form.elements[ii].type != 'checkbox' ) ||
          ( form.elements[ii].type == 'checkbox' && form.elements[ii].checked ) ||
          ( form.elements[ii].type == 'submit' && form.elements[ii].value == submitButtonValue ) )
      {
         postData += "&" + form.elements[ii].name + "=" + form.elements[ii].value;
      }
   }

   submitBottomSection( url, postData );
}

function initPlayerCards() {
  AC_ReturnString = true;

          	if (AC_FL_RunContent == 0) {
          		alert("This page requires AC_RunActiveContent.js.");
          	} else {
          		AC_FL_RunContent(
          			'codebase', 'https://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0',
          			'width', '757',
          			'height', '239',
          			'src', '/swf/account_playerCards',
          			'quality', 'high',
          			'pluginspage', 'https://www.macromedia.com/go/getflashplayer',
          			'align', 'middle',
          			'play', 'true',
          			'loop', 'false',
          			'scale', 'noscale',
          			'wmode', 'transparent',
          			'devicefont', 'false',
          			'id', 'account_playerCards',
          			'bgcolor', '#ffffff',
          			'name', 'account_playerCards',
	          		'menu', 'false',
          			'allowFullScreen', 'false',
          			'allowScriptAccess','always',
          			'movie', '/swf/account_playerCards',
          			'salign', ''
	          		); //end AC code

                  try {
                    var el = document.getElementById('pcEmbed');
                    el.innerHTML = AC_ReturnStringValue;
                  }
                  catch(e) {
                  }
          	}

}

function isCertified()
{
  if( document.photoForm.certify.checked != true )
  {
     alert( 'You must certify that you have the right to distribute this picture and that it does not violate the Terms of Use before you may upload it.' );
     return false;
  }

  document.photoForm.submit();
}

function maxSharesCanPurchase( amountAvailable, amountPerShare )
{
   var numShares = document.getElementById( 'numShares' ).value;
   var maxShares = 0;
   var spanId = document.getElementById( 'numSharesError' );

   maxShares = Math.floor( amountAvailable / amountPerShare );

   if( maxShares < numShares )
   {
      spanId.innerHTML = '<p>You do not have enough free cash available to purchase ' + numShares + ' shares.  The maximum number of shares you may purchase is ' + maxShares + '.</p>';
   }
   else
   {
      spanId.innerHTML = '';
   }
}

function checkRequestPrice()
{
   var price  = document.getElementById( 'price' ).value;
   var spanId = document.getElementById( 'priceError' );

   if( !isNumeric( price ) )
   {
      spanId.innerHTML = 'Please enter a valid dollar amount.';

      return false;
   }
   else if( price > 0 )
   {
      spanId.innerHTML = '';

      tradePriceValid = 1;

      return true;
   }
   else
   {
      spanId.innerHTML = 'The price must be greater than $0.'

      return false;
   }
}

function isNumeric( value )
{
   var validChars = '0123456789.';
   var isNumber   = true;
   var character;

   for( ii = 0; ii < value.length && isNumber == true; ++ii )
   {
      character = value.charAt( ii );

      if( validChars.indexOf( character ) == -1 )
         isNumber = false;
   }

   return isNumber;
}

function isInt( value )
{
   var validChars = '0123456789';
   var isNumber   = true;
   var character;

   for( ii = 0; ii < value.length && isNumber == true; ++ii )
   {
      character = value.charAt( ii );

      if( validChars.indexOf( character ) == -1 )
         isNumber = false;
   }

   return isNumber;
}

function setSymbolFromDD( buySell )
{
   var sym = document.getElementById( 'symbol' );

   if( buySell == 'sell' )
   {
      var sdd = document.getElementById( 'symbolDDSell' );

      document.getElementById( 'symbolDDBuy' ).value = sdd.options[sdd.selectedIndex].value;
   }
   else
   {
      var sdd = document.getElementById( 'symbolDDBuy' );

      document.getElementById( 'symbolDDSell' ).value = sdd.options[sdd.selectedIndex].value;
   }


   sym.value = sdd.options[sdd.selectedIndex].value;
}

function setSymbolHeadFromDD( type )
{
   if( type == 'sell' )
      var sdd = document.getElementById( 'symbolHeadDDSell' );
   else
      var sdd = document.getElementById( 'symbolHeadDD' );

   var sym = document.getElementById( 'headSymbol' );

   sym.value = sdd.options[sdd.selectedIndex].value;
}

function changePriceText( buySell )
{
   var priceText = document.getElementById( 'priceText' );

   if( buySell == 'buy' )
   {
      priceText.innerHTML = 'Highest Price Per SOI You Will Buy for:<br /><span style="font-weight: normal;">(If Executed: You Will Pay This Price or Less)</span>';

      document.getElementById("soiBuy").style.display = 'inline';
      document.getElementById("soiSell").style.display = 'none';
   }
   else
   {
      priceText.innerHTML = 'Lowest Price Per SOI You Will Sell for:<br /><span style="font-weight: normal;">(If Executed: You Will Receive This Price or More)</span>';

      document.getElementById("soiBuy").style.display = 'none';
      document.getElementById("soiSell").style.display = 'inline';
   }
}

function changePriceTextHead( buySell )
{
   var priceText   = document.getElementById( 'priceTextHead' );
   var buySellText = document.getElementById( 'numBuySellText' );

   if( buySell == 'buy' )
   {
      priceText.innerHTML = 'Highest Price You Will Buy for';
      buySellText.innerHTML = ' to Buy';
   }
   else
   {
      priceText.innerHTML = 'Lowest Price You Will Sell for';
      buySellText.innerHTML = ' to Sell';
   }
}

function removeFromWatchList( symbol )
{
   wlId = document.getElementById( 'watchList' );

   var handleSuccess = function(o){
     if(o.responseText !== undefined ){
         wlId.innerHTML = o.responseText;

         fixLinks();
     }
   };

   var handleFailure = function(o){
     if(o.responseText !== undefined && o.response){
     }
   };

   var callback =
   {
     success:handleSuccess,
     failure:handleFailure
   };

   var postData = "data={\"function\":\"removeWatch\",\"params\":\"" + symbol + "\"}";

   var request = YAHOO.util.Connect.asyncRequest('POST', '/account/watch.cgi', callback, postData);
}

function addToWatchList()
{        
   wlId = document.getElementById( 'watchList' );

   var sdd = document.getElementById( 'symbolDD' );

   var symbol = sdd.options[sdd.selectedIndex].value;
   
   var handleSuccess = function(o){
     if(o.responseText !== undefined ){
         wlId.innerHTML = o.responseText;

         fixLinks();
     }
   };

   var handleFailure = function(o){
     if(o.responseText !== undefined && o.response){
     }
   };

   var callback =
   {
     success:handleSuccess,
     failure:handleFailure
   };

   var postData = "data={\"function\":\"addWatch\",\"params\":\"" + symbol + "\"}";

   var request = YAHOO.util.Connect.asyncRequest('POST', '/account/watch.cgi', callback, postData);
}

function canReviewOrder()
{
   validId   = document.getElementById('validData');
   invalidId = document.getElementById('invalidData');

   if( tradePriceValid == 1 && tradeSharesValid == 1 )
   {
      invalidId.className = 'hidden';      
      validId.className = 'unhidden';      
   }
   else
   {
      validId.className = 'hidden';      
      invalidId.className = 'unhidden';      
   }
}

function populateHeadSOISelect( type )
{
   spanId = document.getElementById( 'headSOISelect' );

   spanId.innerHTML = 'Loading...';

   var handleSuccess = function(o){
     if(o.responseText !== undefined ){
            spanId.innerHTML = o.responseText;
     }
   };

   var callback =
   {
     success:handleSuccess
   };

   var postData = "data={\"function\":\"getSOISelect\",\"params\":\"" + type + "\"}";

   var request = YAHOO.util.Connect.asyncRequest('POST', '/trade/request.cgi', callback, postData);
}

function markBoxes( selectEl )
{
   if( selectEl.value == '' )
      return;

   var boxesRead = YAHOO.util.Dom.getElementsByClassName( 'threadCheckboxRead', 'input' );

   var boxesUnread = YAHOO.util.Dom.getElementsByClassName( 'threadCheckboxUnread', 'input' );

   if( selectEl.value == 'read' )
   {
      for( ii = 0; ii < boxesRead.length; ii++ )
         boxesRead[ii].checked = true;

      for( ii = 0; ii < boxesUnread.length; ii++ )
         boxesUnread[ii].checked = false;
   }
   else if( selectEl.value == 'unread' )
   {
      for( ii = 0; ii < boxesRead.length; ii++ )
         boxesRead[ii].checked = false;

      for( ii = 0; ii < boxesUnread.length; ii++ )
         boxesUnread[ii].checked = true;
   }
   else if( selectEl.value == 'all' )
   {
      for( ii = 0; ii < boxesRead.length; ii++ )
         boxesRead[ii].checked = true;

      for( ii = 0; ii < boxesUnread.length; ii++ )
         boxesUnread[ii].checked = true;
   }
   else if( selectEl.value == 'none' )
   {
      for( ii = 0; ii < boxesRead.length; ii++ )
         boxesRead[ii].checked = false;

      for( ii = 0; ii < boxesUnread.length; ii++ )
         boxesUnread[ii].checked = false;
   }
}

function checkBlankSubject()
{  
   subject = document.getElementById( 'subject' ).value;
   error   = document.getElementById( 'subjectError' );

   if( subject == '' )
   {
      error.innerHTML = "<p>You must enter a subject.</p>";
   }
   else
   {
      error.innerHTML = "";
   }
}

function loading( idVal )
{
   if( showLoading == 0 )
      return;

   bsId = document.getElementById( idVal );
 
   // Loading...

   bsId.innerHTML = ' \
<div id="accountNavPlaceholder"></div> \
<div class="accountContentRight"> \
  <div class="sprite-cap-790white-bevel"></div> \
  <div class="module790" align="center"> \
    <div class="header sprite-header-780green"> \
      Loading... \
    </div> \
    <div id="content_standard" align="center" style="width: 740px;"> \
      <br /> \
      <br /> \
      <img src="/images/loading.gif"> \
      <br /> \
      <br /> \
      <br /> \
    </div> \
  </div> \
  <div class="clearing"></div> \
  <div class="sprite-foot-790white-bevel"></div> \
</div> \
</div>';
}
