$().ready( function() {

	$(".lightbox").colorbox({maxWidth:"640px",maxHeight:"480px"});

	//preload_images();

	menu();

	search();

	flashDetection();
	confirmacao();
	
	historyFunction();
	printing();
	backToTop();

	target();
	zebra();
	ieFlickerFix();
	masks();
});

/* Busca *********************************************************************/

function search(){
	$('input[name=search]').focus(function() {
		if( 'Buscar no Site' == $(this).val() ) $(this).val('');
	});
	$('input[name=search]').blur(function () {
         if( '' == $(this).val() ) $(this).val('Buscar no Site');
    });
}

/* Confirmação *********************************************************************/

	function confirmacao() {
		$('a.confirmacao').bind('click', function() {
			var title = $(this).attr('title');
			
			if (!confirm(title)) {
				return false;
			}
			else return true;

			return false;
		});
	}


/* Actions ************************************************************************/

	function historyFunction(){
		$('a.back').bind('click', function() {
			parent.history.back();
			return false;
		});
	}

	function printing() {
		$('.printit').click( function() {
			window.print();
		});
	}

	function backToTop() {
		$('.backtotop').click( function() {
			$('html, body').animate({ scrollTop:0 }, 'slow');
			return false;
		});
	}


/* Target ************************************************************************/

	function target() {
		$("a[rel$='external'], .external").each( function(){
			$(this).attr('target','_blank');
			$(this).attr('title', $(this).attr('title')+' (este link abre em nova janela)');
		});
	}


/* Zebra *************************************************************************/

	function zebra() {
		$('table:not(.nozebra) tr:nth-child(odd)').addClass('par');
	}


/* IEFix *************************************************************************/

	function ieFlickerFix() {
		try {
		  document.execCommand("BackgroundImageCache", false, true);
		} catch(err) {}
	}


/* Masks *************************************************************************/

	function masks() {

		$('.mask-date').mask('99/99/9999',{placeholder:'_'});
		
		$('.mask-phone').mask('(99) 9999-9999',{placeholder:'_'});
		
		$(".mask-cep").mask('99999-999',{placeholder:'_'});

		//$('.mask-cpf').mask('999.999.999-99',{placeholder:"_"});
		//$('.mask-cnpj').mask('99.999.999/9999-99',{placeholder:"_"});
		$('.mask-rg').mask('999.999.9999',{placeholder:"_"});

		$('.mask-inscr').mask('999/9999999',{placeholder:"_"});
	}


	function affectedFields(form,el) {
		var classname = 'affected';
		$(form+' *').each( function() {
			if (el!='') {
				if ($(this).attr('id')==el) {
					$(this).focus().addClass(classname);
				} else {
					$(this).removeClass(classname);
				}
			} else {
				$(this).removeClass(classname);
				$(form).resetForm();
			}
		});
		return false;
	}


	function get(el) {
	  return document.getElementById(el);
	}


	function limiter(el, max) {
		$(el).bind('keypress', function() {
			var valor = $(this).attr('value');
			valor = valor.substr(0,max);
			if (valor > max) {
				$(this).attr('value',valor);
			}
		});
	}


