/* --------------------------------------------------------------------------------------------------------
AUTHOR:			Jeremy Burgeson
DATE CREATED:	2007.02.23
PURPOSE:		SPAAR Common Javascript File
REVISIONS:		RAM - 2007.09.05 - Added functions for javascript rollovers for navigation
-------------------------------------------------------------------------------------------------------- */


// MAIN NAVIGATION FUNCTIONS ------------------------------------------
if (document.images) {
	nav_public_on = new Image();
	nav_public_on.src = "/_images/nav/nav_public_on.gif";
	nav_public_roll = new Image();
	nav_public_roll.src = "/_images/nav/nav_public_roll.gif";
	nav_public_off = new Image();
	nav_public_off.src = "/_images/nav/nav_public_off.gif";
	nav_about_on = new Image();
	nav_about_on.src = "/_images/nav/nav_about_on.gif";
	nav_about_roll = new Image();
	nav_about_roll.src = "/_images/nav/nav_about_roll.gif";
	nav_about_off = new Image();
	nav_about_off.src = "/_images/nav/nav_about_off.gif";
	nav_join_on = new Image();
	nav_join_on.src = "/_images/nav/nav_join_on.gif";
	nav_join_roll = new Image();
	nav_join_roll.src = "/_images/nav/nav_join_roll.gif";
	nav_join_off = new Image();
	nav_join_off.src = "/_images/nav/nav_join_off.gif";
	nav_contact_on = new Image();
	nav_contact_on.src = "/_images/nav/nav_contact_on.gif";
	nav_contact_roll = new Image();
	nav_contact_roll.src = "/_images/nav/nav_contact_roll.gif";
	nav_contact_off = new Image();
	nav_contact_off.src = "/_images/nav/nav_contact_off.gif";
	nav_member_on = new Image();
	nav_member_on.src = "/_images/nav/nav_member_on.gif";
	nav_member_roll = new Image();
	nav_member_roll.src = "/_images/nav/nav_member_roll.gif";
	nav_member_off = new Image();
	nav_member_off.src = "/_images/nav/nav_member_off.gif";
	
	icon_1_on = new Image();
	icon_1_on.src = "/_images/buttons/icon_1_on.gif";
	icon_1_off = new Image();
	icon_1_off.src = "/_images/buttons/icon_1_off.gif";
	icon_2_on = new Image();
	icon_2_on.src = "/_images/buttons/icon_2_on.gif";
	icon_2_off = new Image();
	icon_2_off.src = "/_images/buttons/icon_2_off.gif";
	icon_3_on = new Image();
	icon_3_on.src = "/_images/buttons/icon_3_on.gif";
	icon_3_off = new Image();
	icon_3_off.src = "/_images/buttons/icon_3_off.gif";
	icon_4_on = new Image();
	icon_4_on.src = "/_images/buttons/icon_4_on.gif";
	icon_4_off = new Image();
	icon_4_off.src = "/_images/buttons/icon_4_off.gif";
	icon_5_on = new Image();
	icon_5_on.src = "/_images/buttons/icon_5_on.gif";
	icon_5_off = new Image();
	icon_5_off.src = "/_images/buttons/icon_5_off.gif";
}



// UTILITY FUNCTIONS --------------------------------------------------

// function to submit an IMS sign in form
function goToIMS() {
	document.forms.frmIMSSignIn.submit();
}

// build overlay objects (run onload)
function buildOverlay() {
	mainOverlayObj = eval(doc + '"mainOverlay"' + sty);
	overlayBGObj = eval(doc + '"overlayBG"' + sty);
	overlayVideoPlayerObj = eval(doc + '"videoPlayer"' + sty);
	overlayAudioPlayerObj = eval(doc + '"audioPlayer"' + sty);
	overlayViewerWindowObj = document.getElementById('mainOverlay');
	overlayViewerBodyObj = document.getElementById('bodyContainer');
	windowHeight = overlayViewerWindowObj.offsetHeight;
	contentHeight = overlayViewerBodyObj.offsetHeight;
	overlayBGObj.height = Math.max(windowHeight, contentHeight) + "px";
	// set var to note objects are built and ready
	isOverlayLoaded = true;
}

