var timer;
var reloadTime = 8000;
var dialogOpen = false;
var since_id = '';
var chatRoom = "#chef2chef";
var firstFlag = true;
var authors = new Array();
  
$(document).ready(function() {
    $("#postBox").load("getPostBox.php", '', enableLoginForm);
    
    getSearch();

    
});   
function enableLoginForm(){
    var options = {
        cache: false,
        target:        '#postBox',   // target element(s) to be updated with server response
        success:       loadPostBox  // post-submit callback
    };

    // bind form using 'ajaxForm'
    $('#loginForm').ajaxForm(options);
    postMsgForm();
}
function loadPostBox(){
    $("#postBox").load("getPostBox.php", '', enableLoginForm);
}
function postMsgForm(){
   $("#chatMsg").keyup(function(event) {
        if (event.keyCode == 13 && !dialogOpen) {
            $("#postForm").submit();
        }else if(event.keyCode==13){
            dialogOpen = false;
            $("#chatMsg").val("");
            $("#chatMsgDown").html($("#chatMsg").attr("maxlength"));
        }
    });


    var options = {
        cache: false,
        beforeSubmit:  validate
    };
    $("#postForm").ajaxForm(options);
} 
function validate(){
    if(!trim($("#chatMsg").val())){
        dialogOpen = true;
        alert("Please Enter a Message.");
        return false;
    }else{
        $("#chatMsg").val("");
        $('#afterMsg').fadeIn('slow').animate({opacity: 1.0}, 6000).fadeOut('slow');
        $("#chatMsgDown").html($("#chatMsg").attr("maxlength"));
        return true;
    }
}

function getSearch(){
	clearTimeout(timer);   
	var results = "";
    var resultsAuthors = '';
	var theQuery = chatRoom;
  
	$.post("getSearch.php", {query: theQuery, since_id: since_id},  function(xml){
        //$('entry', xml).reverseOrder();
		$('entry', xml).each(function(i){
            if(i==0){
                //get last since_id
                id = $(this).find("id").text();
                splitAry = id.split(":");
                since_id = splitAry.pop();
            }

            var titleText = $(this).find("title").text();
			var title = $(this).find("content").text();
            var author = $(this).find("author").find("name").text();
            var authorLink = $(this).find("author").find("uri").text();
            //var published = $(this).find("published").text().format("m/dd/yy");
            var published = TimeStampToDate($(this).find("published").text());
            var date = dateFormat(published, "h:MM TT mmm dS yyyy");


            author = author.replace(/\(.*\)/, ''); //remove real name            
            authors.push("<a href='"+authorLink+"' target='new'>"+author+"</a>");   //add author to list

			results +=  "<div class='tweet_block'><div class='tweet'><span class='author'>"+author+": </span>"+
                        title+ "<br><span class='published'>"+date+"</span></div>"+
                        "<div class='tweet_btn'><img title='Reply' class='btn' src='images/icon_reply.gif' onclick='tweet_reply(\""+$.trim(author)+"\");'/>"+
                        "<br><img title='ReTweet' class='btn' src='images/icon_rt.gif' onclick='retweet(\""+escape(titleText)+"\", \""+author+"\")' />"+"</div>" +
                        "<div class='clear'></div></div>";
		});

        //Populate users
        users = unique(authors);
        for ( var i in users ){
            resultsAuthors = resultsAuthors + users[i] + "<br>";
        }
        $("#usersBox").html(resultsAuthors);

        $("#chatBox").prepend(results);
        $(".tweet_block").fadeIn("slow");

        $(".tweet_block a").attr("target", "_blank");
	});   



	timer = setTimeout('getSearch()', reloadTime);
}

function tweet_reply(user){
    $("#chatMsg").val("@"+user);
}
function retweet(text, user){
   $("#chatMsg").val("RT @"+user+": "+unescape(text));
}
function unique(arrayName)
{
    var newArray=new Array();
    label:for(var i=0; i<arrayName.length;i++ )
    {
        for(var j=0; j<newArray.length;j++ )
        {
            if(newArray[j]==arrayName[i])
                continue label;
        }
        newArray[newArray.length] = arrayName[i];
    }
    return newArray;
}
function trim(str, chars) {
	return ltrim(rtrim(str, chars), chars);
}
function ltrim(str, chars) {
	chars = chars || "\\s";
	return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
}

function rtrim(str, chars) {
	chars = chars || "\\s";
	return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
}

function TimeStampToDate(xmlDate)
{
    //"2006-08-29T01:18:15.001Z";
    var dt = new Date();
    var dtS = xmlDate.slice(xmlDate.indexOf('T')+1, xmlDate.indexOf('.'))
    var TimeArray = dtS.split(":");
    dt.setUTCHours(TimeArray[0],TimeArray[1],TimeArray[2]);
    dtS = xmlDate.slice(0, xmlDate.indexOf('T'))
    TimeArray = dtS.split("-");
    dt.setUTCFullYear(TimeArray[0],TimeArray[1]-1,TimeArray[2]);
    return dt;
}

