// JavaScript Document
function addEvents() {
	if(document.getElementById('entegraRate') != null) {
		if(document.getElementById('entegraRate').checked == true) {
			document.getElementById('interestRate').onkeypress = function() {return false;};
		}
		document.getElementById('entegraRate').onchange = function() { toggleRateBox(this.value); };
		document.getElementById('idcustomRate').onchange = function() { toggleRateBox(this.value); };
	}

	if (document.getElementById('colisted_agent_link') != null) {
		document.getElementById('colisted_agent_link').onclick = function() { return toggleListedAgents(this); }
	}
	if (document.getElementById('branded_agents_colist_link_bottom') != null) {
		document.getElementById('branded_agents_colist_link_bottom').onclick = function () { return toggleColistedBranding(this,'branded_colisted_agents_bottom'); }
	}
	if (document.getElementById('branded_agents_colist_link_top') != null) {
		document.getElementById('branded_agents_colist_link_top').onclick = function () { return toggleColistedBranding(this,'branded_colisted_agents_top'); }
	}
}

function toggleColistedBranding(a_obj, id) {
	var obj = document.getElementById(id);
	if(obj.style.display == "none") {
		Effect.SlideDown(obj.id);
		a_obj.innerHTML = "Hide Co-Listed Agents";
	} else {
		Effect.SlideUp(obj.id); //hide the div
		a_obj.innerHTML = "Show Co-Listed Agents";
	}
}

function toggleListedAgents(obj) {
	var listed_agents = getElementsByClassName("co_listed_hidden","dd",document.getElementById('last'));
	
	obj.style.display="none";
	for(var i=0; i<listed_agents.length; i++) {
		listed_agents[i].style.display = 'block';
	}
	
	return false;
}

function toggleRateBox(ratetype) {
	if(ratetype == 'entegraRate') {
		document.getElementById('interestRate').value = document.getElementById('entegraRateAmount').value;
		document.getElementById('interestRate').className = "disabled";
		document.getElementById('interestRate').onkeypress = function() {return false;};
	} else if(ratetype == 'customRate') {
		document.getElementById('interestRate').onkeypress = '';
		document.getElementById('interestRate').className = "normal";
	}
}


function prepareSlideShow() {
	if(document.getElementById("slideshowimg") != null) {
		gSlideShowHTML = document.getElementById('photos_top_img').innerHTML;
	}
}

////////////////////////////// Make the Top Tabs Link //////////////////////////////

// Prepate the TABS for Linking
function prepareTab() {	
	if (!d.getElementById("tabs")) return false;
	var tabs = d.getElementById("tabs").getElementsByTagName("LI");
	for (var i=0; i<tabs.length; i++) {
		// I like cheese :)
		if (tabs[i].className != "cheese") {
			tabs[i].onmousedown = function() {
				whichTab(this);
			} 
		}
	}
}

// Switch the TABS to Display Selected
function whichTab(whichtab) {
	var tabs = d.getElementById("tabs").getElementsByTagName("LI");
	for (var i=0; i<tabs.length; i++) {
		if (tabs[i].className == "on") {
			tabs[i].className = "off";
		}
		if (tabs[i].className == "off") {
			document.getElementById(tabs[i].id+"_content").style.display = "none";
		}
	}
	
	var item = whichtab;
	item.className = "on";
	
	var element=item.id; 
	
	document.getElementById(element+"_content").style.display = "block";
}

////////////////////////////// Integrate Previous and Next Slider //////////////////////////////

var i1 = 0;
var i2 = 0;
var item_width = 80;

// Prepare the THUMBNAILS for Linking Next
function prepareThumbsNext() {
	if (!document.getElementById("thumbs_next")) return false;

	var nav_link = document.getElementById("thumbs_next");	
	nav_link.onmousedown = function() {
		movement = setTimeout("scrollThumbsNext()", 10);
		movement;
	}
}

