var wallpostsOffset = 11;

$(document).ready(function()
{
   var $wallcontainer = $('#wallpost-box');
   if ($wallcontainer.length > 0)
   {
        fixSmallTagCloud();
        initWallPostForm();
        initGetMorePostsButton();
   }
});

// fix the right column height to fill 100%.
function fixWallPostBoxHeight()
{
    var $wallbox = $('#wallpost-box');

    var $wallboxContent = $wallbox.find('div.box-content');

    var wallboxContentHeight = $wallboxContent.height();

    var $rightColumn = $wallbox.parent();

    var rightHeight = $rightColumn.height();
    var containerHeight = $rightColumn.parent().height();

    if (rightHeight < containerHeight)
    {
        var newHeight = wallboxContentHeight + (containerHeight - rightHeight);
        $wallboxContent.css('min-height', newHeight);
        if ($.browser.msie &&  $.browser.version < 7)
        {
            $wallboxContent.css('height', newHeight);
        }
    }
}

function initWallPostForm()
{
    var $submitButton = $('#submit-post-button');
    var $submitLoader = $('#submit-loading');

    var $form = $('#form-create-wallpost');
        $form.submit(function(evt)
        {
            evt.preventDefault();
            $submitButton.hide();
            $submitLoader.show();

            var validation = new ValidateSchoolPostForm($form);
            if (validation.isValid())
            {

            shareOnFacebook();
                var data = $form.serialize();

                $.post(websiteUrl + 'service/school/create-wallpost/', data, function(response)
                {
                    if (typeof response.errors != 'undefined')
                    {
                        if (shareWindow)
                        {
                            shareWindow.close();
                        }
                        alert(response.errors.join("\n"));
                    }
                    else
                    {
                        $form[0].reset();

                        shareOnFacebook(websiteUrl + 'school-share/' + response.id + '?' + Math.random());

                        var $post = $('<div class="post"><div class="post-texts"><div class="post-text"></div><div class="author"><span class="category"></span><span class="author-name"></span></div></div></div>');
                            $post.find('.post-text').html(response.post);
                            $post.find('span.author-name').text(response.info.label);
                            //$post.find('span.category').text(response.info.category + ': ');

                        $('#wall-posts-container').prepend($post);

                        // fix alternation.
                        $('#wall-posts-container').children('.post')
                                                  .removeClass('post-alternate')
                                                  .filter(':odd')
                                                  .addClass('post-alternate');

                        fixSmallTagCloud();
                    }

                    $submitButton.show();
                    $submitLoader.hide();

                }, 'json');
            }
            else
            {
                alert(validation.errors.join("\n"));
                $submitButton.show();
                $submitLoader.hide();
            }

            return false;
        });

        $submitButton.click(function()
        {
            $form.submit();
        });
}

function initGetMorePostsButton()
{
    var $link = $('#view-more-reasons');
    var $loader = $('#view-more-reasons-loader');

    $link.click(function()
    {
        $link.hide();
        $loader.show();

        var data = {
            offset: wallpostsOffset,
            limit: 5,
            schoolId: currentSchoolId
        };

        wallpostsOffset += 5;

        $.post(websiteUrl + 'service/school/get-posts', data, function(response)
        {
            $('#wall-posts-container').append(response.html);
            $('#wall-posts-container').children('.post')
                                                  .removeClass('post-alternate')
                                                  .filter(':odd')
                                                  .addClass('post-alternate');
            fixSmallTagCloud();

            if (response.hasMore == true)
            {
                $link.show();
                $loader.hide();
            }
            else
            {
                $loader.hide();
            }

        }, 'json');

    });
}

var shareWindow;

function shareOnFacebook(url)
{
    if (url == null)
    {
        shareWindow = window.open('', 'share', 'width=600, height=400');
    }
    else if(shareWindow)
    {
        shareWindow.location.href =  'http://www.facebook.com/sharer.php?u=' + url;
    }
}