try {
	jQuery.noConflict();
	$j = jQuery;
}catch(e) {
	Log("Main.js - jQuery não está disponível");
}

$j(document).ready(function(){
	ExecuteAfterLoaded("InitMain()");
})


var ExecuteAfterLoaded = function(f) {
	var loadedImagesCount = 0;
	var contentImages = $j("div.content").find("img");
	var contentImagesCount = contentImages.length;
	
	var exec = function(){
		eval(f);
	}
	
	if(contentImagesCount>0) {
		contentImages.each(
			function(){
				this.onload =  function(){
					loadedImagesCount++;
					if(loadedImagesCount>=contentImagesCount)
						exec();
						return false;
				}
				
				this.src = this.src;
			}
		);
	}
		
		
	exec();
	
}

var Content_Show = function(){
		$j("div.outer")
			.css("opacity",0)
			.animate({opacity: 1},550);
}

var Validator_Extend = function(){
	// EXTENDING VALIDATOR METHODS ========================================
	
	$j.validator.addMethod("otherThan", function(value, element, param) { 
	  return value != param; 
	});
	
	$j.validator.addMethod("requiredWith", function(value, element, param) {
		var elements = param.split(",");
			elements.push(element);
		
		var state = true;
	
		for(i in elements){
			var element = jQuery(elements[i])[0];
			
			switch( element.nodeName.toLowerCase() ) {
			case 'select':
				var options = jQuery("option:selected", element);
				if(!options.length > 0 && ( element.type == "select-multiple" || (jQuery.browser.msie && !(options[0].attributes['value'].specified) ? options[0].text : options[0].value).length > 0))
					state = false;
			case 'input':
				if ( this.checkable(element) )
					if(!this.getLength(value, element) > 0)
						state = false;
			default:
				if(!value.length > 0)
					state = false;
			}
		}

		return state;
	},"Please fill up all related fields");
	
	// ===============================================================================
}

var bannerRotation;

var InitMain = function() {
	
	Content_Show();
	
	Banners_Click();
	
	Lightbox_Start();
	
	
    $j("div.banner-destaque img")[0].onload = function(){
		bannerRotation = window.setTimeout(Banners_Rotate, 10000);	
	}
	
	$j("div.banner-destaque img")[0].src = $j("div.banner-destaque img").attr("src");
	
	try{
		LeftMenuBorder_Change();
	}catch(e){Log("Erro ao iniciar o Validator\n" + e.message);}
	
	
	try{
		TopMenu_Start();
	}catch(e){Log("Erro ao iniciar a animação do menu Superior \n" + e.message);}
	
	try{
		Rastreamento_Start();
	}catch(e){Log("Erro ao iniciar a animação do rastreamento \n" + e.message);}
	
	
	
	
	$j("a.ver-mapa")[0].onclick =  function(){

		var div  = document.createElement("div");
		$j(div).addClass("gmap");
		
		var close = document.createElement("a");
		$j(close).addClass("close");
		
		$j(close).bind("click", function(){
			$j.unblockUI();		
		});
		
		$j(div).append(close);
		
		var map = document.createElement("div");
		$j(map).addClass("map");
		
		$j(div).append(map);
		
		var divWidth = 574;
		var divHeight = 455;
		var windowWidth = $j(window).width();
		var windowHeight = $j(window).height();
		
		var left = ((windowWidth-divWidth)/2);
		var top = ((windowHeight-divHeight)/2);
		
		$j.blockUI({message: div, css: {top: top+"px", border: 0, left: left+"px", backgroundColor: "transparent", cursor: "default", position: "absolute"}, overlayCSS: {cursor: "default"}});
		
		GMap_Load($j(".map")[0]);
		
		return false;
	}
}

var LeftMenuBorder_Change = function(){}

var topActive;

var TopMenu_Start = function() {
	
	for(i=0;i<$j("div.header ul.menu li a.item").length;i++)
	{
		$j("div.header ul.menu li a.item")[i].onclick = 
			function () {
							
				var div = $j(this).parent().find("div:first");
				window.clearTimeout(bannerRotation);
				
				if(topActive) {
	
					topActive.hide("normal", function(){
						if($j(this).parent()[0].className != div.parent()[0].className){
							div.show("slow", function(){
								topActive = div;
							});	
						
						}else {
							bannerRotation = window.setTimeout(Banners_Rotate, 10000);
							topActive = null;
						}
						
					});
				}else{
					div.show("slow", function(){
						topActive = div;
					});
				}
				
				return false;
			}
	}
	
}

var acessoActive;

var Rastreamento_Start = function(){
	
	for(i=0;i<$j("div.acesso a").length;i++)
	{
		$j("div.acesso a")[i].onclick = 
			function(){
			
				var action = $j.trim($j(this)[0].className);
				
				var form = $j("form." + action);
						
				if(acessoActive) {
					acessoActive.hide("normal", function(){
						acessoActive = null;
	
						if($j(this)[0].className != form[0].className){
							form.show("slow", function(){
								acessoActive = form;
							});	
						}
						
					});
				}else{
					form.show("slow", function(){
						acessoActive = form;
					});
				}

				return false;
		}
	}
	
}

