function ___getPageSize() {
    var xScroll, yScroll;
    if (window.innerHeight && window.scrollMaxY) {	
            xScroll = window.innerWidth + window.scrollMaxX;
            yScroll = window.innerHeight + window.scrollMaxY;
    } else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac
            xScroll = document.body.scrollWidth;
            yScroll = document.body.scrollHeight;
    } else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
            xScroll = document.body.offsetWidth;
            yScroll = document.body.offsetHeight;
    }
    var windowWidth, windowHeight;
    if (self.innerHeight) {	// all except Explorer
            if(document.documentElement.clientWidth){
                    windowWidth = document.documentElement.clientWidth; 
            } else {
                    windowWidth = self.innerWidth;
            }
            windowHeight = self.innerHeight;
    } else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
            windowWidth = document.documentElement.clientWidth;
            windowHeight = document.documentElement.clientHeight;
    } else if (document.body) { // other Explorers
            windowWidth = document.body.clientWidth;
            windowHeight = document.body.clientHeight;
    }	
    // for small pages with total height less then height of the viewport
    if(yScroll < windowHeight){
            pageHeight = windowHeight;
    } else { 
            pageHeight = yScroll;
    }
    // for small pages with total width less then width of the viewport
    if(xScroll < windowWidth){	
            pageWidth = xScroll;		
    } else {
            pageWidth = windowWidth;
    }
    arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight);
    return arrayPageSize;
};

function ___getPageScroll() {
    var xScroll, yScroll;
    if (self.pageYOffset) {
            yScroll = self.pageYOffset;
            xScroll = self.pageXOffset;
    } else if (document.documentElement && document.documentElement.scrollTop) {	 // Explorer 6 Strict
            yScroll = document.documentElement.scrollTop;
            xScroll = document.documentElement.scrollLeft;
    } else if (document.body) {// all other Explorers
            yScroll = document.body.scrollTop;
            xScroll = document.body.scrollLeft;	
    }
    arrayPageScroll = new Array(xScroll,yScroll);
    return arrayPageScroll;
};

var userAgent = navigator.userAgent.toLowerCase();
 
// Figure out what browser is being used
jQuery.browser = {
	version: (userAgent.match( /.+(?:rv|it|ra|ie|me)[\/: ]([\d.]+)/ ) || [])[1],
	chrome: /chrome/.test( userAgent ),
	safari: /webkit/.test( userAgent ) && !/chrome/.test( userAgent ),
	opera: /opera/.test( userAgent ),
	msie: /msie/.test( userAgent ) && !/opera/.test( userAgent ),
	mozilla: /mozilla/.test( userAgent ) && !/(compatible|webkit)/.test( userAgent )
};

