/***************************************************************
Funções Gerais
***************************************************************/
function validaForm(nome_form, method, exec_func, func){
	var obj_form = document.forms[nome_form];
	var msg_check = '';
	var check = 0;
	var aux = 0;
	var msg = "";
	var post = "";
	var focus = "";
	for(i=0; i< obj_form.length; i++){
		if(obj_form.elements[i].disabled == false && obj_form.elements[i].type != undefined){
			if(obj_form.elements[i].type == "checkbox" && obj_form.elements[i].title != ""){
				if(obj_form.elements[i].checked == false && check != 2){
					msg+= obj_form.elements[i].title+"\n";
				}else if(obj_form.elements[i].checked == true){
					post += obj_form.elements[i].name +'|;|'+ obj_form.elements[i].value+'|;|'; 
				}
			}else if(obj_form.elements[i].type == "radio" && obj_form.elements[i].title != ""){
				var tempName  = obj_form.elements[i].name;
				var flagCheck = false;
				while(1){
					if(tempName == obj_form.elements[i].name){
						if(obj_form.elements[i].checked && !flagCheck)
							flagCheck = true;
						tempName = obj_form.elements[i].name;
						i++;
					}else{
						break;
					}
				}

				if(!flagCheck)
						msg+= obj_form.elements[i-1].title+"\n";
			}else{
				if(obj_form.elements[i].title != "" && (obj_form.elements[i].value == obj_form.elements[i].title || obj_form.elements[i].value == "")){
					if(obj_form.elements[i].type == "textarea"){
						if(obj_form.elements[i].title != "")
							msg+= obj_form.elements[i].title+"\n";
						else
							msg+= obj_form.elements[i].value+"\n";
					}else{
						if(obj_form.elements[i].title != "")
							msg+= obj_form.elements[i].title+"\n";
						else
							msg+= obj_form.elements[i].id+"\n";
					}
					if(focus == ""){
						focus = obj_form.elements[i];
					}
				}else if(obj_form.elements[i].title == "E-mail" || obj_form.elements[i].name == "email"){
					var vet_email = document.forms[nome_form].elements[i].value.split(';');
					var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i
					for(k=0;k<vet_email.length;k++){
						if(!filter.test(vet_email[k])){
							msg = "E-mail inválido, " + vet_email[k] +"\n"+msg;
						}
					}
					if(msg == ""){
						post += obj_form.elements[i].name +'|;|'+ obj_form.elements[i].value+'|;|'; 
					}else{
						focus = obj_form.elements[i];
					}		
				}else{
					post += obj_form.elements[i].name +'|;|'+ obj_form.elements[i].value+'|;|'; 
				}		
			}
		}
	}
	if(msg == "" && (method == "" || method == "submit")){
		obj_form.submit();
	}else if(msg == "" && method == "ajax"){
		eval(exec_func(post,func));
		return true;
	}else if(msg == "" && method == "return"){
		return post;
	}else if(msg != ""){
		alert("Preencha o(s) campo(s): \n"+msg);
		focus.focus();
		return false;
	}
}

function sendForm(form, fields){
	var i,size,list = fields.split(",");
	
	size =  list.length;

	for(i=0; i<size; i++){
		document.forms[form][list[i]].value = CKEDITOR.instances[list[i]].getData();
	}

	return validaForm(form, 'submit', '', '');
}

function FileAdd(){
	var contCodigo = 0;
	this.repeteCodigo	= repeteCodigo;
	this.getCount		= getCount;

	function repeteCodigo(templateId, id, url, maxRepeat){
		if(maxRepeat <= contCodigo && maxRepeat > 0){
			alert("Limite de adições excedida!");
			return false;
		}else{
			contCodigo++;
		}

		var novoCodigo = document.getElementById(templateId).innerHTML.replace(/#cont#/g, contCodigo);
		var x;

		var new_element = document.createElement('div');
		new_element.innerHTML = novoCodigo;
		
		if(document.getElementById(id).lastChild == null){
			document.getElementById(id).innerHTML = new_element.innerHTML;
		}else{
			document.getElementById(id).insertBefore(new_element, document.getElementById(id).lastChild);
		}
		
		window.location = url + "#" + templateId + contCodigo;
	}

	function getCount(){
		return contCodigo;
	}
}

function checkSlug(str){
	var filter=/^[a-z0-9-]+$/;

	if(filter.test(str))
		return true;
	else
		return false;
	
}


function findPosition( oElement ) {
	if( typeof( oElement.offsetParent ) != 'undefined' ) {
		for( var posX = 0, posY = 0; oElement; oElement = oElement.offsetParent ) {
			posX += oElement.offsetLeft;
			posY += oElement.offsetTop;
		}
		return [ posX, posY ];
	}else{
		return [ oElement.x, oElement.y ];
	}
}

function listOBJ(obj){
	var x,temp = "";

	for(x in obj)
		temp += x + " ";

	alert(temp);
}


var dadosHash;
	
function initHash(){
	var obj	  = document.location.hash.split('#');
	var x, temp;
	dadosHash = new Object();

	if(obj.length > 1){
		obj = obj[1].toString().split('&');

		for(x in obj){				
			temp = obj[x].toString().split('=');
			dadosHash[temp[0]] = temp[1];
		}			
	}
}

function addHash(name, value){
	var x, temp = "";
	initHash();
	
	if(name != ""){
		dadosHash[name] = value;

		for(x in dadosHash){
			if(temp != "")
				temp += '&';
			temp += x + "=" + dadosHash[x];
		}
	}

	document.location.hash = temp;
}

function getHash(name){
	try{
		if(dadosHash[name] != undefined)
			return dadosHash[name];
	}catch(e){}	

	return "";
}

