﻿var Debug = false;

//------------------------------------------------------------------------------//  
//                                                                              //
//                                  SCRIPT FOR SPOTLIGHT VIDEO                   //
//                                                                              //
//------------------------------------------------------------------------------//


function insertVideo(target, vidAddr){
    var tagHeight = target.offsetHeight;
    target.className = "Hidden";
    var aTag = document.createElement("a");
    aTag.id = "player";
    aTag.className = "MediaVideo";
    aTag.href = "/db/Spotlight/Videos/" + vidAddr;
    aTag.style.height = tagHeight + "px";
    document.getElementById("SpotVideo").appendChild(aTag);
    
    flowplayer("player", "/flash/flowplayer-3.2.5.swf");
}



//------------------------------------------------------------------------------//  
//                                                                              //
//                                  SCRIPT FOR MENU ROLLOVER                    //
//                                                                              //
//------------------------------------------------------------------------------//

        var Timer1;
        var Timer2;
        var Timer3;
        var Timer4;
        var Timer5;
        var Timer6;
        function showSub(id){
            var pos = new Array();
            pos = getMenuPosition(document.getElementById("menu" + id));
            
            if(id == 1){
                clearTimeout(Timer1);
                document.getElementById("subMenu" + id).style.top = pos[1] + "px";
                document.getElementById("subMenu" + id).style.left = (pos[0] - 17) + "px";
            }else if(id == 2){
                clearTimeout(Timer2);
                document.getElementById("subMenu" + id).style.top = pos[1] + "px";
                document.getElementById("subMenu" + id).style.left = (pos[0] - 47) + "px";
            }else if(id == 3){
                clearTimeout(Timer3);
                document.getElementById("subMenu" + id).style.top = pos[1] + "px";
                document.getElementById("subMenu" + id).style.left = (pos[0] - 94) + "px";
            }else if(id == 4){
                clearTimeout(Timer4);
                document.getElementById("subMenu" + id).style.top = pos[1] + "px";
                document.getElementById("subMenu" + id).style.left = (pos[0] - 145) + "px";
            }else if(id == 5){
                clearTimeout(Timer5);
                document.getElementById("subMenu" + id).style.top = pos[1] + "px";
                document.getElementById("subMenu" + id).style.left = (pos[0] - 257) + "px";
            }else if(id == 6){
                clearTimeout(Timer6);
                document.getElementById("subMenu" + id).style.top = pos[1] + "px";
                document.getElementById("subMenu" + id).style.left = (pos[0] - 102) + "px";
            }
            
            document.getElementById("menu" + id).className = "menu" +  + id + "On";
            document.getElementById("subMenu" + id).className = "";
        }
            
        function hideSub(id){
            if(id == 1){
                Timer1 = setTimeout("clearSub(" + id + ");", 100);
            }else if(id == 2){
                Timer2 = setTimeout("clearSub(" + id + ");", 100);
            }else if(id == 3){
                Timer3 = setTimeout("clearSub(" + id + ");", 100);
            }else if(id == 4){
                Timer4 = setTimeout("clearSub(" + id + ");", 100);
            }else if(id == 5){
                Timer5 = setTimeout("clearSub(" + id + ");", 100);
            }else if(id == 6){
                Timer6 = setTimeout("clearSub(" + id + ");", 100);
            }
        }
                
        function clearSub(id){
            document.getElementById("menu" + id).className = "menu" + id;
            document.getElementById("subMenu" + id).className = "Hidden";
        }
                
        function getMenuPosition(targetObj){
            var PosArr = new Array();
            PosArr[0] = 0;
            PosArr[1] = targetObj.offsetHeight;
            do{
                PosArr[0] += targetObj.offsetLeft;
                PosArr[1] += targetObj.offsetTop;
                targetObj = targetObj.offsetParent;
            }while(targetObj.offsetParent != null);
            return PosArr;
        }

