var TagCloud = function(){

    var DEFAULT_UNIT = '%';
    var DEFAULT_TEXT_PROPERTY = 'text';
    var DEFAULT_VALUE_PROPERTY = 'value';

    var gatherStatistics = function(data, config){

        var currentMax = data[0][config.valueProperty];
        var currentMin = data[0][config.valueProperty];

        for(var i = 0; i < data.length; i++){
            var value = data[i][config.valueProperty];

            currentMax = (currentMax < value)?value:currentMax;
            currentMin = (currentMin > value)?value:currentMin
        }

        return {
            max  : currentMax,
            min  : currentMin,
            mid  : (currentMax+currentMin)/2,
            unit : (currentMax-currentMin)/100
        };
    }

    var defaultScaler = function(value, rangeData){
        return ((value/rangeData.max)*100)+100;
    }

    return {
        process : function(data, config){
            config = config || {};

            config.unit = config.unit || DEFAULT_UNIT;
            config.textProperty = config.textProperty || DEFAULT_TEXT_PROPERTY;
            config.valueProperty = config.valueProperty || DEFAULT_VALUE_PROPERTY;

            var dataRange = gatherStatistics(data, config);
            var scaler = config.scaler || defaultScaler;

            for(var i = 0; i < data.length; i++){
                var scale = scaler(data[i][config.valueProperty], dataRange);
                config.renderer(data[i][config.textProperty], scale, config.unit);
            }
        }
    }
}();

var cloudData = [
    {text:"<a href='index.php?page=enlaces'>enlaces</a>", value:40},
    {text:"<a href='index.php?page=segurtek-s-l'>segurtek</a>", value:50},
    {text:"<a href='index.php?page=procesos'>procesos</a>", value:10},
    {text:"<a href='index.php?page=contacto'>delegaciones</a>", value:20},
    {text:"<a href='index.php?page=lopd'>lopd</a>", value:30},
    {text:"<a href='index.php?page=mision-y-valores'>misi&oacute;n</a>", value:30},
    {text:"<a href='index.php?page=consulting-orbere-s-l'>consulting</a>", value:60},
    {text:"<a href='index.php?page=personas'>personas</a>", value:20},
    {text:"<a href='index.php?page=certificaciones'>certificaciones</a>", value:10},
    {text:"<a href='index.php?page=cliente'>cliente</a>", value:10},
    {text:"<a href='index.php?page=sostenalia-s-l'>sostenalia</a>", value:20},
    {text:"<a href='index.php?page=mercados'>mercados</a>", value:10},
    {text:"<a href='index.php?page=proyectos'>proyectos</a>", value:40},
    {text:"<a href='index.php?page=productos'>productos</a>", value:10},
    {text:"<a href='index.php?page=integralia-s-l'>integralia</a>", value:50},
    {text:"<a href='index.php?page=subvenciones'>subvenciones</a>", value:30},
    {text:"<a href='index.php?page=gestion'>gesti&oacute;n</a>", value:20},
    {text:"<a href='index.php?page=homologaciones'>homologaciones</a>", value:10}
];
TagCloud.process(cloudData,{
    renderer : function(text, size, unit){
        var cur = ((size < 30) && (size >= 20))?"italic":"none";
        var bol = ((size < 50) && (size >= 10))?"bold":"none";
        var upp = ((size < 20) && (size >= 10))?"uppercase":"lowercase";
        document.write(" <span style=\"font-size:" + size + unit + ";font-style:" + cur + ";font-weight:" + bol + ";text-transform:" + upp + ";\">" + text + "</span>");
    }
    ,scaler : function(value, rangeData){

        var MAXFONTSIZE = 30;
        var MINFONTSIZE = 12;

        var spread = rangeData.max - rangeData.min;

        if(spread == 0){
            spread = 1;
        }

        return MINFONTSIZE + (value - rangeData.min) *
               (MAXFONTSIZE - MINFONTSIZE) / spread;

    }
    ,unit : 'px'
});
