﻿// JScript File


var css_browser_selector = function() {
   var ua=navigator.userAgent.toLowerCase();
   var is=function(t){ return ua.indexOf(t) != -1; };
   var h=document.getElementsByTagName('html')[0];
   var b=(!(/opera|webtv/i.test(ua))&&/msie (\d)/.test(ua))?('ie ie'+RegExp.$1):is('gecko/')? 'gecko':is('opera/9')?'opera opera9':/opera (\d)/.test(ua)?'opera opera'+RegExp.$1:is('konqueror')?'konqueror':is('applewebkit/')?'webkit safari':is('mozilla/')?'gecko':'';
   var os=(is('x11')||is('linux'))?' linux':is('mac')?' mac':is('win')?' win':'';
   var c=b+os+' js';
   h.className += h.className?' '+c:c;
   //alert(h.className);
}();



function Empty () {}

 
 function FormatNumber(num, len, padding)
 {
   var ret = num.toString();
   if (num) {
      var k;
      for ( k=ret.length; k<len; k++ ) {
         ret = padding + ret;
      }
   }
   return ret;
 }


function GetFirstChild(obj) {
	var oChild = null;
	if ( obj ) {
		var k, arrChildren = obj.childNodes;
		if (arrChildren) {
		  for (k=0; k<arrChildren.length; k++)
		    if ( arrChildren[k].nodeName.toString().toLowerCase() != "#text" ) {
		      oChild = arrChildren[k];
		      break;
		    }
		}
  }
  return oChild;
}


function GetAncestorByTagName(obj, ancestorTagName) {
	var bFound = false;
	var oAncestor = obj;
	if ( obj ) {
		while ( oAncestor && !bFound ) {
			oAncestor = oAncestor.parentNode;
			if ( oAncestor && oAncestor.tagName.toLowerCase() == ancestorTagName.toLowerCase() ) 
			    bFound = true;
		}
	}
    return oAncestor;
}


function GetAncestor(obj, ancestorName) {
	var bFound = false;
	var oAncestor = obj;
	if ( obj ) {
		while ( oAncestor && !bFound ) {
			oAncestor = oAncestor.parentNode;
			if ( GetElementName(oAncestor) == ancestorName ) bFound = true;
		}
	}
    return oAncestor;
}

function GetSibling(obj) {
    var oUncle = null;
	if (obj) {
		oUncle = obj.nextSibling;
		if ( oUncle.nodeName.toString().toLowerCase()=="#text" ) oUncle = oUncle.nextSibling;
	}
	return oUncle;
}
function GetPreviousSibling(obj) {
    var oUncle = null;
	if (obj) {
		oUncle = obj.previousSibling;
		if ( oUncle.nodeName.toString().toLowerCase()=="#text" ) oUncle = oUncle.previousSibling;
	}
	return oUncle;
}

function GetDescendant(obj, descendantName, descendantTag) {
	var oDescendant = null;
	if ( !descendantTag ) descendantTag = "div";
	if ( obj ) {
		var k, arrDescendants = obj.getElementsByTagName(descendantTag);
		for ( k = 0; k < arrDescendants.length && !oDescendant; k++ ) {
			if ( (!descendantName) || GetElementName(arrDescendants[k]) == descendantName ) 
			    oDescendant = arrDescendants[k];
			    break;
			}
    }
    return oDescendant;
}

function GetDescendantById(obj, descendantId, descendantTag) {
	var oDescendant = null;
	if ( !descendantTag ) descendantTag = "div";
	if ( obj ) {
		var k, arrDescendants = obj.getElementsByTagName(descendantTag);
		for ( k = 0; k < arrDescendants.length && !oDescendant; k++ ) {
			if ( (!descendantId) || arrDescendants[k].id.indexOf(descendantId) >= 0 ) 
			    oDescendant = arrDescendants[k];
			}
    }
    return oDescendant;
}




