$(document).ready(function(){
    sIFR.setup();

    sIFR.replaceElement("#hotOffers span.title", named({sFlashSrc: baseUrl + "images/sifr_times_i.swf", sColor: "#000", 'sWmode': 'transparent'}))
    sIFR.replaceElement("h1 span", named({sFlashSrc: baseUrl + "images/sifr_times_i.swf", sColor: "#000", 'sWmode': 'transparent'}))
    sIFR.replaceElement("h2.block span", named({sFlashSrc: baseUrl + "images/sifr_times_i.swf", sColor: "#000", 'sWmode': 'transparent'}))
    $('h2.block span').each(function(ind, object){$(object).parents().filter('h2').addClass('sIFR-replaced')});
    sIFR.replaceElement("h2 span.title", named({sFlashSrc: baseUrl + "images/sifr_times_i.swf", sColor: "#000", 'sWmode': 'transparent'}))
    $('h2 span.title').each(function(ind, object){$(object).parents().filter('h2').addClass('sIFR-replaced')});

    sIFR.replaceElement("h2", named({sFlashSrc: baseUrl + "images/sifr_times_i.swf", sColor: "#000", 'sWmode': 'transparent'}))
    sIFR.replaceElement("#search .title", named({sFlashSrc: baseUrl + "images/sifr_times_i.swf", sColor: "#000", 'sWmode': 'transparent'}))
    sIFR.replaceElement("#cartBlock .title", named({sFlashSrc: baseUrl + "images/sifr_times_i.swf", sColor: "#000", 'sWmode': 'transparent'}))

    loadJavascript($(document));
    
    var lastQuery = null; 
    $('#searchForm .input input').keypress(function(){
        var url = $('#searchForm').attr('action');
        var kw = $('#searchForm .input input').val();
        if(kw.length < 3)
            return;
        if(lastQuery != null)
            {
            lastQuery.abort();
            lastQuery = null;
            }
        lastQuery = $.post(url, {'keyword': kw, 'ajaxLoad':'1'}, function(data){createSearchWhisperBox(data, $('#searchForm .input'))});
    });
    
    $('#searchForm .input input').attr('autocomplete', 'off');
});

function loadJavascript(obj)
{
    obj.find('.submenu').hide();
    obj.find('.menu').mouseenter(function(){
        showSubMenu(this)
    });
    obj.find('.submenu').mouseleave(function(){
        hideSubMenu(this);
    });

    obj.find('.submit, .input, .textarea, .activable').mouseenter(function(){$(this).addClass('active')}).mouseleave(function(){$(this).removeClass('active')});

    if(obj.find('#hotOffers .slideHolder li').length)
        carousel_init(obj.find('#hotOffers .slideHolder'));
    if(obj.find('#topBanners .slideHolder li').length)
        carousel_init(obj.find('#topBanners .slideHolder'));
    
    obj.find('.topProducts').each(function(ind, carobj){
        if($(carobj).find('.slideHolder li').length)
            carousel_init($(carobj).find('.slideHolder'));
    });
    
    

    obj.find('.rankAction').mousemove(function(event){
        pos = $(this).find('.stars').offset();
        if(event.clientX > pos.left && event.pageX < pos.left + $(this).width())
            {
            $(this).find('.votedStars').css('width', (event.clientX - pos.left) + 'px');
            var ratio = ((event.clientX - pos.left) / $(this).find('.stars').width()*1.05)*100;
            ratio = (ratio > 100)?100:ratio;
            $(this).attr('rel', ratio);
        }
    }).click(function(){
        data = {};
        data['ajaxLoad'] = 1;
        data['rank'] = $(this).attr('rel');     
        $.post(this.href, data, function(res){showTextbox(res)});
        return false;
    });

    obj.find('a.popupImage').click(function(){
        showImage(this.href);
        return false;
    });
    obj.find('a.popupText').click(function(){
        $.post(this.href, {'ajaxLoad': 1}, function(data){showTextbox(data); loadJavascript($('#fg_content')); })
        return false;
    });

    obj.find('form.ajaxLoadable input[type=submit]').click(function(){
       submitForm($(this));
       return false; 
    });
    
    obj.find('.ajaxCart').click(function(){
        var obj = this;
        $.post(this.href, {'ajaxLoad': 1}, function(data){
            $('#cartBlock').html(data);
            //sIFR.replaceElement("#cartBlock .title", named({sFlashSrc: baseUrl + "images/sifr_times_i.swf", sColor: "#000", 'sWmode': 'transparent'}));
            flyToItem($(obj).parents().filter('.productItem'), "#cartBlock");
        });
        return false;
    })
}

function submitForm(obj)
    {
    var form = obj.parents().filter('form');
    var inputs = form.find('input, select, textarea');
    var send = {};
    for(var index in inputs)
    for(i = 0; i < inputs.length; i++)
        {
        var itm = inputs.get(i);
        send[$(itm).attr('name')] = $(itm).val();
        }
    send['ajaxLoad'] = 1;
    
    $.post(form.attr('action'), send, function(data){showTextbox(data);loadJavascript($('#fg_content'));});
    }
function carousel_init(obj)
    {
    //alert(obj.parent().attr('id') + ' x ' + obj.parent().attr('class'));
    obj.jcarousel({
        auto: 4,
        wrap: 'last',
        scroll: 1,
        initCallback: carousel_initCallback,
        buttonNextHTML: null,
        buttonPrevHTML: null
    });        
    }
