/***************************************
 *                                     *
 *  Copyright 2010 Thomas Stanoulis.   *
 *  The following code is not to be    *
 *  implemented or reproduced without  *
 *  express permission therefrom. To   *
 *  contact, email T Stanoulis at:     *
 *  thomas@t-stanoulis.com             *
 *                                     *
 ***************************************/


//-----------
// Utilities
//-----------

i = 0; // i is used for counting _only_ in $_$(x,...)

// use loopsArray for counting in embedded loops:
// provide loopsArray[n] for (n+1) depth (n=0 typical)
loopsArray = new Array;
function ring() {alert('test');}



//--------------
// Gallery Data
//--------------

galleryIsLoaded = false;
imageGalleryPhotoId = new String;
imageGalleryPhotoId = "galleryPhoto";
gallerySourceFolder = new String;
galleryImageTitleArray = new Array;
numberOfGalleryImages = new Number;
numberOfGalleryImages = 3;
currentGalleryImageIndex = new Number;
currentGalleryImageIndex = 0;



//-----------
// Functions
//-----------
//
// Note that most of these functions which do not return a specific object will return true once
// executed. This is not always desirable and is altered when proper return codes are required.

// $_$
// Returns an array with the elements called.
function $_$(namesOfElements) {
	//declarations
	arrayOfElements = new Array(arguments.length);
	//gets elements
	for (i=0;i<arguments.length;i++) {
		arrayOfElements[i] = document.getElementById(arguments[i]);
		}
	//returns elements
	return arrayOfElements;
	}

// nextPage
// Open the 'next page' by the given url, nextURL.
function nextPage(nextURL) {
	window.location = nextURL;
	}
	
// ieCheck
function ieCheck(key) {
	var versionbit = new String;
	versionbit = navigator.appVersion;
	versionbit = versionbit.substring(22,23);
	var versionNum = versionbit.valueOf();
	versionbit = navigator.appName
	
	if (versionbit == "Microsoft Internet Explorer" && (versionNum < 8) && key == 0) {
		return true;
		}
	if (versionbit == "Microsoft Internet Explorer" && (versionNum < 7) && key == 1) {
		return true;
		}
	return false;
	}

// setOpacity
// Sets the opacity of the given element.
function setOpacity(elementName, opacityTarget) {
	//declarations
	arrayOfElements = $_$(elementName);
	//sets opacity, first checks for existence of ID in document
	if (arrayOfElements[0]) { arrayOfElements[0].style.opacity = opacityTarget; }
	return true;
	}
	
// setVisible
// Sets the visibility of the given element.
function setVisible(elementName, yesOrNo) {
	//declarations
	arrayOfElements = $_$(elementName);
	//sets visibility, first checks for existence of ID in document
	if (arrayOfElements[0]) { arrayOfElements[0].style.visibility = (yesOrNo==1)?"visible":"hidden"; }
	return true;
	}
	
// changeImage
// Changes the passed image's source.
function changeImage(imageElementId, newImageSource) {
	//declarations
	arrayOfElements = $_$(imageElementId);
	//changes the image, if the image exists, and images have been loaded
	if (document.images && arrayOfElements[0]) { arrayOfElements[0].src = newImageSource; }
	return true;
	}
	
// galleryTitler
// Sets the text of the Title of the indexed photo and updates the counter.
function galleryTitler(imageIndex) {
	//declarations
	newImageTitle = new String;
	newImageTitle = galleryImageTitleArray[imageIndex];
	arrayOfElements = $_$("gallery_title", "gallery_counter");
	if (galleryIsLoaded) {
		arrayOfElements[0].innerHTML = "";
		arrayOfElements[0].innerHTML = newImageTitle;
		arrayOfElements[1].innerHTML = "image " + (imageIndex+1).toString() + " / " + numberOfGalleryImages.toString();
		}
	return true;
	}

// nextGalleryImage
// Switches to the next image in the gallery, and sets the text to the correct content.
function nextGalleryImage() {
	//declarations
	newImageGalleryNumber = new String;
	newImageGalleryNumber = (currentGalleryImageIndex>7) ? (currentGalleryImageIndex+2).toString() : "0" + (currentGalleryImageIndex+2).toString();
	newGalleryImageSource =  gallerySourceFolder + "/" + newImageGalleryNumber + ".jpg";
	//if the gallery has been loaded, images are loaded, and there is a next image, changes to the next image
	if (document.images && galleryIsLoaded) {
		if (currentGalleryImageIndex < (numberOfGalleryImages - 1) ) {
			changeImage(imageGalleryPhotoId, newGalleryImageSource);
			galleryTitler(++currentGalleryImageIndex);
			}
		else if (currentGalleryImageIndex >= (numberOfGalleryImages - 1) ) {
			currentGalleryImageIndex = 0;
			newGalleryImageSource = gallerySourceFolder + "/01.jpg";
			changeImage(imageGalleryPhotoId, newGalleryImageSource);
			galleryTitler(currentGalleryImageIndex);
			}
		}
	return true;
	}

