//=====================================================================
// Project Image Views Implementation
// by structuredview.com
//
// Please ask me for permission to reuse any portion of this script.
//
// Requirements:
//		- browserCheck.js
//		- utility.js
//
//=====================================================================

//=====================================================================
// Initialize Variables
//=====================================================================

var	pics=[];

var currImaNum=-1;
var topEdge = 65;

var inTransition=false;

var page;

//=====================================================================
// 
//=====================================================================

function setProjectCoverImage(context,imageURL){
    window.addEvent(
        'load',
        function(){
            
            for(var x=0;x<imageURL.length;x++){
                var c=imageURL.charAt(x);
                if(c=='/'){
                    imageURL=imageURL.substring(0,x)+'%47'+imageURL.substring(x+1,imageURL.length)
                    x=x+2;
                }
                if(c=='.'){
                    imageURL=imageURL.substring(0,x)+'%46'+imageURL.substring(x+1,imageURL.length)
                    x=x+2;
                }
            }
            top.slide_show.location = context+'html/proj_ima.html?image='+imageURL;
        }
        );
}
    
window.addEvent(
    'load',
    function(){
        //==================
        // Collect Refs
        //==================
        for(var a=0;a<pics.length;a++){
            pics[a].imageRef=getObjectRef('projIm'+a);
            pics[a].creditRef=getObjectRef('imgCredit'+a);
            pics[a].buttonRef=getObjectRef('num'+a);
        }
            
        bodyLoaded=true;
            
        page=new pageSize();
            
        iName='loading';
        io=getObjectRef(iName);
        makeHidden(io);
            
        if(pics.length<1)return;
            
        showProjectImage(0)
            
        currImaNum=0;
            
        for(var a=0;a<pics.length;a++){
            var nName='num'+a;
            var numO=getObjectRef(nName);
            if(numO){
                makeVisible(numO);
            }
        }
    }
    )
    
//=====================================================================
// Mouse Action Functions
//=====================================================================
    
function showProjectImage(picIndex){
    top.focus();
    if(!bodyLoaded)return;
    if(inTransition||pics[picIndex].buttonClicked)return;
    inTransition=true;
    pics[picIndex].buttonClicked=true;
        
    for(var a=0;a<pics.length;a++){
        if(a!=picIndex&&pics[picIndex].buttonClicked==true){
            var thisPic=pics[a];
            fadeOut(thisPic.imageRef);
            fadeOut(thisPic.creditRef);
                
            if(thisPic && thisPic.buttonRef){
                thisPic.buttonRef.style.border='1px solid #000000';
            }
            thisPic.buttonClicked=false;
        }
    }
        
    // bring in image
    slideAndFadeIn(pics[picIndex].imageRef,page.width,40,1800,2000);
        
    // bring in credit
    window.setTimeout('if(pics['+picIndex+'].buttonClicked){fadeIn(pics['+picIndex+'].creditRef,1000);}inTransition=false;',1800);
        
    // change button
    if(pics[picIndex] && pics[picIndex].buttonRef){
        pics[picIndex].buttonRef.style.border='1px solid #666666';
    }
}
    
function showCaption(index){
    var captionRef=getObjectRef('imgCaption'+index);
    makeVisible(captionRef);
}
    
function hideCaption(index){
    var captionRef=getObjectRef('imgCaption'+index);
    makeHidden(captionRef);
}
    
//=====================================================================
// Build Functions
//=====================================================================
    
function addPic(imageUrl,imageWidth,imageHeight,caption,creditText,creditUrl){
    var i=pics.length;
    pics[i]=new Object();
    pics[i].imageRef=null;
    pics[i].creditRef=null;
    pics[i].buttonRef=null;
    pics[i].imageUrl=imageUrl;
    pics[i].width=imageWidth;
    pics[i].height=imageHeight;
    pics[i].caption=caption;
    pics[i].hasCaption=(caption.length>0);
    pics[i].creditText=creditText;
    pics[i].creditUrl=creditUrl;
    pics[i].isIn=false;
    pics[i].buttonClicked=false;
}
    
