// JavaScript Document

function checkFields(obj)	{
	obj.style.backgroundColor='FFFF99';
	if(obj.type == "text" && (obj.value == "" || obj.value == null)){
		obj.style.backgroundColor='#99cccc';
		return 1;
	}
	else if(obj.type == "textarea" && (obj.value == "" || obj.value == null)){
		obj.style.backgroundColor='#99cccc';
		return 1;
	} 
	else if(obj.type == "file" && (obj.value == "" || obj.value == null)){
		obj.style.backgroundColor='#99cccc';
		return 1;
	}	
	else if(obj.type == "password" && (obj.value == "" || obj.value == null)){
		obj.style.backgroundColor='#99cccc';
		return 1;
	} 
	else if(obj.type =="select-one" && obj.value == 0) {
		obj.style.backgroundColor='#99cccc';
		return 1;
	}
	else if(obj.type =="checkbox" && obj.checked == false) {
		obj.style.backgroundColor='#99cccc';
		return 1;
	}
	else return 0;
}

function htmlConv(obj)	{
	if(obj.type == "text" || obj.type == "textarea"){
		var txEnt=entitiesHTML(obj.value);
		obj.value=txEnt;
	}
}

function checkFormSend(which)	{
	var pass=0;
	for (i=0;i<which.length;i++){
		var tempobj=which.elements[i];
		if(tempobj.id == "required") pass=pass+checkFields(tempobj);
	}
	if (pass==0)	{
		SendForm(which);
	}

}

function addOption(Chooser,id,str) {
	var newElem;
	var i;
	var where = (navigator.appName == "Microsoft Internet Explorer") ? -1 : null;
	
	newElem = document.createElement("option");
 	newElem.text = str;
    newElem.value = id;
    Chooser.add(newElem, where);
	
}

function setConcatenation(chooser,array,to,fh) {
    // selezioniamo il campo da svuotare
	var id = chooser.form.elements[to];
    while (id.options.length) {
        id.remove(0);
    }
	// aggiunta option selezione
	addOption(id,0,fh);
	// prelievo selezione parentela
   	var choice = chooser.options[chooser.selectedIndex].value;
    // selezione database
	if (array == 1) var db = subcategory[choice];
	else if (array == 2) var db = subLink[choice];
	else if (array == 3) var db = comuni[choice];
	else if (array == 4) var db = province[choice];
	else if (array == 5) var db = prezzi[choice];
	// aggiunta options
	if (choice != "") {
		for (var i = 0; i < db.length; i++) {
			addOption(id, db[i].value, db[i].text);
		}			
    }

}

function SendForm(formSend) {

	// inizio function
    var xmlHttpReq = false;
    var self = this;
	var strUrl=formSend.action;
	var divTO=formSend.div.value;
	var resMessage= "<div class=\'loadIMG\'></div>";
    // Xhr per Mozilla/Safari/Ie7
    if (window.XMLHttpRequest) {
        self.xmlHttpReq = new XMLHttpRequest();
    }
    // per tutte le altre versioni di IE
    else if (window.ActiveXObject) {
        self.xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
    }

    self.xmlHttpReq.open('POST', strUrl, true);
    self.xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	
	self.xmlHttpReq.onreadystatechange = function() {
		
        if (self.xmlHttpReq.readyState == 4) {
			// Quando pronta, visualizzo la risposta del form
            updatepage(self.xmlHttpReq.responseText,divTO);
			if(document.getElementById("dUrl")) setTimeout(function() { document.location.href=document.getElementById("dUrl").value; }, 2000);
        }
		else{
			// In attesa della risposta del form visualizzo il msg di attesa
			updatepage(resMessage,divTO);

		}
    }

	self.xmlHttpReq.send(getquerystring(formSend));
	
}

function getquerystring(formSend) {

	var qstr = "";

    function GetElemValue(name, value) {
        qstr += (qstr.length > 0 ? "&" : "")
            + escape(name).replace(/\+/g, "%2B") + "="
            + escape(value ? value : "").replace(/\+/g, "%2B");
			//+ escape(value ? value : "").replace(/\n/g, "%0D");
    }
	
	var elemArray = formSend.elements;
    for (var i = 0; i < elemArray.length; i++) {
        var element = elemArray[i];
        var elemType = element.type;
        var elemName = element.name;
        if (elemName) {
            if (elemType == "text"
                    || elemType == "textarea"
                    || elemType == "password"
					|| elemType == "button"
					|| elemType == "reset"
					|| elemType == "submit"
					|| elemType == "file"
					|| elemType == "image"
                    || elemType == "hidden")
                GetElemValue(elemName, element.value);
            else if (elemType == "checkbox" && element.checked)
                GetElemValue(elemName, 
                    element.value ? element.value : "On");
            else if (elemType == "radio" && element.checked)
                GetElemValue(elemName, element.value);
            else if (elemType.indexOf("select") != -1)
                for (var j = 0; j < element.options.length; j++) {
                    var option = element.options[j];
                    if (option.selected)
                        GetElemValue(elemName,
                            option.value ? option.value : option.text);
                }
        }
    }

    return qstr;
}

