var _lastModalTarget;
var _lastModalName;
var _lastTimer;
var WU = function() 
{
	return 	{
				Share:function(objTarget)
				{
					if(objTarget.href == "http://twitter.com/")
					{
							objTarget.onclick = function(){pageTracker._trackEvent('guiadatv','redes-sociais','twitter')};
							objTarget.href = objTarget.href + 'home?status='+ encodeURI(document.title) +':+' + encodeURI(document.location.href) + '+via+' + '@skybrasil';
					}
					else if(objTarget.href == "http://www.facebook.com/")
					{
						objTarget.onclick = function(){pageTracker._trackEvent('guiadatv','redes-sociais','facebook')};
						objTarget.href = objTarget.href + 'share.php?u=' + document.location.href;
					}
					else if(objTarget.href == "http://promote.orkut.com/")
					{
						objTarget.onclick = function(){pageTracker._trackEvent('guiadatv','redes-sociais','orkut')};
						objTarget.href = objTarget.href + 'preview?nt=orkut.com&tt='+ document.title +'&du=' + document.location.href;
					}
					
					return false;

				}
				,
	            getCursorPosition:function(objTarget, eObjEvent) 
	            {
	                var coords = null;
	                if (eObjEvent.pageX || eObjEvent.pageY) 
	                {
			            coords = {x:eObjEvent.pageX, y:eObjEvent.pageY};
		            } 
		            else
		            {
			            coords = {x:eObjEvent.clientX+document.body.scrollLeft-document.body.clientLeft, y:eObjEvent.clientY+document.body.scrollTop-document.body.clientTop};
		            }
		            return {x:coords.x-objTarget.parentNode.scrollLeft, y:coords.y-objTarget.parentNode.scrollTop};
	            }
	            ,
                showCustomTip:function(b,c)
                {
                    var objTarget = document.getElementById(c);
                    if(objTarget != null)
                    {
                        objTarget.style.position = 'absolute';
                        //objTarget.style.top = (WU.getCursorPosition((b.target || b.srcElement),b).y + 12 )+ 'px';
                        //objTarget.style.left = (WU.getCursorPosition((b.target || b.srcElement),b).x -7) + 'px';
                        objTarget.style.top = ((b.clientY + 15) + ((document.documentElement.scrollTop)?document.documentElement : document.body).scrollTop)  + 'px';
                        objTarget.style.left = ((b.clientX - 10) + ((document.documentElement.scrollTop)?document.documentElement : document.body).scrollLeft) + 'px';
                        objTarget.innerHTML = '<span class="top">' + (b.target || b.srcElement).skytip + '</span><span class="bottom"></span>';
                        WE.fadeIn(objTarget,10);
                    }
                }
                ,
                hideCustomTip:function(a)
                {
                    var objTarget = document.getElementById(a);
                    if(objTarget != null)
                    {
                        WE.fadeOut(objTarget,null);
                    }
                }
                ,
	            startCustomTip:function(objBody,fMouseOver,fMouseOut,dDivTipName) 
	            {
	                
                    var aList = objBody.getElementsByTagName("*");
                    var bTitleExists = false;
                    var objTarget = null;
                    
                    if(dDivTipName == null)
                    {
                        dDivTipName = "dAutoTipTool";
                    }
                    
                    document.getElementById(dDivTipName).innerHTML = '';
                    
                    for(var i = 0; i < aList.length; i++)
                    {
                        if((aList[i].title != null) && (aList[i].title != undefined) && (aList[i].title != '') )
                        {
                        
                            if(aList[i].title.substr(0,3).toLowerCase() == "[+]")
                            {
                                bTitleExists = true;
                                objTarget = aList[i];
                                objTarget.skytip = objTarget.title.replace("[+]","");
                                objTarget.title = '';
                                
                                WU.addListener(aList[i],'mouseover',function(e){fMouseOver(e,dDivTipName)});
                                WU.addListener(aList[i],'mouseout',function(e){fMouseOut(dDivTipName)});
                                
                                
                                
                            }
                        }
                    }
                
                    if(bTitleExists == true)
                    {
                        objCreate = document.getElementById(dDivTipName);
                        if(objCreate == null)
                        {
                            var objCreate = document.createElement('div');
                            objCreate.id = dDivTipName;
                            document.body.appendChild(objCreate);
                        }
                        objCreate = document.getElementById(dDivTipName);
                    }
                }
                ,
				showModalContent:function(objTarget,sNameDiv,sBgColor,iAlpha,sContent, iContentWidth, iContentHeight,disableClose)
				{
					var objDiv = null;
					var objContent = null;
					objDiv = WU.gebi(objTarget,sNameDiv);
					
                    if(objDiv == null)
					{
						objDiv = WU.ceo(sNameDiv,'div',document.getElementById('dEmpty'));
						objDiv.style.top = '0px';
						objDiv.style.backgroundColor = sBgColor;
						objDiv.style.position = 'absolute';
						objDiv.style.filter = 'ALPHA(OPACITY='+iAlpha+')';
						objDiv.style.opacity = iAlpha / 100;
						objDiv.style.zIndex = '9998';
						
						
						objContent = WU.ceo(sNameDiv + 'modalContent','div',document.getElementById('dEmpty'));
						objContent.style.position = 'absolute';
						objContent.innerHTML = sContent;
						objContent.style.width = iContentWidth + 'px';
						objContent.style.height = iContentHeight + 'px';
						objContent.style.backgroundColor = '#FFFFFF';
						objContent.style.zIndex = '9999';
						
						function setModalPosition()
						{
							WU.showModalContent(objTarget,sNameDiv,sBgColor,iAlpha,sContent, iContentWidth, iContentHeight);
						}
						
						_lastModalTarget = objTarget;
						_lastModalName = sNameDiv;
						WU.setModalPosition();
						WU.addListener(window,'scroll',WU.setModalPosition);
						WU.addListener(window,'resize',WU.setModalPosition);
					}

					if(disableClose != true)
					{
						objDiv.onclick = function(){WU.closeModalContent(this.id)};
						objDiv.winClose = function(){WU.closeModalContent(this.id)};
					}
				}
                ,
                getElementInput:function(sInputId)
                {
                    var objInputList =document.getElementsByTagName("input");
                    var objReturn = null;
                    for(var i = 0; i < objInputList.length; i++)
                    {
                        if(objInputList[i].id.indexOf(sInputId) > -1)
                        {
                            
                            objReturn = objInputList[i];
                            i = objInputList.length;
                        }
                    }
                    
                    if(objReturn == null)
                    {
                        objInputList =document.getElementsByTagName("select");
                        for(var i = 0; i < objInputList.length; i++)
                        {
                            if(objInputList[i].id.indexOf(sInputId) > -1)
                            {
                                
                                objReturn = objInputList[i];
                                i = objInputList.length;
                            }
                        }
                    }
					
					if(objReturn == null)
                    {
                        objInputList =document.getElementsByTagName("textarea");
                        for(var i = 0; i < objInputList.length; i++)
                        {
                            if(objInputList[i].id.indexOf(sInputId) > -1)
                            {
                                
                                objReturn = objInputList[i];
                                i = objInputList.length;
                            }
                        }
                    }
                    
                    return objReturn;
                }
                ,
                stringToXMLDoc:function(sXMLData)
                {
                    if (window.ActiveXObject)
                    {
                        var doc=new ActiveXObject("Microsoft.XMLDOM");
                        doc.async="false";
                        doc.loadXML(sXMLData);
                    }
                    else
                    {
                        var parser=new DOMParser();
                        var doc=parser.parseFromString(sXMLData,"text/xml");
                    }

                    var x=doc.documentElement;
                    return x;
                }
                ,
                showCheckM8:function(swf,w,h)
                {
                    WU.ceo('dCheckM8','div',document.body);
                    var objContent = document.getElementById('dCheckM8');
                    objContent.style.width = w +'px';
                    objContent.style.height = h + 'px';
                    objContent.style.position = 'absolute';
                    objContent.style.top = '-5px';
                    objContent.style.left = (document.body.offsetWidth/2) - (WU.getNumber(objContent.style.width)/2) + 'px';

                    var so = new SWFObject(swf, "adcast", w, h, "8", "#FFFFFF");
	                so.addParam("wmode", "transparent");
	                so.write("dCheckM8");
                }
                ,
                showSuperBanner:function(swf,url,target,w,h)
                {
                    var objContent = document.getElementById('dSuperBanner');
                    if(objContent != null)
                    {
                        objContent.style.width = w +'px';
                        objContent.style.height = '1px';
                        objContent.style.overflow = 'hidden';
                        
                        if(swf.toLowerCase().indexOf('.jpg') > -1 || swf.toLowerCase().indexOf('.jpeg') > -1)
                        {
                            WU.ceo('aSuperBannerLink','a',objContent);
                            document.getElementById('aSuperBannerLink').style.display = 'block';
                            document.getElementById('aSuperBannerLink').style.width = w + 'px';
                            document.getElementById('aSuperBannerLink').style.height = h + 'px';
                            document.getElementById('aSuperBannerLink').href = url;
                            document.getElementById('aSuperBannerLink').target = target;
                            objContent.style.background = 'url('+ swf +') no-repeat';
                            
                        }
                        else
                        {
                            var so = new SWFObject(swf, "adcast", w, h, "8", "#FFFFFF");
	                        so.addParam("wmode", "transparent");
	                        so.addVariable("_endereco", url);
	                        if(target.lenght > 0)
	                        {
	                            so.addVariable("_janela", target);
	                        }
	                        so.write("dSuperBanner");
	                    }
	                    
	                    WE.resizeHeight(objContent,h,0.3);
	                    
	                    //_lastTimer = setInterval(WU.hideSuperBanner,8000);
	                    
	                }
                }
                ,
                hideSuperBanner:function()
                {
                    clearInterval(_lastTimer);
                    var objContent = document.getElementById('dSuperBanner');
                    if(objContent != null)
                    {
	                    WE.resizeHeight(objContent,1,0.2);
	                    objContent.innerHTML = '';
	                }
                }
				,
				setModalPosition:function()
				{
					var objContent = null;
					var objContent = null;
					try
					{
						objContent = WU.gebi(_lastModalTarget,_lastModalName  + 'modalContent');
						objDiv = WU.gebi(_lastModalTarget,_lastModalName);
						objContent.style.top = ((document.documentElement.scrollTop >= 0? document.documentElement.scrollTop : window.pageYOffset)) + 90 + 'px';
						objDiv.style.width = document.body.offsetWidth + 'px';
						objDiv.style.height = ((screen.availHeight > document.body.offsetHeight? screen.availHeight : document.body.offsetHeight)) + 'px';
						objContent.style.left = (document.body.offsetWidth/2) - (WU.getNumber(objContent.style.width)/2) + 'px';
					}
					finally
					{
					}
				}
				,
				showAdultDisclamer:function()
				{
					var sTarget = '"adultDisclamer"';
					
					if(WU.readCookie('adultDisclamer') != 1)
					{
						WU.showModalContent(document,'adultDisclamer','#000000',75,unescape("%3Cdiv%20style%3D%27padding%3A10px%3B%27%3E%3Ch1%20class%3D%27redBold%27%3EAten%E7%E3o%3C/h1%3E%3Cbr%20/%3EA%20p%E1gina%20que%20voc%EA%20est%E1%20tentando%20acessar%20pode%20conter%20fotos%20e%20imagens%20de%20sexo%20e%20nudez%20explicita.%3Cbr%20/%3E%3Cbr%20/%3EEsta%20%E1rea%20%E9%20restrita%20para%20maiores%20de%2018%20anos%2C%20n%E3o%20sendo%20indicada%20sob%20nenhuma%20condi%E7%E3o%20para%20menores%20de%20idade.%20Caso%20voc%EA%20esteja%20capacitado%20para%20ingressar%20nesta%20%E1rea%2C%20sendo%2C%20portanto%20maior%20de%2018%20anos%20de%20idade%2C%20n%E3o%20sendo%20esta%20%E1rea%20contra%20seus%20princ%EDpios%20morais%20e%20religiosos%2C%20clique%20em%20") + "<a class='redBold' onclick='WU.writeCookie("+ sTarget +",1,1800);' href='javascript:void(WU.closeModalContent("+ sTarget +"));' style='display:block; width:95%; margin:auto; padding:10px; text-align:center; border:solid 1px #e2e2e2;'>CONTINUAR</a>" + unescape(".%3Cbr%20/%3ECaso%20voc%EA%20n%E3o%20esteja%20capacitado%20para%20ingressar%20nesta%20%E1rea%2C%20sendo%2C%20portanto%20menor%20de%2018%20anos%2C%20ou%20sendo%20esta%20%E1rea%20contra%20seus%20princ%EDpios%20morais%20e%20religiosos%2C%20clique%20em") + "<a class='redBold' href='javascript:void(history.back());' style='display:block; width:95%; margin:auto; padding:10px; text-align:center; border:solid 1px #e2e2e2;'> VOLTAR.</a><br /></div>", 400, 400, true);
						
					}
				}
				,
				closeModalContent:function(sNameDiv)
				{
					var objDiv = null;
					var objContent = null;
					objDiv = WU.gebi(document,sNameDiv);
					objContent =  WU.gebi(document,sNameDiv + 'modalContent');
					
					if(objDiv != null)
					{
						objDiv.parentNode.removeChild(objDiv);
					}
					
					if(objContent != null)
					{
					    objContent.innerHTML = '';
						objContent.parentNode.removeChild(objContent);
						
					}
					
					WU.removeListener(window,'resize',WU.setModalPosition);
					WU.removeListener(window,'scroll',WU.setModalPosition);
				}
				,
                encodeToHex:function(str)
                {
                    var r="";
                    var e=str.length;
                    var c=0;
                    var h;
                    while(c<e){
                        h=str.charCodeAt(c++).toString(16);
                        while(h.length<3) h="0"+h;
                        r+=h;
                    }
                    return r;
                }
				,
				gebi:function(objTarget,sObjName)
				{
					return objTarget.getElementById(sObjName);
				}
				,
				writeCookie:function(sName,sValue,iSeconds) 
				{
					var dDate = new Date();

					if (iSeconds) 
					{
						dDate.setTime(dDate.getTime()+(iSeconds*1000));
						var expires = "; expires="+dDate.toGMTString();
					}
					else 
					{
						var expires = "";
					}
					
					document.cookie = sName+"="+sValue+expires+"; path=/";
				}
				,
				readCookie:function(sName) 
				{
					var sNameEQ = sName + "=";
					var cCookieList = document.cookie.split(';');
					for(var i=0;i <cCookieList.length;i++) 
					{
						var cCookie = cCookieList[i];
						while(cCookie.charAt(0)==' ')
						{
							cCookie =  cCookie.substring(1, cCookie.length);
							if (cCookie.indexOf(sNameEQ) == 0)
							{
								return cCookie.substring(sNameEQ.length,cCookie.length);
							}
						}
					}
					return null;
				}
				,
				deleteCookie:function(name) 
				{
					WU.writeCookie(name,"",-1);
				}
				,
				gebtn:function(objTarget,sObjName)
				{
					return objTarget.getElementsByTagName(sObjName);
				}
				,
				ceo:function(sObjectId,sTypeName,objTarget)
				{
					var objCreate = document.createElement(sTypeName);
					objCreate.id = sObjectId;
					objTarget.appendChild(objCreate);
					return objCreate;
				}
				,
				getStyle:function(objTarget,sStyleProperty)
				{
					var sReturn;
					if (objTarget.currentStyle)
					{
						sReturn = objTarget.currentStyle[sStyleProperty];
					}
					else if (window.getComputedStyle)
					{
						sReturn = document.defaultView.getComputedStyle(objTarget,null).getPropertyValue(sStyleProperty);
					}
					else
					{
						switch(sStyleProperty.toLowerCase())
						{
							case "scrolltop":
							sReturn = objTarget.scrollTop;
							break;
							
							case "scrollleft":
							sReturn = objTarget.scrollLeft;
							break;
						}

					}
					return sReturn;
				}
				,
				setStyle:function(objTarget,sStyleProperty,sValue)
				{
					switch(sStyleProperty.toLowerCase())
					{
						case "scrolltop":
						objTarget.scrollTop = WU.getNumber(sValue);
						break;
						
						case "scrollleft":
						objTarget.scrollLeft = WU.getNumber(sValue);
						break;
						
						default:
						objTarget.style[sStyleProperty] = sValue;
						break;

					}
				}
				,
				getLeftPosition:function(objTarget)
                {
                    var iLeft = 0;
                    if(objTarget.offsetParent)
					{
					    try
					    {
                            do 
                            {
                                iLeft += objTarget.offsetLeft;
                                objTarget = objTarget.offsetParent;
                            }
                            while(objTarget.tagName.toLowerCase() != 'body');
                        }
                        catch(e)
                        {
                        }
                    }
                    else if(objTarget.x)
					{
						iLeft += objTarget.x;
					}
				
					return iLeft;
				}
				,
				getTopPosition:function(objTarget)
                {
                    var iTop = 0;
                    if(objTarget.offsetParent)
					{
                        do 
                        {
                            iTop += objTarget.offsetTop;
                            objTarget = objTarget.offsetParent;
                        }
                        while(objTarget.tagName.toLowerCase() != 'body');
                    }
                    else if(objTarget.y)
					{
						iTop += objTarget.y;
					}
				
					return iTop;
				}
				,
				addListener:function(element, type, expression, bubbling) 
				{
					bubbling = bubbling || false;
					if (window.addEventListener) 
					{
	
						element.addEventListener(type, expression, bubbling);
						return true;
					} else if (window.attachEvent) 
					{
						element.attachEvent('on'+type, expression);
						return true;
					}
					else 
					{
						return false;
					}
				}	  
				,
				removeListener:function(element, type, fReference) 
				{
					if (window.removeEventListener) 
					{
						element.removeEventListener(type,fReference);
						return true;
					} else if (window.detachEvent) 
					{
						element.detachEvent('on'+type,fReference);
						return true;
					}
					else 
					{
						return false;
					}
				}	  
				,
				NumericMaskInput:function(objEvent,objMask) 
                {
				    var objRegex = new RegExp("[^0-9.-]");
                    var iKeyPressedId = (window.event) ? event.keyCode : objEvent.keyCode;
                    var objTarget = (objEvent.target == null) ? objEvent.srcElement : objEvent.target;
                    var i = objTarget.value.length;
                    var saida = objMask.substring(0,1);
                    var texto = objMask.substring(i);
                    if (texto.substring(0,1) != saida)
                    {
                        objTarget.value += texto.substring(0,1); 
                    } 
                    
                    if(objMask.length > 1)
                    {
                        if(objTarget.value.length >= objMask.length)
                        {
                            objEvent.returnValue = false;
                        }
                    }
                    
                    objEvent.returnValue = (objEvent.returnValue == null) ? !objRegex.test(String.fromCharCode(iKeyPressedId)) : objEvent.returnValue;
                    return objEvent.returnValue;
				}
                ,
				formatInput:function(e,src,mask) 
				{
					if(window.event) 
					{
						_TXT = e.keyCode; 
					} 
				    else if(e.which)
					{
						_TXT = e.which; 
					}
				    if(_TXT > 47 && _TXT < 58) 
					{ 
						var i = src.value.length;
						var saida = mask.substring(0,1);
						var texto = mask.substring(i);
						if (texto.substring(0,1) != saida)
						{
							src.value += texto.substring(0,1); 
						} 
						return true;
					}
					else
					{
						if (_TXT != 8) 
						{
							return false; 
						} 
						else
						{
							return true; 
						}
					}
				}
				,
				submitForm:function(objInput,e, fInitFunc)
				{
					var keycode;
					if (window.event) 
					{
						keycode = window.event.keyCode;
					}
					else if(e)
					{
						keycode = e.which;
					}
					else
					{
						return true;
					}
					
					if (keycode == 13)
					{
						fInitFunc();
						objInput.form.submit();
						return false;
					}
					else
					{
						return true;
					}
				}
				,
				requestQS:function(sParam) 
				{
					hu = window.location.search.substring(1);
					gy = hu.split("&");
					for (i=0;i<gy.length;i++) 
					{
						ft = gy[i].split("=");
						if (ft[0] == sParam) 
						{
							return ft[1];
						}
					}
				}
				,
				getContent:function(oContainer, url, param, fReference) 
				{
					try
					{
						xmlhttp = new XMLHttpRequest();
					} 
					catch(ee)
					{
						try
						{
							xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
						}
						catch (e) 
						{
							try
							{
								xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
							}
							catch (E) 
							{
								xmlhttp = false;
							}
						}
					}
					
					if(xmlhttp != null)
					{
						xmlhttp.abort();
						xmlhttp.open("POST", url, true);
						xmlhttp.onreadystatechange = function() 
						{
							if (xmlhttp.readyState == 4) 
							{
								if(xmlhttp.status == 12031)
								{
									WU.getContent(oContainer, url, param, fReference);
								}
								else
								{
									oContainer.innerHTML = xmlhttp.responseText;
									if (fReference != null) 
									{
										fReference();
									}
								}
							}
						}
						
						xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
						xmlhttp.setRequestHeader("Content-length", param.length);
						xmlhttp.send(param);
					}
				}
				,
				getNumber:function(sNumberValue)
				{
					try
					{	
						if(parseInt(sNumberValue.toString()).toString().toLowerCase() == 'nan')
						{
							return parseInt(sNumberValue.split('px').join('').split('pt').join('').split('em').join(''));
						}
						else
						{
							return parseInt(sNumberValue.toString());
						}
					}
					catch(ex)
					{
						return 0;
					}
				}
				,
				clearComboBox:function (objTarget) 
				{
		            while (objTarget.options.length>0)
		            {
			            objTarget.remove(0);
		            }
                }
                ,
                isValidDate:function(dateStr, format) 
	            {
	            
	                dateStr = dateStr.split(" ")[0];
	                
	                if(dateStr.length < 10)
	                {
	                    return false;
	                }
	                
	                
	                
	                if (format == null) {
		                format = "MDY";
	                }
	                format = format.toUpperCase();
	                if (format.length != 3) {
		                format = "MDY";
	                }
	                if ((format.indexOf("M") == -1) || (format.indexOf("D") == -1) || (format.indexOf("Y") == -1)) {
		                format = "MDY";
	                }
	                if (format.substring(0, 1) == "Y") {
		                      var reg1 = /^\d{2}(\-|\/|\.)\d{1,2}\1\d{1,2}$/
		                      var reg2 = /^\d{4}(\-|\/|\.)\d{1,2}\1\d{1,2}$/
	                } else if (format.substring(1, 2) == "Y") {
		                      var reg1 = /^\d{1,2}(\-|\/|\.)\d{2}\1\d{1,2}$/
		                      var reg2 = /^\d{1,2}(\-|\/|\.)\d{4}\1\d{1,2}$/
	                } else {
		                      var reg1 = /^\d{1,2}(\-|\/|\.)\d{1,2}\1\d{2}$/
		                      var reg2 = /^\d{1,2}(\-|\/|\.)\d{1,2}\1\d{4}$/
	                }
	                if ((reg1.test(dateStr) == false) && (reg2.test(dateStr) == false)) {
		                return false;
	                }
	                var parts = dateStr.split(RegExp.$1);
	                if (format.substring(0, 1) == "M") {
		                var mm = parts[0];
	                } else if (format.substring(1, 2) == "M") {
		                var mm = parts[1];
	                } else {
		                var mm = parts[2];
	                }
	                if (format.substring(0, 1) == "D") {
		                var dd = parts[0];
	                } else if (format.substring(1, 2) == "D") {
		                var dd = parts[1];
	                } else {
		                var dd = parts[2];
	                }
	                if (format.substring(0, 1) == "Y") {
		                var yy = parts[0];
	                } else if (format.substring(1, 2) == "Y") {
		                var yy = parts[1];
	                } else {
		                var yy = parts[2];
	                }
	                if (parseFloat(yy)<=50) {
		                yy = (parseFloat(yy)+2000).toString();
	                }
	                if (parseFloat(yy)<=99) {
		                yy = (parseFloat(yy)+1900).toString();
	                }
	                var dt = new Date(parseFloat(yy), parseFloat(mm)-1, parseFloat(dd), 0, 0, 0, 0);
	                if (parseFloat(dd) != dt.getDate()) {
		                return false;
	                }
	                if (parseFloat(mm)-1 != dt.getMonth()) {
		                return false;
	                }
	                return true;
                }
			    ,
				createAutoComplete:function(objTarget, objArray, sClassName, sSelectionColor, sSelectionTextColor) 
                {
                    var objAutoCompleteList = document.getElementById(objTarget.id + '_autocomplete');
                    var iTimer;
                    
                    if(objAutoCompleteList == null)
                    {
                        objAutoCompleteList = WU.ceo(objTarget.id + '_autocomplete','ul',document.body);
                    }

                    objAutoCompleteList.innerHTML = '';
                    
                    objAutoCompleteList.style.position = 'absolute';
                    objAutoCompleteList.style.top = WU.getTopPosition(objTarget) + objTarget.offsetHeight + 'px';
                    objAutoCompleteList.style.left = WU.getLeftPosition(objTarget) + 1 + 'px';
                                                                        
                    if(sSelectionColor == null)
                    {
                        sSelectionColor = '#0A246A';
                    }
                    
                    if(sSelectionTextColor == null)
                    {
                       sSelectionTextColor = '#c0c0c0';
                    }
                    
                    objAutoCompleteList.selectedIndex = 0;
                    objAutoCompleteList.className = sClassName;
                    objAutoCompleteList.SelectionColor = sSelectionColor;
                    objAutoCompleteList.TextSelectionColor = sSelectionTextColor;
                    
                    
                    for(var i = 0; i < objArray.length; i++)
                    {
                        var objLiItem = WU.ceo(null,'li',objAutoCompleteList);
                        var objAnchorItem = WU.ceo(null,'a',objLiItem);
                        objAnchorItem.innerHTML = objArray[i];
                        objAnchorItem.href = 'javascript:;';
                        objAnchorItem.owner = objTarget;
                        objAnchorItem.onclick = function(){this.owner.value = this.innerHTML; document.getElementById(this.owner.id + '_autocomplete').style.display = 'none';};
                        
                    }
                    objAutoCompleteList.style.display = 'none';
                    WU.addListener(objTarget,'blur',function(e){iTimer = setInterval(function(){objAutoCompleteList.style.display = 'none'; clearInterval(iTimer);},200)});
                    WU.addListener(objTarget,'keyup',function(e){
                                                                 
                                                                    var objItemsIndex = new Array();
                                                                    var objAutoCompleteTarget = (((e.target == null) ? e.srcElement : e.target));
                                                                    var objAutoListTarget = document.getElementById(objAutoCompleteTarget.id + "_autocomplete");
                                                                    var bShow = false;
                                                                    
                                                                    objAutoListTarget.style.top = WU.getTopPosition(objAutoCompleteTarget) + objAutoCompleteTarget.offsetHeight + 'px';
                                                                    objAutoListTarget.style.left = WU.getLeftPosition(objAutoCompleteTarget) + 'px';
                                                                    objAutoListTarget.style.width = (objAutoCompleteTarget.offsetWidth - 2) + 'px';
                                                                    if(objAutoListTarget != null)
                                                                    {
                                                                        var objItemList = objAutoListTarget.getElementsByTagName('a');
                                                                        
                                                                        objAutoListTarget.style.display = '';
                                                                        
                                                                        for(var i = 0; i < objItemList.length; i++)
                                                                        {
                                                                            objItemList[i].style.backgroundColor = '';
                                                                            objItemList[i].style.color = '';
                                                                            
                                                                            if(objItemList[i].innerHTML.toString().substr(0,objAutoCompleteTarget.value.length).toLowerCase() != objAutoCompleteTarget.value.toLowerCase())
                                                                            {
                                                                            
                                                                                objItemList[i].parentNode.style.display = 'none';
                                                                            }
                                                                            else
                                                                            {
                                                                                
                                                                                bShow = true;
                                                                                objItemsIndex.push(i);
                                                                                objItemList[i].parentNode.style.display = '';
                                                                                objItemList[i].index = i;
                                                                                objItemList[i].onmouseover = function(){for(var k = 0; k < objItemList.length; k++){objItemList[k].style.color = '';objItemList[k].style.backgroundColor = '';};this.style.backgroundColor = objAutoCompleteList.SelectionColor;this.style.color = objAutoCompleteList.TextSelectionColor;objAutoListTarget.selectedIndex = this.index;}
                                                                                objItemList[i].onmouseout = function(){this.style.backgroundColor = '';this.style.color = '';}
                                                                            }
                                                                        }
                                                                    
                                                                            
                                                                        if(bShow == false || objAutoCompleteTarget.value.length <= 0)
                                                                        {
                                                                            objAutoListTarget.style.display = 'none';
                                                                        }
                                                                    }
                                                                    
                                                                    if(e.keyCode != 38 && e.keyCode != 40 && e.keyCode != 13)
                                                                    {
                                                                        objAutoListTarget.selectedIndex = -1;
                                                                    }
                                                                    
                                                                    if(objAutoListTarget.style.display != 'none')
                                                                    {
                                                                        switch (e.keyCode) 
                                                                        {

                                                                            // Return/Enter
                                                                            case 13:
                                                                                if(objAutoListTarget.selectedIndex > -1)
                                                                                {
                                                                                    objAutoCompleteTarget.value = (objItemList[objItemsIndex[objAutoListTarget.selectedIndex]].innerHTML);
                                                                                    objAutoListTarget.style.display = 'none';
                                                                                    e.returnValue = false;
                                                                                    e.cancelBubble = true;
                                                                                }
                                                                                break;
                                                                            
                                                                            // Up arrow
                                                                            case 38:
                                                                                //alert(objAutoListTarget.selectedIndex);
                                                                                objAutoListTarget.selectedIndex--;
                                                                                if(objAutoListTarget.selectedIndex < 0)
                                                                                {
                                                                                    objAutoListTarget.selectedIndex = objItemsIndex.length-1;
                                                                                }
                                                                                else
                                                                                if(objAutoListTarget.selectedIndex > objItemsIndex.length)
                                                                                {
                                                                                    objAutoListTarget.selectedIndex = 0;
                                                                                }
                                                                                
                                                                                //alert('acima');
                                                                                e.returnValue = false;
                                                                                e.cancelBubble = true;
                                                                                break;
                                                                            
                                                                            // Down arrow
                                                                            case 40:
                                                                                objAutoListTarget.selectedIndex++;
                                                                                if(objAutoListTarget.selectedIndex < 0)
                                                                                {
                                                                                    objAutoListTarget.selectedIndex = objItemsIndex.length-1;
                                                                                }
                                                                                else
                                                                                if(objAutoListTarget.selectedIndex > objItemsIndex.length-1)
                                                                                {
                                                                                    objAutoListTarget.selectedIndex = 0;
                                                                                }
                                                                                //alert('abaixo');
                                                                                e.returnValue = false;
                                                                                e.cancelBubble = true;
                                                                                break;
                                                                        }
                                                                        
                                                                        if(objAutoListTarget.selectedIndex > -1)
                                                                        {
                                                                            if(objItemsIndex[objAutoListTarget.selectedIndex] != null)
                                                                            {
                                                                                objItemList[objItemsIndex[objAutoListTarget.selectedIndex]].style.backgroundColor = objAutoCompleteList.SelectionColor;
                                                                                objItemList[objItemsIndex[objAutoListTarget.selectedIndex]].style.color = objAutoCompleteList.TextSelectionColor;
                                                                             }
                                                                        }
                                                                    }
                                                                }
                                                                );
                }
			}
}();

