function FindGroup(grp, imageName) {
	var img = FWFindImage(document, imageName, 0);
	if (!img) return(false);
	var docGroup = eval("document.FWG_"+grp);
	if (!docGroup) {
		docGroup = new Object;
		eval("document.FWG_"+grp+" = docGroup");
		docGroup.theImages = new Array;
	}
	if (img) {
		var i;
		for (var i=0; i<docGroup.theImages.length; i++) {
			if (docGroup.theImages[i] == img) break;
		}
		docGroup.theImages[i] = img;
		if (!img.atRestSrc) {
			img.atRestSrc = img.src;
			img.initialSrc = img.src;
		}
	}
	return(docGroup);
}

function FWFindImage(doc, name, j)
{
	var theImage=false;
	if (doc.images) {
		theImage = doc.images[name];
	}
	if (theImage) return theImage;
	if (doc.layers) {
		for (j=0; j<doc.layers.length; j++) {
			theImage = FWFindImage(doc.layers[j].document, name, 0);
			if (theImage) return(theImage);
		}
	}
	return(false);
}

function GrpSwap(grp){
	var i,j=0,newSrc,objName;
	var docGroup = false;
	for (var i=1; i < (GrpSwap.arguments.length-1); i+=2) {
		objName = GrpSwap.arguments[i];
		newSrc = GrpSwap.arguments[i+1];
		docGroup = FindGroup(grp, objName);
		if (!docGroup) continue;
		obj = FWFindImage(document,objName,0);
		if (!obj) continue;
		if (obj.isDown) {
			if (obj.downOver) {
				obj.src = obj.downOver;
			}
		} else {
			obj.src = newSrc;
			obj.atRestSrc = obj.initialSrc;
		}
		obj.skipMe = true;
		j++;
	}
	if (!docGroup) return;
	theImages = docGroup.theImages;
	if (theImages) {
		for (var i=0; i<theImages.length; i++) {
			var curImg = theImages[i];
			if (curImg.atRestSrc && !curImg.skipMe) {
				curImg.src = curImg.atRestSrc;
			}
			curImg.skipMe = false;
		}
	}
}
function InitGrp(grp) {
	var cmd = false; if (getCookie) cmd = getCookie(grp);
	if (cmd) {
		eval("GrpDown("+cmd+")");
		eval("GrpRestore("+cmd+")");
	}
}

function getCookie(Name) {
   var search = Name + "="
   var retVal = "";
   if (document.cookie.length > 0) { // if there are any cookies
     offset = document.cookie.indexOf(search);
     if (offset != -1) { // if cookie exists
         // set index of beginning of value
         end = document.cookie.indexOf(";", offset)
         // set index of end of cookie value
         offset += search.length
         if (end == -1)
            end = document.cookie.length;
         retVal = unescape(document.cookie.substring(offset, end)) ;
     }
   }
   return(retVal);
}

function setCookie(name, value) {
   document.cookie = name + "=" + escape(value)
}

function GrpDown(grp){
	var i,j=0,downSrc,downOver,objName;
	var cmd = "'" + grp + "'";
	var docGroup=false;
	for (var i=1; i < (GrpDown.arguments.length-2); i+=3) {
		objName = GrpDown.arguments[i];
		downSrc = GrpDown.arguments[i+1];
		downOver = GrpDown.arguments[i+2];
		if(!downOver) downOver = downSrc;
		var docGroup = FindGroup(grp, objName);
		if (!docGroup || !downSrc) continue;
		obj = FWFindImage(document,objName,0);
		if (!obj) continue;
		obj.atRestSrc = downSrc; obj.downOver = downOver;
		obj.src = downOver; obj.isDown = true;
		obj.skipMe = true;
		cmd += ",'" + objName + "','" + downSrc + "','" + downOver + "'";
		j++;
	}
	setCookie(grp, cmd);
	if (!docGroup) return;
	var theImages = docGroup.theImages;
	if (theImages) {
		for (var i=0; i<theImages.length; i++) {
			var curImg = theImages[i];
			if (curImg && !curImg.skipMe) {
				curImg.atRestSrc = curImg.initialSrc;
				curImg.isDown = false; curImg.downOver = false;
				curImg.src = curImg.initialSrc;
			}
			curImg.skipMe = false;
		}
	}
}

function GrpRestore(grp) { //v2.0
	var docGroup = eval("document.FWG_"+grp);if (!docGroup) return;
	var oldSwap = docGroup.oldSwap;
	var newSwap = docGroup.curSwap;
	if (newSwap) {docGroup.oldSwap = newSwap;	docGroup.curSwap = null;}
	if (oldSwap) {
		for (var i=0; i<oldSwap.length; i++) {
			var curImg = oldSwap[i];
			var restore = true;
			if (newSwap) 
				for (j=0; j<newSwap.length; j++) {
					if (curImg == newSwap[j]) {
						restore = false;
					}
				}
			if (restore) {
				if (curImg.atRestSrc) {
					curImg.src = curImg.atRestSrc;
				} else if (curImg.origSrc) {
					curImg.src = curImg.origSrc;
				}
			}
		}
	}
	theImages = docGroup.theImages;
	if (theImages) {
		for (var i=0; i<theImages.length; i++) {
			var curImg = theImages[i];
			var restore = true;
			if (newSwap) for (j=0; j<newSwap.length; j++) {
				if (curImg == newSwap[j]) {
					restore = false;
				}
			}
			if (restore) {
				if (curImg.atRestSrc) {
					curImg.src = curImg.atRestSrc;
				}
			}
		}
	}
}

function MM_displayStatusMsg(msgStr) { //v1.0
  status=msgStr;
  document.MM_returnValue = true;
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function MM_callJS(jsStr) { //v2.0
  return eval(jsStr)
}