var GMap_Load = function(div){

	if (GBrowserIsCompatible()) {
        var map = new GMap2(div);
        map.setCenter(new GLatLng(-23.519482, -46.91259), 16);
        map.addControl(new GLargeMapControl());
        map.addControl(new GMapTypeControl());
		map.setMapType(G_HYBRID_MAP);
		var address = document.createElement("span");
		$j(address).addClass("gmap-address");
		$j(address).append("Via de Acesso Jo&atilde;o de G&oacute;es, 1400<br />CEP 06612-000 - Barueri / SP<br />Tel: (11) 2168-3200 ");
		
		map.openInfoWindow(map.getCenter(),address);

		map.addOverlay(new GMarker(map.getCenter()));
	}
 
}

var Banners_Rotate = function(){
	
		var location = "interna";
		var bodyClass = $j.trim($j("body")[0].className);
		
		if(bodyClass=="home")
			location = "home";
		else
			return true;
			
		$j("div.banner-destaque img").stop();
		window.clearTimeout(bannerRotation);
		
		
		try{
			var action = $j.trim($j("div.banner-destaque img")[0].src.match(/\-(.*)\-/)[1]);	
		}catch(e){Log("A imagem de banner está com o nome incorreto\n")};
		
		var rotate = function(next){
			if(topActive)
				return false;
			
			$j("div.banner-destaque img").fadeOut(450, function(){
				
				$j(this)[0].src = "IMAGES/banner-" + next + "-"+location+".jpg";
				
				$j(this)[0].onload = function(){
					$j(this).fadeIn(450, 
						function(){
							
							bannerRotation = window.setTimeout(Banners_Rotate, 10000);
							
							$j(this)
							.css("cursor", "pointer")
							.bind("click", function(){
								document.location.href = $j("ul.anima li." + next + " a")[0].href;
							});
	
						}
					);
				}
				
			});
		}
		
		switch(action){
			case "controle":
				rotate("flexibilidade");
				break;
			case "flexibilidade":
				rotate("agilidade");
				break;
			case "agilidade":
				rotate("controle");
				break;
		}
		
}

var Lightbox_Start = function(){
	
	settings = {
			imageLoading:			'IMAGES/jquery/lightbox-ico-loading.gif',
			imageBtnPrev:			'IMAGES/jquery/lightbox-btn-prev.gif',
			imageBtnNext:			'IMAGES/jquery/lightbox-btn-next.gif',
			imageBtnClose:			'IMAGES/jquery/lightbox-btn-close.gif',
			imageBlank:				'IMAGES/jquery/lightbox-blank.gif',
			fixedNavigation:		true
		};
		
	$j('a.lightbox').lightBox(settings);
}

var Banners_Click = function(){
	for(i=0;i<$j("ul.anima li a").length;i++)
	{
		$j("ul.anima li a")[i].onclick = function(){
		
			var location = "interna";
			
			var bodyClass = $j.trim($j("body")[0].className);
			var href = $j(this)[0].href;
			 
				
			if(bodyClass=="home")
				location = "home";
			else
				return true;
				
			$j("div.banner-destaque img").stop();
			window.clearTimeout(bannerRotation);
	
			
				
			var action = $j.trim($j(this).parent()[0].className);
			$j("div.banner-destaque img").animate({left: '1000px'},250);
			$j("div.banner-destaque img").fadeOut(250, function(){
				
				$j(this).css("left", "-1000px");
				
				$j(this)[0].src = "IMAGES/banner-" + action + "-"+location+".jpg";
				
				$j(this)[0].onload = function(){
					$j(this).animate({left: '0px'},550);
					$j(this).fadeIn(550, function(){
						$j(this)
							.css("cursor", "pointer")
							.bind("click", function(){
								document.location.href = href;
							});
							
						bannerRotation = window.setTimeout(Banners_Rotate, 10000);
						
						
					});
				}
				
				
			});	
			
			return false;
		}		
	}

}

var logentries = 0;

var Log = function(text){
		
	if(document.location.href.indexOf("log=true")<=-1) return false;
	
	if($j("div#log").length <=0)
		$j("body").append("<div id='log' style='background-color: #666; width:100%; height: 100px; overflow: auto'><div style='background-color: #FFF; margin: 5px; padding: 5px; height: 100%'></div></div>");
		
	var prev = $j("div#log div").html();
	$j("div#log div").html(prev + "\n<br/>" + (logentries +1) + " - " + text);
	$j("div#log")[0].scrollTop = $j("div#log")[0].scrollHeight;
	
	logentries ++; 
}

var Link_Rewrite = function(){

	$j("a.blank")
		.bind("click", 
			function(){
				window.open(this.href);
				return false;
			}
		);	
}



