var page = {
    $header: $("div.header"),
    $outer: $(".header .outer"),
    $menuLi: $(".header .outer .menu ul li"),
    $threeCols: $(".three-cols"),
    headerMinHeight: "80px",
    headerMaxHeight: "110px",
    wHeight: $(window).height(),
    basketRight: "-248px",
    
    
    domain: "",
    hashParameter: "",
    
    newsletterMailInfo: "Podaj swój adres e-mail...",
    
    addInfo: function() {
        var $input = $("input#newsletter-mail");
        var value = $input.attr('value').length;
        if(!value)
            $input.attr({'value': page.newsletterMailInfo});
        
        $input.live("click", function() {
            value = $input.attr('value');
            if(value == page.newsletterMailInfo)
                $input.attr({'value': ''});
        });
        
        $input.live("click", function() {
            value = $input.attr('value');
            if(value == page.newsletterMailInfo)
                $input.attr({'value': ''});
        });
        
        $input.focusout(function() {
            value = $input.attr('value').length;
            if(!value)
                $input.attr({'value': page.newsletterMailInfo});
        });
    },
   
    checkDomain: function() {
        if(window.location) {
           var loc = window.location.toString();
           var url = loc.split("/");
           page.domain = 'http://' + url[2] + '/';
        }
    },
    
    buyItem: function() {
        $("a.buy-item").live("click", function(e){
            e.preventDefault();
            $("div.preloader").addClass("active");
            //$("li.item-koszyk ul.submenu").animate({"left": "-400px"}, 50);
            $("div.basket-slide").stop().animate({"right": "-300px"}, 100);
            var href = $(this).attr("href");
            var container = "div.small-cart";
            
            $.ajax({ url: href, success: function (data) {
                $(container).html(data);
                //$("li.item-koszyk ul.submenu").animate({"left": "0"}, 300);
                $("div.basket-slide").animate({"right": page.basketRight}, 300);
             
                if(page.wHeight < parseInt($("div.basket-wrapper div.basket-content").height())) {
                    $("div.basket-slide").animate({"marginTop": "10px"});
                } else {
                    $("div.basket-slide").animate({"marginTop": "200px"});
                }
                $("div.preloader").removeClass("active");
            } });
            
        });
        
        $("div.basket-slide").hover(function() {
            $("div.basket-slide").stop().animate({"right": "0"}, 300);
        },
        function() {
            $("div.basket-slide").stop().animate({"right": page.basketRight}, 300);
        })
    },
    
    emptyCart: function() {
        $("a.empty-basket").live("click", function(e){
				e.preventDefault();
				$("ul.basket-list").animate({"left": "-800px"}, 50);
            var href = $(this).attr("href");
            var container = "div.dynamic";
            $.ajax({ url: href, success: function (data) {
                $(container).html(data);
                $("ul.basket-list").animate({"left": "0"}, 300);
            } });
        });
    },
    
    deleteItem: function() {
        $("a.delete-from-cart").live("click", function(e) {
            e.preventDefault();
            //$("li.item-koszyk ul.submenu").animate({"left": "-400px"}, 50);
            $("div.basket-slide").animate({"right": page.basketRight}, 100);
            var href = $(this).attr("href");
            var container = "div.small-cart";
            $.ajax({ url: href, success: function (data) {
                $(container).html(data);
                //$("li.item-koszyk ul.submenu").animate({"left": "0"}, 300);
                $("div.basket-slide").animate({"right": "0"}, 100);
            } });
        });  
    },
	 
	 deleteItemFromCart: function() {
        $("a.delete-from-big-cart").live("click", function(e) {
            e.preventDefault();
            $("ul.basket-list").animate({"left": "-800px"}, 50);
            var href = $(this).attr("href");
            var container = "div.dynamic";
            $.ajax({ url: href, success: function (data) {
                $(container).html(data);
                $("ul.basket-list").animate({"left": "0"}, 300);
            } });
        });  
    },
	 
	 changeDisplayOrder: function() {
        $("a.change-display-order").live("click", function(e) {
            e.preventDefault();
				if(!$(this).filter('.active').length) {
					 $("div.preloader").addClass("active");
					 var href = $(this).attr("href");
					 var container = "div.dynamic";
					 $.ajax({ url: href, success: function (data) {
						  $(container).html(data);
						  $("div.preloader").removeClass("active");
					 } });	 
				}
        });  
    },
	 
	 changeDisplayAmount: function() {
        $("a.change-display-amount").live("click", function(e) {
            e.preventDefault();
				if(!$(this).filter('.active').length) {
					 $("div.preloader").addClass("active");
					 var href = $(this).attr("href");
					 var container = "div.dynamic";
					 $.ajax({ url: href, success: function (data) {
						  $(container).html(data);
						  $("div.preloader").removeClass("active");
					 } });	 
				}
        });  
    },
    
    mainMenu: function() {
        $("ul.main-menu li a").not("ul.main-menu li ul li a, ul.main-menu li.item-strona-glowna a").click(function(e) {
            e.preventDefault();
            if($(this).not(".basket").parent().not(".display").length) {
                $("ul.main-menu li.display").removeClass("display");
                $(this).parent().addClass("display");
            }
        });
    },
    
    
    changeProductPhoto: function() {
        $("div.more-photos a").live("click", function(e) {
            e.preventDefault();
            var imgSrc = $(this).attr("href");
            $(this).not(".active").addClass("active");
             $("div.more-photos a").filter(".active").not(this).removeClass("active");
            $("div.big-image img").attr({"src": imgSrc});
        });    
    },
    
    productMenu: function() {
        $("ul.product-menu li a").not("ul.product-menu li ul li a").click(function(e) {
            e.preventDefault();
            if($(this).not(".newsletter").parent().not(".active").length) {
                $("ul.product-menu li.active").removeClass("active");
                $(this).parent().addClass("active");
            }
        });
    },
    
    headerSlide: function() {
        $("div.header").live("click", function() {
            if($(this).not(".active").length) {
                $(this).stop().animate({"marginTop": "0"}, 300);
                $(this).addClass("active");
            } else {
                $(this).stop().animate({"marginTop": "-250px"}, 300);
                $(this).removeClass("active");
            }
        });
    },
    
    ajaxRequest: function(href, container, preloader) {
        preloader = typeof(preloader) != 'undefined' ? preloader : true;
        if(preloader)
            $("div.preloader").addClass("active");
        $.ajax({ url: href, success: function (data) {
            $(container).html(data);
            if(preloader)
                $("div.preloader").removeClass("active");
        } });
    },
    
    deleteMail: function() {
        $("a.delete").live("click", function(e) {
            e.preventDefault();
            var href = $(this).attr("href");
            var container = "div.dynamic-html";
            var title = $(this).attr("title");
            if(confirm(title))
                page.ajaxRequest(href, container, false);
        });
    },
    
    getHashParam: function() {
        var hrefArray = window.location.href.split("#");
        if(hrefArray.length > 1)
            page.hashParameter = hrefArray[1];
    },
    
    showMenu: function() {
        page.$outer.children(".menu").fadeIn(1000);
        page.$header.hover(function() {
            page.$outer.stop().animate({"height": page.headerMaxHeight}, 200, function() {
					$("#submenu").fadeIn(200);
				});
            page.$outer.children(".menu").children("ul").children("li").hover(function() {
                page.$menuLi.filter(".active").removeClass("active");
                $(this).addClass("active");
                page.$outer.children(".submenu").children("ul").hide();
                var submenuId = $(this).children("a").attr("href");
                $(submenuId).show();
            },
            function() {
            });
        },
        function() {
            page.$menuLi.filter(".active").removeClass("active");
            page.$outer.children(".submenu").children("ul").fadeOut(100);
            page.$outer.stop().animate({"height": page.headerMinHeight}, 500);
            page.igniter = false;
        });    
    },
    
    animateBoxes: function() {
        page.$threeCols.children("div").each(function() {
            $(this).slideToggle(700);
        });
        
        page.$threeCols.children("div:first").animate({"marginLeft": "889px"},600).animate({"marginLeft": "687px"},200);
        page.$threeCols.children("div:last").animate({"left": "-200px"},600).animate({"left": "0"},200);
        
    },
	 
	 emailAddress: function() {
		var name = "kontakt";
		var domain = "rtastudio.pl";
		$("a#maitlo-email-1").attr({href: "mailto:" + name + "@" + domain}).html(name + "@" + domain);
	 },
    
    showHideAnswer: function() {
        $("a.show-answer").live("click", function(e) {
            e.preventDefault();
            if($(this).parent().filter(".active").length)
                $(this).parent().removeClass("active").addClass("inactive");
            else
                $(this).parent().removeClass("inactive").addClass("active");
        });
    },
    
    slideshow: function() {
        var $slideshow = $("div.slideshow");
        var $activeSlide = $("div.slideshow ul li.active");
        var $nextSlide = $activeSlide.next().length == 1 ? $activeSlide.next() : $("div.slideshow ul li:first");
        $nextSlide.addClass("next");
        $activeSlide.animate({"left": "-730px"}, 800, function() {
            $(this).removeClass("active").removeClass("next").css({"left": "0"});
            $nextSlide.addClass("active");
        });       
    },
	 
	 markLi: function() {
        var $slideshow = $("ul.top_ul");
        var $activeSlide = $("ul.top_ul li.active");
        var $nextSlide = $activeSlide.next().length == 1 ? $activeSlide.next() : $("ul.top_ul li:first");
        
        $activeSlide.removeClass("active");
        $nextSlide.addClass("active");
    },
	 
	 registration: function() {
		  $("#company-account").live("click", function() {
				if($(this).attr("checked"))
					 $("div.company-account").removeClass("hidden");
				else
					 $("div.company-account").addClass("hidden");
		  });
		  
		  $("#register-submit").live("click", function(e) {
				if(!$("#regulations-accept").attr("checked")) {
					 e.preventDefault();
					 alert("Prosimy zaakceptować regulamin serwisu. W innym wypadku rejestracja nie zostanie zakończona pomyślnie.");
				}
		  });
	 }
}

