/**
 *  My work stuff
 */ 

function setServicesAnimation()
{
    var $li = $('#menu li.menu2');
    var pos = getAbsPos($li.get(0));
    
    //$('body').append('<div id="homeServices"></div>');
    //$('body').append('<div id="homeServices-real"></div>');
    
    //
    
    var $hs     = $('#homeServices-fake');
    var $hsr    = $('#homeServices-real');
    
    var left    = pos.Left + parseInt(($li.width() - 120) / 2,10);
    var top     = pos.Top - 120;
    
    $hs.css({
        opacity: 0.9,
        left: left
    });
    
    window.onload = function () {
        setTimeout(function () {
            $hs.animate({
                top: top
            },250,function () {
                left   -= (316 - 120) / 2;
                pos     = getAbsPos($hs.get(0));
                top     = pos.Top;
            
                $hs.animate({
                    top: top - 31 + 60 + 15,
                    left: left + 20,
                    width: 316,
                    height: 60
                },350,function () {
                    pos = getAbsPos($hs.get(0));
                
                    $hsr.css({
                        opacity: 0,
                        left: pos.Left - 5,
                        top: pos.Top - 5
                    }).show();
                    
                    //
                    
                    $hs.animate({
                        opacity: 0
                    },100);
                    
                    $hsr.animate({
                        opacity: 1
                    },100,function () {
                        setTimeout(function () {
                            $hsr.animate({
                                opacity: 0
                            },500,function () {
                                $hs.hide();
                            
                                $hsr.hide();
                            });
                        },4000);
                    });
                });
            });
        },1000);
    };//onload
}//setServicesAnimation

function initMyWork()
{
    $('#faqItems div.item:last').addClass('last');
    
    //
    //
    //
    
    var i = 0;
    
    $('#myWorkItems div.item').each(function () {
        var $this = $(this);
        
        i++;
        
        $this.addClass('item' + i);
    });
    
    //
    
    var $workItem1  = $('#myWorkItems div.item1');
    var $workItem2  = $('#myWorkItems div.item2');
    var $workItem3  = $('#myWorkItems div.item3');
    
    //
    
    var items       = [];
 
    items[0]        = {
        text: faqTitles[1],
        link: '#faq1',
        side: 'top',
        pos: '25%'
    };
     
    var opts = {
        name: 'freeWeb',
        imgFolder: '/public/img/kvkContBubbles/',
        items: items
    };
     
    $workItem1.kvkContBubbles(opts);
    
    $workItem1.data('cbName',opts.name);
    
    //
     
    var items2      = [];
 
    items2[0]       = {
        text: faqTitles[2],
        link: '#faq2',
        side: 'top',
        pos: '50%'
    };
    
    items2[1]       = {
        text: faqTitles[3],
        link: '#faq3',
        side: 'bottom',
        pos: '33%'
    };
    
    items2[2]       = {
        text: faqTitles[4],
        link: '#faq4',
        side: 'bottom',
        pos: '67%'
    };
     
    var opts2 = {
        name: 'simpleWeb',
        imgFolder: '/public/img/kvkContBubbles/',
        items: items2
    };
     
    $workItem2.kvkContBubbles(opts2);
    
    $workItem2.data('cbName',opts2.name);
    
    //
     
    var items3      = [];
    
    items3[0]       = {
        text: faqTitles[2],
        link: '#faq2',
        side: 'top',
        pos: '33%'
    };
    
    items3[1]       = {
        text: faqTitles[3],
        link: '#faq3',
        side: 'top',
        pos: '67%'
    };
    
    items3[2]       = {
        text: faqTitles[4],
        link: '#faq4',
        side: 'bottom',
        pos: '50%'
    };
    
    var opts3 = {
        name: 'eShop',
        imgFolder: '/public/img/kvkContBubbles/',
        items: items3
    };
     
    $workItem3.kvkContBubbles(opts3);
    
    $workItem3.data('cbName',opts3.name);
     
    //
    //
    //
    
    $('#myWorkItems').data('actual',0);
    
    $('#myWorkItems div.item').each(function () {
        var $this = $(this);
        
        $this.hover(function () {
            var act = parseInt($('#myWorkItems').data('actual'),10);
            var reg = new RegExp('^(.*)item([0-9]+)(.*)$');
            var idx = $this.get(0).className.replace(reg,'$2');
            
            if (act != idx)
            {
                hideWorkBubbles();
                
                //
            
                $('#myWorkItems').data('canHide',0);
            
                showWorkBubbles($this);
            }//if (act != idx)
        },function () {
            $('#myWorkItems').data('canHide',1);
        });
    });
    
    //
    
    $('body').mousemove(function (e) {
        var $elem   = $(e.target);
        var canHide = parseInt($('#myWorkItems').data('canHide'),10);
        
        if (canHide)
        {
            if ((!$elem.parents('#myWorkItems').get(0)) && (!$elem.is('.kvkContBubbles')) && (!$elem.parents('.kvkContBubbles').get(0)))
            {
                hideWorkBubbles();
                
                $('#myWorkItems').data('actual',0);
            }//if ( ... 
        }//if (canHide)
    });
}//initMyWork

