
 /* /js/core.js */ 

function addWindowOnLoadEvent(func , domElementId)
{
	// config
	var checkInterval = 250; //ms to check to see if elements have loaded
	
	// see if we have the function array otherwise create it
	if (typeof FUTURE_ONLOAD_FUNCTIONS != 'object')
	{
		//if(window.console)window.console.log('create array and empty timer');
		FUTURE_ONLOAD_FUNCTIONS = new Array();
		FUTURE_DOM_CHECK_TIMER  = false;
	}
	// get  function params
	var func = func;
	var domElementId = (domElementId)?domElementId:false;
	
	// package the function and dom element id
	var functionCall = Array(func , domElementId);
	
	// pack into the global array
	FUTURE_ONLOAD_FUNCTIONS.push(functionCall);
	
	if(!FUTURE_DOM_CHECK_TIMER  && (functionCall[1] != false)) // if we have a call to a dom element
	{
		// create a new timer
		//if(window.console)window.console.log('create a timer - started by ' + functionCall[1]);
		FUTURE_DOM_CHECK_TIMER = setInterval(
			function()
			{
				//if(window.console)window.console.log('timer called');
				//  loop around the FUTURE_ONLOAD_FUNCTIONS and if it has a element_id check to see if its loaded
				var nr = FUTURE_ONLOAD_FUNCTIONS.length -1;
				for(var i = nr; i > -1; i--)
				{
					if ((typeof FUTURE_ONLOAD_FUNCTIONS[i][0] == 'function') && FUTURE_ONLOAD_FUNCTIONS[i][1] && document.getElementById(FUTURE_ONLOAD_FUNCTIONS[i][1]))
					{
						FUTURE_ONLOAD_FUNCTIONS[i][0].call();
						//if(window.console)window.console.log( 'timer called: ' + FUTURE_ONLOAD_FUNCTIONS[i][1] );
						FUTURE_ONLOAD_FUNCTIONS[i] = false;
					}	
				}
				
			} , checkInterval
		);
	}
}

function callWindowOnLoadFunctions()
{
	if(FUTURE_DOM_CHECK_TIMER)clearInterval(FUTURE_DOM_CHECK_TIMER);
	//if(window.console)window.console.log('FUTURE_DOM_CHECK_TIMER killed ');
	var nr = FUTURE_ONLOAD_FUNCTIONS.length -1;
	for(var i = nr; i > -1; i--)
	{
		if (typeof FUTURE_ONLOAD_FUNCTIONS[i][0] == 'function')
		{
			//if(window.console)window.console.log('window onload called: ' + i);
			FUTURE_ONLOAD_FUNCTIONS[i][0].call();
		}	
	}
}

function clearSearchField()
{
	if(!document.getElementById("searchform"))return;
	var inputField = document.getElementById('searchform').getElementsByTagName('input')[0];
	var initalValue = inputField.value;
	inputField.onfocus = function()
	{
		if (this.value == initalValue)
		{
			this.value = "";
		}
	}
	inputField.onblur = function()
	{
		if (this.value == "")
		{
			this.value = initalValue;
		}
	}
}
addWindowOnLoadEvent(clearSearchField);


function replaceBrokenImages()
{
	var imgs = document.getElementsByTagName('img');
	var imgNr = imgs.length;
	for (var img = 0; img < imgNr; img++)
	{
		imgs[img].onerror = function()
		{
			var originalScr = this.src;
			var imgSplit = originalScr.split('-');
			var imgCompression = (imgSplit[imgSplit.length-1].split('.')[0]);
			var imgFilename = (imgSplit[imgSplit.length-1].split('.')[1]);
			var imgWidth = (imgSplit[imgSplit.length-2]);
			if (typeof(imgWidth) == "undefined") {
				imgWidth = this.width;
			}
			if (imgWidth == 0) {
				if (this.offsetWidth)
				{
					imgWidth = this.offsetWidth;
				}
			}
			this.setAttribute('brokenurl' , this.src);
			this.setAttribute('width' , imgWidth);
			this.src = '/templates/diapazon/images/no-image.jpg'; // just use default.
			this.setAttribute('alt' , 'Broken Image: ' + this.getAttribute('alt'));
			this.onerror = null;
		}
		imgs[img].src = imgs[img].src;
	}
}
addWindowOnLoadEvent(replaceBrokenImages);


