var bustcachevar=1 //bust potential caching of external pages after initial request? (1=yes, 0=no)
var loadedobjects=""

function myescape(s) {
	s = s.replace("+", "plusplus");
	s = escape(s);
	return s;
}

function ajaxPage(url, myfunction) {
	var bustcachevar=1;
	var loadedobjects="";
	var parentSite="" + window.location;
	parentSite = parentSite.substring(0, parentSite.lastIndexOf("/"));

    var page_request = false
    if (window.XMLHttpRequest) {
		page_request = new XMLHttpRequest();
	}
    else if (window.ActiveXObject){
		try {
            page_request = new ActiveXObject("Msxml2.XMLHTTP")
        }
        catch (e) {
            try{
                page_request = new ActiveXObject("Microsoft.XMLHTTP")
            }
            catch (e){}
        }
    }
    else {
        return false
	}
    page_request.onreadystatechange=function(){
		if (page_request.readyState == 4 && (page_request.status==200 || window.location.href.indexOf("http")==-1)) {
			eval(myfunction + "(page_request.responseText);");
		}
    }

    if (bustcachevar) {
		var bustcacheparameter=(url.indexOf("?")!=-1)? "&"+new Date().getTime() : "?"+new Date().getTime();
		page_request.open('GET', url+bustcacheparameter, true);
		page_request.send(null);
	}
}

function getValue(tag1, tag2, feed) {
    if(feed.indexOf(tag1) > -1 && feed.indexOf(tag2) > -1) {
        return feed.substring(feed.indexOf(tag1)+tag1.length, feed.indexOf(tag2));
    }
    else {
        return "";
    }
}

function getDiv(name) {
    isNS4 = (document.layers) ? true : false;
    isIE4 = (document.all && !document.getElementById) ? true : false;
    isIE5 = (document.all && document.all.getElementById) ? true : false;
    isNS6 = (!document.all && document.getElementById) ? true : false;

    if (isNS4) {
        eval('element = document.layers["' + name + '"];');
    }
    else if (isIE4) {
        eval('element = document.all["' + name + '"];');
    }
    else if (isIE5) {
        eval('element = document.all.getElementById("' + name + '");');
    }
    else  {
		try {
			eval('element = document.getElementById("' + name + '");');
		}
		catch(e) {
			eval('element = ' + name);
		}
    }

    return element;
}

function research(sort) {
	var sort = sort.value;
	var url = "" + document.location;
	url = url.substring(url.indexOf("?"), url.length);
	
	// Take the sort out
	url = removeParam(url, "sort");
	
	// Take the paging out
	url = removeParam(url, "page");
	
	url += "&sort=" + myescape(sort);
	document.location = url;	
}

function removeParam(url, param) {
	if(url.indexOf(param + "=") > -1) {
		var first = url.substring(0, url.indexOf(param + "="));
		var second = url.substring(url.indexOf(param + "=")+param.length+1);
		if(second.indexOf("&") > 0) {
			second = second.substring(second.indexOf("&") + 1, second.length);
		}
		else {
			second = "";
		}
		url = first + second;
	}
	return url;
}

function saveSearchCriteria() {
	var arrayPageSize = getPageSize();
	Element.setWidth('overlay', arrayPageSize[0]);
	Element.setHeight('overlay', arrayPageSize[1]);
	
	// Popup a dialog to get the where from
	new Effect.Appear('overlay', { duration: 0.2, from: 0.0, to: 0.8 });

	// calculate top and left offset for the lightbox 
	var arrayPageScroll = getPageScroll();
	var lightboxTop = arrayPageScroll[1] + (arrayPageSize[3] / 10);
	var lightboxLeft = arrayPageScroll[0];
	var url = "index.php?fuseaction=visitor.login&action=savesearch&visitor=" + document.commentForm.loginid.value + "&from=" + from;
	getDiv("popupFrame").innerHTML = '<table width=100%><tr><td align=middle><table width=680px><td align=right><span class="fakelink_white" onclick="closeEmailPopup();">Close X</span></td></table></td></tr><tr><td align=middle><iframe id="myframe" name="myframe" src="' + url + '" width=680px height=400px></iframe></table>';
	
	Element.setTop('popupFrame', lightboxTop);
	Element.setLeft('popupFrame', lightboxLeft);
	Element.show('popupFrame');	
}

var tempmls = "";

