/*
 * rk_util_v7a.js
 *
 * (c) 2007 Arcaysis Limited - All Rights Reserved
 *
 *	Arcaysis Utility Functions
 */
//
// JSLint "helper"
/* extern alert, confirm, document, eval, location, navigator, parent, window, ActiveXObject */

function MM_findObj(n, d)
{
	// v4.01
	var p, i, x;

	if (!d)
	{
		d=document;
	}
	if ((p = n.indexOf("?")) > 0 && parent.frames.length)
	{
		d = parent.frames[n.substring(p+1)].document;
		n = n.substring(0, p);
	}
	if (!(x = d[n]) && d.all)
	{
		x=d.all[n];
	}
	for(i=0; !x && i < d.forms.length; i++)
	{
		x = d.forms[i][n];
	}
	for(i=0; !x && d.layers && i<d.layers.length; i++)
	{
		x = MM_findObj(n, d.layers[i].document);
	}
	if (!x && d.getElementById)
	{
		x = d.getElementById(n);
	}
	return x;
}

function MM_jumpMenu(targ, selObj, restore)
{
	//v3.0
	eval(targ + ".location='" + selObj.options[selObj.selectedIndex].value + "'");
	if (restore)
	{
		selObj.selectedIndex=0;
	}
}

function MM_jumpMenuGo(selName, targ, restore)
{
	//v3.0
	var selObj;
	selObj = MM_findObj(selName);
	if (selObj)
	{
		MM_jumpMenu(targ, selObj, restore);
	}
}

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_showHideLayers()
{
	//v6.0
	var i, p, v, obj, args;

	args = MM_showHideLayers.arguments;
	for (i=0; i<(args.length-2); i+=3)
	{
		if ((obj = MM_findObj(args[i])) !== null)
		{
			v = args[i+2];
			if (obj.style)
			{
				obj = obj.style;
				v = (v === 'show') ? 'visible' : (v === 'hide') ? 'hidden' : v;
			}
			obj.visibility = v;
		}
	}
}

/*
function MM_showHideLayers()
{
	//v6.0
	var i, p, v, obj, args;

	args = MM_showHideLayers.arguments;
	for (i=0; i < (args.length-2); i+=3)
	{
		if ((obj = MM_findObj(args[i])) !== null)
		{
			v = args[i+2];
			if (obj.style)
			{
				obj=obj.style;

// Visibility method is NOT used otherwise the DIV will be drawn, but with no content
//				v = (v === 'show') ? 'visible' : (v === 'hide') ? 'hidden' : v;
//			}
//			obj.visibility=v;

				v = (v === 'show') ? 'block' : (v === 'hide') ? 'none' : v;
			}
			obj.display=v;

		}
	}
}
*/

function RK_showHideLayers()
{
	// NOTE: Only uses TWO parameters per item, NOT THREE as per MM standard
	var i, p, v, obj, args;

	args = RK_showHideLayers.arguments;
	for (i=0; i < (args.length-1); i+=2)
	{
		if ((obj = MM_findObj(args[i])) !== null)
		{
			v = args[i+1];
			if (obj.style)
			{
				obj = obj.style;
// Display method is used instead of MM's Visibility method otherwise the DIV will be drawn, but with no content

				v = (v === 'show') ? 'block' : (v === 'hide') ? 'none' : v;
			}
			obj.display = v;
		}
	}
}

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_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 rkfnCheckboxStateSet(objControl, objTarget)
{
// Set all objTarget checkboxes to match objControl

var i;

	if (typeof(objTarget.length) === "undefined")
	{
		objTarget.checked = objControl.checked;
    } else
	{
		for (i=0; i < objTarget.length; i++)
		{
			objTarget[i].checked = objControl.checked;
		}
	}
}

function rkfnSetCheckboxState(objControl, objTarget)
{
	alert("USE: rkfnCheckboxStateSet");
	rkfnCheckboxStateSet(objControl, objTarget);
}

function rkfnCookieGet(strName)
{
	var objDc = document.cookie;
	var strPrefix = strName + "=";
	var intBegin = objDc.indexOf("; " + strPrefix);

	if (intBegin === -1)
	{
		intBegin = objDc.indexOf(strPrefix);

		if (intBegin !== 0)
		{
			return "";	// null;
		}
	} else
	{
		intBegin += 2;
	}
	var intEnd = document.cookie.indexOf(";", intBegin);
	if (intEnd === -1)
	{
		intEnd = objDc.length;
	}
	return unescape(objDc.substring(intBegin + strPrefix.length, intEnd));
}