function writeProjIma()
{
    var page=new pageSize();
    var pageWidth=page.width;
    if(pageWidth==0)pageWidth=290;
        
    //==================
    // Write Loading Image
    //==================
    document.write('<div id="loading" style="position:absolute;z-index:1;width:21;top:'+(topEdge+100)+'px;left:308px;visibility:visible;margin:0px;border:0px;padding:0px;filter:alpha(opacity=100);-khtml-opacity:1;">');
    document.write('	<img src="http://www.bcj.com/images/uti/loading_tr_1a.gif" width="21" height="21" border="0">');
    document.write('</div>');
        
    //==================
    // Write Numbers
    //==================
    if( pics.length>1 ){
        for(var a=0;a<pics.length;a++){
            document.write('<div style="position:absolute;z-index:50;width:21px;height:21px;top:'+(topEdge+320)+'px;visibility:hidden;vertical-align:bottom;margin:0px;border: 1px solid #000000;padding-top:3px;font-size:12px;line-height:12px;cursor:pointer;opacity:.99;background-color:#000000;text-align:center;left:'+(40+(a*25))+'px;" id="num'+a+'"  onclick="showProjectImage('+a+')" onmouseover="if(!pics['+a+'].buttonClicked)this.style.border=\'1px solid #333333\'" onmouseout="if(!pics['+a+'].buttonClicked)this.style.border=\'1px solid #000000\'">');
            document.write('<table width="21" border="0" cellpadding="0" cellspacing="0"><tr><td valign="middle" align="center">');
            document.write('<a href="javascript:showProjectImage('+a+');">'+(a+1)+'</a>');
            document.write('</td></tr></table>');
            document.write('</div>');
        }
    }
            
    //==================
    // Write ProjectImages
    //==================
    for(var a=0;a<pics.length;a++)
    {
        if(!browser.isNN4)
        {
            var captionMO='';
            if(pics[a].hasCaption)
            {
                captionMO=' onmouseover="showCaption('+a+')" onmouseout="hideCaption('+a+')"';
            }
            document.write('<div id="projIm'+a+'" style="position:absolute;z-index:10;width:'+pics[a].width+'px;top:'+topEdge+'px;left:-1000px;visibility:hidden;margin:0px;border:0px;padding:0px;filter:alpha(opacity=100);-khtml-opacity:1;" '+captionMO+'>');
            document.write('<img src="'+pics[a].imageUrl+'" width="'+pics[a].width+'" height="'+pics[a].height+'" border="0">');
            document.write('</div>');
        }
    }
                        
    //==================
    // Write Credits
    //==================
    for(var a=0;a<pics.length;a++)
    {
        if(!browser.isNN4)
        {
            document.write('<div id="imgCredit'+a+'" class="image_credit" style="position: absolute;z-index: 10;width: '+pics[a].width+'px;text-align: left;font-size: 9px;color: #777777;top: '+(topEdge+302)+'px;left: 40px;visibility: hidden;margin: 0px;border: 0px;padding: 0px;filter: alpha(opacity=100);-khtml-opacity: 1;">');
            if(pics[a].creditUrl!=null&&pics[a].creditUrl!="")
            {
                document.write('Photo: <a href="'+pics[a].creditUrl+'" target="_blank" class="photo_credit">'+pics[a].creditText+'</a>');
            }
            else if(pics[a].creditText!=null&&pics[a].creditText!="")
            {
                document.write('Photo: '+pics[a].creditText);
            }
            document.write('</div>');
        }
    }
                                        
    //==================
    // Write Caption
    //==================
    for(var a=0;a<pics.length;a++)
    {
        if(!browser.isNN4 && pics[a].hasCaption)
        {
            document.write('<div id="imgCaption'+a+'" class="image_caption" style="position:absolute;z-index:60;width:'+(pics[a].width-20)+'px;text-align:left;font-size:9px;line-height:9px;top:'+(topEdge+10)+'px;left:45px;visibility:hidden;background-color:#000000;margin:0px;border:0px;padding:5px;filter:alpha(opacity=70);-khtml-opacity:.7;opacity:.7;" onmouseover="showCaption('+a+')" onmouseout="hideCaption('+a+')">');
            document.write(pics[a].caption);
            document.write('</div>');
        }
    }
                                                
                                                
}
                                            
//=====================================================================
// Utility Functions
//=====================================================================
                                            
function getObjectRef(elName){
    if(document.all) {
        return document.all[elName];
    }
    else if(document.getElementById){
        return document.getElementById(elName);
    }
    else if(document.layers){
        return document.layers[elName]
    }
    return false;
}
                                                        
function slideAndFadeIn(obj,slideStartX,slideEndX,slideTime,fadeTime){	
    slideIn(obj,slideStartX,slideEndX,slideTime);
    fadeIn(obj,fadeTime);
}
                                                        
function slideIn(obj,startX,endX,slideTime){
    setX(obj,page.width);
    var imMo=new AccelimationAug(obj, AccelimationAug.LEFT,startX,endX,slideTime,-1);
    imMo.start();
}
                                                        
function makeVisible(obj)
{
    if(document.all){
        obj.style.visibility='visible';
    }
    else if(document.getElementById){
        obj.style.visibility='visible';
    }
    else if(document.layers){
        obj.visibility='show';
    }
}
                                                        
function makeHidden(obj)
{
    if(document.all){
        obj.style.visibility='hidden';
    }
    else if(document.getElementById){
        obj.style.visibility='hidden';
    }
    else if(document.layers){
        obj.visibility='hide';
    }
}
                                                        
//==============================================================================
//  Opacity
//==============================================================================
function thisCanFade(obj)
{
    if(document.all&&obj.filters){
        if(browser.isMac)//MacIE says it has filters, but doesn't deliver.
        {
            return false;
        }
        return true;
    }
    else if(document.getElementById){
        if(obj.style&&obj.style.MozOpacity!=null){
            return true;
        }
        else if(obj.style&&obj.style.opacity!=null){
            return true;
        }
        else if(obj.style&&obj.style.getPropertyValue&&obj.style.getPropertyValue('-khtml-opacity')!=null){
            return true;
        }
    }
    return false;
}
                                                                                
function fadeIn(obj,time){
    var canFade=thisCanFade(obj);
    if(canFade){
        setOpacity(obj,0);
        makeVisible(obj);
        var imFa=new AccelimationAug(obj,AccelimationAug.OPACITY,0,getOpacityMax(),time,0);
        imFa.start();
    }
    else{
        makeVisible(obj);
    //setX(obj,40);
    }
}
                                                                                        
function fadeOut(obj)
{
    var canFade=thisCanFade(obj);
    if(canFade){
        var imFa=new AccelimationAug(obj,AccelimationAug.OPACITY,getOpacityMax(),0,800,0);
        eval('imFa.onend=function(){var o=getObjectRef(\''+obj.id+'\');makeHidden(o);}');
        imFa.start();
    }
    else{
        makeHidden(obj);
    //setX(obj,-1000);
    }
}
                                                                                                
                                                                                                
                                                                                                
                                                                                                
                                                                                                
                                                                                                
                                                                                                
                                                                                                
                                                                                                
                                                                                                
                                                                                                
                                                                                                
                                                                                                
                                                                                                
                                                                                                
                                                                                                
                                                                                                
                                                                                                