
//iconDemensions = new Array();
iconImgs = new Array();
iconTitles = new Array();


var container;
var iconContainerWidth
var iconContainerHeight

var containerTop = 0;
var containerLeft = 0;
var rows


var IE = document.all?true:false;

if (!IE)
{
        document.addEventListener("mousemove", function(event) { getMouseXY(event); }, false);
}
else
{
        document.attachEvent('onmousemove', getMouseXY);
}




var tempX = 0;
var tempY = 0;

function getMouseXY(e)
{
        if (IE)
        { // grab the x-y pos.s if browser is IE
                tempX = event.clientX + document.body.scrollLeft;
                tempY = event.clientY + document.body.scrollTop;
        }
        else
        { // grab the x-y pos.s if browser is NS
                tempX = e.pageX;
                tempY = e.pageY;
        }
        if (tempX < 0){tempX = 0;}
        if (tempY < 0){tempY = 0;}

        //somealert(tempX);

        zoomIcons(tempX,tempY);
}

function zoomIcons(x,y)
{

         row = -1;

        var iconContainerTop = 0;

         for(i = 0;i < iconImgs.length;i++)
         {
                var iconCenterLeft = parseFloat(iconImgs[i].style.left) + (iconImgs[i].width / 2) + containerLeft;
                var iconCenterTop = parseFloat(iconImgs[i].style.top) + (iconImgs[i].height / 2) + containerTop;

                var distance = Math.sqrt(Math.pow(x - iconCenterLeft, 2) + Math.pow(y - iconCenterTop, 2))

                if ((i % iconsToRow) == 0)
                {
                        row++;
                        iconContainerTop = (row / rows) * container.clientHeight;
                }

                var iconContainerLeft = ((i % iconsToRow) / iconsToRow) * container.clientWidth;

                var ratio = 0;

                if (distance < zoomRadius)
                {
                        ratio = Math.sqrt((zoomRadius - distance) / zoomRadius);
                }
                else
                {
                        ratio = 0;
                }

                //var ratio = (Math.sqrt((zoomRadius - distance) / zoomRadius)) * (maxZoom - minZoom) + minZoom;
                var zoomRatio = ratio * (maxZoom - minZoom) + minZoom;
                iconImgs[i].width = iconSize * zoomRatio;
                iconImgs[i].height = iconSize * zoomRatio;

                var iconLeft = iconContainerLeft + (iconContainerWidth / 2) - (iconImgs[i].width / 2);
                var iconTop = iconContainerTop + (iconContainerHeight / 2) - (iconImgs[i].height / 2);

                opacity = ratio * (maxOpacity - minOpacity) + minOpacity;

                if (IE)
                {
                        iconImgs[i].style.filter = "alpha(opacity=" + Math.round(opacity * 100) + ")"
                }
                else
                {
                        iconImgs[i].style.opacity = opacity;
                }


                iconImgs[i].style.top = iconTop + "px";
                iconImgs[i].style.left = iconLeft + "px";
                iconTitles[i].style.top = (iconTop + iconImgs[i].height) + "px";
                iconTitles[i].style.left = (iconLeft + (iconImgs[i].width / 2) - (iconTitles[i].clientWidth / 2)) + "px";

         }
}

for(i = 0;i < icons.length;i++)
{
        iconImgs[i] = new Image();
        iconImgs[i].src = icons[i][0];

}


function initIcons()
{
        container = document.getElementById(zoomcontainer);
        container.style.position = "relative";

        rows = parseInt(iconImgs.length / iconsToRow);

        if ((iconImgs.length % iconsToRow) > 0)
        {
                rows++;
        }

        //alert(rows)

        var row = -1;

        var iconContainerTop = 0;

        iconContainerWidth = container.clientWidth / iconsToRow;
        iconContainerHeight = container.clientHeight / rows;

        for(i = 0;i < iconImgs.length;i++)
        {
                //iconDemensions[i] = new Array(iconImgs[i].width,iconImgs[i].height);

                if ((i % iconsToRow) == 0)
                {
                        row++;
                        iconContainerTop = (row / rows) * container.clientHeight;
                }
                var iconContainerLeft = ((i % iconsToRow) / iconsToRow) * container.clientWidth;

                iconLeft = iconContainerLeft + (iconContainerWidth / 2) - ((iconSize * minZoom) / 2)
                iconTop = iconContainerTop + (iconContainerHeight / 2) - ((iconSize * minZoom) / 2)

                iconImgs[i].width = iconImgs[i].width * minZoom;
                iconImgs[i].height = iconImgs[i].height * minZoom;

                iconImgs[i].style.border = "0px solid #000000";
                iconImgs[i].style.position = "absolute";
                iconImgs[i].style.top = iconTop + "px";
                iconImgs[i].style.left = iconLeft + "px";
                iconImgs[i].id = "zoomIcon" + i;

                iconTitles[i] = document.createElement("div");

                iconTitles[i].innerHTML = icons[i][2];
                iconTitles[i].id = "iconTitle" + i;
                iconTitles[i].style.display = "none";
                iconTitles[i].style.color = "#ffffff";
                iconTitles[i].style.fontFamily = "tahoma";
                iconTitles[i].style.fontWeight = "bold";
                iconTitles[i].style.fontSize = "12px";
                iconTitles[i].style.position = "absolute";

                if (IE)
                {
                        iconImgs[i].style.filter = "alpha(opacity=" + Math.round(minOpacity * 100) + ")"
                        iconImgs[i].attachEvent('onclick', doClick);
                        iconImgs[i].attachEvent('onmouseover', toggleTitle);
                        iconImgs[i].attachEvent('onmouseout', toggleTitle);
                }
                else
                {
                        iconImgs[i].style.opacity = minOpacity;
                        iconImgs[i].addEventListener("click", function(event) { doClick(event); }, false);
                        iconImgs[i].addEventListener("mouseover", function(event) { toggleTitle(event); }, false);
                        iconImgs[i].addEventListener("mouseout", function(event) { toggleTitle(event); }, false);
                }

                container.appendChild(iconImgs[i]);
                container.appendChild(iconTitles[i]);

        }

        var oElement = container;

        while( oElement != null )
        {
                containerTop += oElement.offsetTop;
                containerLeft += oElement.offsetLeft;
                oElement = oElement.offsetParent;
        }


        zoomIcons(0,0);

}


function doClick(e)
{
        if (!e) var e = window.event;
        var ele;
        if (IE)
        {
                ele = window.event.srcElement;
        }
        else
        {
                ele = e.currentTarget;
        }
        index = parseInt(ele.id.replace("zoomIcon", ""));
        href = icons[index][1];
        title = icons[index][2]
        top.location.href = href;

        openShadowBox(href, 900, 500, e, title);
}

function toggleTitle(e)
{
        if (!e) var e = window.event;
        var ele;
        if (IE)
        {
                ele = window.event.srcElement;
        }
        else
        {
                ele = e.currentTarget;
        }
        index = parseInt(ele.id.replace("zoomIcon", ""));


        if (iconTitles[index].style.display == "none")
        {
                iconTitles[index].style.display = "block";
        }
        else
        {
                iconTitles[index].style.display = "none";
        }
}