var timer=null;
var currentOpacity=0;
var selectedObj=null;
var cycled=0;
var maxCycle=0;
var currentInterval=0;
var faderSteps=5;
var desiredDarkness=70;
var fadeInOutObj=null;
var fadeInOutOpacity=0;
var fullresizeContainer=new Array();
var fullresizeObj=new Array();
var fullresizeObjContents=new Array();
function drawBlack()
{
    pasteRawHTML("<div id=\"blackBox\" style=\"visibility:hidden;position:fixed;z-index:3;padding:0px;margin:0px;top:0px;left:0px;width:100%;height:100%\" >&nbsp;</div>",document.body);
    sizeFader();
}
function sizeFader() {
    if (document.getElementById("blackBox")!=null)     {
        var docHeight=(typeof document.height != 'undefined')?document.height:(document.compatMode && document.compatMode != 'BackCompat')?document.documentElement.scrollHeight:document.body.scrollHeight;
        var wh=getWindowHeight();
        if (docHeight<wh) docHeight=wh;
        obj=document.getElementById("blackBox");
        obj.style.height=docHeight+"px";
    }
    if (document.getElementById("dialogBox")!=null) centerObject(document.getElementById("dialogBox"));
}
function fader(obj,o) {if (obj.style) {if (o==100) {if (obj.style.MozOpacity!=null){obj.style.MozOpacity = "";}else if (obj.style.opacity!=null){obj.style.opacity = "";}else if (obj.style.filter!=null){obj.style.filter = "";}}else{if (obj.style.MozOpacity!=null){obj.style.MozOpacity = (o/100) - .001;}else if (obj.style.opacity!=null){obj.style.opacity = (o/100) - .001;}else if (obj.style.filter!=null){obj.style.filter = "alpha(opacity="+o+")";}}}}

function startFadeUp() {
    window.onresize=sizeFader;
    window.onscroll=sizeFader;
    if (document.getElementById("blackBox")==null) drawBlack();
    obj=document.getElementById("blackBox");
	fadeObject(obj,0,desiredDarkness,faderSteps,null);
}
function backgroundGone() {
	removeTheNode("blackBox");
	window.onresize=null;
	window.onscroll=null;
}
function startFadeDown() {
    if (document.getElementById("blackBox")!=null) fadeObject(document.getElementById("blackBox"),desiredDarkness,0,faderSteps,backgroundGone);
}
function getWindowHeight() {
    var myHeight = ( typeof( window.innerWidth ) == 'number' )?window.innerHeight:( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) )?document.documentElement.clientHeight:document.body.clientHeight;
    return myHeight;
}
function getScrollXY()
{
    var scrOfX = 0, scrOfY = 0;
    if( typeof( window.pageYOffset ) == 'number' )
    {
        //Netscape compliant
        scrOfY = window.pageYOffset;
        scrOfX = window.pageXOffset;
    }
    else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) )
    {
        //DOM compliant
        scrOfY = document.body.scrollTop;
        scrOfX = document.body.scrollLeft;
    }
    else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) )
    {
        //IE6 standards compliant mode
        scrOfY = document.documentElement.scrollTop;
        scrOfX = document.documentElement.scrollLeft;
    }
    //pasteRawHTML(scrOfY+"<br />",document.body);
    return [ scrOfX, scrOfY ];
}
function getWindowWidth() {
    var myWidth = 0, myHeight = 0;
    if( typeof( window.innerWidth ) == 'number' )
    {
        myWidth = window.innerWidth;
        myHeight = window.innerHeight;
    }
    else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) )
    {
        myWidth = document.documentElement.clientWidth;
        myHeight = document.documentElement.clientHeight;
    }
    else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) )
    {
        myWidth = document.body.clientWidth;
        myHeight = document.body.clientHeight;
    }
    return myWidth;
} 
function startFadeIn(srcObj)
{
    fadeInOutObj=srcObj;
    fadeInOutOpacity=0;
    fader(fadeInOutObj,fadeInOutOpacity);
    fadeInOutObj.style.visibility="visible";
    if (typeof timer != 'undefined') clearTimeout(timer);
    timer = setTimeout("fadeInTimer()",2);
}

function startFadeOut(srcObj)
{
    if (fadeInOutObj!==srcObj) {
        fadeInOutObj=srcObj;
        fadeInOutOpacity=100;
    }
    fader(fadeInOutObj,fadeInOutOpacity);
    if (typeof timer != 'undefined') clearTimeout(timer);
    timer = setTimeout("fadeOutTimer()",2);
}

