var mouseX = 0
var mouseY = 0 

function getMouseXY(e) {
  var IE = document.all?true:false;
  
  if (IE) {  
     mouseX = event.clientX + document.body.scrollLeft;
     mouseY = event.clientY + document.body.scrollTop;
   } else {  
    mouseX = e.pageX;
    mouseY = e.pageY;
   }  

  if (mouseX < 0){mouseX = 0}
  if (mouseY < 0){mouseY = 0}  


  return true;
}

function layer_followmouse(id,sender) {
  ele = document.getElementById(id);
  var x = mouseX;
  var y = mouseY;
  x=x+10; y=y+15;
  ele.style.left=x.toString()+"px"
  ele.style.top=y.toString()+"px";
 
}

function readcookie(name) {
   var keks = document.cookie;

   var posName = keks.indexOf("; " + name + "=");
   if (posName == -1) {
      if (keks.indexOf(name + "=") == 0) posName = 0;
      else return null;
   }

   var wertAnfang = keks.indexOf("=", posName)+1;
   var wertEnde = keks.indexOf(";", posName+1);
   if (wertEnde == -1) wertEnde = keks.length;

   var wert = keks.substring(wertAnfang, wertEnde);
   return unescape(wert);
}

function goinvis(id,sender) {
  ele = document.getElementById(id);
  ele.style.visibility="hidden";
  ele.style.width="0px";
  ele.style.height="0px";
}

function govisible(id,sender) {
  ele = document.getElementById(id);
  ele.style.visibility="visible";
  ele.style.width=ele.getAttribute("w");
  ele.style.height=ele.getAttribute("h");
}

function togglevisibility(id,sender) {
  ele = document.getElementById(id);
  if(ele.style.visibility=="hidden") {
    ele.style.visibility="visible";
	ele.style.width=ele.getAttribute("w");
	ele.style.height=ele.getAttribute("h");
  } else {
    ele.style.visibility="hidden";
	if(ele.style.width!="0") { ele.setAttribute("w",ele.style.width); }
	if(ele.style.height!="0") { ele.setAttribute("h",ele.style.height); }
	ele.style.width="0px";
	ele.style.height="0px";
  }  
}

function togglelayer(id,sender,ix,iy) {
  ele = document.getElementById(id);

  if(ix=="inherited" | (ele.style.position=="absolute" && ix==0)) {
    ele.style.left=mouseX.toString()+"px"
  } else ele.style.left=ix;
  if(iy=="inherited" | (ele.style.position=="absolute" && iy==0)) {
    ele.style.top=mouseY.toString()+"px";
  } else ele.style.top=iy;

  if(ele.style.visibility=="hidden") {
    ele.style.visibility="visible";
	ele.style.width=ele.getAttribute("w");
	ele.style.height=ele.getAttribute("h");
  } else {
    ele.style.visibility="hidden";
	if(ele.style.width!="0") { ele.setAttribute("w",ele.style.width); }
	if(ele.style.height!="0") { ele.setAttribute("h",ele.style.height); }
	ele.style.width="0px";
	ele.style.height="0px";
	ele.style.left="0px"; ele.style.top="0px";
  }
  
}

  function ExecSKFunction() {   
    for (i=0;i<=document.forms.length-1;i++){
	  for (fe=0;fe<=document.forms[i].elements.length-1;fe++){
	    ele = document.forms[i].elements[fe];//.item(i);
	    if(ele.getAttribute('skfunction')) eval(ele.getAttribute('skfunction'));
	  }
	}
  }

  
  
  function cleararray(a) {
    var ra = new Array;
	
    for (xxx=0;xxx<=a.length-1;xxx++) {
	  if(a[xxx]!="") { ra[ra.length]=a[xxx]; }
	}
	
	return ra;
  }
  
  
  function SKSum(id,s) {
    r=s.replace("[sum:","").replace("]","");

	var fields = new Array;	
	var fieldno = new Array;	
	
	fields = r.split(/[+:\-:*:/]/);
	fieldsno = r.split(/[+:\-:*:/:(:)]/);
    fieldsno = cleararray(fieldsno);
	
	ops = r;	
    for (xxx=0;xxx<=r.length-1;xxx++) {
   	  ops = ops.replace(/[^+\-*/]/,"");
	}
	
	var fval = new String;
	res = 0;
	ev="";
	for (xxx=0;xxx<=fieldsno.length-1;xxx++) {		  
	  vele = document.getElementById(fieldsno[xxx]);
	  if(vele) fval = document.getElementById(fieldsno[xxx]).value
	  else fval=fieldsno[xxx];
      if(fval && isNaN(fval)==false) {	   	 
	    fval = fields[xxx].replace(fieldsno[xxx],fval);         
		ev = ev + fval+ops.charAt(xxx); 
	  } else ev="";//ev+"0";
	}


	res=Math.round(eval(ev)*100.)/100.;
        if(!res) res="";

	rele = document.getElementById(id); 	
	if(rele.tagName=="INPUT" || rele.tagName=="TEXTAREA") 
	rele.value = res;
	else rele.innerHTML=res;
	
  }
  
