////////////////////////// 
//Inizializzazioni globali
//////////////////////////

var authenticated = false;

/////////////////////////////////////////////////////////////// 
//Se l'utente è autenticato inizializza i campi con i suoi dati
///////////////////////////////////////////////////////////////
function Init(){


	document.getElementById('TD-Countries').innerHTML = GetCountriesComboHTML();
	document.getElementById('TD-Provincies').innerHTML = GetProvinciesComboHTML();

	if(SessionData["ICB2C_Authenticated"]!=null){
		if(SessionData["ICB2C_Authenticated"]=="true"){	
			authenticated = true;
		}
	}	

	if(authenticated){	
		var SoR = new CSoapRequest(WebServiceUrlPath+"ws/std/WsGetRegistration.asmx", "GetRegistration", "requestMsg");
		var queryObject = new Object();
		queryObject.login=SessionData["ICB2C_ClientID"];
		var objResponse = new Object();
		if (SoR.sendRequestObject(queryObject) == true)
		{
		
			CXmlDeserializer.Deserialize(objResponse, SoR.responseNode.node());
			document.getElementById("InputLogin").value = objResponse.tableRegistration.rows[0]["LOGIN"];
			document.getElementById("InputPassword").value = objResponse.tableRegistration.rows[0]["PASSWORD"];
			document.getElementById("InputName").value = DefaultNull(objResponse.tableRegistration.rows[0]["NAME"]);
			document.getElementById("InputLastname").value = DefaultNull(objResponse.tableRegistration.rows[0]["LASTNAME"]);
			document.getElementById("InputCompany").value = DefaultNull(objResponse.tableRegistration.rows[0]["COMPANYNAME"]);
			document.getElementById("InputAddress").value = DefaultNull(objResponse.tableRegistration.rows[0]["ADDRESS"]);
			document.getElementById("InputCity").value = DefaultNull(objResponse.tableRegistration.rows[0]["CITY"]);
			//document.getElementById("InputProvince").value = DefaultNull(objResponse.tableRegistration.rows[0]["PROVINCE"]);
			document.getElementById("ComboProvincie").value = DefaultNull(objResponse.tableRegistration.rows[0]["PROVINCE"]); 
			document.getElementById("InputZipcode").value = DefaultNull(objResponse.tableRegistration.rows[0]["ZIPCODE"]);
			// document.getElementById("InputCountry").value = DefaultNull(objResponse.tableRegistration.rows[0]["COUNTRY"]);
			document.getElementById("ComboCountry").value = DefaultNull(objResponse.tableRegistration.rows[0]["COUNTRYID"]); 
			document.getElementById("InputState").value = DefaultNull(objResponse.tableRegistration.rows[0]["STATENAME"]);
			document.getElementById("InputPhone").value = DefaultNull(objResponse.tableRegistration.rows[0]["PHONE"]);
			document.getElementById("InputMobilephone").value = DefaultNull(objResponse.tableRegistration.rows[0]["MOBILEPHONE"]);
			document.getElementById("InputFax").value = DefaultNull(objResponse.tableRegistration.rows[0]["FAX"]);				
			document.getElementById("InputEmail").value = DefaultNull(objResponse.tableRegistration.rows[0]["EMAIL"]);				
			document.getElementById("InputVatIdCode").value = DefaultNull(objResponse.tableRegistration.rows[0]["VATIDCODE"]);				
		}	
	}
	
	document.getElementById("reg-textarea").value = argRegistration[31];
	document.Form1.InputName.focus();
}


function GetCountriesComboHTML()
{

	var result = "";
	var SoR = new CSoapRequest(WebServiceUrlPath+"ws/std/WsCountries.asmx", "GetCountries", "requestMsg");
	var objResponse = new Object();
	if (SoR.sendRequestObject({}) == true)
	{
		var objResponse = CXmlDeserializer.Deserialize(null, SoR.responseNode.node());
		result += "<select id='ComboCountry' class='cart-SelectEditable'>";
		for (var i = 0; i<objResponse.table.rows.length;i++)
		{
			result += "<option value='" + objResponse.table.rows[i]["COUNTRYID"] + "'>" + objResponse.table.rows[i]["DESCRIPTION"] + "</option>"
		}
		result += "</select>"

	}

	return result;

}


