//	ica_default.js
//	Portions (C) PyrusMalus, 2008.
//	www.pyrusmalus.com


var images = new Array();
var imageCount;
var currentImageIndex = 0;


//	need to do this because IE doesn't support indexOf...
if(!Array.indexOf){
  Array.prototype.indexOf = function(obj){
   for(var i=0; i<this.length; i++){
    if(this[i]==obj){
     return i;
    }
   }
   return -1;
  }
}


// Email links

function pm_contact(inName, inDomain)
{
	address='mailto:' + inName + '@' + inDomain;
	location = (address);
}

//	Fading

function pm_setOpacity(object, opacity)
{
	if ((opacity >= 0) && (opacity <=100) && (object != null))
	{
		opacity = (opacity == 100 ? 99.999 : opacity);

		//	Safari 1.2, Firefox, Mozilla, CSS3...
		object.style.opacity = opacity / 100;

		//	Old Mozilla, Firefox...
		object.style.MozOpacity = opacity / 100;

		//	Old Safari, Konqueror...
		object.style.KHTMLOpacity = opacity / 100;

		//	IE/Win...
		object.style.filter = "alpha(opacity:"+opacity+")";
	}
}


function pm_setOpacityForId(objectId, opacity)
{
	if (document.getElementById)
	{
		object = document.getElementById(objectId);
		pm_setOpacity(object, opacity);
	}
}


function pm_showHideDivWithName(inDivName, inShow)
{
	object = document.getElementById(inDivName);
	if (object)
	{
		object.style.display = (inShow) ? "block" : "none";
	}
}

function pm_changeInnerText(inObjectName, inText)
{
	object = document.getElementById(inObjectName);
	if (object && inText)
	{
		object.innerHTML = inText;
	}
}

function pm_changeLinkSource(inLinkName, inLinkUrl)
{
	object = document.getElementById(inLinkName);
	if (object && inLinkUrl)
	{
		object.href = inLinkUrl;
	}
}

function pm_changeImageSource(inImgName, inSource)
{
	object = document.getElementById(inImgName);
	object.src = inSource;
}






// ------------------------------------------

function pm_remoteRollover(inPrefix, inProjectUri, inRolloverClass, inNormalClass, inHighlight)
{
	object = document.getElementById(inPrefix + inProjectUri);
	if (object)
	{
		object.className = inHighlight ? inRolloverClass : inNormalClass;
	}
}


function pm_showProjectImage(inImageUrl, inImageWidth, inImageHeight)
{
//	pm_changeImageSource('splash_image_placeholder_back', inImageUrl);
	
	frontObject = document.getElementById("splash_image_placeholder_front");
	backObject = document.getElementById("splash_image_placeholder_back");
	
	pm_setOpacity(frontObject, 0);
	pm_setOpacity(backObject, 100);
	
//	pm_changeImageSource('splash_image_placeholder_front', inImageUrl);
	
	frontObject.onload = function()
	{
		pm_startFadingProjectImage();
	}
	
	frontObject.src = inImageUrl;
	
//	pm_fadeInProjectImage(0, 1, 5);
}

function pm_startFadingProjectImage()
{
	pm_fadeInProjectImage(0, 5, 5);
}



function pm_fadeInProjectImage(inOpacity, inFadeIncrement, inFadeDelay)
{
	if (document.getElementById)
	{
		frontObject = document.getElementById("splash_image_placeholder_front");
		backObject = document.getElementById("splash_image_placeholder_back");
		if (inOpacity <= 100)
		{
			//	keep fading up image...
			pm_setOpacity(backObject, 100-inOpacity);
			pm_setOpacity(frontObject, inOpacity);
			
//			frontObject.style.marginLeft = (100-inOpacity) + "px";
//			backObject.style.marginLeft = (inOpacity) + "px";
			
			inOpacity += inFadeIncrement;
			window.setTimeout("pm_fadeInProjectImage(" + inOpacity + ", " + inFadeIncrement + ", " + inFadeDelay + ")", inFadeDelay);
		}
		else
		{
			//	swap this into back placeholder...
			backObject.src = frontObject.src;
//			backObject.style.marginLeft = "0px";
			//	reset the opacity on the foremost placeholder...
			pm_setOpacity(frontObject, 0);
			pm_setOpacity(backObject, 100);
		}
	}
}



function pm_addImageToImageList(inImageUrl)
{
	images[images.length] = (inImageUrl);
}

function pm_showRandomSlideshowImage()
{
	now = new Date();
	seed = now.getSeconds();
	index = Math.floor(Math.random(seed) * images.length);
	pm_showProjectImage(images[index], 0, 0);
	
	window.setTimeout("pm_showRandomSlideshowImage()", 5000);
}


function pm_showSequentialSlideshowImage()
{
	pm_showProjectImage(images[currentImageIndex], 0, 0);
	currentImageIndex = currentImageIndex + 1;
	if (currentImageIndex >= images.length)
	{
		currentImageIndex = 0;
	}
	
	window.setTimeout("pm_showSequentialSlideshowImage()", 3000);
}




function pm_changeStyleDivWithName(inDivName, inStyleName)
{
	object = document.getElementById(inDivName);
	if (object)
	{
		object.className = inStyleName;
	}
}


function pm_showProjectPage(inPageIndex, inPageCount)
{
	for (pageLoop = 1; pageLoop <= inPageCount; pageLoop++)
	{
		pm_showHideDivWithName("project_listing_" + pageLoop, (inPageIndex == pageLoop));
		pm_showHideDivWithName("splash_thumbnails_" + pageLoop, (inPageIndex == pageLoop));
		pm_changeStyleDivWithName("page_number_" + pageLoop, ((inPageIndex == pageLoop) ? "selected" : ""));
	}
}


function pm_clickedMoveToNextImage()
{
	backObject = document.getElementById("splash_image_placeholder_back");
	currentImageSrc = backObject.src;
	currentImageIndex = images.indexOf(currentImageSrc);
	nextImageIndex = currentImageIndex + 1;
	if (nextImageIndex >= images.length)
	{
		nextImageIndex = 0;
	}
	nextImageSrc = images[nextImageIndex];
	pm_showProjectImage(nextImageSrc, 0, 0);
}



function pm_getParameterFromLocation(inParameterName)
{
	parameterName = inParameterName.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
	var regexStatement = "[\\?&]" + parameterName + "=([^&#]*)";
	var regex = new RegExp(regexStatement);
	var results = regex.exec(window.location.href);
	return (results == null) ? "" : results[1];
}

function pm_getProjectPageIndexFromLocation()
{
	pageIndex = pm_getParameterFromLocation("page");
	return (pageIndex == "") ? 1 : pageIndex;
}

function pm_initializeProjectPages(inPageCount)
{
	pm_showProjectPage(pm_getProjectPageIndexFromLocation(), inPageCount);
}