$(function()
{
    //$('ul#mainMenu li a').css({ lineHeight : '30px' });
    if($.browser.chrome)
    {
        $('ul#mainMenu li a').css({ lineHeight: '34px' });
    }
    if ($.browser.safari) {
        $('ul#mainMenu li a').css({ lineHeight : '20px' });
    }
    if ($.browser.opera) {
        $('ul#mainMenu li a').css({ lineHeight : '34px' });
    }
    var $mainMenu = $('ul#mainMenu');
    var $mainMenuItems = $('ul#mainMenu li');
    var mainMenuItemsIndex = new Array();
    var mainMenuItemsPos = new Array();
    var mainMenuItemsWidth = new Array();
    var currentElement = 0;
    
    if($mainMenu.size() > 0)
    {
        $mainMenu.append('<li class="background"><span class="slideMenu"></span></li>');
        var mainMenuSelected = $('ul#mainMenu a.current');
        var mainMenuSelectedWidth = mainMenuSelected.width();
        var mainMenuSelectedPosition = mainMenuSelected.position();
        var backgroundElement = $('li.background');
        
        $mainMenuItems.each(function(index)
        {
            var $this = $(this);
            mainMenuItemsIndex.push(index);
            mainMenuItemsPos.push($this.position().left+6+index);
            mainMenuItemsWidth.push($this.find('a').width());
            
            if($this.find('a').hasClass('current')) {
                currentElement =  index;
            }
        });
        backgroundElement.css({
            position : 'absolute',
            width : mainMenuItemsWidth[currentElement]+26,
            left : mainMenuItemsPos[currentElement]-currentElement
        });
        $mainMenuItems.hover(function(index, elem)
        {
            var elemIndex = $.inArray(this, $mainMenuItems);
            backgroundElement.stop().animate({ left : mainMenuItemsPos[elemIndex]-elemIndex, width : mainMenuItemsWidth[elemIndex]+26 });
        });
        $mainMenuItems.mouseleave(function()
        {
            backgroundElement.stop().animate({
                width : mainMenuItemsWidth[currentElement]+26,
                left : mainMenuItemsPos[currentElement]-currentElement
            });
        });
    }
    
    var productBoxes = $('div.productBox');
    if(productBoxes.size() > 0)
    {
        productBoxes.each(function()
        {
            var oldZ = $(this).css('zIndex');
            $(this).mouseover(function()
            {
                $(this).find('div.hoverBackground').stop().animate({ opacity : 1 }, 150);
                $(this).addClass('hover').css({zIndex : 10});
            });
            
            $(this).mouseout(function()
            {
                $(this).find('div.hoverBackground').stop().animate({ opacity : 0 }, 150);
                $(this).removeClass('hover').css({ zIndex : oldZ });
            });
        });
    }
    
    
    var currentSlide = 0;
    if($('div.personWrapper').size() > 0) {
        var $contentSlideItems = $('div.personWrapper');
        var contentSlideItemsCount = $contentSlideItems.size();
        var $contentSlide = $('div#personSlider');
        var slideWidth = 924;
    }
    else {
        var $contentSlideItems = $('div.contentSlideItem');
        var contentSlideItemsCount = $contentSlideItems.size();
        var $contentSlide = $('div#contentSlide');
        var slideWidth = 943;
    }
    if(contentSlideItemsCount > 1)
    {
        $contentSlide.css({
            width: (contentSlideItemsCount*slideWidth)
        });
        $('a.nextContentBtn').click(function()
        {
            if(currentSlide < contentSlideItemsCount) {
                $contentSlide.animate({
                    left : -((currentSlide+1)*slideWidth)
                }, '500', function() {
                    currentSlide = currentSlide+1
                });
            }
            return false;
        });
        $('a.backContentBtn').click(function()
        {
            if($(this).hasClass('last'))
            {
                $contentSlide.animate({
                    left : 0
                }, '500', function() {
                    currentSlide = 0;
                });
            }
            else
            {
                $contentSlide.animate({
                    left : -((currentSlide-1)*slideWidth)
                }, '500', function() {
                    currentSlide = currentSlide-1;
                });
            }
            return false;
        });
        
        $('div#contentArea a').each(function()
        {
            var href = $(this).attr('href');
            var elemId = href.replace('#', '');
            var $element = $('div'+href);
            
            if($element.size() > 0) {
                $(this).click(function()
                {
                    /*var elemHeight = $element.height();
                    $('div#contentContainer, div#content, div#contentSlide').each(function()
                    {
                        var height = $(this).height();
                        var diff = elemHeight - height;
                        if(elemHeight > height)
                            $(this).stop().animate({ height : elemHeight+diff });
                        else
                            $(this).stop().animate({ height : 393+20 });
                    });*/
            
                    var index = $element.index();
                    $contentSlide.animate({
                        left : -(index*943)
                    }, '500', function() {
                        currentSlide = index;
                        
                    });
                    return false;
                });
            }
        });
    }
    
    var $mapContainers = $('div.mapContainer');
    if($mapContainers.size() > 0)
    {
        $mapContainers.each(function()
        {
            var lat = $(this).find('span.lat').html();
            var lng = $(this).find('span.lng').html();
            var link = $(this).find('span.link').html();
            var map = new GMap2(document.getElementById($(this).attr('id')));
            var center = new GLatLng(lat, lng);
            map.setCenter(center, 15);
//            map.setMapType(G_HYBRID_MAP);
            var marker = new GMarker(center);
            map.addOverlay(marker);
            $(this).append('<a href="'+link+'" target="_blank" title="Larger map" class="largerMapBtn">Larger map</a>');
            
        });
    }
    var $overlay = $('div#overlay');
    var $contactForm = $('div#contactFormContainer');
    
    $('a#contactBtn').click(function()
    {
        $overlay.css({display:'block'});
        $contactForm.css({ display: 'block', opacity: 0 }).animate({ opacity : 1 });
        return false;
    });
    $('a#contactformCloseBtn').click(function()
    {
        
        $contactForm.animate({ opacity : 0 }, '', function()
        {
            $(this).css({ display: 'none' });
            $overlay.css({display:'none'});
        });
        return false;
    });
    
    $('form#contactForm').submit(function()
    {
        $.post('main.php', $(this).serialize(), function(data)
        {
            if(data != null) {
                
                if(data.success)
                    $('span#formError').html('Your mail is sent!').animate({opacity:1}).animate({opacity:1}, 3000, function()
                    {
                        $(this).animate({opacity:0});
                        $('form#contactForm input:text, form#contactForm textarea').each(function()
                        {
                            $contactForm.animate({ opacity : 0 }, '', function()
                            {
                                $(this).css({ display: 'none' });
                                $overlay.css({display:'none'});
                            });
                            $(this).val('');
                        });
                    });
                else
                    $('span#formError').html(data.error).animate({opacity:1}).animate({opacity:1}, 3000, function()
                    {
                        $(this).animate({opacity:0});
                    });;
                
            }
        }, 'json');
        return false;
    });
    var currentActivePersonPos = undefined;
    
    $('a.bioLink').click(function()
    {
        var $this = $(this);
        var contentContainerId = $this.attr('rel');
        var $parent = $this.parent();
        var $contentContainer = $('div#'+contentContainerId);
        var $siblings = $parent.siblings();
        if($this.html() != 'Back') {
            currentActivePersonPos = $parent.position();
            $this.html('Back').css({ width:25 });
            
            $siblings.find('a.bioLink').animate({opacity: 0}, 150);
            $parent.siblings().stop().animate({opacity: 0}, '', function()
            {
                
                $parent.stop().animate({ left : 30 }, '', function()
                {
                    $parent.css({ width : 880 });
                    $contentContainer.css({ opacity: 0, display : 'block' }).animate({opacity: 1});
                });
            });
            
        }
        else {
            $this.html('Bio').css({ width:18 });
            $contentContainer.animate({opacity: 0}, '', function()
            {
                $parent.css({ width : 158 });
                $contentContainer.css({ opacity: 0, display : 'none' });
                $parent.stop().animate({ left : currentActivePersonPos.left });
                $siblings.find('a.bioLink').animate({opacity: 1}, 150);
                $parent.siblings().stop().animate({opacity: 1});
            });
        }
        return false;
    });
    
    $('a#printBtn').click(function()
    {
        var newWindow = window.open(window.location.href+'?print=true',"Printwindow","menubar=0,resizable=0,width=1,height=1");
        return false;
    });
    
    var $window = $(window);
    var wrapperHeight = $('div#wrapper').height();
    $window.resize(function()
    {
        var arrPageSizes = ___getPageSize();
        $overlay.css({
                width:		arrPageSizes[0],
                height:		arrPageSizes[1]
        });
        var arrPageScroll = ___getPageScroll();
    });
});