var xmlHttp
var fieldName

function validate(){
	var username=document.getElementById('upusername').value;
	var psw=document.getElementById('uppsw').value;
	xmlHttp=GetXmlHttpObject();
	if (xmlHttp==null){
		alert ("Your browser does not support AJAX!");
		return;
	} 
	var url="login.php";
	var str="username="+username+"&psw="+psw;
	xmlHttp.onreadystatechange=validated;
	xmlHttp.open("POST",url,true);
	xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	xmlHttp.setRequestHeader("Content-length", str.length);
	xmlHttp.setRequestHeader("Connection", "close");
	xmlHttp.send(str);
}

function getUserRegion(id){
	xmlHttp=GetXmlHttpObject();
	if (xmlHttp==null){
		alert ("Your browser does not support AJAX!");
		return;
	} 
	var url="getuserdata.php";
	var str="moduser="+id;
	xmlHttp.onreadystatechange=dataReceived;
	xmlHttp.open("POST",url,false);
	xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	xmlHttp.setRequestHeader("Content-length", str.length);
	xmlHttp.setRequestHeader("Connection", "close");
	xmlHttp.send(str);
	dataReceived();
}

function logout(){
	xmlHttp=GetXmlHttpObject();
	if (xmlHttp==null){
		alert ("Your browser does not support AJAX!");
		return;
	} 
	var url="logout.php";
	xmlHttp.onreadystatechange=reloadhome;
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
} 

function chkUserName(str){
	fieldName="usernameError";
	if (str.length==0){ 
		document.getElementById("usernameError").innerHTML="";
		return;
	}
	xmlHttp=GetXmlHttpObject();
	if (xmlHttp==null){
		alert ("Your browser does not support AJAX!");
		return;
	} 
	var url="chkname.php";
	url=url+"?userName="+str; 
	url=url+"&sid="+Math.random();
	xmlHttp.onreadystatechange=stateChanged;
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
} 

function register(modified){
	var fields=document.element;
	var modifiedpsw=false;
	var ret=true;
	if(!modified){
		ret=ret && (document.getElementById("psw").value != "");
		ret=ret && (document.getElementById("chkpsw").value != "");
		ret=ret && isValidPassword(document.getElementById("psw").value, document.getElementById("chkpsw").value);
	}
	if(!ret){
		alert("Compilare correttamente la psw");	
	}
	if(!chkAllFields()){
		alert("Compilare correttamente il modulo");
		return;
	}
	
	xmlHttp=GetXmlHttpObject();
	if (xmlHttp==null){
		alert ("Your browser does not support AJAX!");
		return;
	}
	
	var username=document.getElementById("username").value;
	var psw=document.getElementById("psw").value;
	var chkpsw=document.getElementById("chkpsw").value;
	var name=document.getElementById("name").value;
	var surname=document.getElementById("surname").value;
	var role=document.getElementById("role").value;
	var tel=document.getElementById("telephone").value;
	var mobile=document.getElementById("mobile").value;
	var email=document.getElementById("email").value;
	var azienda=document.getElementById("azienda").value;
	var type=document.getElementById("type").value;
	var regiva;
	for(i=0;i<2;i++){
		if(document.getElementsByName("regiva")[i].checked){
			regiva=document.getElementsByName("regiva")[i].value;
		}
	}
	var pariva=document.getElementById("pariva").value;
	var cf=document.getElementById("cf").value;
	var iban=document.getElementById("iban").value;
	var address=document.getElementById("address").value;
	var number=document.getElementById("number").value;
	var cap=document.getElementById("cap").value;
	var city=document.getElementById("city").value;
	var region=document.getElementById("regioni").options[document.getElementById("regioni").selectedIndex].value;
	//var province=document.getElementById("province").value;
	var province=document.getElementById("province").options[document.getElementById("province").selectedIndex].value;
	var aztel=document.getElementById("aztel").value;
	var azfax=document.getElementById("azfax").value;
	var azemail=document.getElementById("azemail").value;
	var azweb=document.getElementById("azweb").value;
	
	var fields="username="+username+"&psw="+psw+"&chkpsw="+chkpsw+"&name="+name+"&surname="+surname+"&role="+role;
	fields+="&tel="+tel+"&mobile="+mobile+"&email="+email+"&azienda="+azienda+"&type="+type+"&regiva="+regiva+"&pariva="+pariva;
	fields+="&address="+address+"&number="+number+"&cap="+cap+"&city="+city+"&region="+region+"&province="+province;
	fields+="&aztel="+aztel+"&azfax="+azfax+"&azemail="+azemail+"&azweb="+azweb+"&cf="+cf+"&iban="+iban;
	
	
	
	if(modified){
		fields+="&olduserpsw="+document.getElementById("oldpsw").value;
		if(psw!=""){
			fields+="&modpsw=1";
		}
		else{
			fields+="&modpsw=0";
		}
	}
	
	//alert(fields);
	var url="adduser.php";
	xmlHttp.onreadystatechange=userAdded;
	xmlHttp.open("POST",url,false);
	xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	xmlHttp.setRequestHeader("Content-length", fields.length);
	xmlHttp.setRequestHeader("Connection", "close");
	xmlHttp.send(fields);	
	userAdded(modified);
} 

