/* jseyes.js


The classic Xeyes in JavaScript
(c) PROPIX Ltd,  Written by Pintér Gábor
Székesfehérvár, Kriványi u. 15.
H-8000, HUNGARY
Tel: +36 30 3489752
Fax: +36 22 304326
Email: propix@freemail.hu
Web: http://www.propix.hu

Revisions:
  V1.0  10/14/2001  Original release
		V1.1  02/20/2008: Updated by JavaScriptKit.com to work in the latest browsers (IE7, FF etc)

Usage:
  1. Include this file from the head of your page
  2. Define parameters or accept the defaults
  3. Insert the image

This script requires Internet Explorer 5+ or Nescape Navigator 6+! In other browsers it does nothing.



1. Include jseyes.js from the head of your page
Insert the following line into the head of your page:
  <script src="jseyes.js"></script>


2. Define parameters
You can accept the defaults or assign new values to these variables:

jseyesimg="jseyes.gif"
  The main image. Please do not edit.

jseyeimg="jseyeblue.gif"
  The image of the eye. Must be a 21x29 solid ellipse with transparent background.


4. Insert the image
Call jseyes() where you want to see the image:
  <script>
    jseyes();
  </script>

Or call jseyes(x, y) to show the image at absolute position:
  <script>
    jseyes(100,100);
  </script>



Example: http://www.propix.hu/www/jseyes/jseyes.html

*/

//Movimento Occhi

var theTimer;

 // Preloaded images
    if (document.images)
    {
      demo1 = new Image();
      demo1.src = "../../images/chat/m_chiusa.jpg"

      demo2 = new Image();
      demo2.src = "../../images/chat/m_aperta.jpg";


    }

    // Reusable timer
    function timeimgs(numb)
    {
      theTimer = setTimeout("imgturn('" +numb+ "')", 300);
    }
    // Reusable image turner
    function imgturn(numb)
    {
      if (document.images)
      {
       // This will loop the image
        if (numb == "2")
        {
          document["mouth"].src = eval("demo2.src");
          timeimgs('1');
        }
        else
        {
          document["mouth"].src = eval("demo" + numb + ".src");
          timeimgs(numb = ++numb);
        }
      }
    }


function swicthExpression(){

	var value = arguments[0];
	clearTimeout(theTimer);

	switch(value) {
  
  		case "parla":
    			timeimgs('1');
  		break;

		case "triste":
    			document["mouth"].src = "../../images/chat/triste.gif";
  		break;

		case "felice":
    			document["mouth"].src = "../../images/chat/risata.gif";
  		break;

		case "sorpreso":
    			document["mouth"].src = "../../images/chat/sorpreso.gif";
  		break;
  		
		case "arrabbiato":
			document["mouth"].src = "../../images/chat/arrabbiato.gif";
		break;
		
		default:
    			document["mouth"].src = "../../images/chat/m_chiusa.jpg";
  
	}
}


// Defaults
var jseyesimg="../../images/chat/base.jpg";
var jseyeimg="../../images/chat/occhi.jpg";
var jseyeslink="http://www.javascriptkit.com";


// Internal
var jseyeso=null, jseye1=null, jseye2=null;
var standardbody=(document.compatMode=="CSS1Compat")? document.documentElement : document.body //create reference to common "body" across doctypes

// General utils

// Find object by name or id
function jseyesobj(id) {
  var i, x;
  x= document[id];
  if (!x && document.getElementById) x= document.getElementById(id);
  for (i=0; !x && i<document.forms.length; i++) x= document.forms[i][id];
  return(x);
}


// Move eyes
function jseyesmove(x, y) {
  var ex, ey, dx, dy;
  var newImg = new Image();
  newImg.src = jseyesimg;
  var height = newImg.height;
  var width = newImg.width;

  if (jseyeso && jseye1 && jseye2 && jseyeso.style) {
    ex=jseyeso.offsetLeft+46; ey=jseyeso.offsetTop;
    dx=x-ex; dy=y-ey;
    r=(dx*dx/width+dy*dy/height<1) ? 1 : Math.sqrt(width*height/(dx*dx*height+dy*dy*width));
    jseye1.style.left= r*dx+(width-145.5)+'px'; jseye1.style.top= 114+'px';
    ex+=56; dx-=56;
    r=(dx*dx/width+dy*dy/height<1) ? 1 : Math.sqrt(width*height/(dx*dx*height+dy*dy*width));
    jseye2.style.left= r*dx+(height-136.5)+'px'; jseye2.style.top= 114+'px';
  }
}