function evalScript(scripts)
{	try
	{	if(scripts != '')	
		{	var script = "";
			scripts = scripts.replace(/<script[^>]*>([\s\S]*?)<\/script>/gi, function(){
				if (scripts !== null) 
					script += arguments[1] + '\n';
 	        		return '';
	            	});
			if(script) (window.execScript) ? window.execScript(script) : window.setTimeout(script, 0);
		}
		return false;
	}
	catch(e)
	{	alert(e)
	}
}  
  
function getHttpRequest(file,target,jump,reloader) {
   
    var xmlhttp = null;
    // Mozilla
    if (window.XMLHttpRequest) {
        xmlhttp = new XMLHttpRequest();
    }
    // IE
    else if (window.ActiveXObject) {
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
   
    xmlhttp.open("GET", file, true);
    xmlhttp.onreadystatechange = function() {
        if(xmlhttp.readyState != 4) {
          var oldpos = document.getElementById(target).style.position;
          if(document.getElementById(target).style.position!="relative") { document.getElementById(target).style.position="relative"; } 
          document.getElementById(target).innerHTML = "<img src='./javafunctions/loading.gif' style='position:absolute; top:20px; left:50%;  z-index:100;'>"+document.getElementById(target).innerHTML;
          document.getElementById(target).style.position=oldpos;
        }
        if(xmlhttp.readyState == 4 && xmlhttp.status == 200) {
           var htmlstr = xmlhttp.responseText;
           document.getElementById(target).innerHTML = htmlstr;
		   evalScript(htmlstr);
           document.cookie=target+"="+file;
           if(reloader) { 
		     var reloads = reloader.split(",");
			 for (i=0;i<=reloads.length-1;i++) {
  		       f=readcookie(reloads[i]); if(f) { getHttpRequest(f,reloads[i]); } 
			 }
		   }

            if(jump==true) { 
              var loc = "" + document.location;
              if(loc.indexOf("#")!=-1) { loc = loc.substring(0,loc.indexOf("#"));  }
              document.location=loc+"#"+target; 
            }
        }
    }
    xmlhttp.send(null);
}  

//

// FORM SUBMIT WITH AJAX                                                        

// @Author: Simone Rodriguez aka Pukos <http://www.SimoneRodriguez.com>         

// @Version: 1.2                                                                

// @Released: 28/08/2007                                                        

// @License: GNU/GPL v. 2 <http://www.gnu.org/copyleft/gpl.html>                

//





function xmlhttpPost(strURL,formname,responsediv,reloader) {

    var xmlHttpReq = false;

    var self = this;

    // 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

                        
                        if(formname!=responsediv)  { updatepage(self.xmlHttpReq.responseText,responsediv); } else {
                          myDiv = document.createElement("div"); myDiv.innerHTML=self.xmlHttpReq.responseText; document.getElementById(responsediv).parentNode.replaceChild(myDiv, document.getElementById(responsediv));   
                        }
           if(reloader) { 
		     var reloads = reloader.split(",");
			 for (i=0;i<=reloads.length-1;i++) {
  		       f=readcookie(reloads[i]); if(f) { getHttpRequest(f,reloads[i]); } 
			 }
		   }

        }

		else{

			// In attesa della risposta del form visualizzo il msg di attesa
                        updatepage(responsediv);

			



		}

    }

    self.xmlHttpReq.send(getquerystring(formname));

}



function getquerystring(formname) {

    var form = document.forms[formname];

	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 = form.elements;

    for (var i = 0; i < elemArray.length; i++) {

        var element = elemArray[i];

        var elemType = element.type.toUpperCase();

        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,target){

          var oldpos = document.getElementById(target).style.position;
          if(document.getElementById(target).style.position!="relative") { document.getElementById(target).style.position="relative"; } 
          document.getElementById(target).innerHTML = "<img src='./javafunctions/loading.gif' style='position:relative; top:0; left:0; width:100%;  z-index:100;'>"+document.getElementById(target).innerHTML;
          document.getElementById(target).style.position=oldpos;

}
  
//  window.document.onmousemove = getMouseXY;