function removeTheNode(idname) {
	if (typeof(idname)=="string") {
		if (document.getElementById(idname)!=null)
		{
			if (fullresizeContainer[0]==document.getElementById(idname)) {
				cancelResize();
			}
			thisNode=document.getElementById(idname);
			thisNode.parentNode.removeChild(thisNode);
		}
	}else{
		idname.parentNode.removeChild(idname);
	}
    sizeFader();
}
function returnRoundedBox(id,title,content,centerText,zindex,width,removeWhichArray,withClose,withoutFadeDown) {
	op="<table id=\""+id+"\" cellpadding=0 cellspacing=0 style=\"position:fixed;z-index:"+zindex+";"+((width!=null)?"width:"+width+"px":"")+"\"><tr><td><div class='t'><img src='/skin/tr.gif' style='margin:0px;float:right' align='absmiddle' /><div><h1>";
	
	if (title!="") {
		removeThese="";
		if (removeWhichArray!=null) {
			rems=removeWhichArray.split(",");
			if (removeWhichArray!=null) for(i=0;i<rems.length;i++) removeThese+=";removeTheNode('"+rems[i]+"')";
		}
		if (withClose) {
			op+="<img src=\"/skin/close.gif\" onmouseout=\"this.src='/skin/close.gif'\" onmouseover=\"this.src='/skin/closeover.gif'\" style=\"cursor:pointer;float:right;margin:10px 0px 0px 0px;\" alt=\"Close\" onclick=\"";
			if (!withoutFadeDown || withoutFadeDown==null) {
				op+="startFadeDown();";
			}
			op+="removeTheNode('"+id+"');"+removeThese+"\" />";
		}
	}
	op+=title+"</h1></div></div><div class='c' style=\"text-align:"+(centerText?"center":"left")+"\">"+content+"</div>";
	
	op+="<div class='b'><img src='/skin/br.gif' style='margin:0px;float:right' align='absmiddle' /><div>&nbsp;</div></div></div></td></tr></table>";
	//output+="<tr><td class=\"bl\">&nbsp;</td><rd class=\"b\">&nbsp;</td><td class=\"br\">&nbsp;</td></tr>";
	//output+="</table>";
	return op;
}
function pasteRawHTML(theHTML,destinationObj)
{
    var hiddenArea=null;
    if (document.getElementById("ParseArea")==null)
    {
        hiddenArea=document.createElement("div");
        hiddenArea.style.display="none";
        hiddenArea.id="ParseArea";
    }
    else
    {
        hiddenArea = document.getElementById("ParseArea");
    }
    hiddenArea.innerHTML=theHTML;
    for (c=0;c<hiddenArea.childNodes.length;c++)
    {
        destinationObj.appendChild(hiddenArea.childNodes[c]);
    }
    hiddenArea.innerHTML="";
}
function centerObject(obj)
{
    var st = (window.pageYOffset)?(window.pageYOffset):(document.documentElement)?document.documentElement.scrollTop:document.body.scrollTop;
    var scrolls=getScrollXY();
    st=scrolls[1];
	if (obj.style.position=="fixed") st=0;
    var wh = getWindowHeight();
    var t=(obj.clientHeight>wh)?st:((wh-obj.clientHeight)/2)+st;
    if (t<10) t=10;
    l=((document.body.offsetWidth-obj.clientWidth)/2);
    if (l<0) l=0;
    obj.style.left=l+"px";
    obj.style.top=t+"px";
}



var fadingObjects=new Array();
var fadeobjectinterval=2;
//{object;from;to;steps;completehandler}
var faderTimer=null;
function fadeObject(obj,from,to,steps,handler) {
	fadingObjects.push({'object':obj,'from':from,'to':to,'steps':steps,'handler':handler,'alpha':from});
	if (fadingObjects.length>0 && faderTimer==null) faderTimer=setTimeout("fadeObjects()",fadeobjectinterval);
}
function fadeObjects() {
	toremove=new Array();
	for(o=0;o<fadingObjects.length;o++) {
		obj=fadingObjects[o];
		step=obj["steps"];
		if (obj["from"]>obj["to"]) step=-step;
		obj['alpha']+=step;
		if (obj["alpha"]>=obj["to"] && step>0) {
			obj['alpha']=obj['to'];
			toremove.push(o);
		}else if(obj["alpha"]<=obj["to"] && step<0) {
			obj['alpha']=obj['to'];
			toremove.push(o);
		}
		fader(obj["object"],obj["alpha"]);
		if (obj['object'].style.visibility=='hidden') obj['object'].style.visibility="visible";
		//pasteRawHTML("<div>"+obj['object'].id+":"+obj['alpha']+"</div>",document.body);
	}
	toremove.reverse();
	for(r=0;r<toremove.length;r++) {
		if (fadingObjects[toremove[r]]['handler']!=null) fadingObjects[toremove[r]]['handler']();
		fadingObjects.splice(toremove[r],1);
	}
	if (fadingObjects.length>0) {
		faderTimer=setTimeout("fadeObjects()",fadeobjectinterval);
	}else{
		clearTimeout(faderTimer);
		faderTimer=null;
	}
}