//------------------------------------------------------------------------------//  
//                                                                              //
//      SCRIPT FOR NEWSLETTER, PROMOTIONS, AND VISITORS GUIDE ENTRIES           //
//                                                                              //
//------------------------------------------------------------------------------//
        var dtDate = new Date();
        iterations = dtDate.getDay() + dtDate.getHours() + dtDate.getMinutes() + dtDate.getSeconds() + dtDate.getMilliseconds();
        var useAjax = false;

        // AJAX object
        function GetXmlHttpObject(){
            var xmlHttp=null;
            try {// Firefox, Opera 8.0+, Safari
                xmlHttp=new XMLHttpRequest();
            }
            catch (e) {// Internet Explorer
                try{
                     xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
                }
                catch (e){
                    xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
                }
            }
            return xmlHttp;
        } 

        var MailerName;
        var MailerCompany;
        var MailerAddress;
        var MailerCity;
        var MailerState;
        var MailerZip;
        var MailerEmail;
        var MailerArea;
        var MailerPre;
        var MailerSuf; 
                
        // Retrieves user information for guide request through AJAX or through redirect
        function GetGuideUserInfo(){
            MailerName=document.getElementById("MailerName").value;
            MailerCompany=document.getElementById("MailerCompany").value;
            MailerAddress=document.getElementById("MailerAddress").value;
            MailerCity=document.getElementById("MailerCity").value;
            MailerState=document.getElementById("MailerState").value;
            MailerZip=document.getElementById("MailerZip").value;
            MailerEmail=document.getElementById("MailerEmail").value;
            MailerArea=document.getElementById("MailerArea").value;
            MailerPre=document.getElementById("MailerPre").value;
            MailerSuf=document.getElementById("MailerSuf").value;
            
            var query = "?MailerName=" + MailerName + "&MailerCompany=" + MailerCompany +
            "&MailerAddress=" + MailerAddress + "&MailerCity=" + MailerCity +
            "&MailerState=" + MailerState + "&MailerZip=" + MailerZip +
            "&MailerEmail=" + MailerEmail + "&MailerArea=" + MailerArea +
            "&MailerPre=" + MailerPre + "&MailerSuf=" + MailerSuf;
            
            if(useAjax){
                xmlHttp=GetXmlHttpObject();
                xmlHttp.onreadystatechange=function(){
                    if(xmlHttp.readyState==4) { 
                        document.getElementById("GuidesInfo").innerHTML = xmlHttp.responseText;
                    }
                } 
                iterations++;
                xmlHttp.open("GET","/AJAX/InfoVisitorsGuide.aspx" + query + "&iterations=" + iterations,true);
                xmlHttp.send(null);
            }else{
                location.href="/guides/RequestGuides.aspx" + query ;
            }
        }
                
        // Used on back button on guide selection to repopulate user information
        function GetInfo(){
            var query = "?MailerName=" + MailerName + "&MailerCompany=" + MailerCompany +
            "&MailerAddress=" + MailerAddress + "&MailerCity=" + MailerCity +
            "&MailerState=" + MailerState + "&MailerZip=" + MailerZip +
            "&MailerEmail=" + MailerEmail + "&MailerArea=" + MailerArea +
            "&MailerPre=" + MailerPre + "&MailerSuf=" + MailerSuf;
            
            xmlHttp=GetXmlHttpObject();
            xmlHttp.onreadystatechange=function(){
                if(xmlHttp.readyState==4) { 
                    document.getElementById("GuidesInfo").innerHTML = xmlHttp.responseText;
                }
            } 
            iterations++;
            xmlHttp.open("GET","/AJAX/ReturnInfoVisitorsGuide.aspx" + query + "&iterations=" + iterations,true);
            xmlHttp.send(null);
        }
                
        // Retrieves user selected guides for mailing
        function GetVisitorGuides(){
            var GuidesSelected = "";
            for(var i = 0; document.getElementById("Guide" + i) != null; i++){
                if(document.getElementById("Guide" + i).checked){
                    GuidesSelected += (GuidesSelected.length > 0 ? ", " : "") + i;
                }
            }

            var query = "?MailerName=" + MailerName + "&MailerCompany=" + MailerCompany +
            "&MailerAddress=" + MailerAddress + "&MailerCity=" + MailerCity +
            "&MailerState=" + MailerState + "&MailerZip=" + MailerZip +
            "&MailerEmail=" + MailerEmail + "&MailerArea=" + MailerArea +
            "&MailerPre=" + MailerPre + "&MailerSuf=" + MailerSuf + 
            "&GuidesSelected=" + GuidesSelected;
           
            xmlHttp=GetXmlHttpObject();
            xmlHttp.onreadystatechange=function(){
                if(xmlHttp.readyState==4) { 
                    document.getElementById("GuidesInfo").innerHTML = xmlHttp.responseText;
                }
            } 
            iterations++;
            xmlHttp.open("GET","/AJAX/RequestVisitorsGuide.aspx" + query + "&iterations=" + iterations,true);
            xmlHttp.send(null);
        }
                
        // Adds user to the Newsletter List through AJAX or through redirect
        function AddToNewsletter(){
            location.href="/user/signup.aspx?Nm=" + document.getElementById("NewsletterName").value + "&Eml=" + document.getElementById("NewsletterEmail").value;
        }

        // Tests if Browser is AJAX compatible
        function testAJAX(){
            var xmlObj = GetXmlHttpObject();
            if(xmlObj == null){
                useAjax = false;
            }else{
                useAjax = true;
            }
        }
                
        testAJAX();

