﻿// JScript File

var curX;
var curY;
var isClicked = false;
var gapX;
var gapY;

function MouseMoveEventHandler(){
    if (document.getElementById("Div_Metadata") != null)
    {
        //ie --> all internet explorer browsers
        //cf browser.js
        if (ie){
              document.body.onmousedown = getPositionMouse;
              document.body.onmousemove = moveMouse;
              document.body.onmouseup = upMouse;
        }
        else{
              document.captureEvents(Event.MOUSEDOWN);
              document.body.onmousedown = getPositionMouse;
              document.captureEvents(Event.MOUSEMOVE);
              document.body.onmousemove = moveMouse;
              document.captureEvents(Event.MOUSEUP);
              document.body.onmouseup = upMouse;
        }
    }
}

function getPositionMouse(e){
    e = e || event;
    curX = !isNaN(e.pageX) ? e.pageX : e.x+document.body.scrollLeft;
    curY = !isNaN(e.pageY) ? e.pageY : e.y+document.body.scrollTop;
}

function downAction(pElement,e){
	if(pElement != null && pElement.id=="Div_Metadata"){
	    isClicked = true;
    	
	    getPositionMouse(e);
    	
	    gapX = curX - parseInt(pElement.style.left);
	    gapY = curY - parseInt(pElement.style.top);
        
        changeCursor(document.getElementById("tomove"), e);
    }
}

function moveMouse(e){
    var currentElement = document.getElementById("Div_Metadata");
	if(currentElement != null && isClicked == true){
	    var newPosX;
	    var newPosY;
		getPositionMouse(e);
		newPosX = curX - gapX;
		newPosY = curY - gapY;
		currentElement.style.left = newPosX + 'px';
		currentElement.style.top = newPosY + 'px';
	}
	else{
		changeCursor(document.getElementById("tomove"), e);
	}
}

//function moveAction(pElement, e){
//	if(pElement != null && isClicked == true){
//	    var newPosX;
//	    var newPosY;
//		getPositionMouse(e);
//		newPosX = curX - gapX;
//		newPosY = curY - gapY;
//		pElement.style.left = newPosX + 'px';
//		pElement.style.top = newPosY + 'px';
//	}
//	else{
//		changeCursor(pElement, e);
//	}
//}

function changeCursor(pElement, e){
	if(pElement != null){
	    pElement.style.cursor = 'move';
	}
}

//function leaveAction(pElement){
//	if(pElement != null){
//		isClicked = false;
//	}
//}

function upMouse(pElement){
	var currentElement = document.getElementById("Div_Metadata");
	if(currentElement != null){
		isClicked = false;
	}
}

function getScrollX(){
    //saf --> safari browser
    //cf browser.js
    return saf == true ? document.body.scrollLeft : document.documentElement.scrollLeft;
}

function getScrollY(){
    //saf --> safari browser
    //cf browser.js
    return saf == true ? document.body.scrollTop : document.documentElement.scrollTop;
}

function ShowMetadata(type,meta,column,row,location){
    //params:
    //type = indep or linked
    //meta = the type of element the metadata is about (indicator,PARTNER_CD,...)
    //column = if the meta is corresponding to a column, gives the key (indicator in TI)
    //row = if the meta is corresponding to a row, gives the key (product or country)
    var currentElement = document.getElementById("Div_Metadata");
    if (currentElement != null){
        divMetaWidth = parseInt(currentElement.style.width.substring(0,currentElement.style.width.length-2));
        divMetaHeight = parseInt(currentElement.style.height.substring(0,currentElement.style.height.length-2));
        var posMouseX = curX;
        var posMouseY = curY;
        maxX = document.body.clientWidth + getScrollX();
        maxY = document.body.clientHeight + getScrollY();
        if (posMouseX+divMetaWidth > maxX){
            posMouseX = maxX - divMetaWidth;
        }
        if (posMouseY+divMetaHeight > maxY){
            posMouseY = maxY - divMetaHeight;
        }
        currentElement.style.left = posMouseX + "px";
        currentElement.style.top = posMouseY + "px";
        currentElement.style.visibility = "visible";
        
        //iframe loading
        var url = "./MetadataPopup.aspx?type=" + type + "&meta=" + meta + "&column=" + column + "&row=" + row + "&location=" + location;
        document.getElementById("Iframe_Metadata").setAttribute("src",url);
    }
}

function HideMetadata() {
    document.getElementById("Div_Metadata").style.visibility = "hidden";
}

function MaximizeMetadata() {
    var currentElement = document.getElementById("Div_Metadata");
    if (currentElement != null){
        currentElement.style.left = 0 + "px";
        currentElement.style.top = 0 + "px";
        currentElement.style.width = parseInt(document.body.clientWidth + getScrollX()) + "px";
        currentElement.style.height = parseInt(document.body.clientHeight + getScrollY()) + "px";
    }
}

function NewWindowMetadata() {
    var url = document.getElementById("Iframe_Metadata").getAttribute("src");
    var newUrl = "./MetadataPage.aspx" + url.substring(url.indexOf("?"),url.length);
    var newWindow = window.open(newUrl, 'meta');
    newWindow.focus();
    
    var currentElement = document.getElementById("Div_Metadata");
    currentElement.style.visibility = "hidden";
    
}

function SendPrintMeta(){
    var hauteur=500;
    var largeur=800;
    var haut=(screen.height-hauteur)/2;
    var Gauche=(screen.width-largeur)/2;
    var url = document.getElementById("Iframe_Metadata").getAttribute("src");
    var newUrl = "./MetadataPage.aspx" + url.substring(url.indexOf("?"),url.length) + "&print=yes";
    var docprint= window.open(newUrl,"", "top="+haut+",left="+Gauche+",width="+largeur+",height="+hauteur+",status=no,toolbar=no,menubar=no,location=no,scrollbars=yes");
}