/*
'####################################################################################
'# © Copyright 2008 Netfactors Limited (www.netfactors.co.uk). All rights reserved. #
'#----------------------------------------------------------------------------------#
'# This library of routines has been developed by Netfactors Limited and is         #
'# partially customised for use on the Stable Publishing website                    #
'# (www.stablepublishing.co.uk) and licensed for free use by Stable Publishing for  #
'# a time indefinite period. Copyright of the library and any routines therein      #
'# remains the property Netfactors Limited. In the event of any amendments by third #
'# parties, this copyright notice must be kept intact, with comments added to       #
'# indicate such amendments.                                                        #
'####################################################################################
*/

var requiredMajorVersion = 7;
var requiredMinorVersion = 0;
var requiredRevision = 19;
jsVersion = 1.0;
var isIE  = (navigator.appVersion.indexOf("MSIE") != -1) ? true : false;
var isWin = (navigator.appVersion.toLowerCase().indexOf("win") != -1) ? true : false;
var isOpera = (navigator.userAgent.indexOf("Opera") != -1) ? true : false;
var preloadImageList = new Array('/images/menubg1.gif','/images/menubg2.gif','/images/submenubg1.gif','/images/submenubg2.gif','/images/stablelogo.gif');
var preloadImageObjects = new Array();
for (var i=0; i<preloadImageList.length; i++) {
	preloadImageObjects[i] = new Image();
	preloadImageObjects[i].src = preloadImageList[i]
}

function doPopupWin() {
	window.open('','popupwin','width=700,height=600,toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=yes,resizable=no');
}

function printPage() {
	if (allowPrint) {
		window.print();
	}
}

function closeWindow() {
	window.close();
}

function JSGetSwfVer(i) {
	if (navigator.plugins != null && navigator.plugins.length > 0) {
		if (navigator.plugins["Shockwave Flash 2.0"] || navigator.plugins["Shockwave Flash"]) {
			var swVer2 = navigator.plugins["Shockwave Flash 2.0"] ? " 2.0" : "";
			var flashDescription = navigator.plugins["Shockwave Flash" + swVer2].description;
			descArray = flashDescription.split(" ");
			tempArrayMajor = descArray[2].split(".");
			versionMajor = tempArrayMajor[0];
			versionMinor = tempArrayMajor[1];
			if ( descArray[3] != "" ) {
				tempArrayMinor = descArray[3].split("r");
			} else {
				tempArrayMinor = descArray[4].split("r");
			}
			versionRevision = tempArrayMinor[1] > 0 ? tempArrayMinor[1] : 0;
			flashVer = versionMajor + "." + versionMinor + "." + versionRevision;
		} else {
			flashVer = -1;
		}
	} else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.6") != -1) {
		flashVer = 4;
	} else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.5") != -1) {
		flashVer = 3;
	} else if (navigator.userAgent.toLowerCase().indexOf("webtv") != -1) {
		flashVer = 2;
	} else {
		flashVer = -1;
	}
	return flashVer;
}

function DetectFlashVer(reqMajorVer, reqMinorVer, reqRevision) {
	reqVer = parseFloat(reqMajorVer + "." + reqRevision);
	for (i=25; i>0; i--) {
		if (isIE && isWin && !isOpera) {
			versionStr = VBGetSwfVer(i);
		} else {
			versionStr = JSGetSwfVer(i);		
		}
		if (versionStr == -1 ) {
			return false;
		} else if (versionStr != 0) {
			if (isIE && isWin && !isOpera) {
				tempArray = versionStr.split(" ");
				tempString = tempArray[1];
				versionArray = tempString .split(",");
			} else {
				versionArray = versionStr.split(".");
			}
			versionMajor = versionArray[0];
			versionMinor = versionArray[1];
			versionRevision = versionArray[2];
			versionString = versionMajor + "." + versionRevision;
			versionNum = parseFloat(versionString);
			if ((versionMajor > reqMajorVer) && (versionNum >= reqVer)) {
				return true;
			} else {
				return ((versionNum >= reqVer && versionMinor >= reqMinorVer) ? true : false );
			}
		}
	}
	return (reqVer ? false : 0.0);
}

function AC_AddExtension(src, ext) {
	if (src.indexOf('?') != -1) {
		return src.replace(/\?/, ext+'?');
	} else {
		return src + ext;
	}
}

function AC_Generateobj(objAttrs, params, embedAttrs) { 
	var str = '<object ';
	for (var i in objAttrs) {
		str += i + '="' + objAttrs[i] + '" ';
	}
	str += '>';
	for (var i in params) {
		str += '<param name="' + i + '" value="' + params[i] + '"> ';
	}
	str += '<embed ';
	for (var i in embedAttrs) {
		str += i + '="' + embedAttrs[i] + '" ';
	}
	str += ' ></embed></object>';
	document.write(str);
}

function AC_FL_RunContent() {
	var ret = AC_GetArgs(arguments, '.swf', 'movie', 'clsid:d27cdb6e-ae6d-11cf-96b8-444553540000', 'application/x-shockwave-flash');
	AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}

function AC_SW_RunContent() {
	var ret = AC_GetArgs(arguments, '.dcr', 'src', 'clsid:166B1BCA-3F9C-11CF-8075-444553540000', null);
	AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}

function AC_GetArgs(args, ext, srcParamName, classid, mimeType) {
	var ret = new Object();
	ret.embedAttrs = new Object();
	ret.params = new Object();
	ret.objAttrs = new Object();
	for (var i=0; i < args.length; i=i+2) {
		var currArg = args[i].toLowerCase();
		switch (currArg) {
			case 'classid':
				break;
			case 'pluginspage':
				ret.embedAttrs[args[i]] = args[i+1];
				break;
			case 'src':
			case 'movie':
				args[i+1] = AC_AddExtension(args[i+1], ext);
				ret.embedAttrs['src'] = args[i+1];
				ret.params[srcParamName] = args[i+1];
				break;
			case 'onafterupdate':
			case 'onbeforeupdate':
			case 'onblur':
			case 'oncellchange':
			case 'onclick':
			case 'ondblClick':
			case 'ondrag':
			case 'ondragend':
			case 'ondragenter':
			case 'ondragleave':
			case 'ondragover':
			case 'ondrop':
			case 'onfinish':
			case 'onfocus':
			case 'onhelp':
			case 'onmousedown':
			case 'onmouseup':
			case 'onmouseover':
			case 'onmousemove':
			case 'onmouseout':
			case 'onkeypress':
			case 'onkeydown':
			case 'onkeyup':
			case 'onload':
			case 'onlosecapture':
			case 'onpropertychange':
			case 'onreadystatechange':
			case 'onrowsdelete':
			case 'onrowenter':
			case 'onrowexit':
			case 'onrowsinserted':
			case 'onstart':
			case 'onscroll':
			case 'onbeforeeditfocus':
			case 'onactivate':
			case 'onbeforedeactivate':
			case 'ondeactivate':
			case 'type':
			case 'codebase':
				ret.objAttrs[args[i]] = args[i+1];
				break;
			case 'width':
			case 'height':
			case 'align':
			case 'vspace':
			case 'hspace':
			case 'class':
			case 'title':
			case 'accesskey':
			case 'name':
			case 'id':
			case 'tabindex':
				ret.embedAttrs[args[i]] = ret.objAttrs[args[i]] = args[i+1];
				break;
			default:
				ret.embedAttrs[args[i]] = ret.params[args[i]] = args[i+1];
		}
	}
	ret.objAttrs['classid'] = classid;
	if (mimeType) {
		ret.embedAttrs['type'] = mimeType;
	}
	return ret;
}