//----------------------------------------------------------------------------------------------//  
//                                                                                              //
//      SCRIPT FOR OPENING AND CLOSING OF NEWSLETTER, PROMOTIONS, AND VISITORS GUIDE            //
//                                                                                              //
//----------------------------------------------------------------------------------------------//
    
        // Popout Side Tabs
        
        var NLTimer = 0;
        var NLx = 0;
        var NLhideX = 0;
        var PTimer = 0;
        var Px = 0;
        var PhideX = 0;
        var VGTimer = 0;
        var VGx = 0;
        var VGhideX = 0;
        
        function openBox(id){
            if(id == 1){
                clearTimeout(NLTimer);
                target = document.getElementById("NewsletterBox");
                if(target.offsetLeft < 0){
                    NLx = Math.ceil(target.offsetLeft/2);
                    moveBoxIn(1);
                }
            } else if(id == 2){
                clearTimeout(PTimer);
                target = document.getElementById("PromotionsBox");
                if(target.offsetLeft < 0){
                    Px = Math.ceil(target.offsetLeft/2);
                    moveBoxIn(2);
                }
            } else if(id == 3){
                clearTimeout(VGTimer);
                target = document.getElementById("VisitorsGuideBox");
                if(target.offsetLeft < 0){
                    VGx = Math.ceil(target.offsetLeft/2);
                    moveBoxIn(3);
                }
            }
        }
        
        function closeBox(id){
            if(id == 1){
                clearTimeout(NLTimer);
                target = document.getElementById("NewsletterBox");
                if(target.offsetLeft > -target.offsetWidth){
                    NLx = Math.ceil(target.offsetLeft/2);
                    NLhideX = -target.offsetWidth + 40;
                    NLTimer = setTimeout('moveBoxOut(1)', 300);
                }
            } else if(id == 2){
                clearTimeout(PTimer);
                target = document.getElementById("PromotionsBox");
                if(target.offsetLeft > -target.offsetWidth){
                    Px = Math.ceil(target.offsetLeft/2);
                    PhideX = -target.offsetWidth + 40;
                    PTimer = setTimeout('moveBoxOut(2)', 300);
                }
            } else if(id == 3){
                clearTimeout(VGTimer);
                target = document.getElementById("VisitorsGuideBox");
                if(target.offsetLeft > -target.offsetWidth){
                    VGx = Math.ceil(target.offsetLeft/2);
                    VGhideX = -target.offsetWidth + 40;
                    VGTimer = setTimeout('moveBoxOut(3)', 300);
                }
            }
        }
        
        function moveBoxOut(id){
            if(id == 1){
                target = document.getElementById("NewsletterBox");
                NLx= NLhideX - Math.ceil((NLhideX - NLx)/2);
                target.style.left = NLx + "px";
                if(NLx > NLhideX){
                    NLTimer = setTimeout('moveBoxOut(1)', 30);
                }
            } else if(id == 2){
                target = document.getElementById("PromotionsBox");
                Px= PhideX - Math.ceil((PhideX - Px)/2);
                target.style.left = Px + "px";
                if(Px > PhideX){
                    PTimer = setTimeout('moveBoxOut(2)', 30);
                }
            } else if(id == 3){
                target = document.getElementById("VisitorsGuideBox");
                VGx= VGhideX - Math.ceil((VGhideX - VGx)/2);
                target.style.left = VGx + "px";
                if(VGx > VGhideX){
                    VGTimer = setTimeout('moveBoxOut(3)', 30);
                }
            }
        }
        
        function moveBoxIn(id){
            if(id == 1){
                target = document.getElementById("NewsletterBox");
                NLx = Math.ceil(NLx/2);
                target.style.left = NLx + "px";
                if(NLx < 0){
                    NLTimer = setTimeout('moveBoxIn(1);',30);
                }
            } else if(id == 2){
                target = document.getElementById("PromotionsBox");
                Px = Math.ceil(Px/2);
                target.style.left = Px + "px";
                if(Px < 0){
                    PTimer = setTimeout('moveBoxIn(2);',30);
                }
            } else if(id == 3){
                target = document.getElementById("VisitorsGuideBox");
                VGx = Math.ceil(VGx/2);
                target.style.left = VGx + "px";
                if(VGx < 0){
                    VGTimer = setTimeout('moveBoxIn(3);',30);
                }
            }
        }
    
