var template_dir="tpl/";

var myformdisabled=new Array();
function disable_all_form(theform)
{
   for(i=0; i < theform.elements.length; i++)
    {
	    if(theform.elements[i].disabled==true)
		   {
		     myformdisabled[myformdisabled.length]=theform.elements[i].name;
		   }
		theform.elements[i].disabled=true;
	 }
}

function enable_all_form(theform)
{
   for(i=0; i < theform.elements.length; i++)
     {
	     theform.elements[i].disabled=false;
	 }
   for(i=0; i<myformdisabled.length; i++)
   {
      eval('theform.'+myformdisabled[i]+'.disabled=true');
   }
   myformdisabled=new Array();
}

function create_request_string(theform)
{
var reqStr = "";

for(i=0; i < theform.elements.length; i++)
{
isformObject = false;
switch (theform.elements[i].tagName)
{
case "INPUT":

switch (theform.elements[i].type)
{
case "text":
case "hidden":
case "password":
reqStr += theform.elements[i].name + "=" + encodeURIComponent(theform.elements[i].value);
isformObject = true;
break;

case "checkbox":
if (theform.elements[i].checked)
{
reqStr += theform.elements[i].name + "=" + theform.elements[i].value;
}
isformObject = true;
break;

case "radio":
if (theform.elements[i].checked)
{
reqStr += theform.elements[i].name + "=" + theform.elements[i].value;
isformObject = true;
}
}
break;

case "TEXTAREA":

reqStr += theform.elements[i].name + "=" + encodeURIComponent(theform.elements[i].value);
isformObject = true;
break;

case "SELECT":
var sel = theform.elements[i];
reqStr += sel.name + "=" + sel.options[sel.selectedIndex].value;
isformObject = true;
break;  
}

if ((isformObject) && ((i+1)!= theform.elements.length))
{
reqStr += "&";
}

}

var fckeditorName, editorInstance;
       if (window.FCKeditorAPI)
       {
         for (fckeditorName in FCKeditorAPI.__Instances)
          {
            if ((editorInstance = FCKeditorAPI.GetInstance(fckeditorName)).IsDirty())
             {
               reqStr += "&"+fckeditorName+"="+encodeURIComponent(editorInstance.GetHTML());
             }
          }
       }


return reqStr;
} 

function CreateXmlHttpReq(handler) {
  var xmlhttp = null;
  try {
    xmlhttp = new XMLHttpRequest();
  } catch(e) {
    try {
        xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
    } catch(e) {
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
  }
  xmlhttp.onreadystatechange = handler;
  return xmlhttp;
}

function DummyHandler() {
    return true;
}
function ajaxGet(url, send1, handler) {
    var a = new Array("placeholder");
    for (var j=3; j<arguments.length; j++) {
        a[a.length] = arguments[j];
    }
    var ajax_req = CreateXmlHttpReq(DummyHandler);
    var myhandler = function() {
        var content = ajaxOk(ajax_req);
        if (content !== false) {
            a[0] = content;
            try {
                return handler.apply(this, a);
            } catch(e) {
                return myDummyApply(handler, a);
            }
        }
    }
    ajax_req.onreadystatechange = myhandler;
	ajax_req.open("POST", url ,true);
    ajax_req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    ajax_req.send(send1);
}
function myDummyApply(funcname,args) {
    var e = funcname+"(";
    for (var i = 0; i < args.length; i++) {
        e += "args["+i+"]";
        if (i+1 != args.length) {
            e += ",";
        }
    }
    e += ");"
    return eval(e);
}
function ajaxGetRand(url,handler) {
    url += (url.indexOf("?") == -1) ? "?" : "&";
    url += "rand="+escape(Math.random());
    arguments[0] = url;
    try {
        return ajaxGet.apply(this,arguments);
    } catch(e) {
        return myDummyApply(ajaxGet,arguments);
    }
}
function ajaxOk(req) {
    if (req.readyState == 4 && req.status == 200) {
		return req.responseText;
    } else if (req.readyState == 4 && req.status != 200){
        alert("Errore: non riesco a caricare il contenuto");
		return false;
    }
	else return false;
}
function execJS(t)
{
var p1 = 0, p2 = 0, p3 = 0, p4 = 0;
p1 = t.indexOf("<" + "script", 0);
if(p1 == -1) return t;

p2 = t.indexOf(">", p1 + 7) + 1;
p3 = t.indexOf("<" + "/script>", p2);
p4 = p3 + 9;

var c = t.substring(p2, p3);
var s = document.createElement("script");
s.type = "text/javascript";
s.text = c;
document.getElementsByTagName("head")[0].appendChild(s);

t = t.substring(0, p1) + t.substr(p4);
return execJS(t);

}
function kload_page(url, divtoload, callback, divcaricamento)
{
   if(divcaricamento==null) divcaricamento=divtoload;
   if(callback==null) callback='kload_page2';
   append_loading(divcaricamento);
   ajaxGet(url, '', callback, divtoload, divcaricamento);
}
function kload_page2(testo, divtoload, divcaricamento)
{
    remove_loading(divcaricamento);
	execJS(testo);
	document.getElementById(divtoload).innerHTML=testo;
}
function cmsload(url, divtoload)
{
   kload_page(url, divtoload, null, 'fixme');
}
function kload_form(id_form, url, callback, divcaricamento)
{
  if(callback==null) callback='kload_form2';
  append_loading(divcaricamento);
  ajaxGet(url, '', callback, divcaricamento, document.getElementById(id_form));
}
function kload_form2(testo, divcaricamento, myform)
{
   var array2=query2array(testo);
   for (nome2 in array2)
        set_value(myform, nome2, array2[nome2]);
   remove_loading(divcaricamento);
}

var default_loading_phrase='<div class="testreload"><img src="'+template_dir+'img/loading.gif" alt=""  /><div style="float: left; line-height: 20px;">Sto caricando...</div></div>';
function append_loading(divcaricamento)
{
  if(divcaricamento==null) divcaricamento='fixme';
  document.getElementById(divcaricamento).innerHTML=document.getElementById(divcaricamento).innerHTML+default_loading_phrase;
}

function remove_loading(divcaricamento)
{
   if(divcaricamento==null) divcaricamento='fixme';
   var mytest=document.getElementById(divcaricamento);
   var ck = mytest.getElementsByTagName("div");
   for(var i = 0; i < ck.length; i++)
		 {
		   if(ck[i].className=='testreload' && ck[i].style.display!='none')
		        {  ck[i].style.display='none'; return true; }
		 }
}
function ksubmit_form(id_form, url, callback, divcaricamento)
{
  if(callback==null) callback='ksubmit_form2';
  append_loading(divcaricamento);
  var klocalform=document.getElementById(id_form);
  disable_all_form(klocalform);
  ajaxGet(url, create_request_string(klocalform), callback, divcaricamento, klocalform);
}
function ksubmit_form2(testo, divcaricamento, klocalform)
{
   enable_all_form(klocalform);
   remove_loading(divcaricamento);
   eval(testo);
}

var topcolor='#666666';
var setread='readOnly';
var topheight='60px';
var topfilter='informativa';

function set_height(myheight)
{
   document.getElementById(topfilter).style.height=myheight;
}

function setreadonly(myreadonly)
{
   document.getElementById(topfilter).readOnly=myreadonly;
}

function set_color(mycolor)
{
   document.getElementById(topfilter).style.color=mycolor;
}

function set_parameter()
{
   set_color(topcolor);
   setreadonly(setread);
   set_height(topheight);
}

function set_informativa()
{
	 if(document.getElementById(topfilter))
	  {
	    set_parameter();
	  }
}
