var decoURL;

//definitions for add types
var modelT = "0";
var texT = "1";
var frescoT = "2";
var windowT = "5";
var airModelT = "3";
var ceilingModelT = "4";
var modelWithLightT = "6";
var avatarT="16";

//Get X position
function obtenerPosicionX(elemento)
{
var x=0;
while(elemento)
{
x += elemento.offsetLeft;
elemento=elemento.offsetParent;
}
return x;
}

//Get Y position
function obtenerPosicionY(elemento)
{
var y=0;
while(elemento)
{
y += elemento.offsetTop;
elemento=elemento.offsetParent;
}
return y;
}


function setCookie(c_name,value,expiredays)
{
var exdate=new Date()
exdate.setDate(exdate.getDate()+expiredays)
document.cookie=c_name+ "=" +escape(value)+
((expiredays==null) ? "" : ";expires="+exdate.toGMTString())
	+";path="+"/";
}

function getCookie(c_name)
{
if (document.cookie.length>0)
  {
  c_start=document.cookie.indexOf(c_name + "=")
  if (c_start!=-1)
    { 
    c_start=c_start + c_name.length+1 
    c_end=document.cookie.indexOf(";",c_start)
    if (c_end==-1) c_end=document.cookie.length
    return unescape(document.cookie.substring(c_start,c_end))
    } 
  }
return ""
}


var dragInProcess=false;

function InitiateDragEx(event, url, type, transp) 
/*  The setData parameters tell the source object
    to transfer data as a URL and provide the path.  */
{
//	alert("event:"+event);
//	alert("event data:"+event.dataTransfer);
//	alert("url:"+url);
	event.dataTransfer.setData("URL", url);
//	alert("wa"+event.dataTransfer.getData("URL"));
//    event.dataTransfer.setData("URL", url);
    //event.dataTransfer.setData("TYPE", ""+type);
    setCookie("decoURL", url, 1);
    setCookie("decoTYPE", type, 1);
    setCookie("decoDrag", "false", 1);
    setCookie("decoTrans", transp, 1);
    dragInProcess = true;
}

function InitiateDragFromOtherPageEx(event, url, type, transp) 
/*  The setData parameters tell the source object
    to transfer data as a URL and provide the path.  */
{
    event.dataTransfer.setData("URL", url);
    //event.dataTransfer.setData("TYPE", ""+type);
    setCookie("decoURL", url, 1);
    setCookie("decoTYPE", type, 1);
    setCookie("decoDrag", "true", 1);
	setCookie("decoTrans", transp, 1);
    
    dragInProcess = true;
    //alert("cookie set" +getCookie("decoURL"));
    //setCookie("decoFurnType", furnType, 1);
//    alert('init drag over!');
}

function InitiateDragWithLightingFromOtherPageEx(event, url, type, transp,
	    fAngle, fAsp, fDirX, fDirY, fDirZ, fOffsetX, fOffsetY, fOffsetZ, fColorR,
	    fColorG, fColorB) 
/*  The setData parameters tell the source object
    to transfer data as a URL and provide the path.  */
{
    event.dataTransfer.setData("URL", url);
    //event.dataTransfer.setData("TYPE", ""+type);
    setCookie("decoURL", url, 1);
    setCookie("decoTYPE", "6", 1);
    setCookie("decoDrag", "true", 1);
    setCookie("decoTrans", transp, 1);
    
    setCookie("decoAngle", fAngle);
    setCookie("decoAsp", fAsp);
    setCookie("decoDirX", fDirX);
    setCookie("decoDirY", fDirY);
    setCookie("decoDirZ", fDirZ);
    setCookie("decoOffsetX", fOffsetX);
    setCookie("decoOffsetY", fOffsetY);
    setCookie("decoOffsetZ", fOffsetZ);
    setCookie("decoColorR", fColorR);
    setCookie("decoColorG", fColorG);
    setCookie("decoColorB", fColorB);
    

    dragInProcess = true;
    //alert("cookie set" +getCookie("decoURL"));
    //setCookie("decoFurnType", furnType, 1);
//    alert('init drag over!');
}