function bookmarkListing(element, mls) {
	
	var img = getDiv("image" + mls);
	try {
		if(element.src.length > 0) {
			// Image
			if(element.src.indexOf("bookmark_small.jpg") > -1) {
				img.src = "templates/images/loading.gif";
			
				tempmls = mls;
				var url = url_bookmark_quick + "&mls=" + mls;
				ajaxPage(url, 'doneBookmarkListing');
			}
			else {
				img.src = "templates/images/loading.gif";
			
				tempmls = mls;
				var url = "index.php?fuseaction=bookmarkListingQuick&mls=" + mls;
				ajaxPage(url, 'doneUnbookmarkListing');
			}
		}
	} catch(e) {
		img.src = "templates/images/loading.gif";
	
		if(element.innerHTML == 'Bookmark this Listing') {
			tempmls = mls;
			var url = "index.php?fuseaction=bookmarkListingQuick&mls=" + mls;
			ajaxPage(url, 'doneBookmarkListing');
		}
		else {
			tempmls = mls;
			var url = "index.php?fuseaction=bookmarkListingQuick&mls=" + mls;
			ajaxPage(url, 'doneUnbookmarkListing');
		}
	
	}
}

function doneBookmarkListing(data) {
	// Success
	var div = getDiv("bookmark" + tempmls);
	div.innerHTML = "Delete Listing Bookmark";

	var img = getDiv("image" + tempmls);
	img.src = "templates/images/bookmark_small_remove.jpg";
	
	closePopup();
}

function doneUnbookmarkListing(data) {
	if(getValue("<unbookmark_result>", "</unbookmark_result>", data) == "success") {
		// Success
		var div = getDiv("bookmark" + tempmls);
		div.innerHTML = "Bookmark this Listing";
		
		var img = getDiv("image" + tempmls);
		img.src = "templates/images/bookmark_small.jpg";
	}
	else {
		// Go make the visitor login
		document.location = url_unbookmark + "&mls=" + tempmls + "&from=" + url_current_encoded;
	}
}


function bookmarkListingLarge(element, mls) {
	var img = getDiv("image" + mls);
	try {
		if(element.src.length > 0) {
			// Image
			if(element.src.indexOf("bookmark.jpg") > -1) {
				// Bookmark the listing
				tempmls = mls;
				bookmarkHelper();	
			}
			else {
				img.src = "templates/images/loading.gif";
			
				tempmls = mls;
				var url = url_unbookmark_quick + "&mls=" + mls;
				ajaxPage(url, 'doneUnbookmarkListingLarge');
			}
		}
	} catch(e) {
		
		if(element.innerHTML == 'Bookmark this Listing') {
			// Bookmark the listing
			tempmls = mls;
			bookmarkHelper();
		}
		else {
			img.src = "templates/images/loading.gif";
			tempmls = mls;
			var url = url_unbookmark_quick + "&mls=" + mls;
			ajaxPage(url, 'doneUnbookmarkListingLarge');
		}
	
	}	
}

function bookmarkHelper() {
	var arrayPageSize = getPageSize();
	Element.setWidth('overlay', arrayPageSize[0]);
	Element.setHeight('overlay', arrayPageSize[1]);
	
	// Popup a dialog to get the where from
	new Effect.Appear('overlay', { duration: 0.2, from: 0.0, to: 0.8 });

	// calculate top and left offset for the lightbox 
	var arrayPageScroll = getPageScroll();
	var lightboxTop = arrayPageScroll[1] + (arrayPageSize[3] / 10);
	var lightboxLeft = arrayPageScroll[0];
	var url = "index.php?fuseaction=visitor.login&action=bookmark&visitor=" + document.commentForm.loginid.value + "&mls=" + mls;
	getDiv("popupFrame").innerHTML = '<table width=100%><tr><td align=middle><table width=680px><td align=right><span class="fakelink_white" onclick="closeEmailPopup();">Close X</span></td></table></td></tr><tr><td align=middle><iframe id="myframe" name="myframe" src="' + url + '" width=680px height=400px></iframe></table>';
	
	Element.setTop('popupFrame', lightboxTop);
	Element.setLeft('popupFrame', lightboxLeft);
	Element.show('popupFrame');	
}

function closeEmailPopup() {
	getDiv("popupFrame").innerHTML = "";
	
	Element.hide('popupFrame');
	new Effect.Fade('overlay', { duration: overlayDuration});
	showSelectBoxes();
	showFlash();
}

function closePopup() {
	getDiv("popupFrame").innerHTML = "";
	
	Element.hide('popupFrame');
	new Effect.Fade('overlay', { duration: overlayDuration});
	showSelectBoxes();
	showFlash();
}

function doneBookmarkListingLarge(data) {
	if(getValue("<bookmark_result>", "</bookmark_result>", data) == "success") {
		// Success
		var div = getDiv("bookmark" + tempmls);
		div.innerHTML = "Delete Listing Bookmark";

		var img = getDiv("image" + tempmls);
		img.src = "templates/images/bookmark_remove.jpg";
	}
	else {
		// Go make the visitor login
		document.location = url_bookmark + "&mls=" + tempmls + "&from=" + url_current_encoded;
	}
}

