//////////////////////////////////////////////////////////////////////////////////////////////
// functions used by all dHTML browsers
// MouseOver
// MouseOut
// ImageCache

// netscape / IE 3 and less detect
// nsie3_det

// write_standard_nav
// SetHomeCookie

// Mouse Rollover function
function MouseOver(image, nest, nest2) {
	var nestedImage = getNestedLayer(nest, nest2);
	if(nestedImage.images && nestedImage.images[image] && nestedImage.images[image].src.indexOf("-over") == -1) {
		nestedImage.images[image].src = nestedImage.images[image].src.substring(0,nestedImage.images[image].src.indexOf(".gif")) + "-over.gif";
	}
}

// Mouse Rollout function
function MouseOut(image, nest, nest2) {
	var nestedImage = getNestedLayer(nest, nest2);
	if (nestedImage.images && nestedImage.images[image] && nestedImage.images[image].src.indexOf("-over") >=0) {
		nestedImage.images[image].src = nestedImage.images[image].src.substring(0,nestedImage.images[image].src.indexOf("-over.gif")) + ".gif";
	}
}

// Returns a nested Layer or a document object
function getNestedLayer(nest1, nest2) {
	return (document.layers) ? (nest1) ? (nest2) ? document.layers[nest1].layers[nest2].document : document.layers[nest1].document : document : document;
}

// function to cache images on a web page
// To use the Image Caching function, use the following syntax:
//	image_cache_arr[num] = new Array(imagepath, state "-over" etc... , extension, images);
// Ex:	image_cache_arr[0] = new Array("/services/images", "yes", "gif", "international", "additional");
//
// Once you have set-up the array, you can call ImageCache(); to cache the images.
//
var showImagesCached = false;
var imageCache = "";
function ImageCache() {
	if(document.images) {
		for(i=0; i<image_cache_arr.length; i++) {
			var imagepath = image_cache_arr[i][0];
			var mouseoverimages = new Array(image_cache_arr[i].length-1);
			var numofoverstates=(ImageCache.arguments[i]) ? ImageCache.arguments[i] : 0;
			var overstate = new Array();
			for(os=1; os<numofoverstates+1; os++) {
				overstate[os] = image_cache_arr[i][os];
			}
			var ext = "." + image_cache_arr[i][numofoverstates+1];

			for(j=(numofoverstates+2); j<image_cache_arr[i].length; j++) {
				if(image_cache_arr[i][j].indexOf('"') == -1 && image_cache_arr[i][j].indexOf(',') == -1) {
					mouseoverimages[image_cache_arr[i][j]] = new Image();
					if(isNSDIV || isIE || isNetscape6) {
						mouseoverimages[image_cache_arr[i][j]].name = image_cache_arr[i][j];
					}
					mouseoverimages[image_cache_arr[i][j]].src = imagepath + image_cache_arr[i][j] + ext;
					imageCache+=mouseoverimages[image_cache_arr[i][j]].src+"\n";
					for(os=1; os<numofoverstates+1; os++) {
						mouseoverimages[image_cache_arr[i][j]].src = imagepath + image_cache_arr[i][j] + overstate[os] + ext;
						imageCache+=mouseoverimages[image_cache_arr[i][j]].src+"\n";
					}
				}
			}
		}
	}
	if (showImagesCached == true) { alert(imageCache); }
}



// START: input display for checkbox/radio buttons
// e.g. <img src="images/icn_checkbox.gif" width="13" height="13" alt="" border="0" onclick="checkThisBox(this);" class="checkbox"><input type="checkbox" name="agreement" class="checkbox">
// img first then the input type checkbox
// Gets the state of the checkbox/radio
function getChecked(obj) {
	if (obj.src.indexOf("-over") != -1) {
		return false;
	} else {
		return true;
	}
}

// Changes the state of the checkbox/radio
function changeCheckState(obj,inv) {
	var objChecked = obj.nextSibling.checked;
	if (inv == true) { objChecked = !obj.nextSibling.checked; }
	if (objChecked) {
		obj.src = obj.src.toString().replace(/-over/,'');
		return false;
	} else if (!objChecked) {
		obj.src = obj.src.toString().replace(/-over/,'');
		obj.src = obj.src.toString().replace(/\.gif/,'-over.gif');
		return true;
	}
}

// gets called onclick from the image preceding the checkbox/radio input
function checkThisBox(obj) {
	var isChecked = changeCheckState(obj);
	var obj2 = obj.nextSibling;
	obj2.checked = isChecked;
	if (obj2.type == 'radio') {
		for (var i = 0; i < document.images.length; i++) {
			if (document.images[i].nextSibling) {
				if (document.images[i].nextSibling.name == obj2.name) {
					changeCheckState(document.images[i],true);
				}
			}
		}
	}
}

// this is called onload of the body function and runs through all the buttons to check their states and enables any that have the associated checkbox enabled
// NOTE: this only need apply to pages where there is a form that uses checkboxes or radio buttons
// eg.  <body onload="javascript:checkAllButtonStates();">
function checkAllButtonStates() {
	for (var i = 0; i < document.images.length; i++) {
		if (document.images[i].nextSibling) {
			if (document.images[i].nextSibling.type == 'checkbox' || document.images[i].nextSibling.type == 'radio') {
				changeCheckState(document.images[i],true);
			}
		}
	}
}