// Main
function jseyes() {

  var newImg = new Image();
  newImg.src = jseyesimg;
  var height = newImg.height;
  var width = newImg.width;

  var img;
  var x, y, a=false;

  if (arguments.length==2) {
    x= arguments[0];
    y= arguments[1];
    a= true;
  }

  if (arguments.length==4) {
    x= arguments[0];
    y= arguments[1];
    height = arguments[2];
    width = arguments[3];
    a= true;
  }

    img= "<div id='jseyeslayer' style='position:"+
           (a ? "absolute; left:"+x+"; top:"+y : "relative")+
           "; z-index:5; width:"+width+"; height:"+height+"; overflow:hidden'>"+
	     "<div id='jseye1' style='position:absolute; left:96; top:114; z-index:6; width:21; height:29'>"+
	       "<img src='"+jseyeimg+"' onClick=\"location.href='"+jseyeslink+"'\">"+
	     "</div>"+
	     "<div id='jseye2' style='position:absolute; left:152; top:114; z-index:6; width:21; height:29'>"+
	       "<img src='"+jseyeimg+"' onClick=\"location.href='"+jseyeslink+"'\">"+
	     "</div>"+
	     "<img src='"+jseyesimg+"' width="+width+" height="+height+" onClick=\"location.href='"+jseyeslink+"'\">"+
	     "<div id='bocca' style='position:absolute; left:105; top:160; z-index:6;'>" + 
		"<img src='../../images/chat/m_chiusa.jpg' name='mouth' alt='mouth'>" + 
	     "</div>" +
	 "</div>";
    document.write(img);
    jseyeso=jseyesobj('jseyeslayer');
    jseye1=jseyesobj('jseye1');
    jseye2=jseyesobj('jseye2');

    document.onmousemove=jseyesmousemove;
}


// Mouse move events

function jseyesmousemove(e) {
		var mousex=(e)? e.pageX : event.clientX+standardbody.scrollLeft
		var mousey=(e)? e.pageY : event.clientY+standardbody.scrollTop
  jseyesmove(mousex, mousey);
  //return(false);
}

function bottomScroll(){
	var objDiv = document.getElementById("conv_panel");
	objDiv.scrollTop = objDiv.scrollHeight;	
	
}

// Ajax

function send(){
	
	var contextPath = arguments[0];
	var url = contextPath + "conv/response.shtm";
	var text = document.getElementById('domanda').value;
	if(text != ""){
		var params = "type=domanda&answer=" + text;
		if (document.getElementById) {
	        var x = (window.ActiveXObject) ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest();
	    }
	    if (x) {
	        x.onreadystatechange = function()   {
	            if (x.readyState == 4 && x.status == 200) {
	                el = document.getElementById("conversation");
	                el.innerHTML = x.responseText;
	                bottomScroll();
	                //sendExpression(contextPath);
	                sendLucene(contextPath);
	                document.getElementById('domanda').value = "";
	            }
	        }
	    }
		x.open("POST", url, true);
		x.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		x.setRequestHeader("Content-length", params.length);
		x.setRequestHeader("Connection", "close");
	    x.send(params);
	    
	    //setTimeout("defaultImage('" + contextPath +"')", 5000);
	}
    
}

function defaultImage(){
	var contextPath = arguments[0];
	var url = contextPath + "conv/response.shtm";
	var params = "type=image&reset=true";
	if (document.getElementById) {
        var x = (window.ActiveXObject) ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest();
    }
    if (x) {
        x.onreadystatechange = function()   {
            if (x.readyState == 4 && x.status == 200) {
                el = document.getElementById("face");
                el.innerHTML = x.responseText;
            }
        }
    }
	x.open("POST", url, true);
	x.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	x.setRequestHeader("Content-length", params.length);
	x.setRequestHeader("Connection", "close");
    x.send(params);
}

function sendLucene(){
	var contextPath = arguments[0];
	var url = contextPath + "conv/response.shtm";
	var text = document.getElementById('domanda').value;
	var params = "type=lucene&answer=" + text;
	if (document.getElementById) {
        var x = (window.ActiveXObject) ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest();
    }
    if (x) {
        x.onreadystatechange = function()   {
            if (x.readyState == 4 && x.status == 200) {
                el = document.getElementById("lucene");
                el.innerHTML = x.responseText;
            }
        }
    }
	x.open("POST", url, true);
	x.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	x.setRequestHeader("Content-length", params.length);
	x.setRequestHeader("Connection", "close");
    x.send(params);
    
}

function sendExpression(){
	var contextPath = arguments[0];
	var url = contextPath + "conv/response.shtm";
	var params = "type=image";
	if (document.getElementById) {
        var x = (window.ActiveXObject) ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest();
    }
    if (x) {
        x.onreadystatechange = function()   {
            if (x.readyState == 4 && x.status == 200) {
                el = document.getElementById("face");
                el.innerHTML = x.responseText;
            }
        }
    }
	x.open("POST", url, true);
	x.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	x.setRequestHeader("Content-length", params.length);
	x.setRequestHeader("Connection", "close");
    x.send(params);
}

function pulisci(){
	var contextPath = arguments[0];
	var url = contextPath + "conv/response.shtm";
	var params = "type=clear";
	if (document.getElementById) {
        var x = (window.ActiveXObject) ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest();
    }
    if (x) {
        x.onreadystatechange = function()   {
            if (x.readyState == 4 && x.status == 200) {
                el = document.getElementById("conv_panel");
                el.innerHTML = x.responseText;
            }
        }
    }
	x.open("POST", url, true);
	x.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	x.setRequestHeader("Content-length", params.length);
	x.setRequestHeader("Connection", "close");
    x.send(params);
}

function sendEnter(e){
	var contextPath = arguments[1];
	if(window.event)
        key = window.event.keyCode;
	else
        key = e.which;
	
	if(key == 13){
		send(contextPath);
	}
}