// function to open video overlay
function videoPlayerOpen() {
	scroll(0, 0);
	mainOverlayObj.visibility = 'visible';
	overlayVideoPlayerObj.visibility = 'visible';
}

// define function to start playing a video in a div obj without reloading the page
function playVideo(strFlashSRC, strFlashTitle) {
	// open the overlay
	videoPlayerOpen();
	// get video title and frame objects
	var objVideoFrame = document.getElementById('videoFrame');
	overlayVideoTitleObj = document.getElementById("overlayTitle");
	overlayVideoTitleObj.innerHTML = strFlashTitle;
	// init html var and fill with content
	var strHTML = '';
	strHTML += '<div style="text-align:center; margin-bottom: 10px; display:none;">Playing: ' + strFlashSRC + '</div>';
	strHTML += '<script type="text/javascript">';
	strHTML += '	AC_FL_RunContent(\'writeToID\',\'videoFrame\',\'codebase\',\'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,28,0\',\'width\',\'400\',\'height\',\'345\',\'wmode\',\'transparent\',\'title\',\'SPAAR Video\',\'src\',\'/_framework/flash_video?strVideoFilename=/_uls/resources/' + strFlashSRC + '\',\'quality\',\'high\',\'pluginspage\',\'http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash\',\'movie\',\'/_framework/flash_video?strVideoFilename=/_uls/resources/' + strFlashSRC + '\');';
	strHTML += '<\/script>';
	strHTML += '<noscript>';
	strHTML += '	<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,28,0" width="400" height="345" title="SPAAR Video">';
	strHTML += '		<param name="movie" value="/_framework/flash_video.swf?strVideoFilename=/_uls/resources/' + strFlashSRC + '" />';
	strHTML += '		<param name="quality" value="high" />';
	strHTML += '		<param name="wmode" value="transparent" />';
	strHTML += '		<embed src="/_framework/flash_video.swf?strVideoFilename=/_uls/resources/' + strFlashSRC + '" quality="high" wmode="transparent" pluginspage="http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" width="400" height="345"></embed>';
	strHTML += '	</object>';
	strHTML += '</noscript>';
	// set video frame html
	objVideoFrame.innerHTML = strHTML;
	// eval all script that was set in html
	var x = objVideoFrame.getElementsByTagName("script");
	for (var i=0; i < x.length; i++) {
		eval(x[i].text);
	}
}

// function to stop a video (clears innerHTML of video frame)
function stopVideo() {
	mainOverlayObj.visibility = 'hidden';
	overlayVideoPlayerObj.visibility = 'hidden';
	var objVideoFrame = document.getElementById('videoFrame');
	objVideoFrame.innerHTML = '';
}

// function to open audio overlay
function audioPlayerOpen() {
	scroll(0, 0);
	mainOverlayObj.visibility = 'visible';
	overlayAudioPlayerObj.visibility = 'visible';
}

// function to play audio file through flash player controls
function playAudio(strFilename, strSongTitle) {
	audioPlayerOpen();
	var objAudioFrame = document.getElementById('audioFrame');
	var overlayAudioTitleObj = document.getElementById('audioTitle');
	overlayAudioTitleObj.innerHTML = strSongTitle;
	// init html var and fill with content
	var strHTML = '';
	strHTML += '<div style="text-align:center; margin-bottom: 10px; display:none;">Playing: ' + strFilename + '</div>';
	strHTML += '<script type="text/javascript">';
	strHTML += '	AC_FL_RunContent(\'writeToID\',\'audioFrame\',\'codebase\',\'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0\',\'width\',\'300\',\'height\',\'80\',\'wmode\',\'transparent\',\'title\',\'player_controls\',\'src\',\'/_framework/audio?strAudioFilename=/_uls/resources/' + strFilename + '\',\'quality\',\'high\',\'pluginspage\',\'http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash\',\'movie\',\'/_framework/audio?strAudioFilename=/_uls/resources/' + strFilename + '\');';
	strHTML += '<\/script>';
	strHTML += '<noscript>';
	strHTML += '	<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="300" height="80" title="Audio Player">';
	strHTML += '		<param name="movie" value="/_framework/audio.swf?strAudioFilename=/_uls/resources/' + strFilename + '" />';
	strHTML += '		<param name="quality" value="high" />';
	strHTML += '		<param name="wmode" value="transparent" />';
	strHTML += '		<embed src="/_framework/audio.swf?strAudioFilename=/_uls/resources/' + strFilename + '" quality="high" wmode="transparent" pluginspage="http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" width="300" height="80"></embed>';
	strHTML += '	</object>';
	strHTML += '</noscript>';
	// set container html
	objAudioFrame.innerHTML = strHTML;
	// eval all script that was set in html
	var x = objAudioFrame.getElementsByTagName("script");
	for (var i=0; i < x.length; i++) {
		eval(x[i].text);
	}
}

