$(document).ready(function(){

    $('.twitter_follow_form').submit(function(){
        var follow_id = $($('.follow_id', this)[0]).val();

        GB_show('Follow ' + follow_id,'/form_twitter_follow/?twitter_follow_id=' + follow_id, 300, 300);
        
        return false;
    });

/*
    $('.twitter_follow_form').submit(function(){
        var user = $($('.twitter_username', this)[0]).val();
        var password = $($('.twitter_password', this)[0]).val();
        
        var follow_id = $($('.follow_id', this)[0]).val();
        
        var remember = $('.twitter_remember', this)[0].checked;
    
        var errors = new Array();
        var hasError = false;
        
        var form = this;

        $($('.success_message', this)[0]).hide();
        
        
        if (!readCookie( 'twp_sess' ))
        {
            
            if (!user)
            {
                errors['twitter_username_error'] = 'Please enter your Twitter user name.';
                hasError = true;
            }
            
            if (!password)
            {
                errors['twitter_password_error'] = 'Please enter your Twitter password.';
                hasError = true;
            }

        }
        
        if (!follow_id)
        {
            errors['follow_id_error'] = 'Please enter a user to follow.';
            hasError = true;
        }
        
        if (hasError)
        {
            setTwitterFormErrors(this, errors)
            return false;
        }
        else
        {
            var data={
                twitter_username: user,
                twitter_password: password, 
                follow_id: follow_id, 
                twitter_remember: remember
            };
            $.post('/twitter_follow/', data, function (result) {
                switch(result.statusCode)
                {
                    case 200:
                    //Successful tweet
                        if(remember)
                        {
                            createCookie('twp_sess', result.sessionId, 60)
                        }
                        else
                        {
                            createCookie('twp_sess', result.sessionId)
                        }
                        
                        $('.twitter_login').hide();
                        $('#follow_success_message').html(result.status);
                        $($('.error', form)[0]).hide();                        
                        $('#follow_success_message').show();
                        $('#follow_success_message').effect('highlight', {color: '#FFFFFF'}, 3000);
                    break;
                    case 401:
                        $('.twitter_login').show();
                        setTwitterFormErrors(form, result.errors);                        
                    break;
                    default:
                    break;
                }
            }, 'json');
            return false;
        }
    
    });
*/
    $('.twitter_post_form .status').keyup(function(){
        var form = $(this).parents('form');
        
        var len = 140 - $(this).val().length;
        
        if(len < 0)
        {
            $(this).val($(this).val().substr(0, 140));
            return false;
        }
        
        $('.counter', form).html(len);

    });
    

    $('.twitter_post_form').submit(function(){
    
        var user = $($('.twitter_username', this)[0]).val();
        var password = $($('.twitter_password', this)[0]).val();
        
        var status = $($('.status', this)[0]).val();
        
        var inReplyToId = $($('.in_reply_to_id', this)[0]).val();
        
        var remember = $('.twitter_remember', this)[0].checked;
    
        var errors = new Array();
        var hasError = false;
        
        var form = this;

        $($('.success_message', this)[0]).hide();
        
        
        if (!readCookie( 'twp_sess' ))
        {
            
            if (!user)
            {
                errors['twitter_username_error'] = 'Please enter your Twitter user name.';
                hasError = true;
            }
            
            if (!password)
            {
                errors['twitter_password_error'] = 'Please enter your Twitter password.';
                hasError = true;
            }

        }
        
        if (!status)
        {
            errors['status_error'] = 'Please enter a status.';
            hasError = true;
        }
        
        if (hasError)
        {
            setTwitterFormErrors(this, errors)
            return false;
        }
        else
        {
            var data={
                twitter_username: user,
                twitter_password: password, 
                status: status, 
                twitter_remember: remember,
                in_reply_to_id: inReplyToId
            };
            $.post('/tweet.php', data, function (result) {
                switch(result.statusCode)
                {
                    case 200:
                    //Successful tweet
                        if(remember)
                        {
                            createCookie('twp_sess', result.sessionId, 60)
                        }
                        else
                        {
                            createCookie('twp_sess', result.sessionId)
                        }
                        
                        twitterLoginSuccess(user);
                        
                        $($('.success_message', form)[0]).html(result.status);
                        $($('.error', form)[0]).hide();                        
                        $($('.success_message', form)[0]).show();             
                        $($('.success_message', form)[0]).effect('highlight', {color: '#FFFFFF'}, 3000);
                        $($('.status', form)[0]).val('');
                                   
                    break;
                    case 401:
                        $('.twitter_login').show();
                        setTwitterFormErrors(form, result.errors);                        
                    break;
                    default:
                    break;
                }
            }, 'json');
            return false;
        }
    
    });



});

function twitterLoginSuccess(user)
{
    $('.twitter_login').hide();
	$('.twitter_already_logged_in').show();
	$('.logged_in_name').html(user);

}

function setTwitterFormErrors(form, errors)
{

    $('.error').html();
    $('.error').hide();
    
    for( var errorField in errors )
    {
        var errorString = errors[errorField];
        $($('.' + errorField, form)[0]).html(errorString);
        $($('.' + errorField, form)[0]).show();
    }
}

function logOutUser()
{
	$('.twitter_login').show();
	$('.twitter_already_logged_in').hide();
	removeCookie();
}

function removeCookie() 
{
	var date = new Date();
	date.setTime(date.getTime()+(-1*24*60*60*1000));
	var expires = "; expires="+date.toGMTString();
	document.cookie ="twp_sess="+expires+"; path=/";
}

function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}