// flag to store whether the door has been opened yet
var doorOpen = false;
var gallery = '';

function openAdventDoor(door) {
    if(!doorOpen) {
        s = new String(door.className);
        s = s.replace(/-noprize/g,"_makeawish");
        s = s.replace(/-prize/g,"_youhavewon");
		door.style.backgroundImage = "url('../../_images/advent/doors/" + s + ".gif')";
        doorOpen = true;
        return false;
    }
    else {
        return true;
    }
}

function enableDoorToday() {
	var door = document.getElementById("todaysDoor");
	if(door) {
		door.onclick = function() {
			return openAdventDoor(door);	
		}
	}	
}


function addLoadEvent(func) {
	var oldonload = window.onload;
	if (typeof window.onload != 'function') {
		window.onload = func;
	} else {
		window.onload = function() {
			if (oldonload) {
				oldonload();
			}
			func();
		}
	}
}

/*
    Written by Jonathan Snook, http://www.snook.ca/jonathan
    Add-ons by Robert Nyman, http://www.robertnyman.com
*/
function getElementsByClassName(oElm, strTagName, strClassName){
    var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
    var arrReturnElements = new Array();
    strClassName = strClassName.replace(/\-/g, "\\-");
    var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
    var oElement;
    for(var i=0; i<arrElements.length; i++){
        oElement = arrElements[i];      
        if(oRegExp.test(oElement.className)){
            arrReturnElements.push(oElement);
        }   
    }
    return (arrReturnElements)
}

function enableRolloverButtons() {
	var buttons = getElementsByClassName(document, "img", "rolloverButton")
	for(var i=0; i<buttons.length; i++) {
		var button = buttons[i];
		var btnsrc = button.src;
		
		var newimage = new Image();
		newimage.src = btnsrc.replace(/.gif/, "-over.gif");
		
		buttons[i].addEventListener("mouseover", function(){			
			//alert(newimage.src);
			button.src = "a";
			//alert(button.src);
		}, false);	
	}
}

function enableExternalLinks() {
		var links = document.getElementsByTagName("a");
		for (var i=0; i<links.length; i++) {
			if (links[i].getAttribute("rel") == "external") {
				links[i].onclick = function() {					
					//window.open(links[i].getAttribute("href"));
					window.open(this.getAttribute("href"));
					return false;
				}				
			}
		}
}

function previewEmail(keys,vals) {
    window.open("email-preview.aspx?dataKey=" + keys + "&dataVal=" + vals,"emailPreview","width=800,height=600");
}

function showSpreadTheWordPreview(myNameField, friendsNameField) {
    // get the two values
    var friendsName = document.getElementById(friendsNameField).value;
    var myName = document.getElementById(myNameField).value;
    previewEmail("FRIENDNAME,FULLNAME",friendsName + "," + myName);
    return false;
}

function changeHeaders(){
    if(typeof sIFR == "function"){
		sIFR.replaceElement("h1.optima", named({sFlashSrc:"../_jscript/optimalt.swf", sCase: "upper", sWmode: "transparent", sColor: "#127534"}));
	    sIFR.replaceElement("h2.handwritten-red", named({sFlashSrc:"../_jscript/justlefthand.swf", sWmode: "transparent", sColor: "#EE000B"}));
	    sIFR.replaceElement("h2.handwritten-green", named({sFlashSrc:"../_jscript/justlefthand.swf", sWmode: "transparent", sColor: "#83D002"}));
	    sIFR.replaceElement("h2.handwritten-darkgreen", named({sFlashSrc:"../_jscript/justlefthand.swf", sWmode: "transparent", sColor: "#127534"}));
	    sIFR.replaceElement("h2.handwritten-yellow", named({sFlashSrc:"../_jscript/justlefthand.swf", sWmode: "transparent", sColor: "#E1BF02"}));
	    sIFR.replaceElement("h2.handwritten-pink", named({sFlashSrc:"../_jscript/justlefthand.swf", sWmode: "transparent", sColor: "#C22294"}));
	    sIFR.replaceElement("h2.handwritten-blue", named({sFlashSrc:"../_jscript/justlefthand.swf", sWmode: "transparent", sColor: "#009cd0"}));
	    sIFR.replaceElement("h3.handwritten", named({sFlashSrc:"../_jscript/justlefthand.swf", sWmode: "transparent", sColor: "#127534"}));
	    sIFR.replaceElement("h2.handwritten", named({sFlashSrc:"../_jscript/justlefthand.swf", sWmode: "transparent", sColor: "#127534"}));
	    sIFR.replaceElement("h1.handwritten", named({sFlashSrc:"../_jscript/justlefthand.swf", sWmode: "transparent", sColor: "#127534"}));
	}
}