/* Checkbutton / Radiobutton *****************************************************/

	var checkboxHeight = "20";
	var radioHeight = "20";
	var selectWidth = "190";

	/* No need to change anything after this */

	document.write('<style type="text/css">input.radio { display: none; } select.radio { position: relative; width: ' + selectWidth + 'px; opacity: 0; filter: alpha(opacity=0); z-index: 5; }</style>');

	var Custom = {
		init: function() {
			var inputs = document.getElementsByTagName("input"), span = Array(), textnode, option, active;
			for(a = 0; a < inputs.length; a++) {
				if((inputs[a].type == "checkbox" || inputs[a].type == "radio") && inputs[a].className == "radio") {
					span[a] = document.createElement("span");
					span[a].className = inputs[a].type;

					if(inputs[a].checked == true) {
						if(inputs[a].type == "checkbox") {
							position = "0 -" + (checkboxHeight*2) + "px";
							span[a].style.backgroundPosition = position;
						} else {
							position = "0 -" + (radioHeight*2) + "px";
							span[a].style.backgroundPosition = position;
						}
					}
					inputs[a].parentNode.insertBefore(span[a], inputs[a]);
					inputs[a].onchange = Custom.clear;
					span[a].onmousedown = Custom.pushed;
					span[a].onmouseup = Custom.check;
					document.onmouseup = Custom.clear;
				}
			}
			inputs = document.getElementsByTagName("select");
			for(a = 0; a < inputs.length; a++) {
				if(inputs[a].className == "radio") {
					option = inputs[a].getElementsByTagName("option");
					active = option[0].childNodes[0].nodeValue;
					textnode = document.createTextNode(active);
					for(b = 0; b < option.length; b++) {
						if(option[b].selected == true) {
							textnode = document.createTextNode(option[b].childNodes[0].nodeValue);
						}
					}
					span[a] = document.createElement("span");
					span[a].className = "select";
					span[a].id = "select" + inputs[a].name;
					span[a].appendChild(textnode);
					inputs[a].parentNode.insertBefore(span[a], inputs[a]);
					inputs[a].onchange = Custom.choose;
				}
			}
		},
		pushed: function() {
			element = this.nextSibling;
			if(element.checked == true && element.type == "checkbox") {
				this.style.backgroundPosition = "0 -" + checkboxHeight*3 + "px";
			} else if(element.checked == true && element.type == "radio") {
				this.style.backgroundPosition = "0 -" + radioHeight*3 + "px";
			} else if(element.checked != true && element.type == "checkbox") {
				this.style.backgroundPosition = "0 -" + checkboxHeight + "px";
			} else {
				this.style.backgroundPosition = "0 -" + radioHeight + "px";
			}
		},
		check: function() {
			element = this.nextSibling;
			if(element.checked == true && element.type == "checkbox") {
				this.style.backgroundPosition = "0 0";
				element.checked = false;
			} else {
				if(element.type == "checkbox") {
					this.style.backgroundPosition = "0 -" + checkboxHeight*2 + "px";
				} else {
					this.style.backgroundPosition = "0 -" + radioHeight*2 + "px";
					group = this.nextSibling.name;
					inputs = document.getElementsByTagName("input");
					for(a = 0; a < inputs.length; a++) {
						if(inputs[a].name == group && inputs[a] != this.nextSibling) {
							inputs[a].previousSibling.style.backgroundPosition = "0 0";
						}
					}
				}
				element.checked = true;
			}
		},
		clear: function() {
			inputs = document.getElementsByTagName("input");
			for(var b = 0; b < inputs.length; b++) {
				if(inputs[b].type == "checkbox" && inputs[b].checked == true && inputs[b].className == "checkbox") {
					inputs[b].previousSibling.style.backgroundPosition = "0 -" + checkboxHeight*2 + "px";
				} else if(inputs[b].type == "checkbox" && inputs[b].className == "checkbox") {
					inputs[b].previousSibling.style.backgroundPosition = "0 0";
				} else if(inputs[b].type == "radio" && inputs[b].checked == true && inputs[b].className == "radio") {
					inputs[b].previousSibling.style.backgroundPosition = "0 -" + radioHeight*2 + "px";
				} else if(inputs[b].type == "radio" && inputs[b].className == "radio") {
					inputs[b].previousSibling.style.backgroundPosition = "0 0";
				}
			}
		},
		choose: function() {
			option = this.getElementsByTagName("option");
			for(d = 0; d < option.length; d++) {
				if(option[d].selected == true) {
					document.getElementById("select" + this.name).childNodes[0].nodeValue = option[d].childNodes[0].nodeValue;
				}
			}
		}
	}
	window.onload = Custom.init;


/* Preload Images ****************************************************************/

	/*
	var preloaded = new Array();
	function preload_images() {
		for (var i = 0; i < arguments.length; i++){
			preloaded[i] = document.createElement('img');
			preloaded[i].setAttribute('src',arguments[i]);
		};
	};

	preload_images(
		'themes/default/images/menu_links.gif',
	);
	*/


/* Menu **************************************************************************/

	function menu() {
		
		$('#menu>ul>li').hover(
			
			function start() {

				// aplica o hover, aplicando a classe, e procura um submenu
				$(this).addClass('affected').find('ul.sub').each( function() {
					
					/*
					$(this).animate({
						opacity: 0
					}, 0 );
					*/
					
					// iniciando o hover...
					$(this).hover( 
						
						function() {

							/*
							$(this).animate({
								opacity: 1
							}, 250 );
							*/

							// primeiro exibe o submenu através da classe, e então busca os itens da lista
							$(this).addClass('affected').find('>li').each( function() {

								// se os sub itens estiverem em hover, então...
								$(this).hover(

									function() {

										/////////////////////////////////////////////////////////////////////////////////////////////////
										// aplica o hover, aplicando a classe, e procura um submenu
										$(this).addClass('affected').find('ul.sub2').each( function() {
											
											// iniciando o hover...
											$(this).hover( 
												
												function() {

													// primeiro exibe o submenu através da classe, e então busca as itens da lista
													$(this).addClass('affected').find('>li').each( function() {

														// se os sub itens estiverem em hover, então...
														$(this).hover(

															function() {

																// ... vê se ele item um submenu derivado e exibe
																$(this).find('ul').each( function() {
																	$(this).css('display','block');
																});								
																
															},

															function() {

																$(this).find('ul').each( function() {
																	$(this).css('display','none');
																});

															}

														);
													
													});
													
												}, 
												
												function() {
													
												}
											
											);
										
										});
										///////////////////////////////////////////////////////////////////////////////////////////////

										// ... vê se ele item um submenu derivado e exibe
										$(this).find('ul').each( function() {
											$(this).css('display','block');
										});
										
									},

									function() {

										$(this).find('ul').each( function() {
											$(this).css('display','none');
										});

									}

								);
							
							});
							
						}, 
						
						function() {
							
							/*
							$(this).animate({
								opacity: 0
							}, 250 );
							*/
						}
					
					);
				
				});
			
			},
			
			// faz alguma coisa quando o menu sair de hover
			function end() {
				$(this).removeClass('affected');
			}
		
		);
		return false;
	}
