// Copyright © 2000 by Apple Computer, Inc., All Rights Reserved.
//
// You may incorporate this Apple sample code into your own code
// without restriction. This Apple sample code has been provided "AS IS"
// and the responsibility for its operation is yours. You may redistribute
// this code, but you are not permitted to redistribute it as
// "Apple sample code" after having made changes.
// ********************************
// application-specific functions *
// ********************************

// store variables to control where the popup will appear relative to the cursor position
// positive numbers are below and to the right of the cursor, negative numbers are above and to the left
var xOffset = 0;
var yOffset = 0;

function showPopup (eventObj, xO, yO, mls, ql) {
	xOffset = xO;
	yOffset = yO;
	targetObjectId = 'pushtalk';
    if(eventObj) {
	// hide any currently-visible popups
	if(ql == '1') {
	hideCurrentPopup();
	} else {
	hideAllPops();
	}
	//alert(window.currentlyVisiblePopup);
	// stop event from bubbling up any farther
	eventObj.cancelBubble = true;
	// move popup div to current cursor position 
	// (add scrollTop to account for scrolling for IE)
	if ( document.captureEvents ) {
			var newXCoordinate = eventObj.pageX + xOffset;
			var newYCoordinate = eventObj.pageY + yOffset;
		} else if ( window.event.clientX ) {
			var newXCoordinate = window.event.clientX+document.documentElement.scrollLeft + xOffset;
			var newYCoordinate = window.event.clientY+document.documentElement.scrollTop + yOffset;
		}
	
	document.callback.mls.value = mls;
	//var newXCoordinate = (eventObj.pageX)?eventObj.pageX + xOffset:eventObj.x + xOffset + ((document.body.scrollLeft)?document.body.scrollLeft:0);
	//var newYCoordinate = (eventObj.pageY)?eventObj.pageY + yOffset:eventObj.y + yOffset + ((document.body.scrollTop)?document.body.scrollTop:0);
	//alert(newYCoordinate);
	moveObject(targetObjectId, newXCoordinate, newYCoordinate);
	// and make it visible
	if( changeObjectVisibility(targetObjectId, 'visible') ) {
	    // if we successfully showed the popup
	    // store its Id on a globally-accessible object
	    window.currentlyVisiblePopup = targetObjectId;
	    return true;
	} else {
	    // we couldn't show the popup, boo hoo!
	    return false;
	}
    } else {
	// there was no event object, so we won't be able to position anything, so give up
	return false;
    }
} // showPopup

function showPopup1 (eventObj, xO, yO, mls, ql) {
	xOffset = xO;
	yOffset = yO;
	targetObjectId = 'pushtalk1';
    if(eventObj) {
	// hide any currently-visible popups
	if(ql == '1') {
	hideCurrentPopup();
	} else {
	hideAllPops();
	}
	//alert(window.currentlyVisiblePopup);
	// stop event from bubbling up any farther
	eventObj.cancelBubble = true;
	// move popup div to current cursor position 
	// (add scrollTop to account for scrolling for IE)
	if ( document.captureEvents ) {
			var newXCoordinate = eventObj.pageX + xOffset;
			var newYCoordinate = eventObj.pageY + yOffset;
		} else if ( window.event.clientX ) {
			var newXCoordinate = window.event.clientX+document.documentElement.scrollLeft + xOffset;
			var newYCoordinate = window.event.clientY+document.documentElement.scrollTop + yOffset;
		}
	
	document.callback1.mls1.value = mls;
	//var newXCoordinate = (eventObj.pageX)?eventObj.pageX + xOffset:eventObj.x + xOffset + ((document.body.scrollLeft)?document.body.scrollLeft:0);
	//var newYCoordinate = (eventObj.pageY)?eventObj.pageY + yOffset:eventObj.y + yOffset + ((document.body.scrollTop)?document.body.scrollTop:0);
	//alert(newYCoordinate);
	moveObject(targetObjectId, newXCoordinate, newYCoordinate);
	// and make it visible
	if( changeObjectVisibility(targetObjectId, 'visible') ) {
	    // if we successfully showed the popup
	    // store its Id on a globally-accessible object
	    window.currentlyVisiblePopup = targetObjectId;
	    return true;
	} else {
	    // we couldn't show the popup, boo hoo!
	    return false;
	}
    } else {
	// there was no event object, so we won't be able to position anything, so give up
	return false;
    }
} // showPopup