function GetDescendants(obj, descendantName, descendantTag) {
	var oDescendant = new Array();
	if ( !descendantTag ) descendantTag = "div";
	if ( obj ) {
		var k, arrDescendants = obj.getElementsByTagName(descendantTag);
		for ( k = 0; k < arrDescendants.length; k++ ) {
			if ( (!descendantName) || GetElementName(arrDescendants[k]) == descendantName ) 
			    oDescendant.push(arrDescendants[k]);
			}
    }
    return oDescendant;
}



function GetElementName(oElem) 
{
  if ( oElem ) {
	  if (!oElem.attributes) return "";
	  var sAtribName = "name";
    var oAtribs = oElem.attributes;
   	if ( oAtribs ) 
      var k;
      for ( k=0; k<oAtribs.length; k++ ) 
         try  {
			 if ( oAtribs[k].nodeName && oAtribs[k].nodeName.toString().toLowerCase() == sAtribName && oAtribs[k].nodeValue ) 
		 		return oAtribs[k].nodeValue.toString();
	     } catch (exp) {}
  }
  return "";
}

function OpenWindow(sUrl, sName, sFeatures)
{
  window.open(sUrl, sName, sFeatures);
}



function SaveCookie(cookieName, cookieVal) 
{
  var expire = new Date ();
  expire.setTime (expire.getTime() + (6000 * 24 * 3600000));
  expire = expire.toGMTString();
  document.cookie = cookieName + "=" + cookieVal + "; path=/; expires=" + expire;
}

function LoadCookie(cookieName) 
{
    var tA, tempArray = document.cookie.split(";");
    for (tA = 0; tA < tempArray.length; tA++)
         if (tempArray[tA].indexOf(cookieName) > -1){
            var val = tempArray[tA].split("=")
            if (val && val.length>1) return val[1];
         }
    return null;
}


function OpenCloseFollowingSibling (obj)
{
  if (obj) {
    var sibling = GetSibling(obj);
    if (sibling) sibling.style.display = ( sibling.style.display == "none" ? "" : "none" );
  }
}

function SetObjectText(objId, txt)
{
  var obj = document.getElementById(objId);
  if (obj) obj.innerHTML = txt;
} 

function ClickButton(evnt, obj, containerName, buttonPartialId)
{
    if ( evnt.keyCode == 13 ) {
        var parent = GetAncestor(obj, containerName);
        if (parent) {
            var k, inputs = parent.getElementsByTagName("input");
            if (inputs && inputs.length)
                for (k=0; k<inputs.length; k++) {
                    if ( inputs[k].type=="button" && inputs[k].id.indexOf(buttonPartialId)>=0 ) {
                        inputs[k].click();
                        return false;
                    }
                }
            // se não achar, os input foram desenhados como "A"
            var links = parent.getElementsByTagName("a");
            if (links && links.length)
                for (k=0; k<links.length; k++) {
                    if ( links[k].id.indexOf(buttonPartialId)>=0 ) { // || ( (links[k].className.toString().toLowerCase().indexOf("bt-generic")>=0 || links[k].innerHTML.toLowerCase().indexOf("button")>=0) && links[k].id.indexOf(buttonPartialId)>=0 )) {
                        if ( links[k].href.indexOf("Empty()")>0 || links[k].href.indexOf("void(0)")>0 ) {
                            links[k].click();
                        }
                        else if ( links[k].href.indexOf("javascript:")>=0 ) {
                            eval(unescape( links[k].href.substr(links[k].href.indexOf("javascript:")) ));
                        }
                        else {
                            document.location = links[k].href;
                        }
                        return false;
                    }
                }
        }
    }
}




function ClickText(oTxt, is_password)
{
    if ( oTxt ) {
        if ( is_password ) {
            if ( oTxt.style.display != "none" ){
                var oClearText = oTxt;
                oTxt = GetSibling(oClearText);
                oClearText.style.display = "none";
                oTxt.style.display = "";
            }
            else oTxt = GetSibling(oTxt);
        }
        else if ( oTxt.value == oTxt.title ) oTxt.value = "";
        oTxt.select();
        if (is_password) oTxt.focus();
    }

}



function BlurText(obj, is_password)
{
    if ( obj && obj.value == "" ) {
        if ( obj.type == "password" ) {
            var oClearText = GetPreviousSibling(obj);
            if (oClearText) oClearText.style.display = "";
            obj.style.display = "none";
            obj.value = "";
        }
        else obj.value = obj.title;
    }
}