function chkAllFields(){
	var ret=true;
	ret=ret && (document.getElementById("username").value!="");
	ret=ret && (document.getElementById("name").value!="");
	ret=ret && (document.getElementById("surname").value!="");
	ret=ret && (document.getElementById("role").value!="");
	ret=ret && (document.getElementById("telephone").value!="");
	ret=ret && (document.getElementById("email").value!="");
	ret=ret && (document.getElementById("azienda").value!="");
	ret=ret && (document.getElementById("type").value!="");
	ret=ret && (document.getElementById("pariva").value!="");
	ret=ret && (document.getElementById("address").value!="");
	ret=ret && (document.getElementById("number").value!="");
	ret=ret && (document.getElementById("cap").value!="");
	ret=ret && (document.getElementById("city").value!="");
	ret=ret && (document.getElementById("aztel").value!="");
	ret=ret && (document.getElementById("azemail").value!="");
	ret=ret && isEmail(document.getElementById("email").value);
	ret=ret && isEmail(document.getElementById("azemail").value);
	ret=ret && checkNumeric(document.getElementById("telephone").value);
	ret=ret && checkNumeric(document.getElementById("aztel").value);
	ret=ret && checkNumeric(document.getElementById("cap").value);
	return ret;
}

function chkPassword(){
	var strength = document.getElementById("passwordStrength");
	var strongRegex = new RegExp("^(?=.{8,})(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*\\W).*$", "g");
	var mediumRegex = new RegExp("^(?=.{7,})(((?=.*[A-Z])(?=.*[a-z]))|((?=.*[A-Z])(?=.*[0-9]))|((?=.*[a-z])(?=.*[0-9]))).*$", "g");
	var enoughRegex = new RegExp("(?=.{6,}).*", "g");
	var pwd = document.getElementById("psw");
	if (pwd.value.length==0) {
		strength.innerHTML = "";
	} else if (false == enoughRegex.test(pwd.value)) {
		strength.innerHTML = "Password minore di 6 caratteri";
	} else if (strongRegex.test(pwd.value)) {
		strength.innerHTML = '<span style="color:black">Il livello della password &egrave; </spam><span style="color:green">ottimo!</span>';
	} else if (mediumRegex.test(pwd.value)) {
		strength.innerHTML = '<span style="color:black">Il livello della password &egrave; </spam><span style="color:orange">medio</span>';
	} else {
		strength.innerHTML = '<span style="color:black">Il livello della password &egrave; </spam><span style="color:red">debole</span>';
	}
}

function chkConfPassword(){
	if (document.getElementById("psw").value!=document.getElementById("chkpsw").value){ 
		document.getElementById("confPasswordError").innerHTML="Le password non coincidono";
		return;
	}
	document.getElementById("confPasswordError").innerHTML="";
} 

function chkStringField(str,fieldname){
	if (str.length==0){ 
		document.getElementById(fieldname+"Error").innerHTML="Campo obbligatorio";
		return;
	}
	document.getElementById(fieldname+"Error").innerHTML="";
} 

function chkNumericField(str,fieldname){
	if (str.length==0){ 
		document.getElementById(fieldname+"Error").innerHTML="Campo obbligatorio";
		return;
	}
	else if(!checkNumeric(str)){
		document.getElementById(fieldname+"Error").innerHTML="Campo numerico";
		return;
	}
	document.getElementById(fieldname+"Error").innerHTML="";
} 

function chkEmail(str,fieldname) {
	if (str.length==0){ 
		document.getElementById(fieldname+"Error").innerHTML="Campo obbligatorio";
		return;
	}
	if (!isEmail(str)) {
		document.getElementById(fieldname+"Error").innerHTML="Inserire un'email valida";
		return;
	}
	document.getElementById(fieldname+"Error").innerHTML="";
}

function isEmail(str) {
	var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	if (!filter.test(str)) {
		return false;
	}
	return true;
}

function checkNumeric(value){
	var anum=/(^\d+$)|(^\d+$)/
	return (anum.test(value))
}

function isValidPassword(str1,str2){
	if(str1.length<6){
		return false;
	}
	if(str1!=str2){
		return false;
	}
	return true;
}