// previousGalleryImage
// Switches to the previous image in the gallery, and sets the text to the correct content.
function previousGalleryImage() {
	//declarations
	newImageGalleryNumber = new String;
	newImageGalleryNumber = (currentGalleryImageIndex>7) ? (currentGalleryImageIndex).toString() : "0" + (currentGalleryImageIndex).toString();
	newGalleryImageSource =  gallerySourceFolder + "/" + newImageGalleryNumber + ".jpg";
	//if the gallery has been loaded, images are loaded, and there is a next image, changes to the next image
	if (document.images && galleryIsLoaded) {
		if (currentGalleryImageIndex > 0) {
			changeImage(imageGalleryPhotoId, newGalleryImageSource);
			galleryTitler(--currentGalleryImageIndex);
			}
		else if (currentGalleryImageIndex == 0) {
			currentGalleryImageIndex = numberOfGalleryImages - 1;
			newImageGalleryNumber = (numberOfGalleryImages>9) ? numberOfGalleryImages.toString() : "0" + numberOfGalleryImages.toString();
			newGalleryImageSource =  gallerySourceFolder + "/" + newImageGalleryNumber + ".jpg";
			changeImage(imageGalleryPhotoId, newGalleryImageSource);
			galleryTitler(currentGalleryImageIndex);
			}
		}
	return true;
	}

// launchGallery
// Launches the gallery, or, if it is already launched, simply displays it.
function launchGallery(folderUrl, imageTitles) {
if (!galleryIsLoaded) {
		//declarations
		currentGalleryImageIndex = 0;
		numberOfGalleryImages = arguments.length - 1;
		gallerySourceFolder = arguments[0];
		arrayOfElements = new Array;
		arrayOfElements = $_$(imageGalleryPhotoId);
		for (loopsArray[0]=1; loopsArray < arguments.length; loopsArray[0]++) {
			 galleryImageTitleArray[loopsArray[0]-1] = arguments[loopsArray[0]];
			}
		galleryIsLoaded = true;
		arrayOfElements[0].width = "480";
		arrayOfElements[0].height = "360";
		changeImage(imageGalleryPhotoId, (gallerySourceFolder + "/01.jpg"));
		galleryTitler(currentGalleryImageIndex);
		setVisible("gallery_box", 1);
		if (ieCheck(1)) {
			window.scrollBy(0, 2560);
			arrayOfElements = $_$("gallery_close");
			arrayOfElements[0].onclick = function() { window.scrollTo(0,440); };
			}
		}
	else {
		setVisible("gallery_box", 1);
		if (ieCheck(1)) {
			window.scrollBy(0, 2560);
			}
		}
	return true
	}
	
// hideGallery
// Hides the gallery.
function hideGallery() {
	setVisible("gallery_box", 0);
	}



//--------------
// Launch Progs
//--------------

// Changes photo gallery style settings in IE.
function onLoader(key) {
	var indenter = new String;
	indenter = "";
	if (key==7){
		indenter = "../"
		}
	else if (key==8) {
		indenter = "../../"
		}
	if (ieCheck(0)) {
		//declarations
		if (key==8) {
			var arrayOfElements = $_$("gallery_photo", "gallery_title", "gallery_counter", "gallery_close", "gallery_left", "gallery_right");
			var arrayOfMargins = new Array("32px","0px","0px","230px","-300px","216px");
			for (loopsArray[0]=0;loopsArray[0]<arrayOfElements.length;loopsArray[0]++){
				arrayOfElements[loopsArray[0]].style.marginLeft = arrayOfMargins[loopsArray[0]];
				}
			arrayOfElements[2].style.marginTop = "-26px";
			}
/*			var headerTitle = new String;
			headerTitle = "header-img-";
			var currentHeader = new String;
			currentHeader = "";
			var headerImages = new Array("logo", "mail", "phone", "cpark", "about", "listings", "buying", "blog", "selling", "hoods", "international");
			var headerImagesSource = new Array("logo", "mail", "phone", "cpark", "nav-aboutus", "nav-listings", "nav-buying", "nav-blog", "nav-selling", "nav-neighbourhoods", "nav-internationalbuyers" )
			for (loopsArray[0]=0;loopsArray[0]<headerImages.length;loopsArray[0]++) {
				currentHeader = headerTitle + headerImages[loopsArray[0]];
				arrayOfElements = $_$(currentHeader);
				arrayOfElements[0].src =  indenter + 'jpg/header-' + headerImagesSource[loopsArray[0]] + '.jpg';
				}
			arrayOfElements = $_$('lower_menu');
			arrayOfElements[0].style.backgroundImage = 'url(' + indenter + 'jpg/header-nav-bg.jpg)'; */
		if (ieCheck(1)) {
			var headerTitle = new String;
			headerTitle = "header-img-";
			var currentHeader = new String;
			currentHeader = "";
			var headerImages = new Array("logo", "mail", "phone", "cpark", "about", "listings", "buying", "blog", "selling", "hoods", "international");
			var headerImagesSource = new Array("logo", "mail", "phone", "cpark", "nav-aboutus", "nav-listings", "nav-buying", "nav-blog", "nav-selling", "nav-neighbourhoods", "nav-internationalbuyers" )
			for (loopsArray[0]=0;loopsArray[0]<headerImages.length;loopsArray[0]++) {
				currentHeader = headerTitle + headerImages[loopsArray[0]];
				arrayOfElements = $_$(currentHeader);
				arrayOfElements[0].src =  indenter + 'jpg/header-' + headerImagesSource[loopsArray[0]] + '.jpg';
				}
			arrayOfElements = $_$('lower_menu');
			arrayOfElements[0].style.backgroundImage = 'url(' + indenter + 'jpg/header-nav-bg.jpg)';
			}
		}
	}