function changePhoto(direction, totalPhotos, imageName) {
    var container = document.getElementById("mask");
    var currentBgFile = container.style.backgroundImage;
    var currentBgId = currentBgFile.replace(/url\(..\/_images\/familyfun\//g, "");
    currentBgId = currentBgId.replace(/.jpg\)/g, "");
    currentBgId = currentBgId.replace(imageName, "");
    currentBgId = currentBgId * 1;
    totalPhotos = totalPhotos * 1;
    var newBgId = 0;
    var which = "";    
    if (direction == "up") {
        if (currentBgId < totalPhotos) {
            newBgId = currentBgId + 1;
            which = 1;
        } else {
            newBgId = 1;
            which = 2;
        }
    } else {
        if (currentBgId == 1) {
            newBgId = totalPhotos;
            which = 3;
        } else {
            newBgId = currentBgId -1;
            which = 4;
        }
    }
    document.getElementById("currentPhoto").innerHTML = newBgId;
    container.style.backgroundImage = "url('../_images/familyfun/" + imageName + newBgId + ".jpg')";
}

/* Fridge of fame object */

function fridgeOfFame(){
    
    this.imageDiv = '';
    this.galleryDiv = '';
    this.galleryLinks = '';
    this.largeThumb = '';
    
    // Initialise the fridge of fame class
    // check to see if the gallery div exists
    // and check to see if there's a largethumb div
    this.init = function(){
        if(!document.getElementById('gallery')) return false;
        if(document.getElementById('gallery').nodeType != 1) return false;
        if(!document.getElementById('largeThumb')) return false;
        this.galleryDiv = document.getElementById('gallery');
        this.galleryLinks = this.galleryDiv.getElementsByTagName('div');
        this.imageDiv = document.getElementById('largImageContainer');
        this.largeThumb = document.getElementById('largeThumb');
        this.addHandlers();
    }   
    
    // Add the onclick event handlers
    this.addHandlers = function(){
    
        if(this.imageDiv.getElementsByTagName('a')[0]){        
            this.imageDiv.getElementsByTagName('a')[0].onclick = function(){
                gallery.hideDiv();
                return false;
            }
        }
    
        for(i = 0; i < this.galleryLinks.length; i++){
            if(this.galleryLinks[i].className == "project"){
                projectDiv = this.galleryLinks[i].getElementsByTagName('li');
                for(ii = 0; ii < projectDiv.length; ii++){
                    
                    projectDiv[ii].getElementsByTagName('a')[0].onclick = function(){
                        gallery.showDiv(this);
                        return false;
                    }
                                      
                }
            }
        }
    }
    
    // Show the target image
    this.showDiv = function(el){
        this.largeThumb.src = el.href;
        
        this.repositionDiv(el);

        this.imageDiv.style.display = 'block';
        
        para = this.imageDiv.getElementsByTagName('p');
        link = this.imageDiv.getElementsByTagName('a');
        for(i = 0; i < link.length; i++){
            if(link[i].className == 'makeProject'){
                link[i].href = 'project.aspx?id=' + el.id;
            }
        }

        for(i = 0; i < para.length; i++){
            if(para[i].className == "caption"){
                para[i].innerHTML = el.title;
            }
        }     
        
    }
        
    // Hide the target image
    this.hideDiv = function(){
        this.imageDiv.style.display = 'none';
        this.largeThumb.src = '';
    }
    
    
    this.repositionDiv = function(el){
        position = this.findPos(el);
        
        this.imageDiv.style.top = position[1] + 10 + 'px';
        this.imageDiv.style.left = position[0]  + 10 + 'px';
    }
    
    this.findPos = function(obj) {
        var curleft = curtop = 0;
        
        if (obj.offsetParent) {
        
            curleft = obj.offsetLeft
            curtop = obj.offsetTop
            
            while (obj = obj.offsetParent) {
                curleft += obj.offsetLeft
                curtop += obj.offsetTop
            }
        }
        return [curleft,curtop];
    }
    
}

addLoadEvent(enableRolloverButtons);
addLoadEvent(enableExternalLinks);
addLoadEvent(enableDoorToday);
addLoadEvent(changeHeaders);
// addLoadEvent(initFridge);