/* MFAPI Version 2.96 Update July 22, 2009 - absolute ip for apiserver*/
/* Copyright 2006-2009 Modiface Inc., Patents Pending, All Rights Reserverd. */

var MFAPIdata={};
MFAPIdata.picture_A="";
MFAPIdata.picture_B="";
MFAPIdata.result="";
MFAPIdata.coords_A="0,0,0,0";
MFAPIdata.width="1";
MFAPIdata.coords_B="0,0,0,0";
MFAPIdata.coords_reg="";
MFAPIdata.facelift="0";
MFAPIdata.lips="0";
MFAPIdata.eyelids="0";
MFAPIdata.forehead="0";
MFAPIdata.aroundeyes="0";
MFAPIdata.brows="0";
MFAPIdata.nose="0";
MFAPIdata.smile="0";
MFAPIdata.smilelines="0";
MFAPIdata.cheeklift="0";
MFAPIdata.weight="0";
MFAPIdata.haircolor="0,0,0,0";
MFAPIdata.lipstick="0,0,0,0";
MFAPIdata.eyeshadow="0,0,0,0";
MFAPIdata.upperblush="0,0,0,0";
MFAPIdata.lowerblush="0,0,0,0";
MFAPIdata.eyedef="0";
MFAPIdata.pucker="0";
MFAPIdata.tan="0";
MFAPIdata.curl="0,0,0";
MFAPIdata.rotate="0";
MFAPIdata.contrast="0";
MFAPIdata.bright="0";
MFAPIdata.skincolor="0,0,0";
MFAPIdata.openmouth="0";
MFAPIdata.aboveeyedef="0";
MFAPIdata.apiserver="";
MFAPIdata.metrics={};

function trim(sValue)
{
return sValue.replace(/^\s+|\s+$/g, "");
}

function MFAPI_pic2url(pic)
{
var a=MFAPIdata.apiserver;
if (a.indexOf(".")>=0)
{
return "http://"+MFAPIdata.apiserver+"/api/img/"+trim(pic)+".jpg";
} else
return "http://api"+MFAPIdata.apiserver+".modiface.com/api/img/"+trim(pic)+".jpg";
}


function MFAPI_reset()
{
MFAPIdata.picture_A="";
MFAPIdata.picture_B="";
MFAPIdata.result="";
MFAPIdata.coords_A="0,0,0,0";
MFAPIdata.width="1";
MFAPIdata.coords_B="0,0,0,0";
MFAPIdata.coords_reg="";
MFAPIdata.facelift="0";
MFAPIdata.lips="0";
MFAPIdata.eyelids="0";
MFAPIdata.forehead="0";
MFAPIdata.aroundeyes="0";
MFAPIdata.brows="0";
MFAPIdata.nose="0";
MFAPIdata.smile="0";
MFAPIdata.smilelines="0";
MFAPIdata.cheeklift="0";
MFAPIdata.weight="0";
MFAPIdata.haircolor="0,0,0,0";
MFAPIdata.eyeshadow="0,0,0,0";
MFAPIdata.lipstick="0,0,0,0";
MFAPIdata.upperblush="0,0,0,0";
MFAPIdata.lowerblush="0,0,0,0";
MFAPIdata.eyedef="0";
MFAPIdata.aboveeyedef="0";
MFAPIdata.tan="0";
MFAPIdata.curl="0,0,0";
MFAPIdata.rotate="0";
MFAPIdata.contrast="0";
MFAPIdata.bright="0";
MFAPIdata.pucker="0";
MFAPIdata.openmouth="0";
MFAPIdata.metrics={};

}

