function update_div_twit(){
//  $("div.twit").hover(function(){$("div.tools", this).css('visibility', 'visible');}, function(){$("div.tools", this).css('visibility', 'hidden')}); 
  $('div.twit').hover(function(){$(this).addClass('twit_hover')}, function(){$(this).removeClass('twit_hover')});
  $('#front_page div.message').hover(function(){$(this).addClass('message_hover')}, function(){$(this).removeClass('message_hover')});
}

function content_height(){
	   var right_column_height = $("#rightcolumn").height();
	   $("#article_cont").css("min-height", right_column_height + "px");
	   $("#page #content").css("min-height", right_column_height + "px");
}

function auth_twitter(message){
			message.username = $.cookie("name");
			message.password = $.cookie("pass");
			message.follow = '';
		if((!message.username || !message.password)){
			if(message.y){ 
					$("#twitter-auth-box").css('top', message.y - 250 + 'px'); 
					message.y = ''; 
				}
			else { $("#twitter-auth-box").css('top', '10px'); }
			$("#twitter-auth-box").css('display','block');
    		$("#twitter-auth-box input.name").focus();
			$("#twitter-auth-box input.name, #twitter-auth-box input.password").keydown(function(e){
							//console.log(e);
					if(e.which == 27){ 						
				 	$("#twitter-auth-box").css('display', 'none');
					$("#twitter-box-text").val(message.text_default);
					$("#twitter-box textarea").css({"font-size": "120%", "color": "#8E8E8D", "text-align": "center"});
					$("#twitter-box-chars-left").css('color', '#FFFF00');
					$("#twitter-box-chars-left").text(140);
					close_reply(message);
					}
			});
				$("#twitter-auth-box input.button").click(function(){
						message.username = $("#twitter-auth-box input.name").val();
						message.password = $("#twitter-auth-box input.password").val();
						if ($("#twitter-auth-box input.save_credentials:checked").val !== null){
						$.cookie("name", message.username);
						$.cookie("pass", message.password);
						message.follow = 1;
						} else {
						$.cookie("name", '');
						$.cookie("pass", '');
						}
						twitter_post(message);
				});
		} else { twitter_post(message); }
}

function close_reply(message) {
		$("#twitter-box-reply").css("display", "none");
        message.tid = '';
		message.twitter = '';
		message.reply_type = '';

		onhide_reply_box();
		update_div_twit();
		return false;
}

function twitter_post(message){
	    pause_feed();		
		$.post(
            '/twitter/reply',
            {tid: message.tid, user: message.username, password: message.password, message: message.text, follow: message.follow },
            function(data, tstatus){
            	if(tstatus != 'success' || data.error){
                	if(data.error){
                  		alert(data.error);
                	} else {
					    alert('Error Occured');
					}
				 } else {
				 	$("#twitter-auth-box").css('display', 'none');
					$("#twitter-box-text").val(message.text_default);
					$("#twitter-box textarea").css({"font-size": "120%", "color": "#8E8E8D", "text-align": "center"});
					$("#twitter-box-chars-left").css('color', '#FFFF00');
					$("#twitter-box-chars-left").text(140);
					close_reply(message);
				 }
            },
            'json'
          );
}

var reply_on_click;
var onhide_reply_box = function(){};