function showWorkBubbles($item)
{
    var name = $item.data('cbName');

    $item.kvkCbShow(name);
    
    $item.find('p').css('opacity',1);
    
    var reg = new RegExp('^(.*)item([0-9]+)(.*)$');
    var idx = $item.get(0).className.replace(reg,'$2');
    var cn  = 'item' + idx;
    
    $('#myWorkItems').data('actual',idx);
    
    //
    
    $('#myWorkItems div.item').each(function () {
        var $this = $(this);
        
        if (!$this.is('.' + cn))
        {
            $this.find('p').animate({
                opacity: 0.5
            },150,function () {
                $item.find('p').css('opacity',1);
            });
        }//if (!$this.is('.' + cn))
    });
    
    //
    
    var $cb = $('.kvkContBubbles.' + name);
    
    if (!$cb.is('.fixed'))
    {
        $cb.find('div.item').each(function () {
            var $this = $(this);
        
            $this.append('<div class="fix"></div>');
            
            var $fix    = $this.find('div.fix:first');
            var $tail   = $this.find('div.tail:first');
            
            $fix.css({
                width: '100%',
                height: $tail.height(),
                left: 0,
                position: 'absolute',
                display: 'block'
            });
            
            if ($this.is('.bottom'))
            {
                $fix.css('bottom',$tail.css('bottom'));
            }
            else
            {
                $fix.css('top',$tail.css('top'));
            }
        });
        
        //
        
        $cb.addClass('fixed');
    }//if (!$cb.is('.fixed'))
}//showWorkBubbles

function hideWorkBubbles()
{
    $('#myWorkItems div.item').each(function () {
        var $this   = $(this);
        
        var name    = $this.data('cbName');
    
        $this.kvkCbHide(name);
        
        //
        
        $this.find('p').css('opacity',1);
    });
}//hideWorkBubbles

//

function setRecBlogHovers()
{
    $('#recBlog div.item a').hover(function () {
        var $this = $(this);
        
        //
        
        $this.find('span.hover').show();
    },function () {
        var $this = $(this);
        
        //
        
        $this.find('span.hover').hide();
    });
}//setRecBlogHovers

function setFeatWorkHovers()
{
    $('.featWork-desc').each(function () {
        var $this   = $(this);
        
        $this.data('height',$this.height());
        
        $this.hide();
    });

    //

    $('#featWork div.item').hover(function () {
        var $this   = $(this);
        var id      = $this.get(0).id;
        var pos     = getAbsPos($this.get(0));
        
        //
        
        var desc    = $('#' + id + '-desc');
        
        /*
        desc.css({
            left: pos.Left + 23,
            top: pos.Top - desc.data('height') - 33 + 8     //33 - bottom padding
        }).show();
        */
        
        var top = pos.Top - desc.data('height') - 33 + 1;     //33 - bottom padding
        
        desc.css({
            left: pos.Left + 23,
            top: top
        }).show()
        .animate({
            top: top + 7
        },150);
    },function () {
        $('.featWork-desc').hide();
    });
}//setFeatWorkHovers

