var counter = 36978;

var firstCommentText = 'I currently work for Walmart. Im a single mom raising a toddler and he got pneumonia. I had to miss a couple days because of that and followed all walmarts procedures and policies and still they tried to fire me....';
var firstAuthor = 'Anonymous';
var firstComment = "<div id='incoming-comment' class='block-content'>" + firstCommentText + 
                             "</div><div id='incoming-author' class='block-author'>by " + firstAuthor + "</div>";

var partnerNames = Array();
partnerNames['WW'] = 'Wake Up Walmart';
partnerNames['NLC'] = 'National Labor Committee';
partnerNames['NationalPartnership'] = 'the National Partnership about paid sick days';

var partner = '';

function getParameterByName( name )
{
  name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
  var regexS = "[\\?&]"+name+"=([^&#]*)";
  var regex = new RegExp( regexS );
  var results = regex.exec( window.location.href );
  if( results == null )
    return "";
  else 
    return results[1].replace(' ', '');
}

Event.observe(window, 'load', function() {

    new Effect.Opacity("incoming-block", {duration:0.5, from:0.0, to:1.0 });
    $('incoming-block').innerHTML = firstComment;
    setTimeout("makeNewBadge()",1500);

    updateCounter();
    setTimeout("updateIncoming()", 12000);

    partnerName = getQuerystring('p');
    partnerName = getParameterByName('p');

    if ((partnerName) && (partnerNames[partnerName] != undefined)) { 
      $('partner').checked = true;
      $('po').innerHTML = "Receive updates from " + partnerNames[partnerName];
    }
    else {
      $('po').style.display = 'none';
      $('partner').style.display = 'none';
    }
  });

//
// submit form 
//

function submitForm(form) {

  $('error_msg').innerHTML = '';

  // validate email addrses
  var emailRegEx = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
  if (!form.Email.value.match(emailRegEx))
    $('error_msg').innerHTML = "<br>Please enter a valid email address";

  // validate zip
  var zipRegEx = /^\d{5}([\-]\d{4})?$/;
  if (!form.Zip.value.match(zipRegEx))
    $('error_msg').innerHTML += "<br>Please enter a valid zip code";

  if ($('error_msg').innerHTML != '') {
    $('error_msg').show();
    return false;
  }

  var request = getFormFields($('sform'));

  if (getParameterByName('p'))
    //    request += '&p=' + partnerNames[getQuerystring('p')];
    request += '&p=' + getParameterByName('p');

  new Ajax.Request('actionKitAPI.php', {  
    method: 'post',
        postBody: request,
        parameters: '',
        onComplete: function (req) { 
    }
    });

  $('SALSAform').hide();
  var comment = $('Comment').value.replace("\r\n", "<br />");
  if (comment == '') comment = 'Stop punishing employees for taking paid sick days!';
  comment = comment.replace("\n", "<br />");
  
  $('headermsg').hide();
  $('new_comment').innerHTML = comment.truncate(90, '...');

  $('new_comment_author').innerHTML = (($('anonymous').checked) || (($('firstname').value == '') && ($('lastname').value == ''))) ? 
    'by Anonymous' : 'by ' + $('firstname').value + " " + $('lastname').value;

  $('new_comment_author').style.color = 'lightblue';
  $('head1').style.color = "#FFCF17";
  $('head1').innerHTML = "Thanks for adding your demerit badge!";
  $('show_after_submit').show();
  $('head2').innerHTML = "Invite your friends to Demerit Walmart";
  $('head2').style.bottom = '20px';
  $('share_after_submit').show();

  $('home').scrollTo();

  document.location.hash = "sentdemerit";

  var badge = $('badge1');
  if ($('rbadge2').checked) badge = $('badge2');
  if ($('rbadge3').checked) badge = $('badge3');

  badge.show();

  setTimeout(function () {moveBadge(badge)}, 2000);

  return false;
}

function moveBadge(badge) {
  new Effect.Move(badge, { x: 440, y: -20, afterFinish: function () { new Effect.Pulsate(badge); } } ); 
}

//  var fade=setTimeout("fadeout()",4500);

function fadeout() {
  //  new Effect.Opacity("show_after_submit", {duration:1.5, from:1.0, to:0.0});
  new Effect.Opacity("show_after_submit", {duration:1.5, from:1.0, to:0.0, afterFinish: function () { $('show_after_submit').hide(); $('share_after_submit').show(); } });
}

//
// demerits counter
//