function NotifyRefresh(oEvent)
{
var decox = obtenerPosicionX(document.getElementById('Active'));//document.getElementById('Active').style.left;
var decoy = obtenerPosicionY(document.getElementById('Active'));//document.getElementById('Active').style.top;
var offx = oEvent.clientX - decox;
var offy = oEvent.clientY - decoy;
//cxz
top.window.NotifyControlRefresh(offx, offy);
//alert('wow'+offx+':'+offy);
}

function FinishDrag(oEvent)
/*  The parameter passed to getData tells the target
    object what data format to expect.  */
{
	//alert('finishdragging');
	if(!dragInProcess)
	{
		if(getCookie("decoDrag") != "true")//between-pages check
		{
		//alert("aaa");
			//return;
			}
	}		
	dragInProcess = false;

    var decoURL = oEvent.dataTransfer.getData("URL");
    var decoType;// = event.dataTransfer.getData("TYPE");
    var decoFurnType;
    var decoTrans;

    if(decoURL == null)
    {
    decoURL = getCookie("decoURL");
    }
    if(decoType == null)
    {
    decoType = getCookie("decoTYPE");
    }
    decoTrans = getCookie("decoTrans");
    
    fAngle = parseFloat(getCookie("decoAngle"));
    fAsp = parseFloat(getCookie("decoAsp"));
    fDirX = parseFloat(getCookie("decoDirX"));
    fDirY = parseFloat(getCookie("decoDirY"));
    fDirZ = parseFloat(getCookie("decoDirZ"));
    fOffsetX = parseFloat(getCookie("decoOffsetX"));
    fOffsetY = parseFloat(getCookie("decoOffsetY"));
    fOffsetZ = parseFloat(getCookie("decoOffsetZ"));
    fColorR  = parseFloat(getCookie("decoColorR"));
    fColorG  = parseFloat(getCookie("decoColorG"));
    fColorB  = parseFloat(getCookie("decoColorB"));
    
    if(decoURL == null || decoType == null || decoTrans == null)
    {
    alert("Add failed, plz enable cookie in your browser.");
    return;
    }
	//alert(decoURL+":"+decoType);
    if(decoType == modelT)//model
    {
		//cxz
        top.window.addDecoObject("", decoURL, decoURL, 0, -50, -50, -50, 50, 50, 50, 1);
        NotifyRefresh(oEvent);
    }
    else if (decoType == avatarT) //avatar
{
        top.window.addDecoObject("", decoURL, decoURL, 16, -50, -50, -50, 50, 50, 50, 1);
        NotifyRefresh(oEvent);
}
    else if(decoType == modelWithLightT){
	top.window.addDecoObjectWithLight("", decoURL, decoURL, 0, -50, -50, -50, 50, 50, 50, 1,
					  fAngle, fAsp, fDirX, fDirY, fDirZ, fOffsetX, fOffsetY, fOffsetZ, fColorR, fColorG, fColorB);
    }
	else if(decoType == airModelT)
	{
		top.window.addDecoObject("", decoURL, decoURL, 1, -50, -50, -50, 50, 50, 50, 1);
        NotifyRefresh(oEvent);
	}
	else if(decoType == ceilingModelT)
	{
		top.window.addDecoObject("", decoURL, decoURL, 2, -50, -50, -50, 50, 50, 50, 1);
        NotifyRefresh(oEvent);
	}
    else if(decoType == texT)//tex
    {
        top.window.addTexFromEx(decoURL, parseFloat(decoTrans));
        NotifyRefresh(oEvent);
    }
    else if(decoType == frescoT)//window/door
    {
        top.window.addFrescoFrom(decoURL);
        NotifyRefresh(oEvent);
    }
	else if(decoType == windowT)
	{
		//alert('Fresco!');
		top.window.addWinFrom(decoURL);
        NotifyRefresh(oEvent);
	}
    
//    alert(decoURL);
  //  oTarget.innerText = decoURL;
    
}