var slider = {
	index: 0,
	slideWidth: 200,
	maxIndex: 0,
	
	getMaxIndex: function() {
		var counter = 0;
		$(".slider-wrapper div.slider	ul li").each(function() {
			if($(this).css("display") == "block")
				counter++;	
		});
		slider.maxIndex = counter - 4;
	},
	
	slideLeft: function() {
		$(".slider-wrapper a.left").click(function() {
			$list = $(this).parent().children(".slider").children("ul");
			if(slider.index > 0) {
				slider.index--;
				var left = - (slider.index * slider.slideWidth);
				$list.stop("true","true").animate({"left": left+"px"},300);
			}
		});
	},
	
	slideRight: function() {
		$(".slider-wrapper a.right").click(function() {
			$list = $(this).parent().children(".slider").children("ul");
			if(slider.index < slider.maxIndex) {
				slider.index++;
				var left = - (slider.index * slider.slideWidth);
				$list.stop("true","true").animate({"left": left+"px"},300);
			}
		});
	},
	
	showProject: function() {
		var $projectContainer = $("div.project-window");
		var $imgContainer = $("div.project-window div.project-image");
		var $descriptionBox =  $("div.project-window div.project-description");
		$(".slider-wrapper div.slider	ul li a").click(function(e) {
			//hiding description when switching between projects
			var $description = $("div.project-window a.project-header");
			slider.hideDescription($description);
			
			$projectContainer.addClass("preload");
			e.preventDefault();
			
			if($(this).parent().index() != $("div.slider	ul li").filter(".active").index())
				$("div.slider ul li").filter(".active").removeClass("active");
			
			$(this).parent().addClass("active");
			
			var href = $(this).attr("href").split("|");
			
			var imgSrc = href[0].slice(1);
			var projectDescDivId = "#" + href[1];
			if($(projectDescDivId).length) {
				$descriptionBox.html($(projectDescDivId).html());	
			} else {
				$descriptionBox.html("<p>Opis w przygotowaniu.</p>");
			}
			slider.loadImg($imgContainer, imgSrc);
		});
	},
	
	showActiveProject: function() {			
		var $description = $("div.project-window a.project-header");
			slider.hideDescription($description);
		$(".slider-wrapper div.slider	ul li.active").each(function() {
			$(this).removeClass("active");
		});
		var $imgContainer = $("div.project-window div.project-image");
		var $descriptionBox =  $("div.project-window div.project-description");
		
      $(".slider-wrapper div.slider	ul li").each(function() {
			if($(this).css("display") == "block") {
				$(this).addClass("active");
			}
		});
		
		if($(".slider-wrapper div.slider ul li.active a").attr("href")) {
			var href = $(".slider-wrapper div.slider ul li.active a").attr("href").split("|");
			var imgSrc = href[0].slice(1);
			var projectDescDivId = "#" + href[1];
			
			$descriptionBox.html($(projectDescDivId).html());
			slider.loadImg($imgContainer, imgSrc);
		}
	},
	
	loadImg: function($imgContainer,imgSrc) {
		var img = new Image();
		$(img).load(function() {
			$imgContainer.html(this);
			$imgContainer.parent().removeClass("preload");
		})
		.error(function() {
			$imgContainer.html("Błąd!");
		})
		.attr({'src': imgSrc });
	},
	
	hideDescription: function($object) {
		$object.removeClass("active");
		$object.parent().children("div.project-description").stop().animate({left: "-501px"});	
	},
	
	showDescription: function($object) {
		$object.addClass("active");
		$object.parent().children("div.project-description").stop().animate({left: "0"});
	},
	
	projectDescription: function() {
		var $description = $("div.project-window div.project-description");
		$("div.project-window a.project-header").click(function(e) {
			e.preventDefault();
			if($(this).filter(".active").length) {
				slider.hideDescription($(this));
			} else {
				slider.showDescription($(this));
			}
		});
	},
	
	showProjectsFromCategory: function() {
		$("div.slider-wrapper ul.project-select li a").click(function() {
			if(!$(this).filter(".active").length) {
				$("div.slider-wrapper ul.project-select li a").filter(".active").removeClass("active");
				$(this).addClass("active");
			}
			var href = $(this).attr("href");
			var categoryClass = "." + href.slice(1);
			if(categoryClass != ".all") {
				$("div.slider ul li").filter(categoryClass).each(function() {
					$(this).show();
				});	
				$("div.slider ul li").not(categoryClass).each(function() {
					$(this).hide();
				});
			} else {
				$("div.slider ul li").each(function() {
					$(this).show();
				});	
			}
			slider.getMaxIndex();
			slider.index = 0;
			$(".slider-wrapper div.slider ul").stop().animate({"left": "0"});
			slider.showActiveProject();
			
		});
	}
}


var calendar = {
    changeMonth: function() {
        $("a.change-month").live("click", function(e) {
            e.preventDefault();
            var id = $(this).attr("href");
            $.ajax({ url: page.domain + "ajax/ajax.php?subpage=change_month&id=" + id, success: function (data) {
               $("div.calendar-wrapper").html(data);
				} });
        });
    }
}

var interval = setInterval("page.slideshow()", 4000);
var interval2 = setInterval("page.markLi()", 4000);

page.addInfo();

page.buyItem();
page.deleteItem();
page.deleteItemFromCart();
page.emptyCart();

page.changeDisplayOrder();
page.changeDisplayAmount();
page.changeProductPhoto();
page.headerSlide();
page.mainMenu();
//page.productMenu();

page.checkDomain();
page.deleteMail();
page.showHideAnswer();

page.getHashParam();

page.registration();

page.animateBoxes();   
page.showMenu();
page.emailAddress();
slider.getMaxIndex();
slider.slideLeft();
slider.slideRight();
slider.showProject();
slider.projectDescription();
slider.showProjectsFromCategory();
slider.showActiveProject();

calendar.changeMonth();

