var root = '/';
var debug = false;
var fulldebug = false;
var sent = false;
var data; // inicializa los campos que van a ser parceados
var redireccion; // inicializa redireccion por si se pide del post
var loadingMsg = "Caricando... Inviando... Aspetti alcuni secondi...";
var sendingMsg = "Inviando...";
var successMsg = 'Messaggio Inviato!';
var badMsg = "Verifichi i campi marcati in rossi";

/////////////////////////////////////////////

function validar(campos,mode,url,up,id){
	if(sent) return false;
	popup(loadingMsg,'hold','no');
	xmlHttp=GetXmlHttpObject();
	if (xmlHttp==null){
		alert ('Tu explorador no soporta AJAX.');
		return;
	} 
	
	if(url) {
	redireccion = url;
	}else {
	redireccion = 0;
	}
		
	data = document.getElementById(campos).value;
	data = data.split(',');
	var params = parseParams(data);
	
	xmlHttp.onreadystatechange = doValidar;
	if(mode=='user') {
	xmlHttp.open("POST",root+'user.php?mode='+mode+'&id='+id,true);
	}else {
	xmlHttp.open("POST",root+'validate.php?mode='+mode,true);
	}
	xmlHttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	xmlHttp.setRequestHeader("Content-length",params.length);
	xmlHttp.setRequestHeader("Connection", "close");
	xmlHttp.send(params);
}

function doValidar(){ 

var errores = 0;

	if (xmlHttp.readyState==4){
		
		//$('html, body').animate({scrollTop:0}, 1500);
	
		var r = xmlHttp.responseText;
		
		// debug
		if(debug == true) alert(r);
		if(debug == true && redireccion!=0) alert('redireccionar a la url: '+redireccion+' si es que todos los campos estan validados.');
		
		var x = 0;
		var f = new Array();
		
		for(i in data){
			f[x] = r.substr(x,1);
			
			// fulldebug
			if(fulldebug == true) alert('campo numero:'+f[x]);
			
			validate(f[x],data[i]);
			x++;
		}
		
		for(i in f){
			if(f[i] == '0') errores++;
		}
		
		// fulldebug
		if(fulldebug == true) alert('errores='+errores);
				
		if(errores > 0){
			popup(badMsg,'fade','no');
		}else{
			sent = true;
			if(data.length==11){
			popup(sendingMsg,'hold','no');
			$('#ocultar-enviar').html("<p>Datos Guardados!</p>");
			popup('Datos Guardados','fade','no');
			}else {
			popup(sendingMsg,'hold','no');
			$('#ocultar-enviar').html("<p>Messaggio Inviato!</p>");
			popup(successMsg,'fade','no');
			}
			if(redireccion!=0) redir(redireccion,5000);
		}
	
	}

}

// ----------------- AJAX ------------------- //

var xmlHttp;
function GetXmlHttpObject(){var xmlHttp=null;try{xmlHttp=new XMLHttpRequest();}catch(e){try{xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");}catch(e){xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");}}return xmlHttp;}

///////////////////// POPUP ////////////////////////

function popup(msg,unblock,red){
if(unblock=='click') msg = msg + ' (Click para continuar) ';
$.blockUI({ 
message: msg.replace(/\n/gi,'<br/>'),
css: {
border:'none', padding:'15px', size:'12.0pt',
backgroundColor:'#900', color:'#fff',
opacity:'.8','-webkit-border-radius': '10px','-moz-border-radius': '10px'
}
});
if(unblock=='hold'){
// algo adicional para el holding
}
if(unblock=='fade'){
window.setTimeout($.unblockUI, 2000);
if(red=='si' && unblock!='hold') redir('',500);
}
if(unblock=='click'){
$(document).bind('click', function() {
window.setTimeout($.unblockUI, 1);
redir('',500);
});
if(red=='si' && unblock!='hold' && unblock!='click') redir('',500);
}
}

////////////////// COLOREA CAMPOS ///////////////////////////

function validate(status,id){
if(status == 0){
$("#"+id).css('background','#ffe3e3');
$("#"+id).css('color','red');
$("#"+id).css('border','2px solid red');
}else{
$("#"+id).css('background','#e3ffe8');
$("#"+id).css('color','green');
$("#"+id).css('border','2px solid green');
}
}

