var cti=0, dur = 7, ct=0, cache=[], hole=[], sstop=0, spause=1, randinc=1; 

function getnext()
{
    var ni=(iHoleCt+cti)%(iHoleCt);
    var n=ct%src.length;

		var imagename = imagenames[ni];   
	    
		if (hole[ni] == null || hole[ni].src == null)
		{
			var iW = 0;
			var iH = 0;
			
			try
			{
				iW = document[imagename].width;
				iH = document[imagename].height;
			}
			catch (ex) {}
			
			var iMax = (iW > iH) ? iW : iH;
	    
			var bSet = 0;
			var iEmpty = -1;
			var cacheSize = (iHoleCt >= 3) ? 3 : 1;
	    
			for (i=0; i<cacheSize; i++)
			{ 
				var cpos = ((i+1)*n) - 1;
				if (cache[cpos] == null)
				{
					if (iEmpty < 0)
						iEmpty = i;
					continue;
				}
				var s1 = cache[cpos].src;
				if (s1.indexOf('?s='+iMax.toString()) > 0)
				{
					bSet = 1;
					hole[ni] = cache[cpos];                      
					break;
				}
			}

			if (bSet == 0 && iEmpty >= 0)
			{
				var cpos = ((iEmpty+1)*n) - 1;
				cache[cpos] = new Image;
				cache[cpos].src = "http://"+ImageSvr+"/prbin/prpv.dll?photo?s="+iMax.toString()+"&i="+src[n]+"&c="+padcolor;

				hole[ni] = cache[cpos];
			}
		}
}

function switchImg()
{ 
    if (sstop == 1)
        return 0;

    var ni=(iHoleCt+cti)%(iHoleCt);
    var n=ct%src.length;

    if (imagenames.length > ni - 1)
    {
		var imagename = imagenames[ni];
		var display = 0;
	    
		if (document.all && window.ActiveXObject)
		{
			document[imagename].style.filter="blendTrans(duration=2)";
			document[imagename].filters.blendTrans.Apply();
		}
	        
		if (hole[ni] != null && hole[ni].complete)
		{
			if (document.all && window.ActiveXObject)
				document[imagename].filters.blendTrans.Play();
			document[imagename].src = hole[ni].src;        
			hole[ni] = null;
			display = 1;
			ct = ct + randinc;    
			cti = cti + 1;          
			getnext();
		}

		setTimeout("switchImg()",display ? (dur*1000) : 500);
		return 1;
	}
}

function slideInit()
{
   if (document.images) 
   {
       //cti = iHoleCt;
       ct = iHoleCt + iStart;
       if (iHoleCt == 1 && iPortCt > 3)
       {
          if ((iPortCt % 3) != 0)
            randinc = 3;
          else if (iPortCt > 5 && (iPortCt % 5) != 0)
            randinc = 5;
          else if (iPortCt > 7 && (iPortCt % 7) != 0)
            randinc = 7;
          else if (iPortCt  > 11 && (iPortCt % 11) != 0)
            randinc = 11;
       }
       
       if (iPortCt > iHoleCt && iHoleCt > 0)     
       {   
            if (iHoleCt > 1)
                dur=3;
            getnext();
       
            setTimeout("switchImg()",dur*1000);
       }
   }
}

function slideStart(forcepause)
{
    spause = !spause;
    if (forcepause == 1)
        spause = 0;
    if (spause)
    {
        if (iPortCt > iHoleCt)     
        {   
            sstop = 0;
            setTimeout("switchImg()",dur*1000);
        }
    }
    else
        sstop = 1;
        
    if (document["playbtn"] != null)
    {
        var s = document.images["playbtn"].src;
        if (spause)
            s = s.replace("play","pause");
        else
            s = s.replace("pause","play");
        document.images["playbtn"].src = s;
    }
}

function incPhoto(iInc)
{
    sstop = 1;
    ct = ct + iInc;
    if (ct < 0)
        ct = iPortCt-1;
    if (ct >= iPortCt)
        ct = 0;
    
    var n=(ct >= 1 ? ct-1 : iPortCt-1)%src.length;  
    
    if (imagenames.length > 0)
    {
		var imagename = imagenames[0];  
	        
		var iW = 0;
		var iH = 0;
		
		try
		{
			iW = document[imagename].width;
			iH = document[imagename].height;
		}
		catch (e) {}
		
		var iMax = (iW > iH) ? iW : iH;
	                
		document.images[imagename].src = "http://"+ImageSvr+"/prbin/prpv.dll?photo?s="+iMax.toString()+"&i="+src[n]+"&c="+padcolor;    
    }
}

function showOne(imagename)
{
    try
    {
		var src = document.images[imagename].src;
		var idx1 = src.search("&i=");
		var idx2 = src.search("&c=");
		if (idx1 >= 0 && idx2 >= 0)
		{
			var loc = solink + src.substring(idx1+3,idx2);
			document.location = loc;
		}
    }
    catch (e) {}
}



