//Javascript functions

function isJsonRequest(req)
{
	return req.getHeader("Content-Type").match('application/json');
}



function isAjaxXMLRequest(req)
{
	return req.getHeader("Content-Type").match('text/xml');
}

function parseXMLResponse(transport)
{
	arr=Array();
	statusResp=null;
	msg=null;
	fields=null;
	content=null;
	res=null;
	xmldoc=null; //documento XML parserizzato

    if(!document.all && window.XMLHttpRequest) //browser moderni diversi da IE
    {
	//	alert("firefox/safari");
		xmldoc=transport.responseXML;
     }
  	else if(window.opera) // Opera
	{
		//alert("Opera");
		if(window.XMLHttpRequest)
		{
			xmldoc=transport.responseXML
		}
		else
		{
		//	alert("Opera scarso")
			var parser=new DOMParser()
			xmldoc=parser.parseFromString(transport.responseText,"text/xml")
		}
	}
	else if(document.all) //IE
	{
	//	alert("IE")
		if(window.XMLHttpRequest) //IE7
		{
	//		alert("IE 7")
			xmldoc=transport.responseXML
		}
		else
		{
			try //IE 5,6 with ActiveX
			{
				xmldoc = new ActiveXObject("Microsoft.XMLDOM");
				xmldoc.async="false";
				xmldoc.loadXML(transport.responseText);
			}
			catch(e) //without activeX
			{
				alert("Your browser hasn'e enought support for AJAX technology")
			}
		}
	}
	else //altro
	{
		try
		{
			//var xmldoc=document.implementation.createDocument("","",null);
			//xmldoc.async="false";

			//generic DOM parser
			var parser=new DOMParser();
			xmldoc=parser.parseFromString(transport.responseText,"text/xml");
		}
		catch(e)
		{
			alert("Your browser hasn'e enought support for AJAX technology")
		}
	}

if(xmldoc!=null)
	{
		var root = xmldoc.documentElement;

		statusarr=root.getElementsByTagName("status")
		if(statusarr[0] != null)
            statusResp=statusarr[0].firstChild.nodeValue;

        msgarr=root.getElementsByTagName("msg")
		if(msgarr[0])
            msg=msgarr[0].firstChild.nodeValue;

		fieldsarr=root.getElementsByTagName("fields")

		if(fieldsarr[0])
		{
			figli=fieldsarr[0].childNodes
			i=0
			n=figli.length
			fields=Array();
			while (i < n)
			{
				fields[i]=figli[i].firstChild.nodeValue;
				i++
			}
		}


		contentarr=root.getElementsByTagName("content")

		if(contentarr[0]) content=contentarr[0].firstChild.nodeValue;

        //alert("ParseXML res:"+content);

		arr["status"]=statusResp;
		arr["msg"]=msg;
		arr["fields"]=fields;
		arr["content"]=content;
		return arr;
	}
	else
	{
		//alert("Your browser hasn'e enought support for AJAX technology")
		//return null;
	}
}

//lista è un array di campi

function show_incomplete_fields(lista)
{

	lista.each(function(el)
	{
		if($(el))
		{
			$(el).addClassName("redborder");
		}
	})


	lista.each(function(el)
	{
  		if( $(el+"_form_obj_name")) {
			$(el+"_form_obj_name").addClassName("red");
		}

	})


}


//pulisce i campi "rossi" (normalmente viene lanciata prima della show_incomplete_fields)
function clear_incomplete_fields(form)
{


	lis1=$(form).descendants();

		//$(form).select('[class="red"]')

		lis1.each(function(el)
		{
			el.removeClassName("red");
			el.removeClassName("redborder");
		}
		);


	/* lis2=$(form).select('[class="redborder"]')

	lis2=$(form).descendants();

		lis2.each(function(el2)
		{
			el2.removeClassName("redborder");
		}
		);
	*/


}

function limitText(limitField,  limitNum) {
	if (limitField.value.length > limitNum) {
		limitField.value = limitField.value.substring(0, limitNum);
	}
}



function preloadImages(path) 
{ 
      var d=document; 

      if(d.images)
      { 
         if(!d.MM_p)
            d.MM_p=new Array();
    
         var i,j=d.MM_p.length,a=preloadImages.arguments; 
         for(i=0; i<a.length; i++)
         {
            if (a[i].indexOf("#")!=0)
            {
               d.MM_p[j]=new Image; 
               d.MM_p[j++].src=a[i];
            }
         }		
      }
   }


//Include un file JS
function IncludeJS(jsFile)
{
	document.write('<script type="text/javascript" src="'+ jsFile + '"></script>'); 
}

//Redirect a un URL
function go(url)
{
	document.location.href=url;
}

function back()
{
	history.back()
}

function JSMail(indmail)
{
	var pos1=indmail.indexOf("_AT_");
	var ind=indmail;
	if(pos1!=-1)
	{
		var pos2=pos1+4;
		var s=indmail.substr(0,pos1);
		s+='@'+indmail.substr(pos2);
		if(checkemail(s))
			ind=s;
		else ind=indmail;
	}
	return ind;

}

function printmail(indmail)
{
	document.write(JSMail(indmail));

}

function mymailto(indmail)
{
	ind=JSMail(indmail);
	document.location.href="mailto:"+ind;
}



//controllo validita' indirizzo email
function checkemail(str)
{
	if (document.layers||document.getElementById||document.all)
	{
		if (window.RegExp)
		{
			var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i
			if (filter.test(str))
				return true;
			else return false
		}
		else return (str.indexOf("@")!=-1)
	}
	else return (str.indexOf("@")!=-1)
}


/////////////// COOKIE ////////////////////////
function setCookie (name, value) 
{
	var todayDate = largeExpDate = new Date ();
	largeExpDate.setTime(todayDate.getTime() + 365 * 24 * 3600 * 1000);
	document.cookie = name+'='+escape(value)+'; expires=' + largeExpDate.toGMTString();
}

function getCookie(name)
{
	var search = name + "="
	if (document.cookie.length > 0) 
	{
		offset = document.cookie.indexOf(search);
		if (offset != -1) 
		{
			offset += search.length;
			end = document.cookie.indexOf(";", offset);
			if (end == -1)
			{
				end = document.cookie.length;
				return unescape(document.cookie.substring(offset, end))
			}
		}
	}
}