// This is specifically for the search table and is not used anywhere else
function checkAll(obj) {
	checkThisBox(obj);
	var isChecked = !obj.nextSibling.checked;
	document.images['chk1'].nextSibling.checked = isChecked;
	document.images['chk2'].nextSibling.checked = isChecked;
	document.images['chk3'].nextSibling.checked = isChecked;
	document.images['chk4'].nextSibling.checked = isChecked;
	document.images['chk5'].nextSibling.checked = isChecked;
	document.images['chk6'].nextSibling.checked = isChecked;
	checkThisBox(document.images['chk1']);
	checkThisBox(document.images['chk2']);
	checkThisBox(document.images['chk3']);
	checkThisBox(document.images['chk4']);
	checkThisBox(document.images['chk5']);
	checkThisBox(document.images['chk6']);
}
// END: input display for checkbox/radio buttons


// toggle expanding boxes for FAQs
function toggle( divId1, divId2, imgId ) {
    if ( document.getElementById ) {
        var outer = document.getElementById( divId1 );
        var inner = document.getElementById( divId2 );
    } else 
    if ( document.all ) {
        var outer = document.all[ divId1 ];
        var inner = document.all[ divId2 ];
    } else {
//			        alert( "Sorry you browser cannot perfom display collapses as required by this page." );
        return;
    }
    if ( inner.style.display == 'none' ) {
        outer.className = 'expanderLink expanderLinkOpen';
        inner.style.display = 'block';
    } else {
        outer.className = 'expanderLink';
        inner.style.display = 'none';
    }
}


function clearForm(formName) {
	var aElement = new Array();
	var aElementType = new Array();
	for (var i=0; i<formName.elements.length; i++) {
		switch (formName.elements[i].type) {
			case 'select-one':	aElement[i] = formName.elements[i].selectedIndex; aElementType[i] = formName.elements[i].type; break;
			case 'text': 		aElement[i] = formName.elements[i].value; aElementType[i] = formName.elements[i].type; break;
			case 'textarea':	aElement[i] = formName.elements[i].value; aElementType[i] = formName.elements[i].type; break;
			case 'radio':		aElement[i] = formName.elements[i].checked; aElementType[i] = formName.elements[i].type; break;
			case 'checkbox':	aElement[i] = formName.elements[i].checked; aElementType[i] = formName.elements[i].type; break;
			default : break;
		}
	}
	formName.reset();
	for (var i=0; i<formName.elements.length; i++) {
		switch (aElementType[i]) {
			case 'select-one':	formName.elements[i].selectedIndex = aElement[i]; break;
			case 'text': 		formName.elements[i].value = aElement[i]; break;
			case 'textarea':	formName.elements[i].value = aElement[i]; break;
			case 'radio':		formName.elements[i].checked = aElement[i]; break;
			case 'checkbox':	formName.elements[i].checked = aElement[i]; break;
			default : break;
		}
	}
}


// Popup window function
var childWindow = null;
var isNetscape6 = (!document.all && !document.layers && navigator.appName == "Netscape" && parseInt(navigator.appVersion) >=5)?true:false;
function genericPopup(popupURL, popupWidth, popupHeight, extraAtt) {
	extraAtt = (extraAtt == null) ? "" : "," + extraAtt;
	attributes = "width=" + popupWidth + ",height=" + popupHeight + ",left=100,top=100" + extraAtt;
	if (!isNetscape6 && childWindow && childWindow != null && childWindow.close) childWindow.close(); // DD
	childWindow = window.open(popupURL, "Orange", attributes);
}

// used to resize a popup if the content is dynamic
// onload="resizeThisWindow();"
// <div name="me" id="me"> content goes here </div>
function resizeThisWindow() {
	var meDiv = (document.getElementById) ? document.getElementById('me') : (document.all) ? document.all['me'] : document['me'];
	var meWidth = (document.layers) ? meDiv.clip.right : meDiv.offsetWidth;
	var meHeight = (document.layers) ? meDiv.clip.bottom : meDiv.offsetHeight;
//	window.resizeTo(meWidth+25, meHeight+50);
	window.resizeTo(meWidth+10, meHeight+50);
}


//Printer friendly version page

function PrintThisPage(sFileName) 
{

	var sConfig="toolbar=yes,location=no,directories=yes,menubar=yes,status=no,"; 
       sConfig+="location=no,scrollbars=yes,width=750,height=500,left=100,top=25";

	var newWin = window.open(sFileName,"printWindow",sConfig);

}

//Show group detail popup

function GroupDetail(sFileName) 
{
  var w=300, h=200;
  var x=420, y=300;

	var sConfig="toolbar=0,location=0,directories=0,menubar=0,status=0,"; 
	sConfig+="scrollbars=0,width="+w+",height="+h+",left="+x+",top="+y;

	var newWin = window.open(sFileName,"groupDetail",sConfig);
	newWin.focus()

}