function rkfnCopyHTML(strSrcDiv, strDstDiv)
{
	var objSrcDiv = MM_findObj(strSrcDiv);
	var objDstDiv = MM_findObj(strDstDiv);
	if (objSrcDiv && objDstDiv)
	{
		objDstDiv.innerHTML = objSrcDiv.innerHTML;
		objSrcDiv.innerHTML = '';
	}
}


function rkfnHideShow(strHideDiv,strShowDiv)
{
/*
 *	Hide and Show DIVs respectively.  Scrolls page to top
 */
	RK_showHideLayers(strHideDiv,'hide',strShowDiv,'show');
	self.scrollTo(0,0);
}

function rkfnLinkHide(strURL, strHideDiv, strShowDiv)
{
/*
 *	Hide the "main" layer, and folow the URL link
 */
	if (! strHideDiv)
	{
		strHideDiv = 'listing';
	}
	if (! strShowDiv)
	{
		strShowDiv = 'loading';
	}
	RK_showHideLayers(strHideDiv,'hide',strShowDiv,'show');
	window.location = "strURL";
}

function rkfnOnLoadAppend(strOnload)
{
    var strNewOnLoad;

    if (document.body.onload !== null && document.body.onload !== "undefined")
	{
        var strOnLoad = document.body.onload.toString();
        strNewOnLoad = strOnLoad.substring(strOnLoad.indexOf('{') +1, strOnLoad.length -2);
    } else
	{
        strNewOnLoad = "";
    }
    strNewOnLoad += strOnload;
    document.body.onload = new Function(strNewOnLoad);
}


function rkfnPagePrint()
{
// Print current page

	window.print();
}


function rkfnPrintPage()
{
// Print current page

	alert("USE: rkfnPagePrint");
	rkfnPagePrint();
}


function rkfnSelectedSet(strSelectName, strOption){var i;var objSel = document.getElementById(strSelectName);if (strOption !== ""){for(i=0; i < objSel.length; i++){if (objSel.options[i].value === strOption){objSel.options[i].selected = true;}}}}

function rkfnStyleDisplay(strDiv, strAttribute){var objDiv = MM_findObj(strDiv);if (objDiv){objDiv.style.display = strAttribute;}}

function rkfnWindowDisplay(param1, param2, param3, param4, param5, param6)
{
// Alternative 2-parameter calling syntax: rkfnWindowDisplay(this(), blnSetFocus)
// Alternative 3-parameter calling syntax: rkfnWindowDisplay(strURL, strWinName, blnSetFocus)
// Alternative 6-parameter calling syntax: rkfnWindowDisplay(strURL, strWinName, intWidth, intHeight, strFeatures, blnSetFocus)
// v3.1
	var pLink;
	var newfeatures;
	var blnSetFocus;
	var strURL;
	var hWin;
	var strWinName;
	var window_height;
	var window_top;
	var window_left;
	var window_width;

//DEBUG alert("ArgsLen=" + arguments.length);

	if (arguments.length < 2)
	{
		alert("rkfnWindowDisplay:Too few arguments");
	} else
	if (arguments.length === 2)
	{
		pLink = param1;
		blnSetFocus = param2;
//DEBUG alert("a2:" + pLink.href + ", " + pLink.target + ", " + blnSetFocus);
		hWin = window.open(pLink.href, pLink.target, "", false);
	
	} else
	if (arguments.length === 3)
	{
		strURL = param1;
		strWinName = param2;
		blnSetFocus = param3;
//DEBUG alert("a3:" + strURL + ", " + strWinName + ", " + blnSetFocus);
		hWin = window.open(strURL, strWinName, "", false);
	} else
	{
//DEBUG alert("a4+:" + strURL + ", " + strWinName + ", " + blnSetFocus);
		strURL = param1;
		strWinName = param2;
		window_width = param3;
		window_height = param4;
		newfeatures = param5;
		blnSetFocus = param6;
		window_top = (screen.height - window_height)/2;
		window_left = (screen.width - window_width)/2;
		hWin = window.open(strURL, strWinName, 'width=' + window_width + ', height=' + window_height + ', top=' + window_top + ', left=' + window_left + ',' + newfeatures, false);
	}
	if (blnSetFocus)
	{
		hWin.focus();
	}
	return false;	// Allows "return rkfnWindowDisplay(this, true);" to be used in OnClick for brevity
}


function rkfnDisplayWindow(strURL, strWinName, intWidth, intHeight, strFeatures, blnSetFocus)
{
	alert("USE: rkfnWindowDisplay");
	rkfnWindowDisplay(strURL, strWinName, intWidth, intHeight, strFeatures, blnSetFocus);
}


