// Place your application-specific JavaScript functions and classes here
// This file is automatically included by javascript_include_tag :defaults
var urlMap = {};
function statusChanged() {

    // Try to shorten urls
    var chunks = $F('status').split(/\s/);

    var urls = [];
    for (var i=0; i<chunks.length; i++) {
        var chunk = chunks[i];
        if(/http[s]?:\/\/\w/.test(chunk) && !/http:\/\/bit.ly/.test(chunk) && !urlMap[chunk]) {
            urls.push(chunk);
        }
    }

    if (urls.length > 0) {
        new Ajax.Request("/main/shorten_urls", {
            method: 'post',
            parameters: {'urls[]': urls},
            asynchronous: false,

            onSuccess: function(response) {
                var newUrlMap = response.responseText.evalJSON();
                for (var i=0; i<urls.length; i++) {
                    var url = urls[i];
                    urlMap[url]=newUrlMap[url];
                }

                for (url in urlMap) {
                    $('status').value = $F('status').replace(url, urlMap[url]);
                }                

                updateStatusSize();
            }
        });        
    }
    else {
        for (url in urlMap) {
            $('status').value = $F('status').replace(url, urlMap[url]);
        }        
    }
    updateStatusSize();




}

function updateStatusSize() {
    $('status_size').innerHTML = 140 - $('status').value.length;
    if ($('status').value.length > 130) {
    	$('status_size').addClassName('red');
    } else {
    	$('status_size').removeClassName('red');
    }

    if ($('status').value.length > 140) {
    	$('post_button').disabled = true;
    } else {
    	$('post_button').disabled = false;
    }
}

function filterMessages(show_class) {
    $$('#message_list div.bubble').each(function(msgLi) {
	if ((msgLi.hasClassName(show_class) || show_class=='') && !msgLi.visible()) {
	    msgLi.appear();
	} else if (msgLi.visible()) {
	    msgLi.fade();
	}
    });
} 
function sharingFailure(request) {
    $('posting').hide(); 
    $('post_button').disabled=false;    

    alert(request.responseText);
}

function sharingSuccess(request) {
    $('status').value='';    
    $('posting').hide(); 
    $('status_size').innerHTML='140'; 
    $('post_button').disabled=false;    
    $('shared-message').innerHTML='Thanks for Sharing!';
    fade('shared-message');
    cmCreateConversionEventTag("SayAndWin Button","2","NewVentures:SayAndWin","0");
}

var TimeToFade = 3000.0;

function fade(eid)
{

  var element = document.getElementById(eid);
  if(element == null)
    return;
   
  if(element.FadeState == null)
  {
    if(element.style.opacity == null
        || element.style.opacity == ''
        || element.style.opacity == '1')
    {
      element.FadeState = 2;
	  element.style.color = 'red';
	  element.style.fontSize ='28px';
	  element.style.marginTop='180px';
	  element.style.position = 'absolute';
	  element.style.marginLeft = '200px';
	  
    }
    else
    {
      element.FadeState = -2;
    }
  }
   
  if(element.FadeState == 1 || element.FadeState == -1)
  {
    element.FadeState = element.FadeState == 1 ? -1 : 1;
    element.FadeTimeLeft = TimeToFade - element.FadeTimeLeft;
  }
  else
  {
    element.FadeState = element.FadeState == 2 ? -1 : 1;
    element.FadeTimeLeft = TimeToFade;
    setTimeout("animateFade(" + new Date().getTime() + ",'" + eid + "')", 33);
  }  
}


function animateFade(lastTick, eid)
{  
  var curTick = new Date().getTime();
  var elapsedTicks = curTick - lastTick;
 
  var element = document.getElementById(eid);
 
  if(element.FadeTimeLeft <= elapsedTicks)
  {
    element.style.opacity = element.FadeState == 1 ? '1' : '0';
    element.style.filter = 'alpha(opacity = '
        + (element.FadeState == 1 ? '100' : '0') + ')';
    element.FadeState = element.FadeState == 1 ? 2 : -2;
    return;
  }
 
  element.FadeTimeLeft -= elapsedTicks;
  var newOpVal = element.FadeTimeLeft/TimeToFade;
  if(element.FadeState == 1)
    newOpVal = 1 - newOpVal;

  element.style.opacity = newOpVal;
  element.style.filter = 'alpha(opacity = ' + (newOpVal*100) + ')';
 
  setTimeout("animateFade(" + curTick + ",'" + eid + "')", 33);
}

function twitterRetweet(msg, from) {
    $('status').value="RT @" + from + " " + msg;
    document.body.scrollTo(); 
    $('status').focus(); 
    updateStatusSize();
    if ($('network_id_facebook')!=null) {
	$('network_id_facebook').checked=false;
    }
}

function twitterReply(to) {
    $('status').value="@" + to; 
    document.body.scrollTo(); 
    $('status').focus(); 
    updateStatusSize();
    if ($('network_id_facebook')!=null) {
	$('network_id_facebook').checked=false;
    }
}

function twitterDM(to) {
    $('status').value="d @" + to; 
    document.body.scrollTo(); 
    $('status').focus(); 
    updateStatusSize();
    if ($('network_id_facebook')!=null) {
	$('network_id_facebook').checked=false;
    }
}

function reloadMessages() {
    $('message_list').childElements().each(function(e) { e.remove();}); 
    $('main_loading').show()
}

function toggleMentions() {
    if ($('show_mentions').checked) {
	$('show_dms').checked=false;
	$('show_facebook').checked=false;
	$('show_twitter').checked=true;
    } 
    reloadMessages();
}

function toggleDMs() {
    if ($('show_dms').checked) {
	$('show_mentions').checked=false;
	$('show_facebook').checked=false;
	$('show_twitter').checked=true;
    }
    reloadMessages();
}