// Move the THUMBNAILS to Scroll Next
function scrollThumbsNext() {
	if (!document.getElementById("photos_thumbs")) return false;
	var nav_images = document.getElementById("photos_thumbs"); //images container
	var list_items = nav_images.getElementsByTagName("li").length; //images
	var total_distance = ((list_items - 7) * (item_width + 1)) * -1; //total distance for the images.  this does not include the original two images and should be a negative number for moving the pictures left
	
	var current_left = parseInt (nav_images.style.left); //get the current position of the images
	if (current_left <= total_distance) { //if the images are further than the total distance, exit
		i1 = 0;
		return true;
	} else {
		if (i1 < -2) { //call this function 3 times recursively to emulate a scrolling effect.
			i1 = 0;
			nav_images.style.left = (parseInt(nav_images.style.left) - 1) + "px"; //move the image
			return true;
		} else {		
			for (var j1 = 0; j1 < (item_width / 3); j1++) {
				current_left = current_left - 1;
				nav_images.style.left = current_left + "px"; //move the image
			}
		
			move = setTimeout("scrollThumbsNext()", 10);
			i1--;
		}
	}
	/*
	if (current_left == total_distance) {
		//disable the right slider
		document.getElementById("thumbs_next").src = "images/scroll_right_grey.gif";
	} else if (current_left == 0) {
		//disable the left slider
		document.getElementById("thumbs_back").src = "images/scroll_left_grey.gif";
	} else {
		document.getElementById("thumbs_next").src = "images/scroll_right.gif";
		document.getElementById("thumbs_back").src = "images/scroll_left.gif";
	}
	*/
}

// Prepare the THUMBNAILS for Linking Back
function prepareThumbsBack() {
	if (!document.getElementById("thumbs_back")) return false;

	var nav_link = document.getElementById("thumbs_back");	
	nav_link.onmousedown = function() {
		movement = setTimeout("scrollThumbsBack()", 10);
		movement;
	}
}

// Move the THUMBNAILS to Scroll Back
function scrollThumbsBack() {
	if (!document.getElementById("photos_thumbs")) return false;
	var nav_images = document.getElementById("photos_thumbs"); //images container
	var list_items = document.getElementById("photos_thumbs").getElementsByTagName("li").length; //images
	var total_distance = ((list_items - 7) * (item_width + 1)) * -1; //total distance for the images.  this does not include the original two images and should be a negative number for moving the pictures left
	
	var current_left = parseInt (nav_images.style.left); //current location of the image
	if (current_left >= 0) { //if the images are further than the total distance, exit
		i2 = 0;
		return true;
	} else {
		if (i2 > 2) { //call this function 3 times recursively to emulate a scrolling effect.
			i2 = 0;
			nav_images.style.left = (parseInt(nav_images.style.left) + 1) + "px"; //move the image
			return true;
		} else {
			for (var j2 = 0; j2 < (item_width / 3); j2++) {
				current_left = current_left + 1;
				nav_images.style.left = current_left + "px";
			}
		
			move = setTimeout("scrollThumbsBack()", 10);
			i2++;
		}
	}
	/*
	if (current_left == total_distance) {
		//disable the right slider
		document.getElementById("thumbs_next").src = "images/scroll_right_grey.gif";
	} else if (current_left == 0) {
		//disable the left slider
		document.getElementById("thumbs_back").src = "images/scroll_left_grey.gif";
	} else {
		document.getElementById("thumbs_next").src = "images/scroll_right.gif";
		document.getElementById("thumbs_back").src = "images/scroll_left.gif";
	}
	*/
}

//disable the slider for the opera browser as it does not support the overflow:hidden style.
function disableSlider() {
	//disable the overflow: hidden style for the div and change it to overflow: auto
	document.getElementById("slide").style.overflow = "auto";
	//disable the arrow bars
	document.getElementById("scroll_left").style.display = "none";
	document.getElementById("scroll_right").style.display = "none";
	//determine the size required for the overflow div
	var olsize = document.getElementById("photos_thumbs").getElementsByName("li").length * (82);
	//reduce the size of the overflow OL for the scroll bar.
	document.getElementById("photos_thumbs").style.width = olsize;
	//document.getElementById("photos_thumbs").style.height = 135;
}

////////////////////////////// Make the Photos Thumbnails Clickable //////////////////////////////

