/* !homeTop */

var homeTop = {
    
    elements: {},
    vars: {},
    
    init: function()
    {
        this.elements.link1 = $("#top-link-1")[0];
        this.elements.link2 = $("#top-link-2")[0];
        this.elements.link3 = $("#top-link-3")[0];
        this.elements.link4 = $("#top-link-4")[0];
        this.elements.link5 = $("#top-link-5")[0];
        this.elements.link6 = $("#top-link-6")[0];
        this.elements.link7 = $("#top-link-7")[0];
        
        $(this.elements.link1).click(function(){
            page.slideTo(0);
        });
        
        $(this.elements.link2).click(function(){
            page.slideTo(2);
        });
        
        $(this.elements.link3).click(function(){
            page.slideTo(1);
        });
        
        $(this.elements.link4).click(function(){
            page.slideTo(3);
        });
        
        $(this.elements.link5).click(function(){
            page.slideTo(4);
        });
        
        $(this.elements.link6).click(function(){
            page.slideTo(5);
        });
        
        $(this.elements.link7).click(function(){
            page.slideTo(6);
        });
    }
    
}

/* !page */

var page = {
    
    elements: {},
    vars: {},
    
    init: function()
    {
        this.vars.currentIndex = 0;
        this.vars.slideToCurrentSection = false;
        
        $(window).resize(function(){
            page.vars.slideToCurrentSection = true;
            page.slideTo(page.vars.currentIndex);
        });
        
        // navigation links
        
        $("a.bottom-link").click(function(){
            page.slideTo(page.vars.currentIndex + 1);
            return false;
        });
        
        $("a.top-link").click(function(){
            page.slideTo(0);
            return false;
        });
        
    },
    
    slideTo: function(index)
    {
        if(typeof(index) == "number")
        {
            if((index != this.vars.currentIndex) || this.vars.slideToCurrentSection)
            {
                var duration = (this.vars.slideToCurrentSection)? 500 : 1500;
                this.vars.currentIndex = index;
                this.vars.slideToCurrentSection = false;
                var height = $("#main-slider").height() / 10;
                var top = index * -1 * height;
                
                $("#main-slider").animate({
                    "top" 		: top
                }, {
                    "duration"	: duration,
                    "easing"	: "easeInOutExpo",
                    "queue"		: false
                });
                
                var theIndex = index - 1;
                var linkIndex = [];
                linkIndex[0] = 5;
                linkIndex[1] = 4;
                linkIndex[2] = 3;
                linkIndex[3] = 2;
                linkIndex[4] = 1;
                linkIndex[5] = 0;
                
                var links = $("#top-menu li a");
                
                for(var i = 0; i < links.length; i++)
                {
                    if(i == linkIndex[theIndex])
                    {
                        $(links[i]).addClass("sel");
                    }
                    else
                    {
                        $(links[i]).removeClass("sel");
                    }
                }
                
                
            }            
        }
    }
    
}

var bkgHome = {
    
    elements	: {},
    vars		: {},
    
    init: function(){
        $(window).resize(bkgHome.verifyWidth);
        this.verifyWidth();
    },
    
    verifyWidth: function(){
        var element = $("#bkg-home-image")[0];
        var parent = $(element).parent();
        
        if($(parent).width() > $(element).width())
        {
            $(element).css("width", "100%");
        }
    }
}

var lawyerSlider = {
    
    elements : {},
    vars : {},
    
    init: function(){
        
        this.elements.links		= $("#lawyers-box-content-side a");
        this.elements.boxes		= $(".lawyers-box-content-slider-box");
        this.elements.slider	= $("#lawyers-box-content-slider")[0];
        
        //vars
        this.vars.currentIndex = 0;
        this.vars.stopAnimation = false;
        
        
        $(this.elements.links).click(function()
        {
        	var pageId 	= $(this).attr("rel").substr(5);
        	var url		= setup.webroot + setup.language + "/jsonsubpages/" + pageId;
        	var buildPagesMenu = function(data)
        	{
        		var element = $('#lawyers-sections');
        		var html_str = "";
        		$(element).empty();
        		
        		for(var page in data)
        		{
        			html_str += '<a id="lawyers-sections-'+ data[page].Page.id +'" rel="page:'+ data[page].Page.id +'" href="javascript:void(0)">'+ data[page].Page['name_'+setup.language] +'</a> | ';
        		}
        		
        		if(html_str.length > 0)
        		{
        			html_str = html_str.substr(0, html_str.length - 3);
	        		$(element).append(html_str);
	        		
	        		$(element).find('a:eq(0)').addClass('sel');
	        		lawyersSections.switchSection( $(element).find('a:eq(0)').attr('rel').replace(/page\:/, '') );
	        		lawyersSections.init();
        		}
        		else
        		{
        			$("#lawyers-text").empty();
        		}
        		
        	}
        	
        	$.ajax({
        		url : url,
        		dataType : 'json',
        		success : function(data)
        		{
        			buildPagesMenu(data);
        		}
        	});
        	
            var index 	= parseInt(this.id.replace(/lawyers-box-content-side-/, '')) - 1;
            lawyerSlider.animate(index);
            
            return false;
        });
        
        if(this.elements.links.length)
        {
            for(var i = 1; i < this.elements.links.length; i++)
            {
                $(this.elements.links[i]).css("opacity", .5);
                $(this.elements.boxes[i]).css("opacity", 1);
            }
        }
        
        var sliderWidth = this.elements.boxes.length * 232;
        $("#lawyers-box-content-slider-bar").css("width", sliderWidth);
        
    },
    
    animate: function(index)
    {
        if((!this.vars.stopAnimation) && (index != this.vars.currentIndex))
        {
            $(this.elements.links[index]).css("opacity", 1);
            $(this.elements.links[this.vars.currentIndex]).css("opacity", .5);            
            
            this.vars.stopAnimation = true;
            
            var left = index * -1 * 232;
            
            $("#lawyers-box-content-slider-bar").animate({
                "left" : left
            }, {
                "duration" : 750,
                "easing" : "easeInOutExpo",
                "queue" : false,
                "complete" : function(){
                    lawyerSlider.vars.stopAnimation = false;
                }
            });
            
            $(this.elements.boxes[this.vars.currentIndex]).animate({
                'opacity' : 1
            },{
                "duration" : 750,
                "easing" : "easeInOutExpo",
                "queue" : false
            });
            
            $(this.elements.boxes[index]).animate({
                'opacity' : 1
            }, {
                "duration" : 750,
                "easing" : "easeInOutExpo",
                "queue" : false
            });
            
            this.vars.currentIndex = index;
            
        }
    }
}