function showPopup_test (eventObj, xO, yO, mls, inputObj, ql) {
	xOffset = xO;
	yOffset = yO;
	//var inputObj = inputObj;
	//alert(obid);
	targetObjectId = 'pushtalk';
    if(eventObj) {
	// hide any currently-visible popups
	if(ql == '1') {
	hideCurrentPopup();
	} else {
	hideAllPops();
	}
	//alert(window.currentlyVisiblePopup);
	// stop event from bubbling up any farther
	eventObj.cancelBubble = true;
	// move popup div to current cursor position 
	// (add scrollTop to account for scrolling for IE)
	if ( document.captureEvents ) {
			var newXCoordinate = eventObj.pageX + xOffset;
			var newYCoordinate = eventObj.pageY + yOffset;
		} else if ( window.event.clientX ) {
			var newXCoordinate = window.event.clientX+document.documentElement.scrollLeft + xOffset;
			var newYCoordinate = window.event.clientY+document.documentElement.scrollTop + yOffset;
		}
	//alert(inputObj);
	var inputObjcopy = inputObj;
	var returnValue = inputObj.offsetLeft;
  //alert(returnValue);
  while((inputObj = inputObj.offsetParent) != null){
  	if(inputObj.tagName!='HTML')returnValue += inputObj.offsetLeft;
  }
	
	var returntopValue = inputObjcopy.offsetTop;
  while((inputObjcopy = inputObjcopy.offsetParent) != null){
  	if(inputObjcopy.tagName!='HTML')returntopValue += inputObjcopy.offsetTop;
  }
	
	newXCoordinate = returnValue - 275;
	newYCoordinate = returntopValue - 102;
	document.callback.mls.value = mls;
	//var newXCoordinate = (eventObj.pageX)?eventObj.pageX + xOffset:eventObj.x + xOffset + ((document.body.scrollLeft)?document.body.scrollLeft:0);
	//var newYCoordinate = (eventObj.pageY)?eventObj.pageY + yOffset:eventObj.y + yOffset + ((document.body.scrollTop)?document.body.scrollTop:0);
	//alert(newYCoordinate);
	moveObject(targetObjectId, newXCoordinate, newYCoordinate);
	// and make it visible
	if( changeObjectVisibility(targetObjectId, 'visible') ) {
	    // if we successfully showed the popup
	    // store its Id on a globally-accessible object
	    window.currentlyVisiblePopup = targetObjectId;
	    return true;
	} else {
	    // we couldn't show the popup, boo hoo!
	    return false;
	}
    } else {
	// there was no event object, so we won't be able to position anything, so give up
	return false;
    }
} // showPopup


function showQuickLook (eventObj, xO, yO, mls) {
	xOffset = xO;
	yOffset = yO;
	targetObject = 'calltest';
    if(eventObj) {
	// hide any currently-visible popups
	//hideQuickLookPopup();
	hideAllPops();
	//alert(window.currentlyVisiblePopup);
	// stop event from bubbling up any farther
	eventObj.cancelBubble = true;
	// move popup div to current cursor position 
	// (add scrollTop to account for scrolling for IE)
	if ( document.captureEvents ) {
			var newXCoordinate = eventObj.pageX + xOffset;
			var newYCoordinate = eventObj.pageY + yOffset;
			//alert('First option');
		} else if ( window.event.clientX ) {
			var newXCoordinate = window.event.clientX+document.documentElement.scrollLeft + xOffset;
			var newYCoordinate = window.event.clientY+document.documentElement.scrollTop + yOffset;
			//alert('Second option');
		}
	
	//document.callback.mls.value = mls;
	//var newXCoordinate = (eventObj.pageX)?eventObj.pageX + xOffset:eventObj.x + xOffset + ((document.body.scrollLeft)?document.body.scrollLeft:0);
	//var newYCoordinate = (eventObj.pageY)?eventObj.pageY + yOffset:eventObj.y + yOffset + ((document.body.scrollTop)?document.body.scrollTop:0);
	//alert(newYCoordinate);
	moveObject(targetObject, newXCoordinate, newYCoordinate);
	// and make it visible
	if( changeObjectVisibility(targetObject, 'visible') ) {
	    // if we successfully showed the popup
		quickLook(mls);
	    // store its Id on a globally-accessible object
	    window.currentlyVisibleQuickLook = targetObject;
	    return true;
	} else {
	    // we couldn't show the popup, boo hoo!
	    return false;
	}
    } else {
	// there was no event object, so we won't be able to position anything, so give up
	return false;
    }
} // showPopup