// Display the Appropriate PHOTO for Display
function showPic(whichpic) {
	if (!document.getElementById("photos_top_img")) return true;
	var photos_placeholder = document.getElementById("photos_top_img");
	var photos_lightbox = document.getElementById("photos_lightbox");
	var source_title = whichpic.getAttribute("title");
	if(source_title != "Video") {
		var source = whichpic.getAttribute("source");
		var source_link = whichpic.getAttribute("source_link");
		//photos_placeholder.setAttribute("src",source);
		photos_placeholder.innerHTML = '<a href="' + source + '" rel="lightbox[photoset]" id="photos_lightbox" title="' + source_title + '"><img src="' + source + '" id="photos_placeholder" alt="" title="" /></a>';
		photos_lightbox.setAttribute("href",source_link);
		photos_lightbox.setAttribute("title",source_title);
		return false;
	} else {
		photos_placeholder.innerHTML = gSlideShowHTML;
	}
}

// Prepare the PHOTO GALLERY for Linking
function prepareGallery() {
  if (!document.getElementsByTagName) return false;
  if (!document.getElementById) return false;
  if (!document.getElementById("photos_thumbs")) return false;
  var gallery = document.getElementById("photos_thumbs");
  var links = gallery.getElementsByTagName("img");
  for ( var i=0; i < links.length; i++) {
    links[i].onclick = function() {
      return showPic(this);
	}
    links[i].onkeypress = links[i].onclick;
  }
}

//////////// Functions that hide/display calculator and email friend feature/////////////////

function toggleLeftNav(objA, objDiv) {
	if(objDiv.style.display == "none") {
		//get a list of the divs
		var hideList = document.getElementById('homes_extras').getElementsByTagName('div');
		//loop through the divs
		//alert(hideList.length);
		for(var i=0; i<hideList.length; i++) {
			//if the div isn't hidden, hide it
			if(!(hideList[i].style.display == "none")) {
				Effect.SlideUp(hideList[i].id); //hide the div
				document.getElementById('homes_extras').getElementsByTagName('a')[i].className = ''; //assign class to atag
			} else {
				hideList[i].style.height = '';
			}
		}
		//slide the clicked div down
		Effect.SlideDown(objDiv.id);
		//assign class
		objA.className = 'on';
	}
}

function prepareLeftNav() {
	if(document.getElementById("homes_extras") != null) {
		var navList = document.getElementById("homes_extras").getElementsByTagName("a");
		for(var i=0; i<navList.length; i++) {
			navList[i].onclick = function() { 
				toggleLeftNav(this, document.getElementById(this.getAttribute('idDiv')));
			};
		}
	}
	if(document.getElementById('mapHome') != null) {
		document.getElementById('mapHome').style.display = 'none';
	}
}

var key_pressed = false;

function isPerson() {
	if (!key_pressed) {
		key_pressed = true;
		var param = "action=set_postable";
		doAJAX(param,function() {} ,'/home.php');
	}
}

//These are the functions for demographic charts


function prepareLinks(){
	
	if (!document.getElementById || !document.getElementsByTagName) {
		return;
	}
	if (!document.getElementById("demographics_nav")) {
		return;
	}
	
	var list = document.getElementById("demographics_nav");
	var links = list.getElementsByTagName("a");
	for (var i=0; i<links.length; i++) {
		links[i].onclick = function() {
			var query = this.getAttribute("href").split("?")[1];
			var url = "/demographics.php?"+query;
			return !grabFile(url);
		};
	}
}

function prepareLinks2(){
	if (!document.getElementById || !document.getElementsByTagName) {
		return;
	}
	if (!document.getElementById("labour_nav")) {
		return;
	}
	var list2 = document.getElementById("labour_nav");
	var links2 = list2.getElementsByTagName("a");
	for (var i=0; i<links2.length; i++) {
		links2[i].onclick = function() {
			var query = this.getAttribute("href").split("?")[1];
			var url = "/demographics.php?"+query;
			return !grabFile2(url);
		};
	}
}

function grabFile(file) {
	http = getHTTPObject();
	if (http) {
		http.onreadystatechange = parseResponse;
		http.open("GET", file, true);
		http.send(null);
		return true;
	}else{
		return false;
	}
}

function grabFile2(file) {
	http = getHTTPObject();
	if (http) {
		http.onreadystatechange = parseResponse;
		http.open("GET", file, true);
		http.send(null);
		return true;
	}else{
		return false;
	}
}