function doneUnbookmarkListingLarge(data) {
	if(getValue("<unbookmark_result>", "</unbookmark_result>", data) == "success") {
		// Success
		var div = getDiv("bookmark" + tempmls);
		div.innerHTML = "Bookmark this Listing";
		
		var img = getDiv("image" + tempmls);
		img.src = "templates/images/bookmark.jpg";
	}
	else {
		// Go make the visitor login
		document.location = url_unbookmark + "&mls=" + tempmls + "&from=" + url_current_encoded;
	}
}

function checkValue(obj) {
	/*if(obj.value == "any") {
		obj.value = "";
	}
	else if(obj.value == "") {
		obj.value = "any";
	}*/
}

function checkLogin() {
	var result = "";

	// Check the email
	if(loginForm.registerEmail.value.length == 0) {
		result += "Please enter your email address<br>";
	}
	else if(loginForm.registerEmail.value.indexOf("@") == -1 || loginForm.registerEmail.value.indexOf(".") == -1) {
		result += "Please enter a valid email address.<br>";
	}

	if(result.length == 0) {
		// Ajax this form
		var url = "index.php?fuseaction=visitor.checkQuickLogin";
		url += "&username=" + loginForm.registerEmail.value;
		url += "&mls=" + mls;
		getDiv("submitLoginButton").innerHTML = '<table><td><img src="templates/images/loading.gif"></img></td><td>&nbsp;Please Wait</td></table>';
		ajaxPage(url,'doneLogin');
	}
	else {
		getDiv("loginMessageDiv").innerHTML = result;
	}
}

function checkRegistration() {
	var result = "";

	// Check the email
	if(registerForm.registerEmail.value.length == 0) {
		result += "Please enter your email address<br>";
	}
	else if(registerForm.registerEmail.value.indexOf("@") == -1 || registerForm.registerEmail.value.indexOf(".") == -1) {
		result += "Please enter a valid email address.<br>";
	}
	
	if(result.length == 0) {
		// Ajax this form
		var url = "%url_register%";
		url += "&mls=%mls%";
		url += "&registerEmail=" + registerForm.registerEmail.value;
		url += "&name=" + registerForm.name.value;
		url += "&registerAddress=" + registerForm.registerAddress.value;
		url += "&registerCity=" + registerForm.registerCity.value;
		url += "&registerState=" + registerForm.registerState.value;
		url += "&registerZipcode=" + registerForm.registerZipcode.value;
		url += "&phone=" + registerForm.phone.value;
		url += "&interestLevel=" + registerForm.interestLevel.value;
		if(registerForm.workingAgent.checked) {
			url += "&workingAgent=" + registerForm.workingAgent.value;
		}
		
		//url += "&=" + registerForm..value;
		getDiv("submitRegistrationButton").innerHTML = '<table><td><img src="templates/images/loading.gif"></img></td><td>&nbsp;Please Wait</td></table>';
		ajaxPage(url,'doneLogin');
		}
	else {
		getDiv("registerMessageDiv").innerHTML = result;
		}
	
	}

function doneLogin(data) {
	var login = getValue("<loginid>", "</loginid>", data);
	if(login.length > 0) {
		// Successful login - add the new form in
		getDiv("hiddenDiv").appendChild(getDiv("registerLoginDiv"));
		getDiv("commentHolderDiv").appendChild(getDiv("commentDiv"));
		
		// Set the login id
		commentForm.loginid.value = login;
	}
	else {
		// Display the error under login
		getDiv('loginMessageDiv').innerHTML = getValue("<login_error>", "</login_error>", data);
		getDiv("submitLoginButton").innerHTML = 'Login';
	}	
}

function submitComment() {
	var url = "index.php?fuseaction=visitor.submitComment";
	url += "&loginid=" + commentForm.loginid.value;
	url += "&comment=" + commentForm.comment.value;
	url += "&mls=" + mls;
	
	getDiv("submitCommentButton").innerHTML = '<table><td><img src="templates/images/loading.gif"></img></td><td>&nbsp;Please Wait</td></table>';
	
	// Remove the submit button
	ajaxPage(url,'doneSubmitComment');
}
	
function doneSubmitComment(data) {
	// Show verification message
	getDiv("commentMessageDiv").innerHTML = "<br>Your comment has been successfully submitted.<br><br><span class=\"fakeLink\" onclick=\"anotherComment();\">Submit Another Comment</span>";
	getDiv("submitCommentButton").innerHTML = 'Submit Request';
	
	commentForm.comment.style.display = 'none';
	getDiv("submitCommentButton").style.display = 'none';
}

function anotherComment() {
	commentForm.comment.value = '';
	commentForm.comment.style.display = '';
	getDiv("submitCommentButton").style.display = '';
	commentForm.comment.focus();
}

function changeTextFocus(element, text) {
			if(element.value == text) {
				element.value = "";
			}
		}
		
function changeTextBlur(element, text) {
	if(element.value == "") {
		element.value = text;
	}
}