//////////////////// PARSER /////////////////////////

function parseParams(params){
var contenedor = '';
for(var contar in params){
var type = gettype(params[contar]);
if(type == 'checkbox' || type == 'radio'){
contenedor += params[contar]+'='+getcheck(params[contar])+'&';
}else if(type == 'select-multiple'){
contenedor += params[contar]+'='+getMultiple(params[contar])+'&';
}else{
contenedor += params[contar]+'='+escape(getval(params[contar]))+'&';
}
}
return contenedor.substr(0,contenedor.length-1);
}

//////////////////// Get And Sets /////////////////////////

function setval(id,val){
document.getElementById(id).value = val;
}
function getval(id){
return document.getElementById(id).value;
}
function getcheck(id){
return document.getElementById(id).checked;
}
function gettype(id){
return document.getElementById(id).type;
}
function getMultiple(ob){
ob = document.getElementById(ob);
selected = new Array();
for(var i = 0; i < ob.options.length; i++) if(ob.options[i].selected) selected.push(ob.options[i].value);
return selected;
}

///////////////// REDIR ////////////////////////////

function redir(url,timeout){
	setTimeout('doRedir(\''+url+'\')',timeout);
}

// do redir
function doRedir(url){
	window.location = url;
}

// JQUERY -----------------------------------------------------------------------------
$(function() {

/////////////////////////////////////////////

//$('#tab2').fadeOut("fast");

// hidden
/*$('.container_hidden > h3').click(function(){
$('.hidden').slideUp();
if($(this).next().is(':hidden')){
$(this).next().slideDown();	
}
});

$('.right ul li a').click(function(){
$('.right ul li a').removeClass('active');
$(this).addClass('active');
var tab = $(this).attr('id');
tab = tab.split('_');
$('.hidden').slideUp();
$('.hidden#'+tab[1]).slideDown();
});*/

$("#username").focus(function(){
valor = $(this).attr('value');
if(valor=='Utente'){
//$(this).css('background','#e3ffe8');
$(this).attr('value','');
}
});

$("#username").blur(function(){
valor = $(this).attr('value');
if(valor==''){
//$(this).css('background','transparent');
$(this).attr('value','Utente');
}
});

$("#password").focus(function(){
valor = $(this).attr('value');
if(valor=='Password'){
//$(this).css('background','#e3ffe8');
$(this).attr('value','');
}
});

$("#password").blur(function(){
valor = $(this).attr('value');
if(valor==''){
//$(this).css('background','transparent');
$(this).attr('value','Password');
}
});

// SUBMENU HIDE AND SLIDEDOWN
$("#subnav").hide();
$("#nav .servizi").hover(
function(){
if($('#subnav').is(':hidden')){
$("#subnav").slideDown(300);
}
},
function(){
});

// SUBMENU SLIDEUP
$("#subnav").hover(
function(){
},
function(){
$(this).slideUp(300);
});

// SLIDE
$("#pv").addClass("pv-on");
$(".botones > li").hover(
function(){
var id = $(this).attr("id");
$("#fo_pv").hide();
$("#fo_ad").hide();
$("#fo_is").hide();
$("#fo_"+id).show();
$("#pv").removeClass("pv-on");
$("#ad").removeClass("ad-on");
$("#is").removeClass("is-on");
$("#"+id).addClass(id+"-on");
},
function(){
var id = $(this).attr("id");
$("#fo_pv").hide();
$("#fo_ad").hide();
$("#fo_is").hide();
$("#fo_"+id).show();
});

});

////////////////// COLOREA CAMPOS PASSWORD ///////////////////////////

function validate_password(){

var password = document.getElementById('password').value;
var verifica_password = document.getElementById('verifica_password').value;

if(password != verifica_password){
$("#password").css('background','#ffe3e3');
$("#password").css('color','red');
$("#password").css('border','2px solid red');
$("#verifica_password").css('background','#ffe3e3');
$("#verifica_password").css('color','red');
$("#verifica_password").css('border','2px solid red');
}else{
$("#password").css('background','#e3ffe8');
$("#password").css('color','green');
$("#password").css('border','2px solid green');
$("#verifica_password").css('background','#e3ffe8');
$("#verifica_password").css('color','green');
$("#verifica_password").css('border','2px solid green');
}

}
