var Artcode = Artcode || {};
Artcode.home = function() {

		/* = Private: Global Vars & Functions
		-------------------------------------------------------------- */
		var workHintConfig = {
		    interval: 100 //number of milliseconds hoverIntent waits between reading/comparing mouse coordinates (default=100)
	  };
		var menuHintConfig = {
		    interval: 8000 //number of milliseconds hoverIntent waits between reading/comparing mouse coordinates (default=100)
	  };

  	function isImageReady(img) {
			return (img.complete || img.readyState===4 || (img.naturalHeight != 0 && img.naturalWidth != 0));
		}	  


		/* = Private: Studio Vars & Functions
		-------------------------------------------------------------- */
		var isCollapsed = new Array();
		
		function openStudioSection(theId, afterOpen) {
			var sectionToOpen = $("#"+theId).find(".collapsible-section");
			$(sectionToOpen).slideDown(1000, afterOpen);
			isCollapsed[theId] = false;
			$("#"+theId).find(".collapse-btn").rotate({
				animateTo:135, duration: 1000});
		}

		function closeStudioSection(theId, afterClose) {
			var sectionToClose = $("#"+theId).find(".collapsible-section");
			$(sectionToClose).slideUp(1000, afterClose);
			isCollapsed[theId] = true;
			$("#"+theId).find(".collapse-btn").rotate({
				animateTo:270, duration: 1000});
		}


		/* = Public: Artcode Pages Animation Set
		-------------------------------------------------------------- */
 		return {
			animateMenu: function() {

				$(document).ready(function() {
					
					//Init
					$("#main-navigation").append('<ul id="studio-letters"><li class="letter-item studio-letter-item letter-S"></li><li class="letter-item studio-letter-item letter-t"></li><li class="letter-item studio-letter-item letter-u"></li><li class="letter-item studio-letter-item letter-d"></li><li class="letter-item studio-letter-item letter-i"></li><li class="letter-item studio-letter-item letter-o"></li></ul>');
					var studioLetters = $(".studio-letter-item");
					
					$("#main-navigation").append('<ul id="work-letters"><li class="letter-item work-letter-item letter-W"></li><li class="letter-item work-letter-item letter-o"></li><li class="letter-item work-letter-item letter-r"></li><li class="letter-item work-letter-item letter-k"></li></ul>');
					var workLetters = $(".work-letter-item");
					
					$("#main-navigation").append('<ul id="services-letters"><li class="letter-item services-letter-item letter-S"></li><li class="letter-item services-letter-item letter-e1"></li><li class="letter-item services-letter-item letter-r"></li><li class="letter-item services-letter-item letter-v"></li><li class="letter-item services-letter-item letter-i"></li><li class="letter-item services-letter-item letter-c"></li><li class="letter-item services-letter-item letter-e2"></li><li class="letter-item services-letter-item letter-s"></li></ul>');
					var servicesLetters = $(".services-letter-item");
					
					$("#main-navigation").append('<ul id="blog-letters"><li class="letter-item blog-letter-item letter-B"></li><li class="letter-item blog-letter-item letter-l"></li><li class="letter-item blog-letter-item letter-o"></li><li class="letter-item blog-letter-item letter-g"></li></ul>');
					var blogLetters = $(".blog-letter-item");
					
					if( !$(".studio-menu-item").hasClass("current-item") ) {
						$(".studio-menu-item").hoverIntent(menuHintConfig).hoverIntent(
							function () {
								$(this).animate({opacity: 0}, 700);
								getLettersDown(studioLetters);
							},
							function() {
								getLettersUp(studioLetters);
								$(this).stop(true, false).animate({opacity: 1}, 400);
							}
						);
					}

					if( !$(".work-menu-item").hasClass("current-item") ) {					
						$(".work-menu-item").hoverIntent(menuHintConfig).hoverIntent(
							function () {
								$(this).animate({opacity: 0}, 700);
								getLettersDown(workLetters);
							},
							function() {
								getLettersUp(workLetters);
								$(this).stop(true, false).animate({opacity: 1}, 400);
							}
						);
					}
					
					if( !$(".services-menu-item").hasClass("current-item") ) {										
						$(".services-menu-item").hoverIntent(menuHintConfig).hoverIntent(
							function () {
								$(this).animate({opacity: 0}, 700);
								getLettersDown(servicesLetters);
							},
							function() {
								getLettersUp(servicesLetters);
								$(this).stop(true, false).animate({opacity: 1}, 400);
							}
						);
					}
					
					if( !$(".blog-menu-item").hasClass("current-item") ) {					
						$(".blog-menu-item").hoverIntent(menuHintConfig).hoverIntent(
							function () {
								$(this).animate({opacity: 0}, 700);
								getLettersDown(blogLetters);
							},
							function() {
								getLettersUp(blogLetters);
								$(this).stop(true, false).animate({opacity: 1}, 400);
							}
						);
					}
										
				});//ready!

				var duration = 140;
				var myDelay = 10000;

				function getLettersDown(letters) {
					for (var i=0; i<letters.length; i++)
						$(letters[i]).animate({top: "72px", opacity: 1}, duration+110*Math.pow(i,0.6));
				}
				
				function getLettersUp(letters) {
					for (var i=0; i<letters.length; i++)
						$(letters[i]).animate({top: "50px", opacity: 0}, duration+110*Math.pow(i,0.6));
				}
			
			}//animate menu
			,


			animateWorkLoop: function() {
			
				$(document).ready(function() {
			  	
			  	$(".bw-logo").each(function() {
			  		
			  		//Ucitavanje work stranice
			  		$(this).load(function() {
			  			$(this).fadeIn(2000, function() {
			  				$(this).parents("li").find("h2").slideDown(750);
			  			});
			  		});//load
			  		if (isImageReady(this))
			  			$(this).trigger('load');
			  		
			  		var colorLogo = $(this).siblings(".color-logo");
			  		$(colorLogo).load(function() {
              //Hover na work logo
				  		$(this).parents("li").hover( 
								function() {
									var theLogo = $(this).find(".color-logo");
									$(theLogo).stop(true,false).animate({opacity: 1}, 200);
								},
								function() {
									var theLogo = $(this).find(".color-logo");
									$(theLogo).animate({opacity: 0}, 800);
							});//hover
						});//load
			  		if (isImageReady(colorLogo))
			  			$(colorLogo).trigger('load');
					
					});//each
				
				});//ready!
			
			}//animateWorkLoop
			,
		
			
      
      
      animateLogos: function(logosCount) {
        var isCollapsed = new Array();
        
        $(document).ready(function() {

          //Init collapse control data
          for (i=0; i<logosCount; i++)
            isCollapsed[i] = true;

          //Init collapsible containers (all closed by default)
          $(".logo-container img").each(function(i) {
            $(this).parents("li").fadeIn(2000);
            initLogoTitle(i, $(this).parents("li").find("h2"));
          });//each

          $("#open-all-btn").click(function() {
            openAllLogos();
          });

          $("#collapse-all-btn").click(function() {
            collapseAllLogos();
          });

        });//ready!


        function openAllLogos() {
          var allLogoElems = $("ul.logo-list").find("li");
          for (i=0; i<isCollapsed.length; i++) {
            openLogo(i);
          }//for
        }

        function collapseAllLogos() {
          var allLogoElems = $("ul.logo-list").find("li");
          for (i=0; i<isCollapsed.length; i++) {
            if (!isCollapsed[i])
              closeLogo(i);
          }//for
        }

        function openLogo(selectedIndex) {
          var allLogoElems = $("ul.logo-list").find("li");
          var logoToOpen = allLogoElems[selectedIndex];

          var collapsible = $(logoToOpen).find(".collapsible-container");
          $(collapsible).slideDown(750);      
          isCollapsed[selectedIndex] = false;
          $(collapsible).find(".logo-container img").fadeIn(1000);
          $(logoToOpen).find(".collapse-btn").rotate({
            animateTo:135, duration: 1000});        
        }
        
        function closeLogo(selectedIndex) {
          var allLogoElems = $("ul.logo-list").find("li");
          var logoToClose = allLogoElems[selectedIndex];

          $(logoToClose).find(".collapsible-container").slideUp(750);
          isCollapsed[selectedIndex] = true;
          $(logoToClose).find(".logo-container img").fadeOut(350);
          $(logoToClose).find(".collapse-btn").rotate({
            animateTo:270, duration: 1000});
        }

        function initLogoTitle(selectedIndex, titleElem) {
          $(titleElem).slideDown(750, function() {
            $(this).click(makeAfterEffect(selectedIndex));
            $(this).siblings(".collapse-btn-box").click(makeAfterEffect(selectedIndex))
          });
        }

        //Effect Callback: Klik na logo title/collapse-btn :
        //Ako je pogodjeni logo zatvoren, otvara se, dok se svi eventualno otvoreni zatvaraju;
        //Ako je pogodjeni logo otvoren, zatvara se.
        function makeAfterEffect(selectedIndex) {  
          return function callback2() { 
            if (isCollapsed[selectedIndex]) {
              
              //Prvo pokrenuti zatvranje otvorenog/otvorenih logoa...
              collapseAllLogos();
              
              //...a zatim otvoriti odabrani logo.
              openLogo(selectedIndex);
            
            }//if
            else {
            
              closeLogo(selectedIndex);
            
            }
          };
        }//makeAfterEffect()
      
      }//animateLogos
      ,
      
      
      
      
      animateIdentity: function() {
				
				$(document).ready(function() {
			  	$(".identities-gallery li img").each(function() {
			  		$(this).load(function() {
			  			$(this).parents('li').css("background", "none");
			  			$(this).fadeIn(2000, function() {
			  				$(this).siblings('h2').slideDown(750);
			  			});
			  		});
			  		if (isImageReady(this))
			  			$(this).trigger('load');
			  	});
			  });//ready!
			
			}//animateIdentity
			,			
			
			
			
      
      animateStudio: function(toContact) {
				$(document).ready(function() {
			  	//Init collapse control data
					isCollapsed['partners'] = true;
					isCollapsed['contact'] = true;
					isCollapsed['team'] = true;
			  	
			  	//Set section click callbacks
			  	$(".collapse-btn-box").click(function() {
			  		var theSection = $(this).parents(".studio-section").find(".collapsible-section");
			  		var theId = $(theSection).parents(".studio-section").attr("id");
			  		if (isCollapsed[theId])
			  			openStudioSection(theId);
			  		else
			  			closeStudioSection(theId);
			  	});
			  	$(".studio-section h2").click(function() {
			  		var theId = $(this).parent(".studio-section").attr("id");
			  		if (isCollapsed[theId])
			  			openStudioSection(theId);
			  		else
			  			closeStudioSection(theId);
			  	});
			  	if (toContact)
			  		openStudioSection("contact");

					//Set footer contact link for studio page
					$("#foot-contact a.studio-lnk").attr("href", "javascript: void(0)");
					$("#foot-contact a.studio-lnk").click(function() {
						openStudioSection("contact");
					});
				});//ready!
			
			}//animateStudio
			,
			


	 		
	 		animateServices: function(isSelfRefered) {
		 		$(document).ready(function() {
			  	
			  	$(".bw-logo").each(function() {
			  		
			  		$(this).load(function() {
			  			if (isSelfRefered) {
				  			$(this).fadeIn(0, function() {
				  				$(this).parents("li").find("h2").slideDown(0);
				  			});
				  			$(".service-meta").fadeIn(800);
				  		}
				  		else {
				  			$(this).fadeIn(1200, function() {
				  				$(this).parents("li").find("h2").slideDown(600);
				  			});
							}
			  		});//.bw-logo load
			  		if (isImageReady(this))
				  		$(this).trigger('load');
		
			  		var colorLogo = $(this).siblings(".color-logo");
			  		$(colorLogo).load(function() {
				  		$(this).parents("li").hover(
								function() {
									if (!$(this).hasClass("active-item"))
										$(this).find(".color-logo").stop(true,false).animate({opacity: 1}, 200);
								},
								function() {
									if (!$(this).hasClass("active-item"))
										$(this).find(".color-logo").animate({opacity: 0}, 800);
							});//hover
						});//.color-logo load
			  		if (isImageReady(colorLogo))
			  			$(colorLogo).trigger('load');
						
					});//each .bw-logo
				
				});//ready!
			
			}//animateServices

		};//return
}