function updateCounter() {

  new Ajax.Request('current_counter.txt', {  
    method: 'post',
        postBody: '',
        parameters: '',
        onComplete: function (req) { 

        var new_counter = req.responseText;
	if (new_counter > counter) 
	  counter = new_counter;

        var clength = counter.length;
        $('digit0').innerHTML = (clength > 0) ? counter.substr(clength - 1, 1) : 0;
        $('digit1').innerHTML = (clength > 1) ? counter.substr(clength - 2, 1) : 0;
        $('digit2').innerHTML = (clength > 2) ? counter.substr(clength - 3, 1) : 0;
        $('digit3').innerHTML = (clength > 3) ? counter.substr(clength - 4, 1) : 0;
        $('digit4').innerHTML = (clength > 4) ? counter.substr(clength - 5, 1) : 0;

        setTimeout("updateCounter()", (10 + Math.random() * 10) * 1000);
      }
    });

}

//
//  Incoming comments 
//

var block_active = true;
var max_comments = 10;
var current_comment = Math.floor((Math.random() * max_comments));

function updateIncoming() {

  if (block_active) {

    block_active = false;

    new Effect.Opacity("incoming-block", {duration:3.0, from:1.0, to:0.0 });
    var count=setTimeout("updateIncoming()", 4000);

    return;
  }
 
  current_comment = Math.floor((Math.random() * max_comments));

  new Ajax.Request('incoming.php', {  
    method: 'post',
        postBody: '',
        parameters: 'ncomment=' + current_comment,
        onComplete: function (req) { 
        $('incoming-block').innerHTML = req.responseText;
        new Effect.Opacity("incoming-block", {duration:0.5, from:0.0, to:1.0 });
        
        setTimeout("makeNewBadge()",1500);

        block_active = true;
      }
    });

  setTimeout("updateIncoming()", 10000);
}

var badgeIndex = 0;
var badgeLocations = new Array(6)

badgeLocations[0] = new Array(-270, -280);
badgeLocations[1] = new Array( -20, -290);
badgeLocations[2] = new Array(-210, -415); 

badgeLocations[3] = new Array(-195, -290);
badgeLocations[4] = new Array( -70, -460);
badgeLocations[5] = new Array( -80, -330);

function makeNewBadge() {

  var which = Math.floor((Math.random() * 3));
  var e = $('in_badge' + which);

  var badge = e.cloneNode(true);
  badge.style.position = 'absolute';
  badge.style.top = ($('incoming-block').offsetTop + 20) + "px";
  badge.style.left = ($('incoming-block').offsetLeft + 280) + "px";

  $('incoming-badges').appendChild(badge);
  
  badge.show();

  var newBadgeX = badgeLocations[badgeIndex][0];
  var newBadgeY = badgeLocations[badgeIndex][1];
  badgeIndex = (badgeIndex > 4) ? 0 : ++badgeIndex;

  new Effect.Move(badge, { x: newBadgeX, y: newBadgeY } ); 
}

function getQuerystring(key, default_)
{
  if (default_==null) default_=""; 
  key = key.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
  var regex = new RegExp("[\\?&]"+key+"=([^&#]*)");
  var qs = regex.exec(window.location.href);
  if(qs == null)
    return default_;
  else
    return qs[1];
}

// 
//  extract fields from form to send up in ajax request
// 

function getFormFields(frm) {
  var request = 'n=1';
  var n = frm.length;

  for (i = 0; i < n; i++) {
    e 	    = frm[i].name;
    fieldValue  = frm[i].value;
    fieldType   = frm[i].type;

    if (frm.elements[e] == undefined)
      continue;

    //
    // TEXT, TEXTAREA, and DROPDOWN
    //
    if ((fieldType == "text") ||
	(fieldType == "textarea") ||
	(fieldType == "select-one")) {
      request += "&" + e + "=" + encodeURIComponent(frm.elements[e].value);
    }

    //
    // CHECKBOX
    //
    else if (fieldType == "checkbox"){

      if (frm.elements[e].checked==true) {
	var setvalue = "1";
      }
      if (frm.elements[e].checked==false) {
	var setvalue = "0";
      }
      request += "&" + e + "=" + setvalue;
    }
 
    //
    // RADIO
    //
    else if (fieldType == "radio"){

      if (frm.elements[e].checked==true) {
	var setvalue = "1";
      }
      if (frm.elements[e].checked==false) {
	var setvalue = "0";
      }
      request += "&" + e + "=" + setvalue;
    }
 
    //
    // HIDDEN field
    //
    else if (fieldType == "hidden"){
      request += "&" + e + "=" + frm.elements[e].value;
    }
    
  }
  return request;
}