function showComments (eventObj, xO, yO, mls) {
	xOffset = xO;
	yOffset = yO;
	targetObject = 'comments';
    if(eventObj) {
	// hide any currently-visible popups
	//hideQuickLookPopup();
	hideAllPops();
	//alert(window.currentlyVisiblePopup);
	// stop event from bubbling up any farther
	eventObj.cancelBubble = true;
	// move popup div to current cursor position 
	// (add scrollTop to account for scrolling for IE)
	if ( document.captureEvents ) {
			var newXCoordinate = eventObj.pageX + xOffset;
			var newYCoordinate = eventObj.pageY + yOffset;
			//alert(eventObj.pageX);
			//alert('First option');
		} else if ( window.event.clientX ) {
			var newXCoordinate = window.event.clientX+document.documentElement.scrollLeft + xOffset;
			var newYCoordinate = window.event.clientY+document.documentElement.scrollTop + yOffset;
			
		}
	de = document.documentElement;
	var w = self.innerWidth || (de&&de.clientWidth) || document.body.clientWidth;
	var h = self.innerHeight || (de&&de.clientHeight) || document.body.clientHeight;
	  	if (window.innerHeight && window.scrollMaxY) {	
		yScroll = window.innerHeight + window.scrollMaxY;
	} else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac
		yScroll = document.body.scrollHeight;
	} else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
		yScroll = document.body.offsetHeight;
  	}
	//alert(yScroll);
	newXCoordinate = (w - 420)/2;
	newYCoordinate = (h - 420)/2;
	//alert(newXCoordinate);
	//document.callback.mls.value = mls;
	//var newXCoordinate = (eventObj.pageX)?eventObj.pageX + xOffset:eventObj.x + xOffset + ((document.body.scrollLeft)?document.body.scrollLeft:0);
	//var newYCoordinate = (eventObj.pageY)?eventObj.pageY + yOffset:eventObj.y + yOffset + ((document.body.scrollTop)?document.body.scrollTop:0);
	//alert(newYCoordinate);
	moveObject(targetObject, newXCoordinate, newYCoordinate);
	// and make it visible
	if( changeObjectVisibility(targetObject, 'visible') ) {
	    // if we successfully showed the popup
		comments(mls);
	    // store its Id on a globally-accessible object
	    window.currentlyVisibleComments = targetObject;
	    return true;
	} else {
	    // we couldn't show the popup, boo hoo!
	    return false;
	}
    } else {
	// there was no event object, so we won't be able to position anything, so give up
	return false;
    }
} // showPopup


function showadd_property (eventObj, xO, yO) {
	xOffset = xO;
	yOffset = yO;
	targetObject = 'add_property';
    if(eventObj) {
	// hide any currently-visible popups
	//hideQuickLookPopup();
	hideAllPops();
	//alert(window.currentlyVisiblePopup);
	// stop event from bubbling up any farther
	eventObj.cancelBubble = true;
	// move popup div to current cursor position 
	// (add scrollTop to account for scrolling for IE)
	if ( document.captureEvents ) {
			var newXCoordinate = eventObj.pageX + xOffset;
			var newYCoordinate = eventObj.pageY + yOffset;
			//alert(eventObj.pageX);
			//alert('First option');
		} else if ( window.event.clientX ) {
			var newXCoordinate = window.event.clientX+document.documentElement.scrollLeft + xOffset;
			var newYCoordinate = window.event.clientY+document.documentElement.scrollTop + yOffset;
			
		}
	de = document.documentElement;
	var w = self.innerWidth || (de&&de.clientWidth) || document.body.clientWidth;
	var h = self.innerHeight || (de&&de.clientHeight) || document.body.clientHeight;
	  	if (window.innerHeight && window.scrollMaxY) {	
		yScroll = window.innerHeight + window.scrollMaxY;
	} else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac
		yScroll = document.body.scrollHeight;
	} else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
		yScroll = document.body.offsetHeight;
  	}
	//alert(yScroll);
	newXCoordinate = (w - 420)/2;
	//newYCoordinate = (h - 620)/2;
	newYCoordinate = 25;
	//alert(newXCoordinate);
	//document.callback.mls.value = mls;
	//var newXCoordinate = (eventObj.pageX)?eventObj.pageX + xOffset:eventObj.x + xOffset + ((document.body.scrollLeft)?document.body.scrollLeft:0);
	//var newYCoordinate = (eventObj.pageY)?eventObj.pageY + yOffset:eventObj.y + yOffset + ((document.body.scrollTop)?document.body.scrollTop:0);
	//alert(newYCoordinate);
	moveObject(targetObject, newXCoordinate, newYCoordinate);
	// and make it visible
	if( changeObjectVisibility(targetObject, 'visible') ) {
	    // if we successfully showed the popup
		//comments(mls);
	    // store its Id on a globally-accessible object
	    window.currentlyVisibleadd_property = targetObject;
	    return true;
	} else {
	    // we couldn't show the popup, boo hoo!
	    return false;
	}
    } else {
	// there was no event object, so we won't be able to position anything, so give up
	return false;
    }
} // showPopup