function AddBookmark()
{
   var bookmarkurl = GetHost();
   var bookmarktitle = "TSF.pt";
   if (document.all) window.external.addFavorite(bookmarkurl,bookmarktitle);
}

function SetAsHomepage()
{
   document.body.style.behavior = "url(#default#homepage)";
   document.body.setHomePage(GetHost());
}


function GetHost()
{
    var urlArr = document.location.toString().split("/");
    if (urlArr && urlArr.length>=2) 
      return "http://" + urlArr[2];
}


function GetQueryStringValue(val)
{
   var sLoc = document.location.toString().toLowerCase();
   var arr1 = sLoc.split(val.toLowerCase() + "=");
   if ( arr1 && arr1.length>1 ) {
       var arr2 = arr1[1].split("&");
       if ( arr2 && arr2.length>0 ) {
         var ret = arr2[0].split("#");
         if ( ret && ret.length>0 ) return ret[0];
       }
    }
    return null;
}



function GetDescendantByPartialId(obj, descendantId, descendantTag) {
	var oDescendant = null;
	if ( !descendantTag ) descendantTag = "div";
	if ( obj ) {
		var k, arrDescendants = obj.getElementsByTagName(descendantTag);
		for ( k = 0; k < arrDescendants.length && !oDescendant; k++ ) {
			if ( (!descendantId) || arrDescendants[k].id.indexOf(descendantId)>0 ) 
			    oDescendant = arrDescendants[k];
			}
    }
    return oDescendant;
}



function IsNumeric(sText)
{
   var ValidChars = "0123456789.";
   var IsNumber=true;
   var Char;

   for (i = 0; i < sText.length && IsNumber == true; i++) { 
      Char = sText.charAt(i); 
      if (ValidChars.indexOf(Char) == -1)  {
        IsNumber = false;       
        break;
      }
   }
   return IsNumber;   
}



function AddEvent(elem, evtType, func, capture) 
{
	capture = (capture) ? capture : false;
	if (elem.addEventListener) elem.addEventListener(evtType, func, capture);
	else if (elem.attachEvent) elem.attachEvent("on" + evtType, func);
	else // for IE/Mac, NN4, and older
		elem["on" + evtType] = func;
}


function GetAssyncContent(url, htmlObj, defaultVal, func)
{
   var xmlhttp; 
   if ( htmlObj ) {
     if (window.ActiveXObject) // for IE 
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); 
     else if (window.XMLHttpRequest) // for other browsers 
        xmlhttp = new XMLHttpRequest(); 

     xmlhttp.open("GET", url);
     xmlhttp.onreadystatechange = function() {
         if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
             htmlObj.innerHTML = ( xmlhttp.responseText ? xmlhttp.responseText : defaultVal );
             if (func) eval(func + "('" + htmlObj.innerHTML + "')");
         }
     }
     xmlhttp.send(null);       
   }  
}




function IsIE()
{
    return DetectBrowser().indexOf("IE")>=0;
}


function DetectBrowser() 
{
    var browserversion = "", browser = "";
    if (/MSIE (\d+\.\d+);/.test(navigator.userAgent)){ //test for MSIE x.x;
         browserversion = new Number(RegExp.$1) // capture x.x portion and store as a number
         if (browserversion>=8) browser = "IE8";
         else if (browserversion>=7) browser = "IE7.x";
         else if (browserversion>=6) browser = "IE6.x";
         else if (browserversion>=5) browser = "IE5.x";
    }
    else if (/Firefox[\/\s](\d+\.\d+)/.test(navigator.userAgent)){ //test for Firefox/x.x or Firefox x.x (ignoring remaining digits);
         browserversion = new Number(RegExp.$1) // capture x.x portion and store as a number
         if (browserversion>=3) browser = "FF 3.x";
         else if (browserversion>=2) browser = "FF 2.x";
         else if (browserversion>=1) browser = "FF 1.x";
    }
    else browser = "other";
    return browser;
}