//------------------------------------------------------------------------------//
//                                                                              //
//              SCRIPT FOR DISPLAYING EVENTS FOR THE EVENT CALENDAR             //
//                                                                              //
//------------------------------------------------------------------------------//

        // EVENT CALENDAR SCRIPTS
        
        function showEvents(day){
            hideEvents();
            document.getElementById("EventList_" + day).className = "EventList";
            
            var Pos = getPosition(document.getElementById("EventCalendar"));
            eventObj = document.getElementById("PopupEventList");
            eventObj.style.top = (Pos[1] + 70) + "px";
            eventObj.style.left = (Pos[0] - 5) + "px";
            eventObj.className = "PopupEventList";
        }
        
        function hideEvents(){
            for(var i = 1; i < 32; i++){
                if(document.getElementById("EventList_" + i) != null){
                    document.getElementById("EventList_" + i).className = "Hidden";
                }
            }
            document.getElementById("PopupEventList").className = "Hidden";
        }

//------------------------------------------------------------------------------//
//                                                                              //
//                              SOCIAL MEDIA SWITCH SCRIPT                      //
//                                                                              //
//------------------------------------------------------------------------------//
        
        var currSocial = "facebook";
        function showTW(){
            if(currSocial == "facebook"){
                document.getElementById("fbTab").className = "out first";
                document.getElementById("twTab").className = "in";
                document.getElementById("facebook").className = "facebook Hidden";
                document.getElementById("tweets").className = "tweets";
                currSocial = "twitter";
            }
        }
        
        function showFB(){
            if(currSocial == "twitter"){
                document.getElementById("fbTab").className = "in first";
                document.getElementById("twTab").className = "out";
                document.getElementById("facebook").className = "facebook";
                document.getElementById("tweets").className = "tweets Hidden";
                currSocial = "facebook";
            }
        }

