document.write('<style type=\'text/css\'>\n#pe_list_137.peWidget table, #pe_list_137.peWidget caption, #pe_list_137.peWidget tbody, #pe_list_137.peWidget tfoot, #pe_list_137.peWidget thead, #pe_list_137.peWidget tr, #pe_list_137.peWidget th, #pe_list_137.peWidget td {\n	margin: 0;\n	padding: 0;\n	border: 0;\n	outline: 0;\n	font-size: 100%;\n	vertical-align: baseline;\n	background: transparent;\n}\n\n#pe_list_137.peWidget{\n  font-family: \'Lucida Grande\', \'Lucida Sans Unicode\', \'sans-serif\';\n  padding: 1em;\n  margin: 0;\n  width: 165px;\n}\n\n#pe_list_137.peWidget div { \n  padding-bottom: 0.5em;\n}\n  #pe_list_137.peWidget a{\n  }\n  #pe_list_137 img, #pe_list_137 div{\n    padding: 0;\n    margin: 0;\n  }\n  #pe_list_137.peWidget .peHeader{}\n    #pe_list_137.peWidget .peHeader .peName{\n      font-size: 1.2em;\n      font-weight: bold;\n      padding: 1em 1em 0;\n      text-align: center;\n    }\n    #pe_list_137.peWidget .peHeader .peNotice{\n      text-align: center;\n      padding-top: 1em;\n      font-size: 0.9em;\n    }\n<\/style>\n<div class=\'peWidget\' id=\'pe_list_137\'>\n<div class=\'peDisabled peManageListSubscription\'>\n<div class=\'peHeader\'>\n<div class=\'peName\'>\nTHEFACTORY\n<\/div>\n<\/div>\n<div class=\'peBody\'>\n<div class=\'pePhoneNumber\'>\nEnter your phone number to opt-in or out\n<br />\n<input id=\"pe_phone_number\" name=\"pe_phone_number\" type=\"text\" />\n<\/div>\n<div class=\'peListSubscription\' id=\'peStatusMessage\'><\/div>\n<div class=\'peListSubscription\' id=\'peStatusInvited\' style=\'display:none;\'>\nThanks! You are invited to this list but are not yet subscribed.\n<br />\nYou should have received a text message on your mobile phone to confirm your subscription.\n<br />\n<button id=\"peButtonUninvite\" value=\"Cancel invite\"><span>Cancel invite<\/span><\/button>\nor\n<button id=\"peButtonReinvite\" value=\"Resend invite\"><span>Resend invite<\/span><\/button>\n<\/div>\n<div class=\'peListSubscription\' id=\'peStatusSubscribed\' style=\'display:none;\'>\nYou are subscribed to this list.\n<br />\n<button id=\"peButtonUnsubscribe\" value=\"Click here\"><span>Click here<\/span><\/button>\nto unsubscribe\n<\/div>\n<div class=\'peListSubscription\' id=\'peStatusNotSubscribed\' style=\'display:none;\'>\nYour don\'t seem to be subscribed to this list. Please select your mobile carrier from the\nlist:\n<div class=\'peCarrierList\'>\n<select id=\"peCarrierList\" include_blank=\"true\" name=\"peCarrierList\"><option value=\"2\">AT&T/Cingular<\/option><option value=\"7\">Alltel<\/option><option value=\"11\">Appalachian Wireless<\/option><option value=\"12\">Bluegrass Cellular<\/option><option value=\"6\">Boost Prepay<\/option><option value=\"13\">Boost Unlimited<\/option><option value=\"14\">Cellcom<\/option><option value=\"8\">Cellular One<\/option><option value=\"15\">Cellular South<\/option><option value=\"16\">Centennial Wireless<\/option><option value=\"17\">Cincinnati Bell<\/option><option value=\"18\">Dobson (part of AT&T)<\/option><option value=\"19\">Immix Wireless<\/option><option value=\"26\">Ireland 3<\/option><option value=\"28\">Ireland Bulk<\/option><option value=\"25\">Ireland Meteor<\/option><option value=\"24\">Ireland O2<\/option><option value=\"27\">Ireland Tesco<\/option><option value=\"23\">Ireland Vodafone<\/option><option value=\"5\">Nextel<\/option><option value=\"20\">Revol Wireless<\/option><option value=\"3\">Sprint<\/option><option value=\"1\">T-Mobile<\/option><option value=\"10\">US Cellular<\/option><option value=\"21\">Unicel (Rural Cellular)<\/option><option value=\"4\">Verizon Wireless<\/option><option value=\"9\">Virgin<\/option><option value=\"22\">West Central Wireless<\/option><\/select>\n<\/div>\n<button id=\"peButtonSubscribe\" value=\"Click here\"><span>Click here<\/span><\/button>\nto subscribe\n<\/div>\n<div class=\'peListSubscription\' id=\'peStatusInvalid\' style=\'display:none\'>\nThis number is not valid\n<\/div>\n<\/div>\n<div class=\'peFooter\'>\n<div class=\'peBranding\'><\/div>\n<\/div>\n<\/div>\n<\/div>\n');