function styleShift(theElement,propertyName,propertyType,startVal,endVal,steps,thisStep,delay)
{
	var newVal, startValInt, endValInt;
	switch (propertyType)
	{
		case "#":
		{
			var startRed, startGreen, startBlue, endRed, endGreen, endBlue, redInc, greenInc, blueInc;
			startRed = parseInt(startVal.substring(0,2), 16);
			startGreen = parseInt(startVal.substring(2,4), 16);
			startBlue = parseInt(startVal.substring(4,6), 16);
			endRed = parseInt(endVal.substring(0,2), 16);
			endGreen = parseInt(endVal.substring(2,4), 16);
			endBlue = parseInt(endVal.substring(4,6), 16);
			redInc   = parseInt((endRed - startRed) * (thisStep/steps), 10);
			greenInc = parseInt((endGreen - startGreen) * (thisStep/steps), 10);
			blueInc  = parseInt((endBlue - startBlue) * (thisStep/steps), 10);
			newVal = "rgb(" + parseInt(startRed+redInc) +","+parseInt(startGreen+greenInc) + "," + parseInt(startBlue+blueInc) + ")";
			break;
		}
		case "o":
		{
			startValInt = parseInt(startVal, 10);
			endValInt = parseInt(endVal, 10);
			newVal = parseInt(startValInt + (endValInt - startValInt) * (thisStep/steps), 10)/100;
			break;
		}
		case "%":
		{
			startValInt = parseInt(startVal, 10);
			endValInt = parseInt(endVal, 10);
			newVal = parseInt(startValInt + (endValInt - startValInt) * (thisStep/steps), 10).toString()+"%";
			break;
		}
		case "x":
		{
			startValInt = parseInt(startVal, 10);
			endValInt = parseInt(endVal, 10);
			newVal = parseInt(startValInt + (endValInt - startValInt) * (thisStep/steps), 10).toString()+"px";
			break;
		}
		case "t":
		{
			startValInt = parseInt(startVal, 10);
			endValInt = parseInt(endVal, 10);
			newVal = parseInt(startValInt + (endValInt - startValInt) * (thisStep/steps), 10).toString()+"pt";
			break;
		}
		case "m":
		{
			startValInt = parseInt(startVal, 10);
			endValInt = parseInt(endVal, 10);
			newVal = parseInt(startValInt + (endValInt - startValInt) * (thisStep/steps), 10).toString()+"em";
			break;
		}
		default:
		{
			startValInt = parseInt(startVal, 10);
			endValInt = parseInt(endVal, 10);
			newVal = parseInt(startValInt + (endValInt - startValInt) * (thisStep/steps), 10);
		}
	}
	changeStyle(theElement,propertyName, newVal);
	thisStep++;
	if (thisStep <= steps) {setTimeout(function(){styleShift(theElement,propertyName,propertyType,startVal,endVal,steps,thisStep,delay)}, delay);}
}
function changeStyle(div,change_element,change_value)
{
  var x = div.style;
  eval('x.'+change_element+' = "'+change_value+'";');
  if (change_element == "opacity")
  {
  	eval('x.filter = "alpha(opacity='+(parseInt(change_value*100)).toString()+')";');
	}
}

oldOnLoad = function(){func = function(){return};return}; //fix to anoying ad code

 /* /js/carousel.js */ 