//------------------------------------------------------------------------------//
//                                                                              //
//                        ACCOMMODATIONS DATE PICKER SCRIPT                     //
//                                                                              //
//------------------------------------------------------------------------------//
        
        function openCal(target, id){
            buildCalendar(id);
            var Pos = getPosition(target);
            calObj = document.getElementById("PopupCalendar");
            calObj.style.top = Pos[1] + "px";
            calObj.style.left = Pos[0] + "px";
            calObj.className = "PopupCalendar";
        }
        
        function getPosition(targetObj){
            var PosArr = new Array();
            PosArr[0] = targetObj.offsetWidth;
            PosArr[1] = 0;
            do{
                PosArr[0] += targetObj.offsetLeft;
                PosArr[1] += targetObj.offsetTop;
                targetObj = targetObj.offsetParent;
            }while(targetObj.offsetParent != null);
            return PosArr;
        }
        
        // Builds the calendar from the selected dates
        function buildCalendar(id){
            var currentMonth;
            var currentYear;
            if(id == 1){
                currentMonth = document.getElementById("ArrivalMonth")[document.getElementById("ArrivalMonth").selectedIndex].value;
                currentYear = document.getElementById("ArrivalYear")[document.getElementById("ArrivalYear").selectedIndex].value;
            }else if(id == 2){
                currentMonth = document.getElementById("DepartureMonth")[document.getElementById("DepartureMonth").selectedIndex].value;
                currentYear = document.getElementById("DepartureYear")[document.getElementById("DepartureYear").selectedIndex].value;
            }
            
            buildCalendarGrid(currentMonth, currentYear, id);
            
            var prevMonth = currentMonth*1 - 1 > 0 ? currentMonth*1 - 1 : 12;
            var nextMonth = currentMonth*1 + 1 < 13 ? currentMonth*1 + 1 : 1;
            var prevYear = currentMonth*1 - 1 > 0 ? currentYear : currentYear*1 - 1;
            var nextYear = currentMonth*1 + 1 < 13 ? currentYear : currentYear*1 + 1;
            
            var newMonthLabel = "";
            newMonthLabel += "<span class=\"Previous\" onclick=\"changeMonth(" + id + "," + prevMonth + "," + prevYear + ");\">&laquo; Prev</span>";
            newMonthLabel += "<span class=\"Next\" onclick=\"changeMonth(" + id + "," + nextMonth + "," + nextYear + ");\">Next &raquo;</span>";
            newMonthLabel += retrieveMonth(currentMonth) + " " + currentYear;
            
            document.getElementById("MonthLabel").innerHTML = newMonthLabel;
        }
        
        var dtDate = new Date();
        var naturalMonth =  dtDate.getUTCMonth() + 1;
        var naturalYear =   dtDate.getUTCFullYear();
        var naturalDay =    dtDate.getUTCDate();
        
        function buildCalendarGrid(curMonth, curYear, id){
            var EndOfMonth =   new Date(curYear, curMonth, 0); //By making the day zero, it reverts to the last day of the previous month
            var daysInCurrentMonth = EndOfMonth.getDate();
            var BeginningOfMonth = new Date(curYear, curMonth - 1, 1);
            var firstDayOfMonth = BeginningOfMonth.getDay() - 1;
            var numberOfRowsNeeded = Math.ceil((firstDayOfMonth + daysInCurrentMonth)/7);
            
            var GridHtml = "";
            var dayNum = "";
            for(var i = 0; i < numberOfRowsNeeded; i++){
                GridHtml += "<p>";
                for(var j = 0; j < 7; j++){
                    dayNum = (((i*7) + j) - firstDayOfMonth);
                    if(dayNum < 1 || dayNum > daysInCurrentMonth){
                        GridHtml += "<span class=\"nonday\"></span>";
                    }else if(curYear < naturalYear){
                        GridHtml += "<span class=\"pastday\">" + dayNum + "</span>";
                    }else if(curYear == naturalYear && curMonth < naturalMonth){
                        GridHtml += "<span class=\"pastday\">" + dayNum + "</span>";
                    }else if(curYear == naturalYear && curMonth == naturalMonth && dayNum < naturalDay){
                        GridHtml += "<span class=\"pastday\">" + dayNum + "</span>";
                    }else{
                        GridHtml += "<span class=\"availday\" onclick=\"updateDay(" + dayNum + "," + id + ");\">" + dayNum + "</span>";
                    }
                }
                GridHtml += "</p>";
            }
            
            document.getElementById("PopupGrid").innerHTML = GridHtml;            
        }
        
        // Selects the date
        function updateDay(day, id){
            if(id == 1){
                for(var i = 0; document.getElementById("ArrivalDay")[i] != null; i++){
                    if(document.getElementById("ArrivalDay")[i].value == day){
                        document.getElementById("ArrivalDay").selectedIndex = i;
                    }
                } 
            }else if(id == 2){
                for(var i = 0; document.getElementById("DepartureDay")[i] != null; i++){
                    if(document.getElementById("DepartureDay")[i].value == day){
                        document.getElementById("DepartureDay").selectedIndex = i;
                    }
                }
            }
            
            hideCalendar();
        }
        
        // Progresses the calendar forward and backward by one month
        function changeMonth(id, month, year){
            if(id == 1){
                for(var i = 0; document.getElementById("ArrivalMonth")[i] != null; i++){
                    
                    if(document.getElementById("ArrivalMonth")[i].value == month){
                        document.getElementById("ArrivalMonth").selectedIndex = i;
                    }
                } 
                 for(var i = 0; document.getElementById("ArrivalYear")[i] != null; i++){
                    if(document.getElementById("ArrivalYear")[i].value == year){
                        document.getElementById("ArrivalYear").selectedIndex = i;
                    }
                }
            }else if(id == 2){
                for(var i = 0; document.getElementById("DepartureMonth")[i] != null; i++){
                    
                    if(document.getElementById("DepartureMonth")[i].value == month){
                        document.getElementById("DepartureMonth").selectedIndex = i;
                    }
                } 
                 for(var i = 0; document.getElementById("DepartureYear")[i] != null; i++){
                    if(document.getElementById("DepartureYear")[i].value == year){
                        document.getElementById("DepartureYear").selectedIndex = i;
                    }
                }
            }
            
            buildCalendar(id);
        }
        
        // Retrieves The Month Full Name from Integer
        function retrieveMonth(num){
            var retMonth = "";
            if(num == 1){
                retMonth = "January";
            }else if(num == 2){
                retMonth = "February";
            }else if(num == 3){
                retMonth = "March";
            }else if(num == 4){
                retMonth = "April";
            }else if(num == 5){
                retMonth = "May";
            }else if(num == 6){
                retMonth = "June";
            }else if(num == 7){
                retMonth = "July";
            }else if(num == 8){
                retMonth = "August";
            }else if(num == 9){
                retMonth = "September";
            }else if(num == 10){
                retMonth = "October";
            }else if(num == 11){
                retMonth = "November";
            }else if(num == 12){
                retMonth = "December";
            }
            return retMonth;
        }
        
        function hideCalendar(){
            document.getElementById("PopupCalendar").className = "Hidden";
        }

