var reasonsOffset = 7;

$(document).ready(function()
{
   initReasonForm();
   initReasonShowButton();
   initGetMoreReasonsButton();

   fixReasonFormBoxHeight();
   fixSmallTagCloud();
   fixCompetitionImagePosition();
});

// fix the right column height to fill 100%.
function fixReasonFormBoxHeight()
{
    var $box = $('#reason-box');

    var $boxContent = $box.find('div.box-content');

    var boxContentHeight = $boxContent.height();

    var $rightColumn = $box.parent();

    var rightHeight = $rightColumn.height();
    var containerHeight = $rightColumn.parent().height();

    if (rightHeight < containerHeight)
    {
        var newHeight = boxContentHeight + (containerHeight - rightHeight);
        $boxContent.css('min-height', newHeight);

        if ($.browser.msie &&  $.browser.version < 7)
        {
            $boxContent.css('height', newHeight);
        }
    }
}


function initReasonShowButton()
{
    var $showButton = $('#reason-show-button');
    var $hideButton = $('#reason-hide-button');
    var $reasonForm = $('#reason-tab-container');
    
    $('#reason-show-button, #reason-hide-button').click(function()
    {
        var $current = $(this);
        if ($current.hasClass('show-button'))
        {
            $showButton.hide();
            $hideButton.show();
            $reasonForm.slideDown('normal', function()
            {
                // captcha number text.
                sIFR.replace(BernardMTCon,
                {
                  fitExcatly: true,
                  offsetTop: -1,
                  wmode: 'transparent',
                  selector: '.captcha-display',
                  css: [
                      '.sIFR-root { font-size: 20px; color: #000000; text-align: center;}'
                  ]
                });
                fixCompetitionImagePosition();
            });
            
        }
        else
        {
            $showButton.show();
            $hideButton.hide();
            $reasonForm.slideUp('normal', function()
            {
                fixCompetitionImagePosition();
            });

        }
    })
}

function reasonFormAjaxCallback(response)
{
    if (typeof response.errors != 'undefined')
    {
        alert(response.errors.join("\n"));
    }
    else
    {
        var $form = $('#form-create-reason');
            $form[0].reset();

        var $clone = $('#reasons-container').children('.reason').eq(0);
        var $copy = $clone.clone();

            $copy.find('.reason-text').text(response.reason);
            $copy.find('.author').text(response.info.label);

            $copy.find('.icon')
                 .removeClass('icon-twitter')
                 .removeClass('icon-sms')
                 .addClass('icon-website');

        $('#reasons-container').prepend($copy);

        // fix alternation.
        $('#reasons-container').children('.reason ')
                               .removeClass('reason-alternate')
                               .filter(':odd')
                               .addClass('reason-alternate');

        fixSmallTagCloud();
    }
}

function initGetMoreReasonsButton()
{
    var $link = $('#view-more-reasons');
    var $loader = $('#view-more-reasons-loader');

    $link.click(function()
    {
        $link.hide();
        $loader.show();

        var data = {
            offset: reasonsOffset,
            limit: 5
        };

        reasonsOffset += 5;
        
        $.post(websiteUrl + 'service/get-reasons', data, function(response)
        {
            $('#reasons-container').append(response.html);
            fixCompetitionImagePosition();
            if (response.hasMore == true)
            {
                $link.show();
                $loader.hide();
            }
            else
            {
                $loader.hide();
            }

            fixSmallTagCloud();
            
        }, 'json');

    });
}

function fixCompetitionImagePosition()
{
    if ($.browser.msie &&  $.browser.version < 7)
    {
        $('#competition-image').css('bottom', 2);
        $('#competition-image').css('bottom', -4);
    }
}