if (FUTURE_GLOBAL_PAGEJS == 'home')
{

	function carousel_setup(thumbnailElementName,imgElementName,transImgElementName,useZoomOption)
	{
		var carousel_thumbs = new Array;
		var carousel_pics = new Array;
		// Create arrays of pics and thumbnails using the existing thumbnail sources.
		var thumbPics = document.getElementById(thumbnailElementName).getElementsByTagName("img");
		for (i = 0; i < thumbPics.length; i++)
		{
			carousel_thumbs[i] = thumbPics[i].src;
			var thumbSize = new RegExp("-45-80", "g");
			carousel_pics[i] = carousel_thumbs[i].replace(thumbSize,"-400-85");
		}
		document.getElementById(transImgElementName).src = carousel_pics[1];
		imageObj = new Array;
		for (image=0; image < carousel_pics.length; image++)
		{
			imageObj[image] = new Image();
			imageObj[image].src = carousel_pics[image];
		}

		document.getElementById(thumbnailElementName).getElementsByTagName("li")[0].getElementsByTagName("a")[0].style.color = "rgb(255, 255, 255)";
		if (useZoomOption == "zoom") { styleShift(document.getElementById(thumbnailElementName).getElementsByTagName("li")[0],"fontSize","x","12","16",5,0,25); }
		carousel_timer = setInterval('rotate_carousel("' + thumbnailElementName + '","' + imgElementName + '","' + transImgElementName + '","' + useZoomOption + '")',5000);
		// Time to load the images.
	}

	function carousel_force(clickedImage,thumbnailElementName,imgElementName,transImgElementName,useZoomOption,immediateSwitch)
	{
		if (document.getElementById(imgElementName).src != document.getElementById(transImgElementName).src) {
			if (immediateSwitch == "now") {
				document.getElementById(transImgElementName).src = document.getElementById(imgElementName).src;
			} else { return false; }
		}
		// Prevents image switches happening if there's a transition already in progress,
		// unless we've insisted on an immediate switch.
		var carousel_thumbs = new Array;
		var carousel_pics = new Array;
		var thumbPics = document.getElementById(thumbnailElementName).getElementsByTagName("img");
		for (i = 0; i < thumbPics.length; i++)
		{
			carousel_thumbs[i] = thumbPics[i].src;
			var thumbSize = new RegExp("-45-80", "g");
			carousel_pics[i] = carousel_thumbs[i].replace(thumbSize,"-400-85");
		}
		clearInterval(carousel_timer);
		for (image=0; image < carousel_pics.length; image++)
		{
			var colorString = new RegExp(" ", "g");
			document.getElementById(thumbnailElementName).getElementsByTagName("li")[image].getElementsByTagName("img")[0].className = "";
			document.getElementById(thumbnailElementName).getElementsByTagName("li")[image].getElementsByTagName("a")[0].className = "";
			if (carousel_thumbs[image] == clickedImage.src)
			{
/*			    if (typeof document.getElementById(thumbnailElementName).getElementsByTagName("li")[image].style.backgroundPositionX == "string") {
					styleShift(document.getElementById(thumbnailElementName).getElementsByTagName("li")[image],"backgroundPositionX","x","-324","0",immediateSwitch == "now" ? 1 : 15,0,immediateSwitch == "now" ? 1 : 50);
				} else {
					document.getElementById(thumbnailElementName).getElementsByTagName("li")[image].style.background = "url(../images/chevron-back.png) no-repeat 0px -1px;";
				}*/
				styleShift(document.getElementById(thumbnailElementName).getElementsByTagName("li")[image].getElementsByTagName("img")[0],"borderColor","#","2b2b2e","116EB8",immediateSwitch == "now" ? 1 : 6,0,immediateSwitch == "now" ? 1 : 50);
				styleShift(document.getElementById(thumbnailElementName).getElementsByTagName("li")[image].getElementsByTagName("a")[0],"color","#","666666","ffffff",immediateSwitch == "now" ? 1 : 6,0,immediateSwitch == "now" ?  1 : 50);
				if (useZoomOption == "zoom") { styleShift(document.getElementById(thumbnailElementName).getElementsByTagName("li")[image],"fontSize","x","12","16",immediateSwitch == "now" ? 1 : 5,0,immediateSwitch == "now" ? 1 : 25); }
				document.getElementById(transImgElementName).src = document.getElementById(imgElementName).src;
				document.getElementById(transImgElementName).style.opacity = "1";
				document.getElementById(transImgElementName).style.filter = 'alpha(opacity=100)';
				document.getElementById(imgElementName).src = carousel_pics[image];
			} else 	if ((document.getElementById(thumbnailElementName).getElementsByTagName("li")[image].getElementsByTagName("a")[0].style.color.replace(colorString,"") == "rgb(255,255,255)") ||
				    (document.getElementById(thumbnailElementName).getElementsByTagName("li")[image].getElementsByTagName("a")[0].style.color == "#ffffff")) {
/*			    if (typeof document.getElementById(thumbnailElementName).getElementsByTagName("li")[image].style.backgroundPositionX == "string") {
					styleShift(document.getElementById(thumbnailElementName).getElementsByTagName("li")[image],"backgroundPositionX","x","0","-324",immediateSwitch == "now" ? 1 : 15,0,immediateSwitch == "now" ? 1 : 50);
				} else {
					document.getElementById(thumbnailElementName).getElementsByTagName("li")[image].style.background = "url(../images/chevron-back.png) no-repeat -324px -1px;";
				}*/
				styleShift(document.getElementById(thumbnailElementName).getElementsByTagName("li")[image].getElementsByTagName("img")[0],"borderColor","#","116EB8","2b2b2e",immediateSwitch == "now" ? 1 : 6,0,immediateSwitch == "now" ? 1 : 50);
				styleShift(document.getElementById(thumbnailElementName).getElementsByTagName("li")[image].getElementsByTagName("a")[0],"color","#","ffffff","666666",immediateSwitch == "now" ? 1 : 6,0,immediateSwitch == "now" ? 1 : 50);
				if (useZoomOption == "zoom") { styleShift(document.getElementById(thumbnailElementName).getElementsByTagName("li")[image],"fontSize","x","16","12",immediateSwitch == "now" ? 1 : 5,0,immediateSwitch == "now" ? 1 : 25); }
			}
		}
		setTimeout("fadeThat('" + imgElementName + "','" + transImgElementName + "', 100)", 30);
		carousel_timer = setInterval('rotate_carousel("' + thumbnailElementName + '","' + imgElementName + '","' + transImgElementName + '","' + useZoomOption + '")',5000);
		// Time to load the images.
	}

	function rotate_carousel(thumbnailElementName,imgElementName,transImgElementName,useZoomOption)
	{
		var carousel_pics = new Array;
		var thumbSize = new RegExp("-45-80", "g");
		for (i = 0; i < document.getElementById(thumbnailElementName).getElementsByTagName("li").length; i++)
		{
			carousel_pics[i] = document.getElementById(thumbnailElementName).getElementsByTagName("li")[i].getElementsByTagName("img")[0].src.replace(thumbSize,"-400-85");
		}
		carousel_counter = -1;
		for (image=0; image < carousel_pics.length; image++)
		{
			var colorString = new RegExp(" ", "g");
			if ((document.getElementById(thumbnailElementName).getElementsByTagName("li")[image].getElementsByTagName("a")[0].style.color.replace(colorString,"") == "rgb(255,255,255)") ||
			    (document.getElementById(thumbnailElementName).getElementsByTagName("li")[image].getElementsByTagName("a")[0].style.color == "#ffffff")) {
/*			    if (typeof document.getElementById(thumbnailElementName).getElementsByTagName("li")[image].style.backgroundPositionX == "string") {
					styleShift(document.getElementById(thumbnailElementName).getElementsByTagName("li")[image],"backgroundPositionX","x","0","-324",15,0,50);
				} else {
					document.getElementById(thumbnailElementName).getElementsByTagName("li")[image].style.background = "transparent url(../images/chevron-back.png) no-repeat -324px -1px;";
				}*/
				styleShift(document.getElementById(thumbnailElementName).getElementsByTagName("li")[image].getElementsByTagName("img")[0],"borderColor","#","116EB8","2b2b2e",6,0,50);
				styleShift(document.getElementById(thumbnailElementName).getElementsByTagName("li")[image].getElementsByTagName("a")[0],"color","#","ffffff","666666",6,0,50);
				if (useZoomOption == "zoom") { styleShift(document.getElementById(thumbnailElementName).getElementsByTagName("li")[image],"fontSize","x","16","12",5,0,25); }
			}
			if (carousel_pics[image] == document.getElementById(imgElementName).src)
			{
				carousel_counter = image + 1;
				document.getElementById(transImgElementName).src = document.getElementById(imgElementName).src;
				document.getElementById(transImgElementName).style.opacity = "1";
				document.getElementById(transImgElementName).style.filter = 'alpha(opacity=100)';
			}
		}
		if (carousel_counter < 0)
		{
			document.getElementById(imgElementName).src = carousel_pics[1];
			document.getElementById(transImgElementName).src = carousel_pics[0];
			document.getElementById(transImgElementName).style.opacity = "1";
			document.getElementById(transImgElementName).style.filter = 'alpha(opacity=100)';
			clearInterval(carousel_timer);
			carousel_timer = setInterval('rotate_carousel("' + thumbnailElementName + '","' + imgElementName + '","' + transImgElementName + '","' + useZoomOption + '")',5000);
			return true;
			// If the main background doesn't match any of the thumbs, we'll force the damn thing.
		}
		document.getElementById(transImgElementName).style.zIndex = "110";
		if (carousel_counter > carousel_pics.length - 1) { carousel_counter = 0; }
		fadeThat(imgElementName, transImgElementName, 100);
		setTimeout('document.getElementById("' + imgElementName + '").src = "' + carousel_pics[carousel_counter] + '"',30);
/*	    if (typeof document.getElementById(thumbnailElementName).getElementsByTagName("li")[carousel_counter].style.backgroundPositionX == "string") {
			styleShift(document.getElementById(thumbnailElementName).getElementsByTagName("li")[carousel_counter],"backgroundPositionX","x","-324","0",15,0,50);
		} else {
			document.getElementById(thumbnailElementName).getElementsByTagName("li")[carousel_counter].style.background = "transparent url(../images/chevron-back.png) no-repeat 0px -1px;";
		}*/
		styleShift(document.getElementById(thumbnailElementName).getElementsByTagName("li")[carousel_counter].getElementsByTagName("img")[0],"borderColor","#","2b2b2e","116EB8",6,0,50);
		styleShift(document.getElementById(thumbnailElementName).getElementsByTagName("li")[carousel_counter].getElementsByTagName("a")[0],"color","#","666666","ffffff",6,0,50);
		if (useZoomOption == "zoom") { styleShift(document.getElementById(thumbnailElementName).getElementsByTagName("li")[carousel_counter],"fontSize","x","12","16",5,0,25); }
	}

	function fadeThat(imgElementName,transImgElementName, opacity)
	{
		document.getElementById(transImgElementName).style.opacity = (opacity/100).toString();
		document.getElementById(transImgElementName).style.filter = 'alpha(opacity=' + opacity.toString() + ')';
		opacity-=5;
		if (opacity>=0) {setTimeout("fadeThat('" + imgElementName + "','" + transImgElementName + "', " + opacity + ")", 20);}
		else {document.getElementById(transImgElementName).src = document.getElementById(imgElementName).src;}
	}
}



 /* /js/setup_carousel.js */ 

if (FUTURE_GLOBAL_PAGEJS == 'home')
{

	// setup function to start the homepage carousel

	function setup_homepage_carousel()
	{
		carousel_setup('carousel_thumbnails','carousel_image','carousel_transitional_image','');
		var x = document.getElementById("carousel_thumbnails").getElementsByTagName("li");
		for (var i=0;i<x.length;i++)
		{
			x[i].getElementsByTagName("img")[0].onclick = function () { carousel_force(this,'carousel_thumbnails','carousel_image','carousel_transitional_image','','now'); }
			x[i].onmouseover = function () { carousel_force(this.getElementsByTagName("img")[0],'carousel_thumbnails','carousel_image','carousel_transitional_image','','now'); }
		}
	}
	addWindowOnLoadEvent(setup_homepage_carousel);


}
