﻿/// <reference path="jquery.intellisense.js"/>
/// <reference path="core.js"/>

/***********************************************************************************************************/
/*
*   Funzioni di carattere generale
*/
function htmlDecode(str) 
{
    return str.replace(/&apos;/g, "'")
        .replace(/&quot;/g, '"')
        .replace(/&gt;/g, '>')
        .replace(/&lt;/g, '<')
        .replace(/&amp;/g, '&')
        .replace(/&25/g, '%');
}

/*
*   Converte da stringa di attributi (tipo property style, es "position:absolute; text-align=center;" ad array 
*   di coppie nome attributo - valore
*/
function GetCssAttribList(list)
{
    var attribList = list.split(";");
    for(i=0;i<attribList.length;i++)
    {
        attribList[i] = attribList[i].split(":");
        if(attribList[i].length>1)
        {
            attribList[i][0] = $j.trim(attribList[i][0]).toString();
            attribList[i][1] = $j.trim(attribList[i][1]).toString();
        }
    }
    return attribList;
}
/***********************************************************************************************************/

/***********************************************************************************************************/
// Funzione di supporto per importare un XML nel DOM
function importXML(xmlString)
{
    // code for IE
    if (window.ActiveXObject)
      {
      var doc=new ActiveXObject("Microsoft.XMLDOM");
      doc.async="false";
      doc.loadXML(xmlString);
      }
    // code for Mozilla, Firefox, Opera, etc.
    else
      {
      var parser=new DOMParser();
      var doc=parser.parseFromString(xmlString,"text/xml");
      }

    return doc.documentElement;
}
/***********************************************************************************************************/


/*
*   Ritorna un numero (oppure Nan)
*   value può essere espresso come stringa, valore assoluto o percentuale
*   refferedValue è il valore corrispondente al 100% (es. value=100% --> return refferedValue)
*/
function toNumber(value, refferedValue)
{
    //se è una stringa
    if(typeof(value)=="string")
    {
        //il valore va controllato (può essere espresso in percentuale)
        if(value.toLowerCase().indexOf('%')!=-1)
            //valore espresso in percentuale
            return realValue = Math.round(refferedValue * parseInt(value) /100);
        else
            return parseInt(value);
    }
    
    return (typeof(value)!="number")?parseInt(value):value;
}

/*
*   cerca di posizionare un elemento di dimensioni "dimension" alla 
*   posizione "coordinate" in uno spazio di dimensione max "maxDimension"
*   es computePositionInScreen(x, width, scrrenWidth)
*   NB non considera dimensioni percentuali
*
*   Ritorna un risultato numerico
*/
function computePositionInScreen(coordinate, dimension, maxDimension)
{
    //converte in numero i valori passati (fa da controllo errori che siano passate tutte le variabili)
    //maxDimension non può essere espresso in percentuale
    var maxDimension_number = toNumber(maxDimension);
    var coordinate_number = toNumber(coordinate,maxDimension_number);
    var dimension_number = toNumber(dimension,maxDimension_number);
    //in caso ci sia un NaN ritorna coordinata 0
    if(isNaN(coordinate_number) || isNaN(dimension_number) || isNaN(maxDimension_number))
        return 0;
        
    if(coordinate_number+dimension_number<=maxDimension_number)
        //ci sta alla posizione coordinate
        return coordinate_number;
    if(dimension_number<=coordinate_number)
        //ci sta specchiato rispetto a coordinate
        return coordinate_number-dimension_number;
    if(dimension_number<=maxDimension_number)
        //allineato a destra rispetto maxDimension
        return maxDimension_number-dimension_number;

    //caso base: allineato all'inizio
    return 0;
}

/*************************************************************************
Codice per montenere traccia della posizione del mouse vis JS
*************************************************************************/
xMousePos = 0; 
yMousePos = 0; 
jQuery(document).ready(function(){
   $j(document).mousemove(function(e){
      xMousePos = e.pageX;
      yMousePos = e.pageY;
   }); 
})
/*************************************************************************/
