//************************************************************************************************************
function ContentUpdater($sContent){

	AjaxUpdater($sContent, 'ajaxContent1', 'library/index_content.php');

}

//************************************************************************************************************
function IndexUpdater($sMenu, $sMain){

	AjaxUpdater($sMenu, 'menu', '/library/navagation_menu.php');
	AjaxUpdater($sMain, 'ajaxContent1', '/library/index_content.php');

}

//************************************************************************************************************
var accordion = function (){
	var tm = 10;
	var sp = 10;

	function slider(n){
		this.nm = n;
		this.arr = [];
		this.sel = '';
	}

	slider.prototype.init = function (t, c, k){
		var a, h, s, l, i, d;
		a = document.getElementById(t);
		h = a.getElementsByTagName('dt');
		s = a.getElementsByTagName('dd');
		l = h.length;
		for(i = 0; i < l; i++){
			d = h[i];
			this.arr[i] = d;
			d.onclick = new Function(this.nm + ".process(this)");
			if(k != null && c == i){
				this.sel = d.className = k;
			}
		}
		l = s.length;
		for(i = 0; i < l; i++){
			d = s[i];
			d.maxh = d.offsetHeight;
			if(c != i){
				d.style.height = '0';
				d.style.display = 'none';
			}
		}
	};
	slider.prototype.process = function (d){
		var i, l;
		l = this.arr.length;
		for(i = 0; i < l; i++){
			var h = this.arr[i];
			var s = h.nextSibling;
			if(s.nodeType != 1){
				s = s.nextSibling;
			}
			clearInterval(s.timer);
			if(h == d && s.style.display == 'none'){
				s.style.display = '';
				setup(s, 1);
				h.className = this.sel;
			}
			else if(s.style.display == ''){
				setup(s, -1);
				h.className = '';
			}
		}
	};
	function setup(c, f){
		c.timer = setInterval(function (){
			slide(c, f);
		}, tm);
	}

	function slide(c, f){
		var h, m, d;
		h = c.offsetHeight;
		m = c.maxh;
		d = (f == 1) ? Math.ceil((m - h) / sp) : Math.ceil(h / sp);
		c.style.height = h + (d * f) + 'px';
		c.style.opacity = h / m;
		c.style.filter = 'alpha(opacity=' + h * 100 / m + ')';
		if(f == 1 && h >= m){
			clearInterval(c.timer);
		}
		else if(f != 1 && h == 1){
			c.style.display = 'none';
			clearInterval(c.timer);
		}
	}

	return{slider: slider};
}();

//************************************************************************************************************
var slider = function (){

	var array = [];
	var speed = 10;
	var timer = 10;

	return{

		init: function (t, c){

			var s, ds, l, i, y;

			array = [];
			s = document.getElementById(t);
			ds = s.getElementsByTagName('div');
			l = ds.length;
			//noinspection JSUnusedAssignment
			i = y = 0;

			for(i = 0; i < l; i++){

				var d, did;
				d = ds[i];
				did = d.id;

				if(did.indexOf("header") != -1){

					y++;
					d.onclick = new Function("slider.process(this)");

				}
				else if(did.indexOf("content") != -1){

					array.push(did.replace('-content', ''));
					d.maxh = d.offsetHeight;

					if(c != y){

						d.style.height = '0px';
						d.style.display = 'none';

					}
					else{

						d.style.display = 'block';

					}

				}
			}
		},

		process: function (d){

			var cl, i;

			cl = array.length;
			i = 0;

			for(i; i < cl; i++){

				var s, h, c, cd;

				s = array[i];
				h = document.getElementById(s + '-header');
				c = s + '-content';
				cd = document.getElementById(c);
				clearInterval(cd.timer);

				if(h == d && cd.style.display == 'none'){

					cd.style.display = 'block';
					this.islide(c, 1);

				}
				else if(cd.style.display == 'block'){

					this.islide(c, -1);

				}

			}

		},

		islide: function (i, d){

			var c, m;

			c = document.getElementById(i);
			//noinspection JSUnusedAssignment
			m = c.maxh;
			c.direction = d;
			c.timer = setInterval("slider.slide('" + i + "')", timer);

		},

		slide: function (i){

			var c, m, h, dist;

			c = document.getElementById(i);
			m = c.maxh;
			h = c.offsetHeight;
			dist = (c.direction == 1) ? Math.round((m - h) / speed) : Math.round(h / speed);

			if(dist <= 1) dist = 1;

			c.style.height = h + (dist * c.direction) + 'px';
			c.style.opacity = h / c.maxh;
			c.style.filter = 'alpha(opacity=' + (h * 100 / c.maxh) + ')';

			if(h < 2 && c.direction != 1){

				c.style.display = 'none';
				clearInterval(c.timer);

			}
			else if(h > (m - 2) && c.direction == 1){

				clearInterval(c.timer);

			}
		}
	};

}();