function hideCurrentPopup() {
    // note: we've stored the currently-visible popup on the global object window.currentlyVisiblePopup
    if(window.currentlyVisiblePopup) {
	//alert(window.currentlyVisiblePopup);
	//new Effect.DropOut(window.currentlyVisiblePopup);
	changeObjectVisibility(window.currentlyVisiblePopup, 'hidden');
	window.currentlyVisiblePopup = false;
    }
	//else if(window.currentlyVisibleQuickLook) {
		//alert(window.currentlyVisibleQuickLook);
		//changeObjectVisibility(window.currentlyVisibleQuickLook, 'hidden');
		//changeObjectVisibility(window.currentlyVisiblePopup, 'hidden');
		//window.currentlyVisibleQuickLook = false;
		//window.currentlyVisiblePopup = false;
	//}
} // hideCurrentPopup

function hideAllPops() {
	
	if(window.currentlyVisiblePopup) {
		changeObjectVisibility(window.currentlyVisiblePopup, 'hidden');
		window.currentlyVisiblePopup = false;
	}
	if(window.currentlyVisibleQuickLook){
		document['qlpic'].src='../image_loading.gif';
		document.getElementById('ql_details').innerHTML = '';
	  document.getElementById('ql_remarks').innerHTML = '';
		changeObjectVisibility(window.currentlyVisibleQuickLook, 'hidden');
		changeObjectVisibility(window.currentlyVisiblePopup, 'hidden');
		window.currentlyVisibleQuickLook = false;
		window.currentlyVisiblePopup = false;
	}
	if(window.currentlyVisibleComments){
		changeObjectVisibility(window.currentlyVisibleComments, 'hidden');
		window.currentlyVisibleComments = false;
	}
	if(window.currentlyVisibleadd_property){
		changeObjectVisibility(window.currentlyVisibleadd_property, 'hidden');
		window.currentlyVisibleadd_property = false;
	}
}

//hides quick look and call back pops
function hideQuickLookPopup() {
	if(window.currentlyVisibleQuickLook) {
		document['qlpic'].src='../image_loading.gif';
		document.getElementById('ql_details').innerHTML = '';
	  document.getElementById('ql_remarks').innerHTML = '';
		changeObjectVisibility(window.currentlyVisibleQuickLook, 'hidden');
		changeObjectVisibility(window.currentlyVisiblePopup, 'hidden');
		window.currentlyVisibleQuickLook = false;
		window.currentlyVisiblePopup = false;
	}
}

function hideComments() {
	if(window.currentlyVisibleComments) {
		//document['qlpic'].src='../image_loading.gif';
		//document.getElementById('ql_details').innerHTML = '';
	  //document.getElementById('ql_remarks').innerHTML = '';
		changeObjectVisibility(window.currentlyVisibleComments, 'hidden');
		document.getElementById('comment_body').innerHTML = '';
		//changeObjectVisibility(window.currentlyVisiblePopup, 'hidden');
		window.currentlyVisibleComments = false;
		//window.currentlyVisiblePopup = false;
	}
}
function hideadd_property() {
	if(window.currentlyVisibleadd_propery) {
		//document['qlpic'].src='../image_loading.gif';
		//document.getElementById('ql_details').innerHTML = '';
	  //document.getElementById('ql_remarks').innerHTML = '';
		changeObjectVisibility(window.currentlyVisibleadd_property, 'hidden');
		//document.getElementById('comment_body').innerHTML = '';
		//changeObjectVisibility(window.currentlyVisiblePopup, 'hidden');
		window.currentlyVisibleadd_property = false;
		//window.currentlyVisiblePopup = false;
	}
}

// ***********************
// hacks and workarounds *
// ***********************

// initialize hacks whenever the page loads
window.onload = initializeHacks;

// setup an event handler to hide popups for generic clicks on the document
document.onclick = hideAllPops;
//document.onclick = hideQuickLookPopup;

function initializeHacks() {
    // this ugly little hack resizes a blank div to make sure you can click
    // anywhere in the window for Mac MSIE 5
    if ((navigator.appVersion.indexOf('MSIE 5') != -1) 
	&& (navigator.platform.indexOf('Mac') != -1)
	&& getStyleObject('blankDiv')) {
	window.onresize = explorerMacResizeFix;
    }
    resizeBlankDiv();
    // this next function creates a placeholder object for older browsers
    createFakeEventObj();
}

function createFakeEventObj() {
    // create a fake event object for older browsers to avoid errors in function call
    // when we need to pass the event object to functions
    if (!window.event) {
	window.event = false;
    }
} // createFakeEventObj

function resizeBlankDiv() {
    // resize blank placeholder div so IE 5 on mac will get all clicks in window
    if ((navigator.appVersion.indexOf('MSIE 5') != -1) 
	&& (navigator.platform.indexOf('Mac') != -1)
	&& getStyleObject('blankDiv')) {
	getStyleObject('blankDiv').width = document.body.clientWidth - 20;
	getStyleObject('blankDiv').height = document.body.clientHeight - 20;
    }
}

function explorerMacResizeFix () {
    location.reload(false);
}