function GetXmlHttpObject() {
  var xmlHttp=null;
  try
  {
    // Firefox, Opera 8.0+, Safari
    xmlHttp=new XMLHttpRequest();
  }
  catch (e)
  {
    // Internet Explorer
    try {
    xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
    }
    catch (e) {
    xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
  }
  return xmlHttp;
}

function MFAPI_modify(action)
{
    var xmlHttp=GetXmlHttpObject();
    if (xmlHttp==null)
    {
      alert("Browser does not support HTTP Request");
      return;
    }
    var url="proxy.php";

    url=url+"?id="+MFAPIdata.picture_A
	+"&coords="+MFAPIdata.coords_A
	+"&facelift="+MFAPIdata.facelift
	+"&nose="+MFAPIdata.nose
	+"&weight="+MFAPIdata.weight
	+"&smile="+MFAPIdata.smile
	+"&smilelines="+MFAPIdata.smilelines
	+"&cheeklift="+MFAPIdata.cheeklift
	+"&brows="+MFAPIdata.brows
	+"&haircolor="+MFAPIdata.haircolor
	+"&eyelids="+MFAPIdata.eyelids
	+"&forehead="+MFAPIdata.forehead
	+"&aroundeyes="+MFAPIdata.aroundeyes
	+"&lips="+MFAPIdata.lips
	+"&lipstick="+MFAPIdata.lipstick
	+"&eyeshadow="+MFAPIdata.eyeshadow
	+"&upperblush="+MFAPIdata.upperblush
	+"&lowerblush="+MFAPIdata.lowerblush
	+"&aboveeyedef="+MFAPIdata.aboveeyedef
	+"&eyedef="+MFAPIdata.eyedef
	+"&pucker="+MFAPIdata.pucker
	+"&tan="+MFAPIdata.tan
	+"&curl="+MFAPIdata.curl
	+"&rotate="+MFAPIdata.rotate
	+"&contrast="+MFAPIdata.contrast
	+"&bright="+MFAPIdata.bright
	+"&skincolor="+MFAPIdata.skincolor
	+"&openmouth="+MFAPIdata.openmouth
	+"&proxyaction=modify"
        +"&apiserver="+MFAPIdata.apiserver;
    callurl="http://www"+MFAPIdata.apiserver+".modiface.com/api/modify.php?id="+MFAPIdata.picture_A
	+"<br>&coords="+MFAPIdata.coords_A
	+"&facelift="+MFAPIdata.facelift
	+"&nose="+MFAPIdata.nose
	+"&weight="+MFAPIdata.weight
	+"&smile="+MFAPIdata.smile
	+"&smilelines="+MFAPIdata.smilelines
	+"<br>&cheeklift="+MFAPIdata.cheeklift
	+"&brows="+MFAPIdata.brows
	+"&haircolor="+MFAPIdata.haircolor
	+"&eyelids="+MFAPIdata.eyelids
	+"&forehead="+MFAPIdata.forehead
	+"&aroundeyes="+MFAPIdata.aroundeyes
	+"&lips="+MFAPIdata.lips
	+"<br>&lipstick="+MFAPIdata.lipstick
	+"&eyeshadow="+MFAPIdata.eyeshadow
	+"&upperblush="+MFAPIdata.upperblush
	+"&lowerblush="+MFAPIdata.lowerblush
	+"&aboveeyedef="+MFAPIdata.aboveeyedef
	+"&eyedef="+MFAPIdata.eyedef
	+"&pucker="+MFAPIdata.pucker
	+"&tan="+MFAPIdata.tan
	+"&curl="+MFAPIdata.curl;
    xmlHttp.onreadystatechange=function()
    {
      if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
      {
        MFAPIdata.result=xmlHttp.responseText;
        callurlresponse=xmlHttp.responseText;
	on_MFAPI_complete(action);
	mf_modification_lock=0;
     }
    }
    xmlHttp.open("GET",url,true);
    xmlHttp.send(null);

}


function MFAPI_metrics(action)
{
    var xmlHttp=GetXmlHttpObject();
    if (xmlHttp==null)
    {
      alert("Browser does not support HTTP Request");
      return;
    }
    var url="proxy.php";

    url=url+"?id="+MFAPIdata.picture_A
	+"&coords="+MFAPIdata.coords_A
	+"&proxyaction=metrics"
        +"&apiserver="+MFAPIdata.apiserver;
    xmlHttp.onreadystatechange=function()
    {
      if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
      {
        var x=xmlHttp.responseText;
	y=x.split(',');
	MFAPIdata.metrics.skincolor=new Array();
	MFAPIdata.metrics.skincolor[0]=y[25]+","+y[26]+","+y[27];
	MFAPIdata.metrics.skincolor[1]=y[29]+","+y[30]+","+y[31];
	MFAPIdata.metrics.skincolor[2]=y[33]+","+y[34]+","+y[35];
	MFAPIdata.metrics.skincolorweight=new Array(y[28],y[32],y[36]);

	MFAPIdata.metrics.haircolor=new Array();
	MFAPIdata.metrics.haircolor[0]=y[0]+","+y[1]+","+y[2];
	MFAPIdata.metrics.haircolor[1]=y[4]+","+y[5]+","+y[6];
	MFAPIdata.metrics.haircolor[2]=y[8]+","+y[9]+","+y[10];
	MFAPIdata.metrics.haircolorweight=new Array(y[3],y[7],y[11]);

	MFAPIdata.metrics.haircolorredness=y[12];
	MFAPIdata.metrics.haircolorbrightness=y[13];
	MFAPIdata.metrics.haircolorname=y[14];
	MFAPIdata.metrics.skincolorname=y[40];

	MFAPIdata.metrics.skinscan=new Array(y[15],y[16],y[17],y[18],y[19],y[20],y[21],y[22],y[23],y[24]);
	MFAPIdata.metrics.mouthopen=y[37];
	MFAPIdata.metrics.imagewidth=y[38];
	MFAPIdata.metrics.imageheight=y[39];

	on_MFAPI_complete(action);
     }
    }
    xmlHttp.open("GET",url,true);
    xmlHttp.send(null);

}

function MFAPI_mix(action)
{
	
    var xmlHttp=GetXmlHttpObject();
    if (xmlHttp==null)
    {
      alert("Browser does not support HTTP Request");
      return;
    }
    var url="proxy.php";
    url=url+"?idA="+MFAPIdata.picture_A
	+"&coordsA="+MFAPIdata.coords_A
	+"&idB="+MFAPIdata.picture_B
	+"&coordsB="+MFAPIdata.coords_B
	+"&proxyaction=mix"
        +"&apiserver="+MFAPIdata.apiserver;

    
    xmlHttp.onreadystatechange=function()
    {
      if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
      {
        MFAPIdata.result=xmlHttp.responseText;
	on_MFAPI_complete(action);
     }
    }
    xmlHttp.open("GET",url,true);
    xmlHttp.send(null);

}

function MFAPI_register(urlx,action)
{
    var xmlHttp=GetXmlHttpObject();
    if (xmlHttp==null)
    {
      alert("Browser does not support HTTP Request");
      return;
    }
    var url="proxy.php";
    url=url+"?im="+urlx
	+"&proxyaction=register"
       +"&apiserver="+MFAPIdata.apiserver+"&cachefix="+Math.random();
    if (MFAPIdata.coords_reg!="") url+="&coords="+MFAPIdata.coords_reg;
    callurl="http://www"+MFAPIdata.apiserver+".modiface.com/api/register.php"+"?im="+urlx;
    xmlHttp.onreadystatechange=function()
    {
      if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
      {
  	tempArray=new Array();
  	tempArray=xmlHttp.responseText.split(",");
	callurlresponse=xmlHttp.responseText;
        MFAPIdata.picture_A=tempArray[0];
        MFAPIdata.picture_B=tempArray[0];
        MFAPIdata.result=tempArray[0];
        MFAPIdata.coords_A=tempArray[1]+','+tempArray[2]+','+tempArray[3]+','+tempArray[4];
	MFAPIdata.width=parseInt(tempArray[6]);
	MFAPIdata.coords_B=MFAPIdata.coords_A;
	MFAPIdata.metrics.facescore=tempArray[5];
	tempArray2=new Array();
	tempArray2=MFAPIdata.picture_A.split("-");
	MFAPIdata.apiserver=tempArray2[1];
	on_MFAPI_complete(action);

     }
    }
    xmlHttp.open("GET",url,true);
    xmlHttp.send(null);

}

function MFAPI_cutout(action)
{
    var xmlHttpco=GetXmlHttpObject();
    if (xmlHttpco==null)
    {
      alert("Browser does not support HTTP Request");
      return;
    }

    var url="proxy.php";
    url=url+"?id="+MFAPIdata.result
	+"&coords="+MFAPIdata.coords_A
	+"&proxyaction=cutout"
       +"&apiserver="+MFAPIdata.apiserver+"&cachefix="+Math.random();
    xmlHttpco.onreadystatechange=function()
    {
      if (xmlHttpco.readyState==4 || xmlHttpco.readyState=="complete")
      {
	on_MFAPI_complete(action);

     }
    }
    xmlHttpco.open("GET",url,true);
    xmlHttpco.send(null);

}