//*********************************************Flash Code*****************************************************
var $bIsIE = (navigator.appVersion.indexOf("MSIE") != -1);
var $bIsWin = (navigator.appVersion.toLowerCase().indexOf("win") != -1);
var $bIsOpera = (navigator.userAgent.indexOf("Opera") != -1);

//************************************************************************************************************
function ControlVersion(){

	var version;
	var axo;

	// NOTE : new ActiveXObject(strFoo) throws an exception if strFoo isn't in the registry

	try{

		// version will be set for 7.X or greater players
		axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");
		version = axo.GetVariable("$version");

	}
	catch(e){

	}

	if(!version){

		try{

			// version will be set for 6.X players only
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");

			// installed player is some revision of 6.0
			// GetVariable("$version") crashes for versions 6.0.22 through 6.0.29,
			// so we have to be careful.

			// default to the first public version
			version = "WIN 6,0,21,0";

			// throws if AllowScripAccess does not exist (introduced in 6.0r47)
			axo.AllowScriptAccess = "always";

			// safe to call for 6.0r47 or greater
			version = axo.GetVariable("$version");

		}
		catch(e){

		}

	}

	if(!version){

		try{

			// version will be set for 4.X or 5.X player
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
			version = axo.GetVariable("$version");

		}
		catch(e){

		}

	}

	if(!version){

		try{

			// version will be set for 3.X player
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
			version = "WIN 3,0,18,0";
		}
		catch(e){

		}

	}

	if(!version){

		try{

			// version will be set for 2.X player
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
			version = "WIN 2,0,0,11";

		}
		catch(e){

			version = -1;

		}

	}

	return version;

}

//************************************************************************************************************
// JavaScript helper required to detect Flash Player PlugIn version information
function GetSwfVer(){

	// NS/Opera version >= 3 check for Flash plugin in plugin array
	var $iFlashVer = -1;

	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;
			var descArray = flashDescription.split(" ");
			var tempArrayMajor = descArray[2].split(".");
			var $sVersionMajor = tempArrayMajor[0];
			var $sVersionMinor = tempArrayMajor[1];
			var versionRevision = descArray[3];

			if(versionRevision == ""){

				versionRevision = descArray[4];

			}

			if(versionRevision[0] == "d"){

				versionRevision = versionRevision.substring(1);

			}
			else if(versionRevision[0] == "r"){

				versionRevision = versionRevision.substring(1);

				if(versionRevision.indexOf("d") > 0){

					versionRevision = versionRevision.substring(0, versionRevision.indexOf("d"));

				}

			}

			$iFlashVer = $sVersionMajor + "." + $sVersionMinor + "." + versionRevision;

		}

	}

	// MSN/WebTV 2.6 supports Flash 4
	else if(navigator.userAgent.toLowerCase().indexOf("webtv/2.6") != -1) $iFlashVer = 4;
	// WebTV 2.5 supports Flash 3
	else if(navigator.userAgent.toLowerCase().indexOf("webtv/2.5") != -1) $iFlashVer = 3;
		// older WebTV supports Flash 2
		else if(navigator.userAgent.toLowerCase().indexOf("webtv") != -1) $iFlashVer = 2;
			else if($bIsIE && $bIsWin && !$bIsOpera){

					$iFlashVer = ControlVersion();

				}

	return $iFlashVer;

}