function updatepage(str,responsediv){
    document.getElementById(responsediv).innerHTML = str;
}

/***********************************************
* Dynamic Ajax Content-  Dynamic Drive DHTML code library (www.dynamicdrive.com)
* This notice MUST stay intact for legal use
* Visit Dynamic Drive at http://www.dynamicdrive.com/ for full source code
***********************************************/

var loadedobjects=""
var rootdomain="http://"+window.location.hostname

function loaderPAGE(url,containerid,message){

	if(message==1) divOpener(containerid)
	
	var page_request = false
	if (window.XMLHttpRequest) // if Mozilla, Safari etc
	page_request = new XMLHttpRequest()
	else if (window.ActiveXObject){ // if IE
	try {
	page_request = new ActiveXObject("Msxml2.XMLHTTP")
	} 
	catch (e){
	try{
	page_request = new ActiveXObject("Microsoft.XMLHTTP")
	}
	catch (e){}
	}
	}
	else
	return false
	page_request.onreadystatechange=function(){
	loadpage(page_request, containerid, message)
	}
	page_request.open('GET', url, true)
	page_request.send(null)
}

function loadpage(page_request, containerid, message){
	
	if (message == 1) var resMessage= "<div class=\'progressBar\'></div>";
	else if (message == 2) var resMessage= "<div class=\'loadIMG\'></div>";
	else var resMessage=" ";
	
	if (page_request.readyState == 4 && (page_request.status==200 || window.location.href.indexOf("http")==-1))	{
		document.getElementById(containerid).innerHTML=page_request.responseText;
		if(document.getElementById("dUrl")) setTimeout(function() { document.location.href=document.getElementById("dUrl").value; }, 2000);
	}
	else updatepage(resMessage,containerid);
	
}

function loadobjs(){
if (!document.getElementById)
return
for (i=0; i<arguments.length; i++){
var file=arguments[i]
var fileref=""
if (loadedobjects.indexOf(file)==-1){ //Check to see if this object has not already been added to page before proceeding
if (file.indexOf(".js")!=-1){ //If object is a js file
fileref=document.createElement('script')
fileref.setAttribute("type","text/javascript");
fileref.setAttribute("src", file);
}
else if (file.indexOf(".css")!=-1){ //If object is a css file
fileref=document.createElement("link")
fileref.setAttribute("rel", "stylesheet");
fileref.setAttribute("type", "text/css");
fileref.setAttribute("href", file);
}
}
if (fileref!=""){
document.getElementsByTagName("head").item(0).appendChild(fileref)
loadedobjects+=file+" " //Remember this object as being already added to page
}
}
}


function loadLINK(urlExec,msg,div,message)
{
	var confirmation=confirm("Confermi la seguente operazione:\r" + msg);
	if(confirmation == true) {
		if(message==1) divOpener(div)
		loaderPAGE(urlExec,div,message);
	}
	return false;
}

/**
*
*  Javascript open window
*  http://www.webtoolkit.info/
*
**/

function openWindow(anchor, options) {

	var args = '';

	if (typeof(options) == 'undefined') { var options = new Object(); }
	if (typeof(options.name) == 'undefined') { options.name = 'win' + Math.round(Math.random()*100000); }

	if (typeof(options.height) != 'undefined' && typeof(options.fullscreen) == 'undefined') {
		args += "height=" + options.height + ",";
	}

	if (typeof(options.width) != 'undefined' && typeof(options.fullscreen) == 'undefined') {
		args += "width=" + options.width + ",";
	}

	if (typeof(options.fullscreen) != 'undefined') {
		args += "width=" + screen.availWidth + ",";
		args += "height=" + screen.availHeight + ",";
	}

	if (typeof(options.center) == 'undefined') {
		options.x = 0;
		options.y = 0;
		args += "screenx=" + options.x + ",";
		args += "screeny=" + options.y + ",";
		args += "left=" + options.x + ",";
		args += "top=" + options.y + ",";
	}

	if (typeof(options.center) != 'undefined' && typeof(options.fullscreen) == 'undefined') {
		options.y=Math.floor((screen.availHeight-(options.height || screen.height))/2)-(screen.height-screen.availHeight);
		options.x=Math.floor((screen.availWidth-(options.width || screen.width))/2)-(screen.width-screen.availWidth);
		args += "screenx=" + options.x + ",";
		args += "screeny=" + options.y + ",";
		args += "left=" + options.x + ",";
		args += "top=" + options.y + ",";
	}

	if (typeof(options.scrollbars) != 'undefined') { args += "scrollbars=1,"; }
	if (typeof(options.menubar) != 'undefined') { args += "menubar=1,"; }
	if (typeof(options.locationbar) != 'undefined') { args += "location=1,"; }
	if (typeof(options.resizable) != 'undefined') { args += "resizable=1,"; }

	var win = window.open(anchor, options.name, args);
	return false;

}