(function(version, src, fun){
  var when = function(condition, fun, time){
    if(condition()){
      return fun();
    } else {
      setTimeout(function(){
        when(condition, fun, time);
      }, time);
    }
  };
  
  var documentHead = (function(){
    return document.getElementsByTagName("head")[0];
  })();
  
  var loadJquery = function(){
    if(!jQueryLoaded()){
      var script = document.createElement("script");
      script.setAttribute("type", "text/javascript");                
      script.setAttribute("src", src);
      documentHead.appendChild(script);
    }
  };

  var jQueryLoaded = function(){
    return (typeof(jQuery) === 'function' && jQuery.fn.jquery === version);
  };

  loadJquery();

  when(jQueryLoaded, function(){
    fun(jQuery.noConflict());
  }, 10);
  
})('1.3', 'http://clients.mobilecause.com/javascripts/jquery-1.3.min.js', function($){
  /*
   jQuery delayed observer - 0.8
   http://code.google.com/p/jquery-utils/

   (c) Maxime Haineault <haineault@gmail.com>
   http://haineault.com

   MIT License (http://www.opensource.org/licenses/mit-license.php)

  */
  
  (function($){
      $.extend($.fn, {
          delayedObserver: function(callback, delay, options){
              return this.each(function(){
                  var el = $(this);
                  var op = options || {};
                  el.data('oldval', el.val())
                      .data('delay', delay || 0.5)
                      .data('condition', op.condition || function() { return ($(this).data('oldval') == $(this).val()); })
                      .data('callback', callback)
                      [(op.event||'keyup')](function(){
                          if (el.data('condition').apply(el)) { return }
                          else {
                              if (el.data('timer')) { clearTimeout(el.data('timer')); }
                              el.data('timer', setTimeout(function(){
                                  el.data('callback').apply(el);
                              }, el.data('delay') * 1000));
                              el.data('oldval', el.val());
                          }
                      });
              });
          }
      });
  })(jQuery);
  
  // This is where you start implementing widget-specific stuff.
  var phone_number_field = $('#pe_phone_number');
  var widget = $('#pe_list_137');
  var host = 'http://clients.mobilecause.com';
  var listId = '137';
  var carrier_list = $('#peCarrierList');
  
  $('#peButtonUninvite').click(function(){
    updateStatus("unsubscribed");
    return false;
  });
  
  $('#peButtonUnsubscribe').click(function(){
    updateStatus("unsubscribed");
    return false;
  });
  
  $('#peButtonSubscribe').click(function(){
    if(validToUpdate()) {
      updateStatus("invited", carrier_list.attr('value'));
    } else {
      alert("Please select your carrier from the list.");
    }
    return false;
  });
  
  $('#peButtonReinvite').click(function(){
    updateStatus("invited");
    return false;
  });

  $('#pe_phone_number').delayedObserver(function(value, autocompleteObject){
    updateStatus();
    return false;
  }, 0.5);
  
  function validToUpdate() {
    if(carrier_list.attr('value'))
      return true;
    else
      return false;
  }
  
  function updateStatus(status, carrier_id) {
    status = (!status) ? '' : status;
    carrier_id = (!carrier_id) ? '' : carrier_id;
    
    phone_number = phone_number_field.attr('value');
    
    if(phone_number.length >= 10 && phone_number.length <= 15) {
      $.getJSON(host + "/lists/"+ listId + "/subscriptions/status?phone_number=" + escape(phone_number) + "&status=" + status + "&carrier_id=" + carrier_id + "&_method=get&_callback=?", function(data){
        refreshStatusMessage(data.status);
      });
    } else {
      refreshStatusMessage("none");
    }
  }
  
  function refreshStatusMessage(status, message) {
    message = (!message) ? '' : message;

    $('#peStatusMessage').text(message);
    if(status == "invited") {
      $('#peStatusNotSubscribed').css('display', 'none');
      $('#peStatusInvalid').css('display', 'none');
      $('#peStatusSubscribed').css('display', 'none');
      $('#peStatusInvited').css('display', 'block');
    } else if(status == "subscribed") {
      $('#peStatusNotSubscribed').css('display', 'none');
      $('#peStatusInvalid').css('display', 'none');
      $('#peStatusSubscribed').css('display', 'block');
      $('#peStatusInvited').css('display', 'none');
    } else if(status == "not_subscribed" || status == "unsubscribed" ) {
      $('#peStatusSubscribed').css('display', 'none');
      $('#peStatusInvalid').css('display', 'none');
      $('#peStatusNotSubscribed').css('display', 'block');
      $('#peStatusInvited').css('display', 'none');
    } else if(status == "invalid") {
      $('#peStatusSubscribed').css('display', 'none');
      $('#peStatusNotSubscribed').css('display', 'none');
      $('#peStatusInvalid').css('display', 'block');
      $('#peStatusInvited').css('display', 'none');
    } else {
      $('#peStatusSubscribed').css('display', 'none');
      $('#peStatusNotSubscribed').css('display', 'none');
      $('#peStatusInvalid').css('display', 'none');
      $('#peStatusInvited').css('display', 'none');
    }
  }
  
  widget.find('a.peOption').click(function(){
    var response = $(this).attr('data-keyword');
    $.getJSON(host + "/vote.jsonp?poll=" + pollId + "&response=" + response + "&_method=post&_callback=?", function(data){
      var peChart = widget.find('.peChart');
      var peVote = widget.find('.peVote');
      var notice = widget.find('.peNotice');
      notice.html('We successfully received your response "' + data.result.value + '"');
      peVote.slideUp(500, function(){
        notice.slideDown(500);
        peChart.slideDown(500);
      });
    });
    return false;
  });
});