var displayAlbum=new Array();
var displayAlbumTitles=new Array();
function displayPhoto(srcObj) {
	displayAlbum=new Array();
	displayAlbumTitles=new Array();
	imgs=srcObj.parentNode.getElementsByTagName("DIV");
	for(i=0;i<imgs.length;i++) {
		displayAlbum.push(imgs[i].id);
		displayAlbumTitles.push(imgs[i].id.replace("-"," "));
	}
	currentImg=srcObj.id;
	currentTitle=srcObj.id.replace("-"," ");
	if (currentTitle=="") currentTitle="Untitled";
	index=displayAlbum.indexOf(currentImg);
	count=displayAlbum.length;
	content='<div id="photoDisplay"><div style="width:50px;height:50px;line-height:50px;text-align:center;margin:0 auto"></div></div>';
	content+="<div id='loadingImg' style='display:none;position:absolute'><img src='/samples/large/"+currentImg+".jpg' onload='showPhoto(this)' /></div>";
	content+="<div id='photoArrows'>"+photoArrows(index,count)+"</div>";
	ins=returnRoundedBox('dialogBox','<span id="photoname">'+currentTitle+'</span>',content,true,5,null,null,true,false);
	startFadeUp();
	pasteRawHTML(ins,document.body);
	centerObject(document.getElementById("dialogBox"));
}
function photoArrows(index,count) {
	w=(count*8);
	reply="";;
	if (index>0) {
		reply+="<div class='photoleft' onclick='loadPhoto("+(index-1)+")' title='Previous' ></div>";
		w+=46;
	}
	for(p=0;p<count;p++) {
		if (p==index) {
			reply+="<div class='photoblipon'></div>";
		}else{
			reply+="<div class='photoblip' onclick='loadPhoto("+p+")' title='"+displayAlbumTitles[p]+"'></div>";
		}
	}
	if (index<count-1) {
		reply+="<div class='photoright' onclick='loadPhoto("+(index+1)+")' title='Next' ></div>";
		w+=46;
	}
	reply+="</div>";
	return "<div style='width:"+w+"px;padding:4px;margin:0 auto'>"+reply+"</div>";
}
function loadPhoto(index) {
	li=document.getElementById('photoDisplay');
	img=li.childNodes[0];
	fader(img,40);
	//w=li.offsetWidth;
	//h=li.offsetHeight;
	//li.innerHTML="<div style='width:"+w+"px;height:"+h+"px'></div>";
	
	document.getElementById('loadingImg').innerHTML="<img src='/samples/large/"+displayAlbum[index]+".jpg' onload='showPhoto(this)' />";
	t=displayAlbumTitles[index];
	if (t=="") t="Untitled";
	document.getElementById("photoname").innerHTML=t;
	document.getElementById("photoArrows").innerHTML=photoArrows(index,displayAlbum.length);
}
function showPhoto(srcObj) {
	li=srcObj.parentNode;
	li.style.visiblity='hidden';
	li.style.display='block';
	w=srcObj.offsetWidth;
	h=srcObj.offsetHeight;
	li.style.display='none';
	setInnerHTMLCentered('photoDisplay',"<img id='displayingPhoto' src='"+srcObj.src.replace('/samples/thumbnails/','/samples/large/')+"' width='"+w+"' height='"+h+"' style='visibility:hidden' onload='fadeObject(this,0,100,5,null)' />",'dialogBox');
	//fadeObject(document.getElementById('displayingPhoto'),0,100,5,null);
	//startFadeIn(document.getElementById('displayingPhoto'));
}
function setInnerHTML(obj,content) {
	if (typeof(obj)=="string") {
    	thisresize=document.getElementById(obj);
	}else{
		thisresize=obj;
	}
    if (thisresize.tagName=="DIV" || thisresize.tagName=="TD") {
        resizeObj.push(thisresize);
        resizeObjContents.push(content);
        if (resizeObj.length==1) startResize();
    }else{
        thisresize.innerHTML=content;
    }
}
function startResize() {
    if (resizeObj.length>0) {
    
        thisresize=resizeObj[0];
        resizeObjCurrentHeight=thisresize.offsetHeight;
        testContent="<div id=\"textContent\">"+resizeObjContents[0]+"</div>";
        thisresize.style.height=resizeObjCurrentHeight+"px";
        thisresize.style.overflow='hidden';
        thisresize.style.display='block';
        if (resizeObjContents[0]=="") {
            resizeObjHeight=1;
        }else{
            thisresize.innerHTML=testContent;
            resizeObjHeight=thisresize.childNodes[0].offsetHeight;
        }
        thisresize.innerHTML=resizeObjContents[0];
        resizeTimer = setTimeout("resizeTheObj()",2);
    }
}
function resizeTheObj(){
    maxMovement=50;
    thisObj=resizeObj[0];
    dh=(resizeObjHeight-resizeObjCurrentHeight)/2;
    if (dh>maxMovement) dh=maxMovement;
    if (dh<-maxMovement) dh=-maxMovement;
    dw=0;
    if (dh<1 && dh>-1 && dw<1 && dw>-1) {
        clearTimeout(resizeTimer);
        resizeTimer=null;
        if (thisObj.innerHTML=="") thisObj.style.display="none";
        thisObj.style.overflow="visible";
        thisObj.style.height="";
        resizeObj.shift();
        resizeObjContents.shift();
        if (resizeObj.length>0) startResize();
    }else{
        resizeObjCurrentHeight+=dh;
        thisObj.style.height=resizeObjCurrentHeight+"px";
        resizeTimer = setTimeout("resizeTheObj()",2);
    }
}
function setInnerHTMLCentered(obj,content,container) {
    thisresize=document.getElementById(obj);
    if (thisresize.tagName=="DIV" || thisresize.tagName=="TD") {
        fullresizeContainer.push(document.getElementById(container));
        fullresizeObj.push(thisresize);
        fullresizeObjContents.push(content);
        if (fullresizeObj.length==1) startResizeCentered();
    }else{
        thisresize.innerHTML=content;
    }
}
function startResizeCentered() {
    if (fullresizeObj.length>0) {
        thisresize=fullresizeObj[0];
        currentHeight=thisresize.offsetHeight;
        currentWidth=thisresize.offsetWidth;
        thisresize.style.overflow='visible';
        thisresize.style.display='block';
        thisresize.style.height="";
        thisresize.style.width="";
        thisresize.innerHTML=fullresizeObjContents[0];
        fullresizeObjWidth=thisresize.offsetWidth;
        fullresizeObjHeight=thisresize.offsetHeight;
        if (fullresizeObjContents[0]=="") {
            fullresizeObjHeight=1;
            fullresizeObjWidth=1;
        }
        thisresize.style.overflow='hidden';
        thisresize.style.height=currentHeight+"px";
        thisresize.style.width=currentWidth+"px";
        fullresizeTimer = setTimeout("resizeTheObjCentered()",2);
    }
}
function resizeTheObjCentered(){
    if (fullresizeObj.length>0) {
        thisObj=fullresizeObj[0];
        if (thisObj==null) {
            clearTimeout(fullresizeTimer);
            fullresizeTimer=null;
            fullresizeObj.shift();
            fullresizeObjContents.shift();
            fullresizeContainer.shift();
            if (fullresizeObj.length>0) startResizeCentered();
        }else{
            h=thisObj.offsetHeight;
            w=thisObj.offsetWidth;
            dh=(fullresizeObjHeight-h)/2;
            dw=(fullresizeObjWidth-w)/2;
            if (dh<1 && dh>-1 && dw<1 && dw>-1) {
                clearTimeout(fullresizeTimer);
                fullresizeTimer=null;
                if (thisObj.innerHTML=="") thisObj.style.display="none";
                //thisObj.style.overflow="visible";
                thisObj.style.height="";
                thisObj.style.width="";
                fullresizeObj.shift();
                fullresizeObjContents.shift();
                fullresizeContainer.shift();
                if (fullresizeObj.length>0) startResizeCentered();
            }else{
                thisObj.style.height=(h+dh)+"px";
                thisObj.style.width=(w+dw)+"px";
                centerObject(fullresizeContainer[0]);
                fullresizeTimer = setTimeout("resizeTheObjCentered()",2);
            }
        }
    }else{
        clearTimeout(fullresizeTimer);
        fullresizeTimer=null;
    }
    
}
function cancelResize() {
    fullresizeObj[0].innerHTML="Cancelling";
    clearTimeout(fullresizeTimer);
    fullresizeTimer=null;
    fullresizeObj.shift();
    fullresizeObjContents.shift();
    fullresizeContainer.shift();
    if (fullresizeObj.length>0) startResizeCentered();
}