/**
 **  Copyright (c) 2007 Snapvine, LLC. All rights reserved.
 **
 ** THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF Snapvine, LLC
 **    The copyright notice above does not evidence any
 **    actual or intended publication of such source code.
 **/


var g_scrape_poller = null;
var g_site_name = "";


function sv_scrape(form_name, poll_version, options)
{
  poller_options = {skin_id: options.skin_id}
  options = options || {}

  var the_form = document[form_name];
  
  var progress_elem = options.progress_elem || 'inprogress_msg';
  var status_elem = options.status_element || 'sv_messages';
  var require_login = options.require_login || false;
  var post_bulletin = options.post_bulletin || false;
  
  var on_complete = options.on_complete || scrape_onComplete;
  var on_error = options.on_error || scrape_onError;
  var on_start = options.on_start || scrape_startFunc;
  
  g_site_name = scrape_get_sitename(poll_version);

  if (require_login)
  {
      var login_val = the_form["username"].value;
      var pass_val = the_form["password"].value;
      if (scrape_is_blank(login_val, "username/email") || scrape_is_blank(pass_val, "password"))
      {
        return false;
      }
      Object.extend(poller_options, {login: login_val, password: pass_val})
  }
  
  if(options.name)
  {
    Object.extend(poller_options, {name: options.name})
  }
  
  scrape_hide_all();
  
  $("#"+progress_elem).css({display:"inline"});

  scrape_show_progress_popup();

  if (options.page_id)
    Object.extend(poller_options, {page_id: options.page_id });

  if (post_bulletin)
  {
    bulletin_val = the_form["bulletin"].checked;
    message_val = escape(the_form["message"].value);
    Object.extend(poller_options, {bulletin: bulletin_val, message: message_val});
  }
      
  if (options.focus_elem)
  {
    options.focus_elem.focus();
  }
  
  g_scrape_poller = new PollerInterface(
  {
            version: poll_version,
            startFunction: (function(phone, code, expire) {on_start()}),
            completeFunction: (function(success) {on_complete(success)}),
            errorFunction: (function(error) {on_error(error)}),
            statusElement: status_elem,
            ext_options: poller_options
  });
  return false;
}


function scrape_get_sitename(version)
{
  switch (version)
  {
    case BEBO_AUTOINSERT:   return 'bebo';
    case TAGGED_AUTOINSERT: return 'tagged';
    case FREEWEBS_LOGIN:
    case FREEWEBS_SIGNOUT:
    case FREEWEBS_INSERT: return 'freewebs';
    case FREEWEBS_REFRESH: return 'freewebs';
    case FLIXSTER_AUTOINSERT: return 'flixster';
    default: return 'myspace';
  }
}


function scrape_stop_inserter()
{
  if (g_scrape_poller != null)
  {
    g_scrape_poller.stop();
    g_scrape_poller = null;
  }
  g_site_name = "";
}


function scrape_startFunc()
{
}


function scrape_onError(error)
{
  scrape_hide_all();
  $("#close_button_error").css({display:"inline"});
      
  if (STATUS_EAUTH == error)
  {
    $('div[@id=error_auth_msg]').css({display:"inline"});
  }
  else if(STATUS_ELOGGEDOUT == error)
  {
    $('#error_detail').html('For your security, you have been logged out of Snapvine.  Please log in again.');
    $('#error_msg').css({display:"inline"});
  }
  else
  {
    $("#error_msg").css({display:"inline"});
  }
}


function scrape_onComplete(success)
{
  scrape_hide_all();
  if (success)
  {
    $("#close_button_success").css({display:"inline"});
    $("#success_msg").css({display:"inline"});
  }
  else
  {
    $("#close_button_error").css({display:"inline"});
    $("#error_msg").css({display:"inline"});
  }
}


function scrape_onFWComplete(success)
{
  scrape_hide_all();
  if (success)
  {
    $("#freeweb-login").css({display:"none"});
    $("#freeweb-page-list").css({display:"inline"});

    scrape_hide_popup();
  }
  else
  {
    $("#close_button_error").css({display:"inline"});
    $("#error_msg").css({display:"inline"});
  }
}


function scrape_onFWSignout(success)
{
  scrape_hide_all();
  $("#freeweb-login").css({display:"inline"});
  $("#freeweb-page-list").css({display:"none"});

  scrape_hide_popup();
}


function scrape_onFWRefresh(success)
{
  scrape_hide_all();
  if (success)
  {
    scrape_hide_popup();
  }
  else
  {
    scrape_onFWRemoteLogout(success);
  }
}


function scrape_onFWInsertErr(error)
{
  if (STATUS_EAUTH == error)
  {
    scrape_onFWRemoteLogout(error)
  }
  else
  {
    scrape_hide_all();
    $("#close_button_error").css({display:"inline"});
    $("#error_msg").css({display:"inline"});
  }
}


function scrape_onFWRemoteLogout(ignore_me)
{
  scrape_hide_all();
  $("#close_button_error").css({display:"inline"});
  $('#error_detail').html('You have been logged out of ' + g_site_name + '.  Please log in again.');
  $('#error_msg').css({display:"inline"});

  
  $("#freeweb-login").css({display:"inline"});
  $("#freeweb-page-list").css({display:"none"});
}


function scrape_hide_all()
{
  $("#inprogress_msg").css({display:"none"});
  $("#logging_out_msg").css({display:"none"});
  $("#logging_in_msg").css({display:"none"});
  $("#refreshing_msg").css({display:"none"});
  $("#success_msg").css({display:"none"});
  $("#error_auth_msg").css({display:"none"});
  $("#error_msg").css({display:"none"});
  $("#close_button_success").css({display:"none"});
  $("#close_button_error").css({display:"none"});
  $("#prog-img").css({display:"none"});
}


function scrape_show_progress_popup()
{
  $("#progress-popup").css({display:"inline"});
  $("#prog-img").css({display:"inline"});
  if (document.all)
  {
    //setTimeout('document.images["prog-img"].src = "/images/spinning_i_prog.gif"', 200);
  }
}

function scrape_is_blank(val, alert_str)
{
  if (!val)
  {
    alert('Please enter your ' + g_site_name + ' ' + alert_str);
    return true;
  }
  return false;
}


function scrape_on_popup_close(is_success, redir_url)
{
  scrape_hide_popup();
  if (is_success)
  {
    window.location = redir_url;
  }
}

function scrape_hide_popup()
{
  $("#progress-popup").css({display:"none"});
}



//// Freewebs

function sv_FWinsert(form_name, status_elem, skinid, on_complete_func)
{
  var the_form = document[form_name];
  var pageid = -1;
  var on_complete = on_complete_func || scrape_onComplete;
  
  for (z=0; z<the_form.length;z++)
  {
    if (the_form[z].type == 'radio' && the_form[z].checked != "")
    {
      pageid = parseInt(the_form[z].name);
      break;
    }
  }

  if (pageid == -1)
  {
    alert("Please select one of your Freewebs pages.");
    return false;
  }

  sv_scrape(form_name,
            FREEWEBS_INSERT,
            {
               status_element: status_elem,
               on_error: scrape_onFWInsertErr,
               skin_id: skinid,
               page_id: pageid,
               on_complete: on_complete_func
             });
}


function sv_click_FWpage(form_name, input_name)
{
  var the_form = document[form_name];
  for (z=0; z<the_form.length;z++)
  {
    if (the_form[z].type == 'radio')
    {
      if (the_form[z].name == input_name)
        the_form[z].checked = "checked";
      else
        the_form[z].checked = "";
    }
  }
}