var lawyersSections = {
    
    elements : {},
    vars : {},
    
    init: function()
    {
        $("#lawyers-sections a").click(function(){
        	var id = $(this).attr('rel').replace(/page:(.+)/, '$1');
            lawyersSections.switchSection(id);
        });
        this.elements.lawyersText = $("#lawyers-text")[0];
    },
    
    switchSection: function(id)
    {
        
        $("#lawyers-sections a").removeClass("sel");
        $("#lawyers-sections-" + id).addClass("sel");
        
        var url = setup.webroot + setup.language + "/lawyerspage/" + id;
        
        $(this.elements.lawyersText).animate({
            "opacity" : 0
        }, {
            "duration" : 1000,
            "easing" : "swing",
            "complete" : function()
            {
                $("#lawyers-text").load(url, function(){
                    $(lawyersSections.elements.lawyersText).animate({
                        "opacity" : 1
                    }, {
                        "duration" : 1000,
                        "easing" : "swing"
                    })
                });
            }
        });
        
    }
    
}

/* maps */

var maps = {
    
    vars : {},
    elements : {},
    
    init : function()
    {
        this.elements.map = document.getElementById("where-map-content");
        this.elements.map2 = document.getElementById("where-map-content-2");
        
        // peschiera del garda
        
        var latlng = new google.maps.LatLng(41.8924225, 12.476045);
        var latlng2 = new google.maps.LatLng(45.4668877, 9.1945068);
        
        // map
        
        var myOptions = {
            zoom: 13,
            center: latlng,
            mapTypeId: google.maps.MapTypeId.ROADMAP,
            scrollwheel: true,
            mapTypeControl: true,
            disableDefaultUI: false,
            zoomControl: true,
            zoomControlOptions : {
                position: google.maps.ControlPosition.TOP_LEFT,
                style: google.maps.ZoomControlStyle.LARGE
            }
        };
        
        var myOptions2 = {
            zoom: 13,
            center: latlng2,
            mapTypeId: google.maps.MapTypeId.ROADMAP,
            scrollwheel: true,
            mapTypeControl: true,
            disableDefaultUI: false,
            zoomControl: true,
            zoomControlOptions : {
                position: google.maps.ControlPosition.TOP_LEFT,
                style: google.maps.ZoomControlStyle.LARGE
            }
        };
        
        
        var map = new google.maps.Map(this.elements.map, myOptions);
        var map2 = new google.maps.Map(this.elements.map2, myOptions2);
        
        // time out luxury sportswear
        
        var marker01 = new google.maps.Marker({
            position : latlng
        });
        
        var marker02 = new google.maps.Marker({
            position : latlng2
        });
        
        marker01.setMap(map);
        marker02.setMap(map2);

    }
    
}

/*  preload function
    parameters: obj (object)
        selector
        callback
*/

function preload(obj)
{
    obj = (typeof(obj) == "object")? obj : {};
    var selector = (obj.selector)? obj.selector : "img.preload";
    var callback = (obj.callback)? obj.callback : null;
    var elements = $(selector);
    
    var attributesCopy = ["class", "alt", "id"];
    for(var i = 0; i < elements.length; i++)
    {
        var img = new Image();
        var src = $(elements[i]).attr("src");
        
        // copy attributes
        
        for(var j = 0; j < attributesCopy.length; j++)
        {
            var attr = $(elements[i]).attr(attributesCopy[j]);
            $(img).attr(attributesCopy[j], attr);
        }
        
        $(img).hide();
        $(elements[i]).replaceWith(img);
        
        $(img).load(function(){
            $(this).fadeIn();
            $(this).removeClass("preload");
            if(callback)
            {
                callback(this);
            }
        }).attr('src', src);
    }
}

var setup = {
    
    language    : 'it',
    webroot     : null
    
}

/* init */

$(document).ready(function(){
    
    new preload({
        callback: function(el){
            if(el.id == "bkg-home-image")
            {
                bkgHome.init(el);
            }
        }
    });
    
    page.init();
    homeTop.init();
    lawyerSlider.init();
    maps.init();
    lawyersSections.init();
    
});