function parseResponse() {
	if (http.readyState == 4) {

		if (http.status == 200 || http.status == 304) {
			var details = document.getElementById("demographics_charts");
			details.innerHTML = "";
			details.innerHTML = http.responseText;
			prepareLinks();
			prepareLinks2();
		}
	}
}

// Map home on home details page
function initGMap() {
	if (!document.getElementById('home_latitude') && !document.getElementById('home_longitude')) {
		return;
	}
	var latitude = parseFloat(document.getElementById('home_latitude').value);
	var longitude = parseFloat(document.getElementById('home_longitude').value);
	var markerTitle = document.getElementById('home_title').value;
	var myLatlng = new google.maps.LatLng(latitude,longitude);
	var myOptions = {
	  zoom: 14,
	  center: myLatlng,
	  mapTypeId: google.maps.MapTypeId.ROADMAP
	};
	var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
	var marker = new google.maps.Marker({
      position: myLatlng,
	  map: map,
      title: markerTitle
  });
}

/*
	Developed by Robert Nyman, http://www.robertnyman.com
	Code/licensing: http://code.google.com/p/getelementsbyclassname/
*/	
var getElementsByClassName = function (className, tag, elm){
	if (document.getElementsByClassName) {
		getElementsByClassName = function (className, tag, elm) {
			elm = elm || document;
			var elements = elm.getElementsByClassName(className),
				nodeName = (tag)? new RegExp("\\b" + tag + "\\b", "i") : null,
				returnElements = [],
				current;
			for(var i=0, il=elements.length; i<il; i+=1){
				current = elements[i];
				if(!nodeName || nodeName.test(current.nodeName)) {
					returnElements.push(current);
				}
			}
			return returnElements;
		};
	}
	else if (document.evaluate) {
		getElementsByClassName = function (className, tag, elm) {
			tag = tag || "*";
			elm = elm || document;
			var classes = className.split(" "),
				classesToCheck = "",
				xhtmlNamespace = "http://www.w3.org/1999/xhtml",
				namespaceResolver = (document.documentElement.namespaceURI === xhtmlNamespace)? xhtmlNamespace : null,
				returnElements = [],
				elements,
				node;
			for(var j=0, jl=classes.length; j<jl; j+=1){
				classesToCheck += "[contains(concat(' ', @class, ' '), ' " + classes[j] + " ')]";
			}
			try	{
				elements = document.evaluate(".//" + tag + classesToCheck, elm, namespaceResolver, 0, null);
			}
			catch (e) {
				elements = document.evaluate(".//" + tag + classesToCheck, elm, null, 0, null);
			}
			while ((node = elements.iterateNext())) {
				returnElements.push(node);
			}
			return returnElements;
		};
	}
	else {
		getElementsByClassName = function (className, tag, elm) {
			tag = tag || "*";
			elm = elm || document;
			var classes = className.split(" "),
				classesToCheck = [],
				elements = (tag === "*" && elm.all)? elm.all : elm.getElementsByTagName(tag),
				current,
				returnElements = [],
				match;
			for(var k=0, kl=classes.length; k<kl; k+=1){
				classesToCheck.push(new RegExp("(^|\\s)" + classes[k] + "(\\s|$)"));
			}
			for(var l=0, ll=elements.length; l<ll; l+=1){
				current = elements[l];
				match = false;
				for(var m=0, ml=classesToCheck.length; m<ml; m+=1){
					match = classesToCheck[m].test(current.className);
					if (!match) {
						break;
					}
				}
				if (match) {
					returnElements.push(current);
				}
			}
			return returnElements;
		};
	}
	return getElementsByClassName(className, tag, elm);
};

////////////////////////////// Execute the Necessary Functions //////////////////////////////

addLoadEvent(prepareLeftNav);
addLoadEvent(prepareTab);
addLoadEvent(prepareGallery);
addLoadEvent(prepareSlideShow);
addLoadEvent(addEvents);
addLoadEvent(prepareLinks);
addLoadEvent(initGMap);
//addLoadEvent(setRecaptcha);
if (navigator.appName == "Opera") {
	addLoadEvent(disableSlider);
} else {
	addLoadEvent(prepareThumbsNext);
	addLoadEvent(prepareThumbsBack);
}
//addLoadEvent(map_house);