//------------------------------------------------------------------------------//
//                                                                              //
//                                SCRIPT FOR IMAGE ROTATION                     //
//                                                                              //
//------------------------------------------------------------------------------//
        
        var image1Displayed = true;
        var currentImage = 0;

        var paused = false;
        var imageShifting = false;
        
        var RotationTimer = null;
        var RotationPauseTimer = null;
        var textMargin = -1000;
        var RotationTrans = 100;
        
        /** Only Called on Page Load **/
        function init(){
            RotationTimer = setInterval("displayDescr();", 20);    
        }
        
        /** Moves in the Image Description **/
        function displayDescr(){
            textMargin = Math.ceil(textMargin/1.5 + 1);
            var targetObj = document.getElementById("ImageLink");
            targetObj.style.marginRight = textMargin + "px";
            
            if(textMargin > 0){
                imageShifting = false;
                targetObj.style.marginRight = "0px";
                // ONLY START ROTATER IF MORE THAN ONE IMAGE EXISTS
                clearInterval(RotationTimer);
                if(imageArr.length > 1){
                    loadNextPhoto();
                }
            }
        }
        
        /** Loads the Next Image **/
        function loadNextPhoto(){
            currentImage++;
            if(currentImage >= imageArr.length){ currentImage = 0;};
            var targetObj;
            if(image1Displayed){
                targetObj = document.getElementById("ImageHolder2");
            }else{
                targetObj = document.getElementById("ImageHolder1");
            }
            targetObj.src="";
            targetObj.onload = function(){
                RotationPauseTimer = setTimeout("initiateHideDescr();", 2000);
            };
            targetObj.src=imageArr[currentImage];
        }
        
        /** Timer countdown for the next Image Display **/
        function initiateHideDescr(){
            imageShifting = false;
            textMargin = 10;
            clearInterval(RotationTimer);
            RotationTimer = setInterval("hideDescr();",20);
        }
        
        /** Moves out the Image Description **/
        function hideDescr(){
            textMargin = Math.ceil(-(11 - textMargin)*1.5 + 10);
            var targetObj = document.getElementById("ImageLink");
            if(textMargin > -1000){
                targetObj.style.marginRight = textMargin + "px";
            }else{
                clearInterval(RotationTimer);
                targetObj.style.marginRight = "-1000px";
                document.getElementById("ImageTitleWrap").style.visibility = "hidden";
                document.getElementById("ImageDescr").style.visibility = "hidden";
                document.getElementById("ImageCredits").style.visibility = "hidden";
                if(imageTitleArr[currentImage].length > 0){
                    document.getElementById("ImageTitle").innerHTML = imageTitleArr[currentImage];
                    document.getElementById("ImageTitleWrap").style.visibility = "";
                }
                if(imageDescrArr[currentImage].length > 0){
                    document.getElementById("ImageDescr").innerHTML = imageDescrArr[currentImage];
                    document.getElementById("ImageDescr").style.visibility = "";
                }
                document.getElementById("ImageLink").href = null;
                if(imageLinkArr[currentImage].length > 3){
                    document.getElementById("ImageLink").href = imageLinkArr[currentImage];
					if(imageLinkTypeArr[currentImage] == 1){
						document.getElementById("ImageLink").target = "_blank";
					}else{
						document.getElementById("ImageLink").target = "_self";
					}
                }
				
                if(imageCreditsArr[currentImage].length > 0){
                    document.getElementById("ImageCredits").innerHTML = "Credits: " + imageCreditsArr[currentImage];
                    document.getElementById("ImageCredits").style.visibility = "";
                }
                
                RotationTimer = setInterval("fadePhoto();", 20); 
            }
        }
                
        function fadePhoto(){            
            var targetObj = document.getElementById("ImageHolder1");
            if(image1Displayed){
                RotationTrans -= 5;
                if(RotationTrans <= 0){
                    if (targetObj.filters) {
		                try { targetObj.filters.item("DXImageTransform.Microsoft.Alpha").opacity = 0; 
		                } catch (e) { targetObj.style.filter = 'progid:DXImageTransform.Microsoft.Alpha(opacity=0)'; }
                    } else {targetObj.style.opacity = 0;}
                    image1Displayed = false;
                    clearInterval(RotationTimer);
                    RotationTimer = setInterval("displayDescr();", 20); 
                }else{
                    if (targetObj.filters) {
		                try { targetObj.filters.item("DXImageTransform.Microsoft.Alpha").opacity = RotationTrans;
		                } catch (e) { targetObj.style.filter = 'progid:DXImageTransform.Microsoft.Alpha(opacity=' + RotationTrans + ')';}
	                } else { targetObj.style.opacity = RotationTrans/100;}
                }
            }else{
                RotationTrans += 5;
                if(RotationTrans >= 100){
                    if (targetObj.filters) {
		                try { targetObj.filters.item("DXImageTransform.Microsoft.Alpha").opacity = 100; 
		                } catch (e) { targetObj.style.filter = 'progid:DXImageTransform.Microsoft.Alpha(opacity=100)'; }
	                } else {targetObj.style.opacity = 1;}
                    image1Displayed = true;
                    clearInterval(RotationTimer);
                    RotationTimer = setInterval("displayDescr();", 20); 
                }else{
                    if (targetObj.filters) {
		                try { targetObj.filters.item("DXImageTransform.Microsoft.Alpha").opacity = RotationTrans;
		                } catch (e) { targetObj.style.filter = 'progid:DXImageTransform.Microsoft.Alpha(opacity=' + RotationTrans + ')';}
	                } else { targetObj.style.opacity = RotationTrans/100;}
                }
            }
        }
        
        /** Display Next/Prev Photo **/
        function loadNextPrevPhoto(direction){            
            if(!imageShifting){
                imageShifting = true;
                document.getElementById("loaderIcon").style.visibility = "visible";
                clearTimeout(RotationPauseTimer);
                
                if(direction > 0){
                }else{
                    currentImage -= 2;
                    if(currentImage < 0){ currentImage = imageArr.length + currentImage;};
                }
                RotationTimer = setInterval("hideDescrForSelected();", 20);
            }
        }
        
        function hideDescrForSelected(){
            textMargin = Math.ceil(-(11 - textMargin)*1.5 + 10);
            var targetObj = document.getElementById("ImageLink");
            if(textMargin > -1000){
                targetObj.style.marginRight = textMargin + "px";
            }else{
                clearInterval(RotationTimer);
                targetObj.style.marginRight = "-1000px";
                document.getElementById("ImageTitleWrap").style.visibility = "hidden";
                document.getElementById("ImageDescr").style.visibility = "hidden";
                document.getElementById("ImageCredits").style.visibility = "hidden";
                if(imageTitleArr[currentImage].length > 0){
                    document.getElementById("ImageTitle").innerHTML = imageTitleArr[currentImage];
                    document.getElementById("ImageTitleWrap").style.visibility = "";
                }
                if(imageDescrArr[currentImage].length > 0){
                    document.getElementById("ImageDescr").innerHTML = imageDescrArr[currentImage];
                    document.getElementById("ImageDescr").style.visibility = "";
                }
                document.getElementById("ImageLink").href = null;
                if(imageLinkArr[currentImage].length > 3){
                    document.getElementById("ImageLink").href = imageLinkArr[currentImage];
                }
                if(imageCreditsArr[currentImage].length > 0){
                    document.getElementById("ImageCredits").innerHTML = "Credits: " + imageCreditsArr[currentImage];
                    document.getElementById("ImageCredits").style.visibility = "";
                }
                fadeForSelected();
            }
            
        }
        
        function fadeForSelected(){            
            var targetObj;
            if(image1Displayed){
                targetObj = document.getElementById("ImageHolder2");
            }else{
                targetObj = document.getElementById("ImageHolder1");
            }
            targetObj.src="";
            targetObj.onload = function(){ document.getElementById("loaderIcon").style.visibility = "hidden"; RotationTimer = setInterval("fadePhoto();", 20); };
            targetObj.src=imageArr[currentImage];
        }
        
        /** Pauses the Rotater when the link is hovered over **/
        function pauseRotater(){
            clearTimeout(RotationPauseTimer);
            paused = true;
        }   
        
        /** Resumes the Rotater when the link is no longer hovered over **/
        function resumeRotater(){
            if(paused){
                RotationPauseTimer = setTimeout("initiateHideDescr();", 8000);
            }
        }
