﻿    function cacheImage(imgSrc)
    {
      if(document.images)
      {
        var img = new Image();
        img.src = imgSrc;
      }
    }
    
    // Number or alternative images
    var imgCount = 43;
    
    var cachedImages = new Array();
    //we need to cache 11 random images to display in when mouse moves over the boxes
    for(var i=2;i<=12;i++)
    {
        var url;
        do 
        {
            var unique = true;
            var imgNo = Math.floor(Math.random()*imgCount+1);
            var imgStr = imgNo < 10 ? "0"+imgNo : imgNo;
            url = "images/alt"+imgNo+".jpg";
            for(var j=2;j<cachedImages.length;j++)
            {
                if(cachedImages[j]==url)
                {
                    unique = false;
                    break;
                }
            }
        }
        while(!unique)
        cacheImage(url);
        cachedImages[i] = url;
        
    }

    var fadeTimeout = 20;
    var fadeInTimers = new Dictionary();
    var fadeOutTimers = new Dictionary();

    var dict = new Dictionary();
    function showImage(e, divObj)
    {
	    if(!dict.exists(divObj.id))
        {
            var img = document.createElement("img");
            img.src = cachedImages[parseInt(divObj.id.substring(3),10)];
            img.style.position = "absolute";
            img.style.left = getAscendingLefts(divObj)+"px";
            img.style.top= getAscendingTops(divObj)+"px";
            img.style.opacity = "0";
            img.style.filter = "alpha(opacity=0)";
            img.style.zIndex = 10;
            divObj.appendChild(img);
            dict.setVal(divObj.id, img);
            fadeIn(divObj.id);
        }
        else
        {
            var img = dict.getVal(divObj.id);
            img.style.left = getAscendingLefts(divObj)+"px";
            img.style.top = getAscendingTops(divObj)+"px";
            fadeIn(divObj.id);
        }
    }
    
    function hideImage(e, divObj)
    {
        fadeOut(divObj.id);
    }
    
    function fadeIn(divId)
    {
        var img = dict.getVal(divId);
        if(img)
        {
            var op = parseFloat(img.style.opacity);
            op += 0.1;
            if(op>0.9) op = 1.0;
            img.style.opacity = op;
            img.style.zIndex = 10;
            img.style.filter = "alpha(opacity=" + op*100 + ")";
            if(op<1.0)
                fadeInTimers.setVal(divId, setTimeout("fadeIn('"+divId+"')", fadeTimeout));
            clearTimeout(fadeOutTimers.getVal(divId));
        }
    }
    
    function fadeOut(divId)
    {
        var img = dict.getVal(divId);
        if(img)
        {
            var op = parseFloat(img.style.opacity);
            op -= 0.1;
            if(op<0.1) op = 0.0;
            img.style.opacity = op;
            img.style.filter = "alpha(opacity=" + op*100 + ")";
            if(op>0.0)
                fadeOutTimers.setVal(divId, setTimeout("fadeOut('"+divId+"')", fadeTimeout));
            clearTimeout(fadeInTimers.getVal(divId));
        }
    }
    
    function supressBubbling(e)
    {
        if (!e) var e = window.event;
	    e.cancelBubble = true;
	    if (e.stopPropagation) e.stopPropagation();
    }
    
    function updateCmsText(sender, senderServerId, alias, fields, updatedTextId, updatedTitleId)
    {
       var dlg = window.showModalDialog('CmsTextBoxEditDialog.aspx?alias='+alias+'&fields='+fields
        ,'editText','dialogWidth:750px;dialogHeight:580px;resizable:1;center:1;');
       if(dlg)
       {
           var prefix = sender.id.substring(0,sender.id.length - senderServerId.length);
           var updatedText = document.getElementById(prefix+updatedTextId);
           var updatedTitle = document.getElementById(prefix+updatedTitleId);   
           var text = dlg.substring(0, dlg.indexOf("#@#"));
           var title = dlg.substring(dlg.indexOf("#@#")+3);
           if(text && updatedText)
                updatedText.innerHTML = unescape(text);
           if(title && updatedTitle)
                updatedTitle.innerHTML = unescape(title);
       }
    }  