function GetProvinciesComboHTML()
{

	result = "<select id='ComboProvincie' class='cart-SelectEditable'>";
	for (var i = 0; i<Provincies.length;i++)
	{
		result += "<option value='" + Provincies[i][0] + "'>" + Provincies[i][1] + "</option>"
	}
	result += "</select>"

	return result;
}




/////////////////////////////////////////////////////////////// 
//Inserisce o modifica i dati dell'utente
///////////////////////////////////////////////////////////////
function SaveRegistration(){

	if(document.getElementById("userprivacyno").checked){
		alert(argRegistration[27]);
		return
	}	

	// Controllo campo password
	if(TestPassword())
		return;	
		
	// Test dei campi obbligatori, se sono vuoti la funzione esce subito
	if(TestEmptyFields())
		return;	
	//La gestione dei campi: nome, cognome, ragsociale, piva è più complessa
	if(!TestFields())
		return;	

	var SoR = new CSoapRequest(WebServiceUrlPath+"ws/std/WsSaveRegistration.asmx", "SaveRegistration", "requestMsg");
	var queryObject = new Object();

	if(authenticated){	
		queryObject.newlogin = document.getElementById("InputLogin").value;
		queryObject.login = SessionData["ICB2C_ClientID"];
		queryObject.mode = "U";
	}
	else{
		queryObject.newlogin = document.getElementById("InputLogin").value;	
		queryObject.login = document.getElementById("InputLogin").value;
		queryObject.mode = "I";
	}
	queryObject.password = document.getElementById("InputPassword").value;
	queryObject.addressid = 0;
	queryObject.name = document.getElementById("InputName").value;
	queryObject.lastname = document.getElementById("InputLastname").value;
	queryObject.companyname = document.getElementById("InputCompany").value;
	queryObject.address = document.getElementById("InputAddress").value;
	queryObject.city = document.getElementById("InputCity").value;
	// queryObject.province = document.getElementById("InputProvince").value;
	queryObject.province = document.getElementById("ComboProvincie").value;
	queryObject.zipcode = document.getElementById("InputZipcode").value;
	// queryObject.country = document.getElementById("InputCountry").value;
	queryObject.countryid = document.getElementById("ComboCountry").value;
	queryObject.statename = document.getElementById("InputState").value;
	queryObject.email = document.getElementById("InputEmail").value;
	queryObject.phone = document.getElementById("InputPhone").value;
	queryObject.mobilephone = document.getElementById("InputMobilephone").value;
	queryObject.fax = document.getElementById("InputFax").value;				
	queryObject.vatidcode = document.getElementById("InputVatIdCode").value;				
	queryObject.currencyisoid = currencyISO;

	if (SoR.sendRequestObject(queryObject) == true)
	{
		var objResponse = new Object();
		CXmlDeserializer.Deserialize(objResponse, SoR.responseNode.node());;
		if(objResponse.result == true){
			RelogOn(queryObject.newlogin, queryObject.password);
			RestoreSessionData(SessionData);
			authenticated = true;
			// todo:localizzare
			alert(argRegistration[0]);
			var referer = document.location.search;
			if(referer!=''){
				var paramvalue = GetQuerystringParameterValue(referer,"from");
				if(paramvalue!="")
					document.location = paramvalue;
				else
					document.location = "Home.aspx";	
			} else {
				document.location = "Home.aspx";
			}
			
		} else {
			// todo:localizzare
			alert(argRegistration[1]);
			
		}
		
	}
}


function RelogOn(login, password)
{
	// Utente
	var token = SessionID.toLowerCase();
	login = login.toLowerCase();
	password = password.toLowerCase();

	// Info per il digest
	var info = login+password+token;

	// Hash
	var hash = SHA1EsaDigest(info, info.length).toLowerCase();
	var SoR = new CSoapRequest(WebServiceUrlPath+"ws/std/WsAuthenticate.asmx", "Authenticate", "requestMsg");
	var theQueryObject = new Object();
	theQueryObject.userName = login;
	theQueryObject.sha1Data = hash;
	if (SoR.sendRequestObject(theQueryObject) == true)
	{
		var objResponse = new Object();
		CXmlDeserializer.Deserialize(objResponse, SoR.responseNode.node());
		if(objResponse.result == true){

		} else {
			window.alert(argRegistration[2]);
			return;
		}

	}

}