// function to open audio player error message (for IE6-)
function playAudioError(strFilename, strSongTitle) {
	audioPlayerOpen();
	var objAudioFrame = document.getElementById('audioFrame');
	var overlayAudioTitleObj = document.getElementById('audioTitle');
	overlayAudioTitleObj.innerHTML = strSongTitle;
	// init html var and fill with content
	var strHTML = '';
	strHTML += '<div style="color:#ffffff;">Sorry, streaming audio is not compatible with older versions of Internet Explorer (version 6 and earlier).<br /><br />';
	strHTML += 'If possible, we recommend upgrading your browser (try <a href="http://www.getfirefox.com" target="_blank">FireFox</a>).</div>';
	// set container html
	objAudioFrame.innerHTML = strHTML;
	// eval all script that was set in html
	var x = objAudioFrame.getElementsByTagName("script");
	for (var i=0; i < x.length; i++) {
		eval(x[i].text);
	}
}

// function to stop audio (clears innerHTML of audio frame)
function stopAudio() {
	mainOverlayObj.visibility = 'hidden';
	overlayAudioPlayerObj.visibility = 'hidden';
	var objAudioFrame = document.getElementById('audioFrame');
	objAudioFrame.innerHTML = '';
}

// sets cursor focus on the field given by param (formID.fieldID)
function formFocus(strFormAndFieldIDs) {
	if (isPageLoaded) {
		eval("document.forms." + strFormAndFieldIDs + ".focus();");
	} else {
		setTimeout("formFocus('" + strFormAndFieldIDs + "')", 100);
	}
}

var currIcon = 1;

function quicklinkIconOn(which) {
	if ((currIcon != null) && (currIcon != which)) {
		quicklinkIconOff(currIcon);
	}
	changeImages("icon_"+which,"icon_"+which+"_on");
	eval("document.getElementById('icon_text_" + which + "').style.display = 'block'");
	currIcon = which;
	return true;
}
function quicklinkIconOff(which) {
	changeImages("icon_"+which,"icon_"+which+"_off");
	eval("document.getElementById('icon_text_" + which + "').style.display = 'none'");
	return true;
}

// swap one or more images
function changeImages() {
	if (document.images) {
		for (var i=0; i<changeImages.arguments.length; i+=2) {
			var argArray = arguments[i].split('.');
			var objName;
			if ((document.layers && argArray.length > 1) || argArray.length <= 1) {
				objName = eval("document." + arguments[i]);
			} else {
				objName = eval("document." + argArray[argArray.length - 1]);
			}
			objName.src = eval(changeImages.arguments[i+1] + ".src");
		}
	}
}

// function to roll a nav button on
function navOn(which) {
	showNav(which);
	return true;
}
// function to roll a nav button off
function navOff(which) {
	hideNav(which);
	return true;
}

// function to roll a nav button on
function navStayOn(which) {
	changeImages("nav_"+which,"nav_"+which+"_roll");
	return true;
}
// function to roll a nav button off
function navStayOff(which, state) {
	changeImages("nav_"+which,"nav_"+which+"_"+state);
	return true;
}

// vars for dropdown menus
var navTimer = null;
var currNav = null;
var navHideDelay = 500;
var isNavLoaded = false;