function document_ready(){
		 $(".tab_all").click(function(){
	     $(".active_tab").removeClass("active_tab");
	     $(this).addClass("active_tab");            
	     $(".active_tab_cont").removeClass("active_tab_cont");
		 $("#" + $(this).attr('id') + "_cont").addClass("active_tab_cont");
	});    

  $("#header_stock_input").focus(function(){
      if($(this).val() == 'ENTER STOCK HERE'){
        $(this).val('');
      }
  });
  

  $("#header_stock_input").keypress(function(e){
      if(e.which == 13 && $("#header_stock_guess").css('display') != 'none'){
        return false;
      }
  });

  $("#header_stock_input").keyup(function(e){ //{{{
      if( (e.shiftKey && e.which == 16) || 
          (e.ctrlKey && e.which == 17)  || 
          (e.altKey && e.which == 18)
      ){
        return;
      }
      
      if(e.which == 40){
        if($("#header_stock_guess").css('display') != 'none'){
          var next = $("#header_stock_guess div.hover + div.item");
          if(next.length){
            $("#header_stock_guess div.hover").removeClass('hover'); 
            next.addClass('hover');
          }
          else if(!$("#header_stock_guess div.hover").length){
            $("#header_stock_guess div.item:first").addClass('hover');
          }
        }
        return;
      }
      if(e.which == 38){
        if($("#header_stock_guess").css('display') != 'none'){
          var prev = $("#header_stock_guess div.hover").prev("div.item");
          if(prev.length){
            $("#header_stock_guess div.hover").removeClass('hover'); 
            prev.addClass('hover');
          }
        }
        return;
      }
      if(e.which == 13){
        if($("#header_stock_guess").css('display') != 'none'){
          var hovered = $("#header_stock_guess div.hover");
          if(hovered.length){
            $("#header_stock_input").val(hovered.attr('ticker'));
            $("#header_stock_guess").hide();
          }
          return false;
        }
        else {
          $("#header_stock_input").val($("#header_stock_input").val().toUpperCase());
          return true;
        }
      }
      if(e.which == 27){
        if($("#header_stock_guess").css('display') != 'none'){
          $("#header_stock_guess").hide();
          return false;
        }
        return false;
      }

      var val = $(this).val();
      if(val.match(/^\s*$/)){
        $("#header_stock_guess").hide();
        return;
      }
      val = val.toUpperCase();

      /* if((e.which == 46 || (e.which >= 48 && e.which <= 57) || 
          (e.which >= 65 && e.which <= 90) ||
          (e.which >= 97 && e.which <= 122))
      ){
        //val += String.fromCharCode(e.which);
      }*/

      $.getJSON('/tickerguess', {'key': val}, function(data){
        if(!data.rows.length){
          $("#header_stock_guess").hide();
          return;
        }
        var ticker = val;
        var html = '<div id="header_stock_guess">';
        for(r in data.rows){
          var rticker = data.rows[r].ticker;
          rticker = rticker.replace(ticker, '<span class="bold">'+ticker+'</span>');
          html += '<div class="item" ticker="' + data.rows[r].ticker +'"><div class="ticker">'+rticker+'</div>';
          html += '<div class="company">' + data.rows[r].name + '</div><div class="clear"><!-- --></div></div>';
        }
        html += '</div>';
        $("#header_stock_guess").replaceWith(html);

        var offset = $("#header_stock_input").offset();
        offset.top += $("#header_stock_input").height();

        var list = $("#header_stock_guess");
        list.css('top', offset.top);
        list.css('left', offset.left);
        $("div.item", list).hover(
          function(){
            $(this).addClass('hover');
          },
          function(){
            $(this).removeClass('hover');
          }
        ).click(
          function(){
            var ticker = $("#header_stock_guess div.hover").attr('ticker');
            $("#header_stock_input").val(ticker.toUpperCase());
            list.hide();
          }
        );
        list.show();
      });
  }); //}}}
  
  $("#header_twits_button").click(function(){
    var ticker = $("#header_stock_input").val();
    if(ticker){
      window.location.href = '/twitter/' + ticker;
    }
    return false;
  });

  $("#header_messages_button").click(function(){
    var ticker = $("#header_stock_input").val();
    if(ticker){
      window.location.href = '/boards/' + ticker;
    }
    return false;
  });

  $("#header_profile_button").click(function(){
    var ticker = $("#header_stock_input").val();
    if(ticker){
      window.location.href = '/profile/' + ticker;
    }
    return false;
  });

var message = new Object();
message.text_default = $("#twitter-box textarea").text();


$("#twitter-box textarea").click(function(){
	if($(this).text() == message.text_default) { $(this).text(""); }
	if($(this).val() == message.text_default) { $(this).val(""); }
	$(this).css({"font-size": "100%", "color": "#000000", "text-align": "left"});
	return false;
});

$("#twitter-box textarea").keyup(function(){
	$("#twitter-box-chars-left").text(140 - $(this).val().length);
    if($("#twitter-box-chars-left").text() <= 0){
		$("#twitter-box-chars-left").css('color', 'red');

} else {
		$("#twitter-box-chars-left").css('color', '#FFFF00');
}
});

$("#twitter-box-reply textarea").keyup(function(){
	$("#twitter-box-reply-chars-left").text(140 - $(this).val().length);
    if($("#twitter-box-reply-chars-left").text() <= 0){
		$("#twitter-box-reply-chars-left").css('color', 'red');
} else {
		$("#twitter-box-reply-chars-left").css('color', '#FFFF00');
}
});

$("#twitter-box-post").click(function(){
		message.text = $("#twitter-box textarea").val();
		if(message.text != message.text_default && message.text.length > 0){
	   		auth_twitter(message);	
			} 
return false;
});

$("#twitter-box-reply input.button").click(function(){
	
        message.text = $("#twitter-box-reply textarea").val();
	message.tid = $("#twitter-box-reply").attr('tid');
	message.reply_type = $("#twitter-box-reply").attr('reply_type');
	message.twitter = $("#twitter-box-reply").attr('twitter');
		message.y = $(this).offset().top;
		if(message.text.length > 0){
	   		auth_twitter(message);	
			} 
return false;
});



$("#twitter-box-reply a.close").click(close_reply);

  var reply_box = $("#reply-box");
  var reply_txt_area;
  if(reply_box.length){//{{{
    reply_txt_area = reply_box.find('textarea:first');
    function reply_txt_area_keypress (e) {
      if(e.which == 27){
        reply_box.hide();
        onhide_reply_box();
        return false;
      }
      reply_box.find('span.chars-left').text(140 - reply_txt_area.val().length);
      if(!($(this).val().length  < 140) && e.which > 31 && e.which < 127){
        e.preventDefault();
        return false;
      }
    }
   
    reply_txt_area.keypress(reply_txt_area_keypress).keyup(reply_txt_area_keypress);
  
   reply_box.find('input.button').click(//{{{
      function(message){
       	if((!message.name) && (!message.password)){
			message.username = reply_box.find('input.name').val();
			message.password = reply_box.find('input.password').val();
		//alert( message.username + ' ' + message.password);
		}
        message.text  = reply_txt_area.val();
        var tid      = reply_box.attr('tid');
//        alert($("#reply-box").attr('tid'));
        var reply_type = reply_box.attr('reply_type');

        if(message.username && message.password && message.text && ((reply_type != 'ticker' && tid) || reply_type == 'ticker')){
          $.post(
            '/twitter/reply', 
            {tid: tid, user: message.username, password: message.password, message: message.text},
            function(data, tstatus){
            if(tstatus != 'success' || data.error){
                if(data.error){
                  alert(data.error);
                }
                else {
                  alert('Error Occured');
                }
              }
              else {
                onhide_reply_box();
                reply_box.hide();
              }
            },
            'json'
          );
        }
      }
    );//}}} 
  }//}}}

  reply_on_click_fp = function (e) {//{{{
    e.preventDefault();
    var tweet  = $(this).parent().parent();
    if(tweet.attr('class') == 'right'){
      tweet = tweet.parent(); //for fp case
    }
    var offset = tweet.offset();
    var y = offset.top + tweet.height();

    $("#twitter-box-reply").css('top', y+20);
    $("#twitter-box-reply").css('left', $("#article_cont").offset().left + 10 );
    $("#twitter-box-reply").css("display", "block");

    var reply_type = $(this).attr('reply');
    $("#twitter-box-reply").attr('reply_type', reply_type);

    var twitter;
    var tid = '';
    if(reply_type != 'ticker'){
      twitter = tweet.attr('twitter');
      tid     = tweet.attr('tid');
    } 

    $("#twitter-box-reply").attr('tid', tid);

    if(reply_type == 'ticker'){
      $("#twitter-box-reply textarea").val('$' + $(this).find('span.ticker').text() + ' ');
    }
    else {
      if($(this).attr('class') == 'reply'){
        $("#twitter-box-reply textarea").val('@'+twitter+': ');
      }
      else if($(this).attr('class') == 'retweet'){
        $("#twitter-box-reply textarea").val('RT ' + '@' + twitter + ': ' + tweet.attr('message'));
      }
      else if($(this).attr('class') == 'shout-out'){
        $("#twitter-box-reply textarea").val('Shout-Out to ' + '@' + twitter + ': ');
      }

    }
    $("#twitter-box-reply textarea").focus();
    reply_box.find('span.chars-left').text(140 - $("#twitter-box-reply textarea").val().length);
  };//}}}

reply_on_click = function (e) {//{{{
    e.preventDefault();
    var tweet  = $(this).parent().parent();
    if(tweet.attr('class') == 'right'){
      tweet = tweet.parent(); //for fp case
    }
    var offset = tweet.offset();
    var y = offset.top + tweet.height();

    reply_box.css('top', y+20).show();
    reply_box.css('left', $("#article_cont").offset().left + 10 );

    var reply_type = $(this).attr('reply');
    reply_box.attr('reply_type', reply_type);

    var twitter;
    var tid = '';
    if(reply_type != 'ticker'){
      twitter = tweet.attr('twitter');
      tid     = tweet.attr('tid');
    } 
    reply_box.attr('tid', tid);

    if(reply_type == 'ticker'){
      reply_txt_area.val('$' + $(this).find('span.ticker').text() + ' ');
    }
    else {
      if($(this).attr('class') == 'reply'){
        reply_txt_area.val('@'+twitter+': ');
      }
      else if($(this).attr('class') == 'retweet'){
        reply_txt_area.val('RT ' + '@' + twitter + ': ' + tweet.attr('message'));
      }
      else if($(this).attr('class') == 'shout-out'){
        $("#twitter-box-reply textarea").val('Shout-Out to ' + '@' + twitter + ': ' + tweet.attr('message'));
      }
    }
    reply_txt_area.focus();
    reply_box.find('span.chars-left').text(140 - reply_txt_area.val().length);
  };//}}}
  $("a.reply, a.retweet").click(reply_on_click);
  $("#fp_live_items a.reply, #fp_live_items a.retweet").click(reply_on_click_fp);
   
  $("#reply-box a.close").click(function(e){e.preventDefault(); $(this).parent().hide(); onhide_reply_box(); return false});
  update_div_twit();


  setTimeout(content_height, 5000);
}

$(document).ready(document_ready);