function TestEmptyFields(){

	if(Trim(document.getElementById("InputLogin").value)==""){
		alert(argRegistration[11]+argRegistration[3]+argRegistration[12]);
		return true;
	}	
	if(Trim(document.getElementById("InputAddress").value)==""){
		alert(argRegistration[11]+argRegistration[5]+argRegistration[12]);
		return true;
	}	
	if(Trim(document.getElementById("InputCity").value)==""){
		alert(argRegistration[11]+argRegistration[6]+argRegistration[12]);
		return true;
	}	
	if(Trim(document.getElementById("ComboProvincie").value)==""){
		alert(argRegistration[11]+argRegistration[7]+argRegistration[12]);
		return true;
	}	
	if(Trim(document.getElementById("ComboCountry").value)==""){
		alert(argRegistration[11]+argRegistration[8]+argRegistration[12]);
		return true;
	}	
	if(Trim(document.getElementById("InputEmail").value)==""){
		alert(argRegistration[11]+argRegistration[9]+argRegistration[12]);
		return true;
	}	
	if(Trim(document.getElementById("InputZipcode").value)==""){
		alert(argRegistration[11]+argRegistration[10]+argRegistration[12]);
		return true;
	}	

	if(Trim(document.getElementById("InputPhone").value)==""){
		alert(argRegistration[11]+argRegistration[32]+argRegistration[12]);
		return true;
	}	

	return false;
}

function TestFields(){

	var name = Trim(document.getElementById("InputName").value);
	var lastname = Trim(document.getElementById("InputLastname").value);
	var company = Trim(document.getElementById("InputCompany").value);
	var vatidcode = Trim(document.getElementById("InputVatIdCode").value);
	
	if(name=="" && lastname=="" && company!="" && vatidcode!=""){
		return true;
	}	

	if(name!="" && lastname!="" && company=="" && vatidcode==""){
		return true;
	}	

	if(name!="" && lastname!="" && company!="" && vatidcode!=""){
		return true;
	}	

	alert(argRegistration[17]+argRegistration[13]+argRegistration[14]+argRegistration[15]+argRegistration[16]+argRegistration[18]);
	return false;
}

function CheckChange(arg){
	
	if(arg.value=="0"){
		document.getElementById("InputName").readOnly=false;
		document.getElementById("InputName").className="qta-Input";		
		document.getElementById("InputLastname").readOnly=false;
		document.getElementById("InputLastname").className="qta-Input";		
		document.getElementById("InputCompany").readOnly=true;
		document.getElementById("InputCompany").className="qta-InputNotEditable";		
		document.getElementById("InputVatIdCode").readOnly=true;
		document.getElementById("InputVatIdCode").className="qta-InputNotEditable";		
	}

	if(arg.value=="1"){
		document.getElementById("InputName").readOnly=true;
		document.getElementById("InputName").className="qta-InputNotEditable";		
		document.getElementById("InputLastname").readOnly=true;
		document.getElementById("InputLastname").className="qta-InputNotEditable";		
		document.getElementById("InputCompany").readOnly=false;
		document.getElementById("InputCompany").className="qta-Input";		
		document.getElementById("InputVatIdCode").readOnly=false;
		document.getElementById("InputVatIdCode").className="qta-Input";		
	}
	
}

function TestPassword(){



	if(Trim(document.getElementById("InputPassword").value)==""){
		alert(argRegistration[11]+argRegistration[4]+argRegistration[12]);
		return true;
	}	

	if(Trim(document.getElementById("InputPassword").value).length<8){
		alert(argRegistration[11]+argRegistration[4]+argRegistration[29]);
		return true;
	}	

	if(Trim(document.getElementById("InputPassword").value)!=Trim(document.getElementById("ConfirmPassword").value)){
		alert(argRegistration[30]);
		return true;
	}	
		
}