function carousel_initCallback(carousel)
{
    carousel.container.parents().filter('.carousel').find('.navigator a').bind('click', function() {
        var pos = $(this).attr('rel');
        if(pos == '+1')
            {
            carousel.next();
            return false;
        }
        if(pos == '-1')
            {
            carousel.prev();
            return false;
        }
        if(pos == 'last')
            pos = carousel.list.children().length;
        carousel.scroll(jQuery.jcarousel.intval(pos));
        return false;
    });

    // Disable autoscrolling if the user clicks the prev or next button.
    carousel.buttonNext.bind('click', function() {
        carousel.startAuto(0);
    });

    carousel.buttonPrev.bind('click', function() {
        carousel.startAuto(0);
    });

    // Pause autoscrolling if the user moves with the cursor over the clip.
    carousel.clip.hover(function() {
        carousel.stopAuto();
    }, function() {
        carousel.startAuto();
    });
};

var lastMenuId = '';
function showSubMenu(obj)
{
    var mid = obj.id;
    if(!obj.id)
        mid = obj.rel;
    if(mid == lastMenuId)
        return;

    $('.submenu').stop(true, true);
    $('.submenu').hide();
    if(obj.tagName.toLowerCase() == 'a')
        {
        pos = $(obj).parent().position();
        height = $(obj).parent().height();
        width = $(obj).parent().width();
        }
    else
        {
        pos = $(obj).position();
        height = $(obj).height();
        width = $(obj).width();
        }
    
    $('#sub'+mid).find('.submenuJoint').width(width);
    $('#sub'+mid).find('.submenuJoint').css({'margin-left': '0px'});
    
    $('#sub'+mid).css({'left': (pos.left)+ 'px', 'top': (pos.top + height) + 'px'});
    
    // if is out of body bounds
    var container = $(obj).parents().filter('#container');
    var poscont = container.offset();
    if(pos.left + $('#sub'+mid).width() > poscont.left + container.width())
        {
        var diff = pos.left + $('#sub'+mid).width() - ( poscont.left + container.width());
        $('#sub'+mid).css({'left': (pos.left - diff)+ 'px', 'top': (pos.top + height) + 'px'});
        $('#sub'+mid).find('.submenuJoint').css({'margin-left': diff + 'px'});
        }

    $('#sub'+mid).show(300);

    lastMenuId = mid;
}

function hideSubMenu(obj)
    {
    lastMenuId = '';
    $(obj).hide();
    }


function flyToItem(sourceItem, targetItem)
    {
    var pos1 = $(sourceItem).offset();
    pos1.width = $(sourceItem).width();
    pos1.height = $(sourceItem).height();

    var pos2 = $(targetItem).offset();
    pos2.left += $(targetItem).width() / 2;
    pos2.top += $(targetItem).height() / 2;
    
    var obj = $("<div style=\"position: absolute; width: 100px; height: 100px; background: #cccccc; border: 1px solid #000000; opacity: 0.5; filter: alpha(opacity=50);\"></div>");
    var imgSize = {};
    if(sourceItem.find('.productPreview'))
        {
        outer = $("<p>").append(sourceItem.find('.productPreview').clone()).html();
        obj.html(outer);
        imgSize = {'width':sourceItem.find('.productPreview').width(), 'height': sourceItem.find('.productPreview').height()};
        }
    
    $('body').append(obj);
    
    obj.css({'left': pos1.left+'px', 'top': pos1.top+'px'});
    obj.width(pos1.width);
    obj.height(pos1.height);

    obj.attr('step', 0);
    funct = function(){
        var i = obj.attr('step');
        if(i < 50)
            {
            diff1 = (pos1.top - pos2.top)/50;
            diff2 = (pos1.left - pos2.left)/50;
            
            obj.css({'left': (pos1.left - i*diff2)+'px', 'top': (pos1.top - i*diff1)+'px'});   
            obj.width(pos1.width - pos1.width / 50 * i);
            obj.height(pos1.height - pos1.height / 50 * i);
            
            if(imgSize)
                {
                obj.find('img').width(imgSize.width - imgSize.width / 50 * i);
                obj.find('img').height(imgSize.height - imgSize.height / 50 * i);
                
                }
            
            setTimeout(funct, 15);
            i++;
            obj.attr('step', i);
            }
        else
            {            
            obj.hide();
            $('body').remove(obj);
            }
    };
    
    setTimeout(funct, 5);
    }
    
function createSearchWhisperBox(data, snapTo)
    {
    raw = JSON.parse(data);
    if($('#whisper').length == 0)
        {
        $('body').append("<div id=\"whisper\"></div>");
        $('#whisper').mouseleave(function(){$(this).hide();});
        }
    $('#whisper').show();
    $('#whisper').html('');
    var pos = $(snapTo).position();
    $('#whisper').css({'left': pos.left + 'px', 'top': (pos.top + $(snapTo).height()) + 'px', 'min-width': $(snapTo).height() + 'px'});
    if(raw.length)
    for(i in raw)
        {
        html = '<div class="whisperItem">';
        obj = raw[i];
        if(obj['image'])
            html += "<img src='"+obj['image']+"' alt='' />";
        if(obj['url'])
            html += "<a href='"+obj['url']+"'>"+obj['name']+"</a>";
        else
            html += obj['name'];
        html += '</div>';

        $('#whisper').append(html);
        }
        
    $('#whisper .whisperItem').mouseenter(function(){$(this).addClass('active');}).mouseleave(function(){$(this).removeClass('active');})
    }
