// <![CDATA[

	//	STANDARDS  Function		
	
	function wdg(id){return window.document.getElementById(id);};
	
	function MM_reloadPage(init) {  //reloads the window if Nav4 resized
	  if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
		document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
	  else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
	};
	MM_reloadPage(true);
	
	function MM_jumpMenu(targ,selObj,restore){ 
		eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
  		if (restore) selObj.selectedIndex=0;
	};
	
	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_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_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_showHideLayers() { //v6.0
		var i,p,v,obj,args=MM_showHideLayers.arguments;
		for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args))!=null) {
		v=args[i+2];
		if (obj.style) { obj=obj.style;
		v=(v=='show')?'visible':(v=='hide')?'hidden':v; }
		obj.visibility=v; }
	};

	function MM_changeProp(objName,x,theProp,theValue) { //v6.0
	  var obj = MM_findObj(objName);
	  if (obj && (theProp.indexOf("style.")==-1 || obj.style)){
		if (theValue == true || theValue == false)
		  eval("obj."+theProp+"="+theValue);
		else eval("obj."+theProp+"='"+theValue+"'");
	  }
	};
	
	function MM_nbGroup(event, grpName) { //v6.0
		var i,img,nbArr,args=MM_nbGroup.arguments;
		if (event == "init" && args.length > 2) {
			if ((img = MM_findObj(args[2])) != null && !img.MM_init) {
				img.MM_init = true; img.MM_up = args[3]; img.MM_dn = img.src;
			if ((nbArr = document[grpName]) == null) nbArr = document[grpName] = new
				Array();
				nbArr[nbArr.length] = img;
				for (i=4; i < args.length-1; i+=2) if ((img = MM_findObj(args)) != null) {
					if (!img.MM_up) img.MM_up = img.src;
					img.src = img.MM_dn = args[i+1];
					nbArr[nbArr.length] = img;
				} 
			}
		} else if (event == "over") {
			document.MM_nbOver = nbArr = new Array();
			for (i=1; i < args.length-1; i+=3) if ((img = MM_findObj(args)) != null) {
				if (!img.MM_up)
					img.MM_up 			= img.src;
				img.src 				= (img.MM_dn && args[i+2]) ? args[i+2] : ((args[i+1])? args[i+1]: img.MM_up);
				nbArr[nbArr.length] 	= img;
			}
		} else if (event == "out" ) {
			for (i=0; i < document.MM_nbOver.length; i++) {
				img = document.MM_nbOver; img.src = (img.MM_dn) ? img.MM_dn : img.MM_up;
			}
		} else if (event == "down") {
			nbArr = document[grpName];
			if (nbArr)
				for (i=0; i < nbArr.length; i++) { 
					img			=	nbArr; img.src = img.MM_up;
					img.MM_dn 	= 	0; 
				}
			document[grpName] = nbArr = new Array();
			for (i=2; i < args.length-1; i+=2)if ((img = MM_findObj(args)) != null) {
				if (!img.MM_up) 
					img.MM_up = img.src;
				img.src = img.MM_dn = (args[i+1])? args[i+1] : img.MM_up;
				nbArr[nbArr.length] = img;
			}
		}
	};





	function ShowHide(doc, force) 
	{
		doc = (!(typeof doc=='object'))?((typeof doc=='string')?((document.getElementById(doc))?document.getElementById(doc):false):false):doc;
		if(doc)
		{
			if(force=='')
			{
				if(doc.style.visibility=='hidden') 
				{
					doc.style.visibility= 'visible';
					doc.style.display	= '';
				}
				else 
				{
					doc.style.visibility= 'hidden';
					doc.style.display 	= 'none';
				}
			} 
			else
			{
				doc.style.visibility=force;
				if(force=='visible')
					doc.style.display='';
				else 				
					doc.style.display='none';
			}
		}
	};


	
	
	//		Function - get the selected TEXT xxxx between <option> (<option>xxxx</option>)					 //
	function getSelectedText(selecte) 
	{
		selecte = (!(typeof selecte=='object'))?((typeof selecte=='string')?((document.getElementById(selecte))?document.getElementById(selecte):false):false):selecte;
		if(selecte)
		{
			var r=new Array();
			if(selecte.options.length > 0) 
			{  
				for (var i=0; i < selecte.options.length; i++)
				{
					if(selecte.options[i].selected)
				  		r[r.length] = selecte.options[i].text;
				}
			} 
			return r;
		}
		else 
			return null;
	}; 






	function getSelectedValue(selecte) 
	{
		selecte = (!(typeof selecte=='object'))?((typeof selecte=='string')?((document.getElementById(selecte))?document.getElementById(selecte):false):false):selecte;
		if(selecte)
		{
			var r=new Array();
			if(selecte.options.length>0) 
			{  
				for(var i=0;i<selecte.options.length;i++) 
				{
					if(selecte.options[i].selected)
						r[r.length]=selecte.options[i].value;
				}
			} 
			else 
			{
				if(selecte.options.selected)
					r[r.length] = selecte.options.value;
			}
			return r;
		}
		else 
			return null;
	}; 

	
	
	
	
	function FocusOnSelectedValue(selecte, val) 
	{
		selecte = (!(typeof selecte=='object'))?((typeof selecte=='string')?((document.getElementById(selecte))?document.getElementById(selecte):false):false):selecte;
		if(selecte && val)
		{
			if(selecte.options.length>0) 
			{  
				for(var i=0;i<selecte.options.length;i++)
				{
					if(selecte.options[i].value==val) 
					{
						selecte.options[i].selected='selected';
						selecte.options[i].focus;
					} 
					else 
						selecte.options[i].selected='';
				}
			} 
			else 
			{
				if (selecte.options.selected) 
				{
					selecte.options.selected='selected';
					selecte.options.focus;
				}
			}
		}
		else 
			return null;
	}; 
	
	
	
	
	// 	Function that return selected radioButton
	function getSelectedRadio(buttonGroup) 
	{
		if(buttonGroup[0]) 
		{
			for(var i=0; i<buttonGroup.length; i++) 
			{
				if(buttonGroup[i].checked) 
					return i; 
			}
		} 
		else 
		{
			if(buttonGroup.checked)
				return 0; 
		}
		return -1;
	};
	
	
	
	
	// 	Function that return selected radioButton	VALUE
	function getSelectedRadioValue(buttonGroup) 
	{
	   var i = getSelectedRadio(buttonGroup);
	   if(i == -1) 
		  return 'undefined';
	   else 
	   {
		  if(buttonGroup[i]) 
			 return buttonGroup[i].value;
		  else 
			 return buttonGroup.value;
	   }
	}; 
	
	
	
	/*
			Function that return ElementsGroup selected by Class name
			@param 		searchClass		string class name
			@param 		node 			(optional) specify 'document' for all DOM or document.getElementById('xxx')....
			@param 		tag				(optional) specify HTML 1.1 tag type : 'input' or 'img' ...
	*/
	function getElementsByClass(searchClass,node,tag) 
	{
		var classElements = new Array();
		if(node == null)
			node = document;
		if(tag == null)
			tag = '*';
		var els = node.getElementsByTagName(tag);
		var elsLen = els.length;
		var pattern = new RegExp("(^|\\s)"+searchClass+"(\\s|$)");
		for(i=0, j=0; i < elsLen; i++) 
		{
			if( pattern.test(els[i].className) ) 
			{
				classElements[j] = els[i];
				j++;
			}
		}
		return classElements;
	};
	


	document.getElementsByClassName = function(className, parentElement, tagName) 
	{
		if (className.indexOf('.') > 0 && className.indexOf('.') < className.length ) 
		{
			tagName = className.split('.')[0];
			className = className.split('.')[1];
		}
		var children = ($(parentElement) || document.body).getElementsByTagName(tagName || '*');
		return $A(children).inject([], function(elements, child){
			if (child.className.match(new RegExp("(^|\\s)" + className + "(\\s|$)")))
				elements.push(child);
			return elements;
		});
	};



	function PopupOpen(url,name,windowWidth,windowHeight,option) 
	{
		var wOpen 		= "";
		var sOptions 	= "";

		if(!windowWidth && !windowHeight) 
		{
			if ( navigator.userAgent.indexOf('Mac') != -1 )  	
			{	
				windowWidth 	= 1024; 	
				windowHeight 	= 768; 	
			}
			else if (navigator.appName=="Netscape")
			{
				windowWidth 	= 1024;
				windowHeight 	= 768;
			}
			else 
			{	
				windowWidth 	= screen.availWidth; 
				windowHeight 	= screen.availHeight; 
			}
		}
		
		var xposition 	= 0;
		var yposition 	= 0;
			xposition 	= (screen.width - windowWidth) / 2;
			yposition 	= (screen.height - windowHeight) / 3;
		sOptions = 'status=no,menubar=no,toolbar=no,directories=no,location=no,titlebar=no,'+option;
//		sOptions = '';
//		sOptions = sOptions + 'width=' + windowWidth;
//		sOptions = sOptions + ',height=' + windowHeight;
		sOptions = sOptions + ',screenX=' + xposition;
		sOptions = sOptions + ',screenY=' + yposition;
		sOptions = sOptions + ',left=0,top=0';

		wOpen = window.open(url, '_blank', sOptions);
	//	wOpen.moveTo(xposition, yposition);
		return wOpen;
	}; 
	
	
	function MM_openBrWindow(theURL,winName,features)
	{
		var newwindow; 
		if (!(newwindow = window.open(theURL,winName,features))) {
			alert ("Your browser restricts the use of popup windows. Please set your browser to accept popup windows on nydc.com as they may contain important information. Thank you.");
		} else {
			newwindow.focus();
		}
		newwindow.focus();
	}

	/**
	*	The inner dimensions of the window or frame.
	*/
	function getInnerPageSize()
	{
		var x,y;
		if (self.innerHeight) // all except Explorer
		{
			x = self.innerWidth;
			y = self.innerHeight;
		}
		else if (document.documentElement && document.documentElement.clientHeight)// Explorer 6 Strict Mode
		{
			x = document.documentElement.clientWidth;
			y = document.documentElement.clientHeight;
		}
		else if (document.body) // other Explorers
		{
			x = document.body.clientWidth;
			y = document.body.clientHeight;
		}
		var arr = new Array();
			arr['x']=x;
			arr['y']=y;
		return arr;
	};
	
	
	
	/**
	*	Page height
	*	The height of the total page (usually the body element).
	*/
	function getPageheight()
	{
		var x,y;
		var test1 = document.body.scrollHeight;
		var test2 = document.body.offsetHeight
		if (test1 > test2) // all but Explorer Mac
		{
			x = document.body.scrollWidth;
			y = document.body.scrollHeight;
		}
		else // Explorer Mac;
			 //would also work in Explorer 6 Strict, Mozilla and Safari
		{
			x = document.body.offsetWidth;
			y = document.body.offsetHeight;
		}
		var arr = new Array();
			arr['x']=x;
			arr['y']=y;
		return arr;
	};
	
	
	
	/**
	*	Scrolling offset
	*	How much the page has scrolled.
	*/
	function getScrollingoffset()
	{
		var x,y;
		if (self.pageYOffset) // all except Explorer
		{
			x = self.pageXOffset;
			y = self.pageYOffset;
		}
		else if (document.documentElement && document.documentElement.scrollTop)
			// Explorer 6 Strict
		{
			x = document.documentElement.scrollLeft;
			y = document.documentElement.scrollTop;
		}
		else if (document.body) // all other Explorers
		{
			x = document.body.scrollLeft;
			y = document.body.scrollTop;
		}
		var arr = new Array();
			arr['x']=x;
			arr['y']=y;
		return arr;
	};

	
	



	//	Function - test if email field is valid (only string form)	
	
	function chk(emailStr) 
	{
		var emailPat=/^(.+)@(.+)$/;
		var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]";
		var validChars="\[^\\s" + specialChars + "\]";
		var quotedUser="(\"[^\"]*\")";
		var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
		var atom=validChars + '+';
		var word="(" + atom + "|" + quotedUser + ")";
		var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
		var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");
		var matchArray=emailStr.match(emailPat);
		if (matchArray==null)
			return false;
		var user=matchArray[1];
		var domain=matchArray[2];
		if (user.match(userPat)==null);
		return false;
		var IPArray=domain.match(ipDomainPat);
		if (IPArray!=null) 
		{
			for (var i=1;i<=4;i++) 
			{
				if(IPArray[i]>255)
					return false;
			}
			return true;
		}
		var domainArray=domain.match(domainPat);
		if(domainArray==null)
			return false;
		var atomPat=new RegExp(atom,"g");
		var domArr=domain.match(atomPat);
		var len=domArr.length;
		if(domArr[domArr.length-1].length<2 || domArr[domArr.length-1].length>3) 
		{
			return false;
		}
		if (len<2)
			return false;
		return true;
	}; 
	






	function isColor(str) 
	{
		var myReg = /#[0-9a-fA-F]{6}$/;
		return myReg.test(str);
	};
	


	function setOpacity_(objID,opacity) 
	{
		if($(objID)) 
		{
			opacity=(opacity==100)?99.999:opacity;
			$(objID).style.filter="alpha(opacity:"+opacity+")";	// IE/Win
			$(objID).style.KHTMLOpacity=opacity/100;			// Safari<1.2, Konqueror
			$(objID).style.MozOpacity=opacity/100;				// Older Mozilla and Firefox
			$(objID).style.opacity=opacity/100;					// Safari 1.2, newer Firefox and Mozilla, CSS3
		}
	}; 
	
	

	function fadeIn(objID,opacity) 
	{
		if($(objID)) 
		{
			if(opacity<=100) 
			{
				setOpacity_(objID,opacity);
				opacity+=10;
				window.setTimeout("fadeIn('"+objID+"',"+opacity+")",100);
			}
		}
	};
	

	function initImage(imageID) 
	{
		if($(imageID)) 
		{
			setOpacity_(imageID,0);
			$(imageID).style.visibility='visible';
			fadeIn(imageID,0);
		}
	};
	




	//	Function - Test if is_numeric(x_value)		 //
	function isNumeric(sText) 
	{
	   var ValidChars = "0123456789., ";
	   var IsNumber = true;
	   var Char;
	   for(var i=0;i<sText.length&&IsNumber==true;i++) 
	   { 
			Char = sText.charAt(i); 
			if(ValidChars.indexOf(Char)==-1) 
				IsNumber = false;
		}
		return IsNumber;
	};
	
	function isInteger(s) 
	{
		if(s)
		{
			var n=trim(s);
			return n.length>0&&!(/[^0-9]/).test(n);
		}
	}; 
	
	
	function isFloat(s) 
	{
		if(s) 
		{
			var n=trim(s);
			return n.length>0&&!(/[^0-9.]/).test(n)&&(/\.\d/).test(n);
		}
	}; 
	
	
	
	// 		Trim functions 
	var whitespace=new String(' \t\n\r\f');
	function trimL(s) 
	{
		if(whitespace.indexOf(s.charAt(0))!=-1) 
		{
			var j=0,i=s.length;
			if(i>0)
			{
				while(j<i&&whitespace.indexOf(s.charAt(j))!=-1)
					j++;
				s=s.substring(j,i);
			}
		}
		return s;
	}; 
	function trimR(s) 
	{
		if(whitespace.indexOf(s.charAt(s.length-1))!=-1)
		{
			var i=s.length-1;
			while(i>=0&&whitespace.indexOf(s.charAt(i))!=-1)
				i--;
			s=s.substring(0,i+1);
		}
		return s;
	}; 
	function trim(s) 
	{
		return trimR(trimL(s));
	}; 
	
	
	
	function numbersonly(ev)
	{
		var e=(window.event)?window.event:ev;
		if(!e||!e.type) 
			return false;
		var unicode=e.charCode? e.charCode : e.keyCode
		// alert(unicode);
		// &&unicode!=44		==>   ',' key
		if(unicode!=8&&unicode!=46) 		// backspace AND '.' key are allowed
		{ 		
			if(unicode<48||unicode>57) 		// if not a number
				return false; 				// disable key press ex : onkeypress="return numbersonly(event);" 
		}
	}; 

	
	function FirstUpper(word) 
	{
    	var m=word.charAt(0).toUpperCase()+word.substring(1).toLowerCase();
      	return m;
	}; 
	
	
	function lntobr() 
	{
		value = URLDecode(decodeURIComponent(value));
		value = replaceChars(value,'\n','<br />');
		return value; 
	}; 
	
	function removeln(value)
	{
		value = URLDecode(decodeURIComponent(value));	
		value = replaceChars(value,'\n','');
		value = replaceChars(value,'\\n','');
		value = replaceChars(value,'\\\n','');
		return value; 
	};
	
	
	
	function removebr(value)
	{
		value = URLDecode(decodeURIComponent(value));
		value = replaceChars(value,'&lt;','<');
		value = replaceChars(value,'&gt;','>');
		value = replaceChars(value,'<BR>','');
		value = replaceChars(value,'<BR/>','');
		value = replaceChars(value,'<BR />','');
		value = replaceChars(value,'<br>','');
		value = replaceChars(value,'<br/>','');
		value = replaceChars(value,'<br />','');
	return value; 
	};
	
	
	function brtoln(value) 
	{
		value = URLDecode(decodeURIComponent(value));
		value = replaceChars(value,'&lt;','<');
		value = replaceChars(value,'&gt;','>');
		value = replaceChars(value,'<BR>','\n');
		value = replaceChars(value,'<BR/>','\n');
		value = replaceChars(value,'<BR />','\n');
		value = replaceChars(value,'<br>','\n');
		value = replaceChars(value,'<br/>','\n');
		value = replaceChars(value,'<br />','\n');
		return replaceChars(value,"\"","'"); 
	}; 
	
	function convertbr(value) 
	{
		value = URLDecode(decodeURIComponent(value));
		value = replaceChars(value,'&lt;','<');
		value = replaceChars(value,'&gt;','>');
		value = replaceChars(value,'<BR>','%0D');
		value = replaceChars(value,'<BR/>','%0D');
		value = replaceChars(value,'<BR />','%0D');
		value = replaceChars(value,'<br>','%0D');
		value = replaceChars(value,'<br/>','%0D');
		value = replaceChars(value,'<br />','%0D');
		return value;
	}; 
	
	
	function crypt(Str) 
	{
	   var s = new String;
	   var i;
	   var c = new Number;                   
	   for(i=0; i<Str.length; i++) 
	   {
		  c = Str.charCodeAt (i)^i;
		  if(c<16) {
			 s += '0'+c.toString (16);
		  } 
		  else 
		  {
			 s += c.toString (16);
		  }
	   }
	   return s;
	}; // END
	function decrypt(Str) {
	   var s=new String;
	   var i;
	   for (i=0;i<Str.length;i+=2) {
		  s = s+String.fromCharCode (parseInt (Str.substr(i,2),16)^(i/2));
	   }
	   return s;
	}; // END





	function html2entities() 
	{
		var re=/[(<>"'&]/g;
		if(arguments.length>1) 
		{
			for(var i=0; i<arguments.length; i++)
				arguments[i].value=arguments[i].value.replace(re, function(m){return replacechar(m)});
		}
		else 
			arguments.value=arguments.value.replace(re,function(m){return replacechar(m)});
	};
	
	function replacechar(match) {
		if (match=="<")
			return "&lt;"
		else if (match==">")
			return "&gt;"
		else if (match=="\"")
			return "&quot;"
		else if (match=="'")
			return "&#039;"
		else if (match=="&")
			return "&amp;"
	}; // END


	function replaceChars(str_entry, str_search, str_replace) 
	{
		temp=''+str_entry;
		while(temp.indexOf(str_search)>-1) 
		{
			pos= temp.indexOf(str_search);
			temp=''+(temp.substring(0,pos)+str_replace+ 
			temp.substring((pos+str_search.length),temp.length));
		}
		return temp;
	}




	function URLEncode(plaintext) 
	{
		// The Javascript escape and unescape functions do not correspond
		// with what browsers actually do...
		if(plaintext) 
		{
			var SAFECHARS = "0123456789" +					// Numeric
							"ABCDEFGHIJKLMNOPQRSTUVWXYZ" +	// Alphabetic
							"abcdefghijklmnopqrstuvwxyz" +
							"-_.!~*'()";					// RFC2396 Mark characters
			var HEX = "0123456789ABCDEF";
		
			var encoded = "";
			for(var i = 0; i < plaintext.length; i++ ) 
			{
				var ch=plaintext.charAt(i);
				if(ch==" ") 
				{
					encoded += "+";				// x-www-urlencoded, rather than %20
				} 
				else if (SAFECHARS.indexOf(ch) != -1) 
				{
					encoded += ch;
				} else 
				{
					var charCode = ch.charCodeAt(0);
					if (charCode > 255) 
					{
						/*
						alert( "Unicode Character '" 
								+ ch 
								+ "' cannot be encoded using standard URL encoding.\n" +
								  "(URL encoding only supports 8-bit characters.)\n" +
								  "A space (+) will be substituted." );
						*/
						encoded += "+";
					} else 
					{
						encoded += "%";
						encoded += HEX.charAt((charCode >> 4) & 0xF);
						encoded += HEX.charAt(charCode & 0xF);
					}
				}
			} // for
			return encoded;
		}
	};
	
	function URLDecode(encoded){
	   // Replace + with ' '
	   // Replace %xx with equivalent character
	   // Put [ERROR] in output if %xx is invalid.
	  if (encoded) {
		  var HEXCHARS = "0123456789ABCDEFabcdef"; 
		   var plaintext = "";
		   var i = 0;
		   while (i < encoded.length) {
			   var ch = encoded.charAt(i);
			   if (ch == "+") {
				   plaintext += " ";
				   i++;
			   } else if (ch == "%") {
					if (i < (encoded.length-2) 
							&& HEXCHARS.indexOf(encoded.charAt(i+1)) != -1 
							&& HEXCHARS.indexOf(encoded.charAt(i+2)) != -1 ) {
						plaintext += unescape( encoded.substr(i,3) );
						i += 3;
					} else {
						//alert( 'Bad escape combination near ...' + encoded.substr(i) );
						plaintext += "%[ERROR]";
						i++;
					}
				} else {
				   plaintext += ch;
				   i++;
				}
			} // while
		   	return plaintext;
		}
	};

	function encode_utf8(rohtext) {
		rohtext = rohtext.replace(/\r\n/g,"\n");
		var utftext = "";
		for(var n=0; n<rohtext.length; n++) {
			var c=rohtext.charCodeAt(n);
			if (c<128)
				utftext += String.fromCharCode(c);
			else if((c>127) && (c<2048)) {
				utftext += String.fromCharCode((c>>6)|192);
				utftext += String.fromCharCode((c&63)|128);
			} else {
				utftext += String.fromCharCode((c>>12)|224);
				utftext += String.fromCharCode(((c>>6)&63)|128);
				utftext += String.fromCharCode((c&63)|128);
			}
		}
		return utftext;
	}; // END
	
	function decode_utf8(utftext) {
		var plaintext = ""; var i=0; var c=c1=c2=0;
		while(i<utftext.length) {
			c = utftext.charCodeAt(i);
			if (c<128) {
				plaintext += String.fromCharCode(c);
				i++;
			} else if((c>191) && (c<224)) {
				c2 = utftext.charCodeAt(i+1);
				plaintext += String.fromCharCode(((c&31)<<6) | (c2&63));
				i+=2;
			} else {
				c2 = utftext.charCodeAt(i+1); c3 = utftext.charCodeAt(i+2);
				plaintext += String.fromCharCode(((c&15)<<12) | ((c2&63)<<6) | (c3&63));
				i+=3;
			}
		}
		return plaintext;
	}; // END




	//	x_ object détection de X d'un objet
	function findPosX(obj) 
	{
		var curleft = 0;
		if(obj.offsetParent) 
		{
			while (obj.offsetParent) 
			{
				curleft += obj.offsetLeft
				obj = obj.offsetParent;
			}
		} 
		else if (obj.x)
			curleft += obj.x;
		return curleft;
	}; 
	
	
	// y_ object detection de Y d'un objet	
	function findPosY(obj) 
	{
		var curtop = 0;
		if (obj.offsetParent) 
		{
			while(obj.offsetParent)
			{
				curtop += obj.offsetTop
				obj = obj.offsetParent;
			}
		} 
		else if (obj.y)
			curtop += obj.y;
		return curtop;
	}; 
	

	function allEve(e)
	{
		var ev= (window.event)? window.event:e;
		if(!ev || !ev.type) return false;
		var ME= ev;
		if(ME.type.indexOf('key')!= -1){
			if(iz('ie') || ME.type.indexOf('keypress')!= -1){
				ME.key= (ev.keyCode)? ev.keyCode: ((ev.charCode)? ev.charCode: ev.which);
			}
			else ME.key= ev.charCode;
			if(ME.key) ME.letter= String.fromCharCode(ME.key);
		}
		return ME;
	}; 
	
	
	
// ]]>
