
//************************************************************************************************************
function ContentUpdater($sContent){

		AjaxUpdater($sContent, 'ajaxContent1', 'library/index_content.php');

}

//************************************************************************************************************
function IndexUpdater($sMenu, $sMain){

		AjaxUpdater($sMenu, 'menu', '/library/index_code.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; a=document.getElementById(t);
		h=a.getElementsByTagName('dt'); s=a.getElementsByTagName('dd');
		l=h.length;
		for(i=0;i<l;i++){
			var 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++){
			var 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;
			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);
			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 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;

//************************************************************************************************************
function ControlVersion(){

	var version;
	var axo;
	var e;

	// 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"));

				}

			}

			var $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 ( isIE && isWin && !isOpera ) {

		$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(isIE && isWin && !isOpera) {
			// 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;

	}

}

//************************************************************************************************************
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 = '';

	if (isIE && isWin && !isOpera){

		$sStr += '<object ';

		for (var i in objAttrs){

			$sStr += i + '="' + objAttrs[i] + '" ';

		}

		$sStr += '>';

		for (var i in params){

			$sStr += '<param name="' + i + '" value="' + params[i] + '" /> ';

		}

		$sStr += '</object>';

	}
	else{

		$sStr += '<embed ';

		for (var i in embedAttrs){

			$sStr += i + '="' + embedAttrs[i] + '" ';

		}

		$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=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';

}
