﻿// Fonts


//initialize font
Cufon.replace('.menuItem', {
    fontFamily: 'Clarendon LT Std'
    /*hoverables: { div: true },*/
    /*hover: {
        color: '#0D5267'
    }*/
});
Cufon.replace('h1,h2,.linkbutton,.intro,.priceHeader', { fontFamily: 'Clarendon LT Std', fontWeight: 'bold' });

function stretchBackground() {
    var wh = window.innerHeight;
    if (typeof wh === 'undefined') {
        wh = $(window).height();
    }
    var b = $('body');
    if (b.height() < wh) {
        b.css('min-height', wh + 'px');
        if ($.browser.msie && parseInt($.browser.version, 10) < 8) {
            //b.css('height', wh + 'px');
            
            //reset height to 100% to force IE7 to calculate the height correctly
            b.css('height', '100%');
        }
    }
}
$(function() {

    if ($.browser.msie) {
        var v = parseInt($.browser.version, 10);
        $('html').addClass('ie' + v);
    }

    //make sure the body is high enough
    
    stretchBackground();
    $(window).resize(stretchBackground);


});

$(window).load(function() {
    var chmp = $('#chimpCounterDiv');
    var manualMailer= 7799;
    if (chmp.length > 0) {
        var number = $('#chimpDiv').find('span').first().text();
        number = number.replace(',', '');
        if (number.indexOf('subscribers') > 0) {
            number = number.substring(0, number.indexOf('subscribers'));
        }
        var num = parseInt(number) + manualMailer;
        chmp.text(num);
    }

    $('span.rank').each(function() {
        var rankDiv = $(this);
        var rankSize = 10;
        for (var i = 0; i < rankSize; i++) {
            rankDiv.append("<label class='rankStar'></label>")
        }
        var rankStars = $('.rankStar', rankDiv);

        var voted = false;
        var initAvg = parseFloat(rankDiv.attr('title').substring(10));
        var assessmentId = rankDiv.attr('id');
        function getCurVal() {
            var currVal = 5;

            if (rankDiv.attr('title').indexOf('Gemiddeld') >= 0) {
                voted = false;
                //"Gemiddeld ".length=10
                currVal = parseFloat(rankDiv.attr('title').substring(10));
            } else {
                voted = true;
                //"Jouw score ".length=11
                currVal = parseFloat(rankDiv.attr('title').substring(11));
            }
            return currVal;
        }
        function starClick() {
            var selected = parseInt($(this).attr('title'));
            var score = getCurVal();
            rankDiv.attr('title', "Jouw score " + selected);
            resetStars();
            $.get(voteUrl, { assessmentId: assessmentId, action: 'create', value: selected }, null, 'json');
        }

        function resetStars() {
            currVal = getCurVal();
            //reset
            for (var idx = 0; idx < rankSize; idx++) {
                $(rankStars[idx]).removeClass('rankBet');
                $(rankStars[idx]).removeClass('rankResult');
            }


            if (!voted) {
                for (var idx = 0; idx < currVal - 1; idx++)
                    $(rankStars[idx]).addClass('rankResult');

                //calc with of the last star
                currVal = currVal - idx;
                currVal = parseInt(currVal * 10 + 0.5);
                currVal = (currVal * 20) / 10;

                var splitDiv = $(rankStars[idx]);
                splitDiv.append('<label class="rankStar rankResult halfStar leftP"></label>');
                splitDiv.append('<label class="rankStar  halfStar rightP"></label>');
                $('.leftP', splitDiv).css('width', currVal);
                $('.rightP', splitDiv).css('width', 20 - currVal);
                $('.rightP', splitDiv).css('background-position', '-' + (currVal) + 'px -20px');
            } else {
                $(rankStars[0])
                    .addClass('rankRemoveBet')
                    .unbind('click')
                    .click(function() {
                        rankDiv.attr('title', "Gemiddeld " + initAvg);
                        $(rankStars[0])
                            .removeClass('rankRemoveBet')
                            .unbind('click')
                            .click(starClick);
                        resetStars();
                        $.get(voteUrl, { assessmentId: assessmentId, action: 'delete' }, null, 'json');
                    });
                for (var idx = 1; idx < currVal; idx++)
                    $(rankStars[idx]).addClass('rankBet');

            }
        }
        resetStars();

        rankStars.each(function(idx) {
            $(this).attr('title', (idx + 1));
        })
        rankStars.hover(function() {
            var selected = parseInt($(this).attr('title')) - 1;
            for (var idx = 0; idx <= selected; idx++) {
                $(rankStars[idx]).addClass('rankBet');
                $(rankStars[idx]).removeClass('rankResult');
            }
            for (var idx = selected + 1; idx < rankSize; idx++) {
                $(rankStars[idx]).removeClass('rankBet');
                $(rankStars[idx]).removeClass('rankResult');
            }
            rankStars.find('.halfStar').remove();
        }, function() {
            resetStars();

        })
        .click(starClick);

    });

});