//

function imgsPreload(imgs)
{
    if (imgs.length > 0)
    {
        var count   = $('.imgsPreloadBox').length;
        var id      = 'imgsPreloadBox_' + (count + 1);
    
        $('body').append('<div id="' + id + '" class="imgsPreloadBox" style="opacity: 0; position: absolute; left: -1000em; top: -1000em;"></div>');
    
        for (var i = 0; i < imgs.length; i++)
        {
            $('#' + id).append('<img src="' + imgs[i] + '" alt="image" />');
        }//for
    }//if (imgs.length > 0)
}//imgsPreload

//

function setListClasses(selector)
{
    $(selector).each(function () {
        var i = 0;
        
        $(this).find('li').removeClass('first').removeClass('last').removeClass('even').removeClass('odd');
        
        $(this).find('li').each(function () {
            i++;
            
            if (i % 2 == 0)
            {
                $(this).addClass('even');
            }
            else
            {
                $(this).addClass('odd');
            }
        });
        
        $(this).find('li:first').addClass('first');
        $(this).find('li:last').addClass('last');
    });
}//setListClasses

function setTablesClasses(selector)
{
    $(selector).each(function () {
        var i = 0;
        
        $(this).find('tr').each(function () {
            i++;
            
            $(this).removeClass('even-row').removeClass('odd-row').removeClass('title').removeClass('last-row');
            $(this).find('td,th').removeClass('first-cell').removeClass('last-cell');
            
            //
            
            if (i % 2 == 0)
            {
                $(this).addClass('even-row');
            }
            else
            {
                $(this).addClass('odd-row');
            }
            
            $(this).find('td:first').addClass('first-cell');
            $(this).find('td:last').addClass('last-cell');
            
            $(this).find('th:first').addClass('first-cell');
            $(this).find('th:last').addClass('last-cell');
        });
        
        $(this).find('tr:first').addClass('title');
        $(this).find('tr:last').addClass('last-row');
    });
}//setTablesClasses

function getAbsPos(elem)
{
    var end  = false;
    var prnt = elem;
    var x    = 0;
    var y    = 0;
    
    while (!end)
    {
        if (prnt != null)
        {
            if (prnt.offsetLeft)
            {
                x += prnt.offsetLeft;
            }
            
            if (prnt.offsetTop)
            {
                y  += prnt.offsetTop;
            }
        
            prnt = prnt.offsetParent;
        }
        else
        {
            break;
        }
    }//while
    
    return {Left: x, Top: y};
}//getAbsPos

function AJAXRequest(params,script,callback)
{
    var xhr = false;
            
    try
    {
        xhr = new ActiveXObject("MSXML2.XMLHTTP");
    }
    catch (e1)
    {
        try
        {
            xhr = new ActiveXObject("Microsoft.XMLHTTP");
        }
        catch (e2)
        {
            xhr = false;
        }
    }//catch
    
    if ((!xhr) && (window.XMLHttpRequest))
    {
        xhr = new XMLHttpRequest();
    }

    if (xhr)
    {
        xhr.open('POST',script,true);
        xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
        xhr.setRequestHeader('X-Requested-With','XMLHttpRequest');
        
        xhr.onreadystatechange = function()
        {
            if ((xhr.readyState == 4) && (xhr.status == 200))
            {
                if (typeof(callback) == 'function')
                {
                    callback(xhr.responseXML);
                }
            }//if ((xhr.readyState == 4) ...
        }
        
        //
        
        xhr.send(params);
    }//if (xhr)
}//AJAXRequest