// build dropdown objects (run onload)
function buildNav() {
	publicDropNavObj = eval(doc + '"publicDropNav"' + sty);
	aboutDropNavObj = eval(doc + '"aboutDropNav"' + sty);
	joinDropNavObj = eval(doc + '"joinDropNav"' + sty);
	contactDropNavObj = eval(doc + '"contactDropNav"' + sty);
	memberDropNavObj = eval(doc + '"memberDropNav"' + sty);
	// set var to note objects are built and ready
	isNavLoaded = true;
}

// shows a dropdown menu, hides any other dropdown that is currently showing
function showNav(which) {
	if (isNavLoaded) {
		clearTimeout(navTimer);
		navTimer = null;
		if ((currNav != null) && (currNav != which)) {
			eval(currNav + "DropNavObj.visibility = 'hidden'");
		}
		if ((which == "public") || (which == "about") || (which == "join") || (which == "contact") || (which == "member")) {
			currNav = which;
			eval(currNav + "DropNavObj.visibility = 'visible'");
		}
	}
}
// hides a dropdown menu on a time delay
function hideNav(which) {
	if (isNavLoaded) {
		clearTimeout(navTimer);
		navTimer = null;
		if ((which == "public") || (which == "about") || (which == "join") || (which == "contact") || (which == "member")) {
			navTimer = setTimeout(which + "DropNavObj.visibility = 'hidden'", navHideDelay);
		}
	}
}

// help popup for cms
function cmsHelpPopup(msg) {
	alert(msg);
}

// expand/collapse a section
function togglePageSection(which) {
	var objSection = document.getElementById("pageSection_" + which);
	var objIconRight = document.getElementById("icon_" + which + "_right");
	var objIconDown = document.getElementById("icon_" + which + "_down");
	if (objSection.style.display == "none") {
		objSection.style.display = "block";
		objIconRight.style.display = "none";
		objIconDown.style.display = "block";
	} else {
		objSection.style.display = "none";
		objIconRight.style.display = "block";
		objIconDown.style.display = "none";
	}
}

function collapseSections() {
	document.getElementById("pageSection_property").style.display = "none";
	document.getElementById("pageSection_designations").style.display = "none";
	document.getElementById("pageSection_languages").style.display = "none";
}

function collapseSectionsAff() {
	document.getElementById("pageSection_affiliate").style.display = "none";
	document.getElementById("pageSection_languages").style.display = "none";
}

function setHeaderFields() {
	var ffUsername = document.forms.frmSignIn.strUsername;
	var ffPassword = document.forms.frmSignIn.strPassword;
	var ffSearch = document.forms.frmSearch.q;
	
	if (!ffUsername.value) {
		ffUsername.style.color = "#999";
		ffUsername.value = "Member #";
	}
	if (!ffPassword.value) {
		ffPassword.style.color = "#999";
		ffPassword.value = "Password";
	}
	if (!ffSearch.value) {
		ffSearch.style.color = "#999";
		ffSearch.value = "Powered by Google";
	}
}
function clearHeaderField(which) {
	if ((which.value == "Member #") || (which.value == "Password") || (which.value == "Powered by Google")) {
		which.value = "";
		which.style.color = "#000";
	}
}
function setHomeFields() {
	var ffRealtorKeyword = document.forms.frmRealtorSearch.strKeyword;
	if (!ffRealtorKeyword.value) {
		ffRealtorKeyword.style.color = "#999";
		ffRealtorKeyword.value = "Keyword";
	}
}
function clearHomeFields(which) {
	if (which.value == "Keyword") {
		which.value = "";
		which.style.color = "#000";
	}
}



// DHTML VARS ---------------------------------------------------------

// dhtml layer variables for cross-browser compatability
if (document.layers) {	// Netscape 4
	doc = "document[";
	conDoc = "document";
	sty = "]";
	htm = ".document";
	cls = "].className";
} else if (document.getElementById) {	// NS 6 or IE 5 and up (W3C compliant browsers).
	doc = "document.getElementById(";
	conDoc = "document.getElementById(";
	sty = ").style";
	htm = ".document";
	cls = ").className";
} else if (document.all) {	// IE 4
	doc = "document.all[";
	conDoc = "document.all[";
	sty = "].style";
	htm = "";
	cls = "].className";
}