function stateChanged(){ 
	if (xmlHttp.readyState==4){ 
		document.getElementById(fieldName).innerHTML=xmlHttp.responseText;
	}
}

function reloadhome(){ 
	alert('qui');
	if (xmlHttp.readyState==4){ 
		location.href='index.php';
	}
}

function validated(){ 
	if (xmlHttp.readyState==4){ 
		var ret=xmlHttp.responseText;
		if(ret!=""){
			alert(ret);
		}
		else{
			location.href='index.php';
		}
	}
}

function userAdded(modified){ 
	if (xmlHttp.readyState==4){ 
		var resp=xmlHttp.responseText;
		if(resp!=""){
			alert(resp);
		}
		else{
			if(modified){
				alert("Dati aggiornati con successo");
			}
			else {
				alert("Registrazione avvenuta con successo");
			}
			location.href='index.php';
		}
	}
}

function regionsReceived(){
	if (xmlHttp.readyState==4){
		try {
			var list=document.getElementById("reg_list");
			var returnlist=xmlHttp.responseText;
			list.innerHTML=returnlist;
		}
		catch(error) {
		}
	}
}

function dataReceived(){
	if (xmlHttp.readyState==4){ 
		var returnlist=xmlHttp.responseText;
		data=returnlist.split("|");
		for(i=0;i<document.getElementById("regioni").length;i++){
			if(document.getElementById("regioni").options[i].value==data[0]){
				document.getElementById("regioni").selectedIndex=i;
			}
		}
/*		populateProvinces(data[0],false);
		for(i=0;i<document.getElementById("province").length;i++){
			if(document.getElementById("province").options[i].value==data[1]){
				document.getElementById("province").selectedIndex=i;
			}
		}
*/
	}
}

function provincesReceived(){
	if (xmlHttp.readyState==4){ 
		try {
			var list=document.getElementById("prov_list");
			var returnlist=xmlHttp.responseText;
			list.innerHTML=returnlist;
		}
		catch(error) {
		}
	}
}

function GetXmlHttpObject(){
	if(xmlHttp==null){
		try{
			// Firefox, Opera 8.0+, Safari
			xmlHttp=new XMLHttpRequest();
		}
		catch (e){
			// Internet Explorer
			try{
				xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
			}
			catch (e){
				xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
			}
		}
	}
	return xmlHttp;
}

function populateRegions(asinc){
	xmlHttp=GetXmlHttpObject();
	try {
		var regact = document.getElementById('reg_std_hid').value;
	} catch(err) {
		var regact = '';
	}
	var url;
	if (xmlHttp==null){
		alert ("Your browser does not support AJAX!");
		return;
	}
	if(regact != '')
		url="getregions.php?set="+regact;
	else
		url="getregions.php";
	xmlHttp.onreadystatechange=regionsReceived;
	xmlHttp.open("GET",url,false);
	xmlHttp.send(null);
	regionsReceived();
}

function populateProvinces(region,asinc) {
	xmlHttp=GetXmlHttpObject();
	
	try {
		var provact = document.getElementById('prov_list_hid').value;
	}
	catch(err) {
		var provact = '';
	}

	if(region == '')
		region = document.getElementById('reg_std_hid').value;

	if (xmlHttp==null){
		alert ("Your browser does not support AJAX!");
		return;
	}

	var url="getprovinces.php?region="+region;
	if(provact != '')
		url = url + '&set=' + provact;
	xmlHttp.onreadystatechange=provincesReceived;
	xmlHttp.open("GET",url,false);
	xmlHttp.send(null);
	provincesReceived();
}

function hide(id) {
	document.poppedLayer = document.getElementById(id);
	document.poppedLayer.style.display = "none";
}

function show(id) {
	document.poppedLayer = document.getElementById(id);
	document.poppedLayer.style.display = "inline";
}
function paperfilter(){
	location=
	'lista.php?area='+
	((document.getElementById('area').selectedIndex>0)?document.getElementById('area').options[document.getElementById('area').selectedIndex].text:"")+
	'&cartiere='+
	((document.getElementById('cartiere').selectedIndex>0)?document.getElementById('cartiere').options[document.getElementById('cartiere').selectedIndex].text:"")+
	'&tipologia='+
	((document.getElementById('tipologia').selectedIndex>0)?document.getElementById('tipologia').options[document.getElementById('tipologia').selectedIndex].text:"")+
	'&colore='+
	((document.getElementById('colore').selectedIndex>0)?document.getElementById('colore').options[document.getElementById('colore').selectedIndex].text:"")+
	'&formato='+
	((document.getElementById('formato').selectedIndex>0)?document.getElementById('formato').options[document.getElementById('formato').selectedIndex].text:"");
}