//************************************************************************************************************
// When called with reqMajorVer, reqMinorVer, reqRevision returns true if that version or greater is available
function DetectFlashVer(reqMajorVer, reqMinorVer, reqRevision){

	versionStr = GetSwfVer();

	if(versionStr == -1){

		return false;

	}
	else if(versionStr != 0){

		if($bIsIE && $bIsWin && !$bIsOpera){
			// Given "WIN 2,0,0,11"
			tempArray = versionStr.split(" "); 	// ["WIN", "2,0,0,11"]
			tempString = tempArray[1];			// "2,0,0,11"
			versionArray = tempString.split(",");	// ['2', '0', '0', '11']

		}
		else{

			versionArray = versionStr.split(".");

		}

		var $sVersionMajor = versionArray[0];
		var $sVersionMinor = versionArray[1];
		var versionRevision = versionArray[2];

		// is the major.revision >= requested major.revision AND the minor version >= requested minor
		if($sVersionMajor > parseFloat(reqMajorVer)){

			return true;
		}
		else if($sVersionMajor == parseFloat(reqMajorVer)){

			if($sVersionMinor > parseFloat(reqMinorVer)) return true;
			else if($sVersionMinor == parseFloat(reqMinorVer)){

				if(versionRevision >= parseFloat(reqRevision)) return true;

			}

		}

		return false;

	}

	return false;

}

//************************************************************************************************************
function AC_AddExtension(src, ext){

	if(src.indexOf('?') != -1) return src.replace(/\?/, ext + '?');
	else return src + ext;

}

//************************************************************************************************************
function AC_Generateobj(objAttrs, params, embedAttrs){

	var $sStr = '';
	var $iIndex;

	if($bIsIE && $bIsWin && !$bIsOpera){

		$sStr += '<object ';

		for($iIndex in objAttrs){

			$sStr += $iIndex + '="' + objAttrs[$iIndex] + '" ';

		}

		$sStr += '>';

		for($iIndex in params){

			$sStr += '<param name="' + $iIndex + '" value="' + params[$iIndex] + '" /> ';

		}

		$sStr += '</object>';

	}
	else{

		$sStr += '<embed ';

		for($iIndex in embedAttrs){

			$sStr += $iIndex + '="' + embedAttrs[$iIndex] + '" ';

		}

		$sStr += '> </embed>';

	}

	document.write($sStr);

}

//************************************************************************************************************
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 $oRet = new Object();

	$oRet.embedAttrs = new Object();
	$oRet.params = new Object();
	$oRet.objAttrs = new Object();

	for(var i = 0; i < args.length; i += 2){

		var currArg = args[i].toLowerCase();

		switch(currArg){

			case "classid":

				break;

			case "pluginspage":

				$oRet.embedAttrs[args[i]] = args[i + 1];

				break;

			case "src":
			case "movie":

				args[i + 1] = AC_AddExtension(args[i + 1], ext);
				$oRet.embedAttrs["src"] = args[i + 1];
				$oRet.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":
			case "id":

				$oRet.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 "tabindex":

				$oRet.embedAttrs[args[i]] = $oRet.objAttrs[args[i]] = args[i + 1];
				break;

			default:

				$oRet.embedAttrs[args[i]] = $oRet.params[args[i]] = args[i + 1];

		}

	}

	$oRet.objAttrs["classid"] = classid;

	if(mimeType) $oRet.embedAttrs["type"] = mimeType;

	return $oRet;

}

//****************************************Tabbed Panel Code***************************************************

var tp = [];
var tpl = [];

//************************************************************************************************************
function tpSet(i, c){

	if(document.createElement){

		var e = document.getElementById(i);
		var l = document.createElement('ul');
		var p = document.createElement('div');
		e.className = l.className = p.className = c;

		var a, j;

		for(j = 2; j < arguments.length; j++){

			c = document.getElementById(arguments[j]);
			tp[arguments[j]] = c.parentNode.removeChild(c);

			a = l.appendChild(document.createElement('li'));
			a.className = c.className;
			tpl[arguments[j]] = a = a.appendChild(document.createElement('a'));
			a.setAttribute('href', 'javascript:tpShow(\'' + i + '\', \'' + arguments[j] + '\');');
			a.appendChild(document.createTextNode(c.getAttribute('title')));

		}

		p.appendChild(tp[arguments[2]]);
		tpl[arguments[2]].className = 'active';

		while(e.firstChild) e.removeChild(e.firstChild);

		e.appendChild(l);
		e.appendChild(p);

	}

}

//************************************************************************************************************
function tpShow(e, p){

	e = document.getElementById(e).lastChild;
	tpl[e.replaceChild(tp[p], e.firstChild).getAttribute('id')].className = null;
	tpl[p].className = 'active';

}

