$().ready( function() {
	menu();
	confirmacao();
	printing();
	target();
	zebra();
	ieFlickerFix();
	masks();
});

/* ///////////////// publicity //////////////// */

function closeBanner(){
	
	//$('body').css('overflow', 'hidden');
	//$('body').css('overflow', 'auto');
	$('#flash-publicity').hide();

}

/* //////////////////////////////////////////// */

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

		return false;
	});
}


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


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


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


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


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);
		}
	});
}

////////////////// MENU ///////////////////////////////////////////////////////////////////////////

/* Preload Menu */

/*
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',
	'themes/default/images/menu_hover_cidade.gif',
	'themes/default/images/menu_hover_governo.gif',
	'themes/default/images/menu_hover_secretarias.gif',
	'themes/default/images/menu_hover_cultura.gif',
	'themes/default/images/menu_hover_polo.gif',
	'themes/default/images/menu_hover_publicacoes.gif',
	'themes/default/images/menu_seta.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;
}

///////////////////////////////////////////////////////////////////////////

/* Radio and Check buttons */

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;