function sendMail(url)
{
	newWindow = window.open(url,'','scrollbars=no,menubar=no,height=265,width=500,resizable=no,toolbar=no,location=no,status=no');return false;
	return false;
}

function sendMailGetUrl()
{
	var height = parseInt(document.getElementById('clear').offsetTop) + parseInt(document.getElementById('clear').clientHeight) + 70;
	window.resizeTo(500, height);
	document.Form1.url.value = opener.document.URL;
	return true;
}

function onEnterSearch(e, url)
{
    if (!e) var e = window.event
	    // e refers to the event

	if((e.which && e.which == 13) || 
    (e.keyCode && e.keyCode == 13))
	{
		searchSubmit(url);
		return false;
	}
	return true;
}   


function searchSubmit(url)
{
	var input = document.getElementById('pesq');
	var channel = document.getElementById('idc');
	var language = document.getElementById('language');
	var searchKeyWord = escape(input.value);
	if(searchKeyWord.length > 0){
	    searchKeyWord = searchKeyWord.replace(/&/, '%26');
	    var redirectUrl = url + "?idc=" + channel.value + "&idl=" + language.value + "&" + input.name + "=" + searchKeyWord;
	    document.location = redirectUrl;	   
	}
	return;
}


function onEnterSearchGoogle(item, url)
{
	if((event.which && event.which == 13) || 
    (event.keyCode && event.keyCode == 13))
	{
		searchGoogle(item, url);
		return false;
	}
	return true;
}

function searchGoogle(item, url)
{
    var element = document.getElementById(item);
    var searchString = encodeURI(element.value);
	searchString = searchString.replace(/&/, '%26');
    url = url + searchString;

    window.open(url);
}

 function resizeFrame()
 {
  var iframe = document.getElementById('app_iframe');
  try
  {
    if(iframe != null)
    {
        var oBody	=	iframe.contentWindow.document.body;
        iframe.height = oBody.scrollHeight + 20;
        iframe.scrolling = "auto";		
    }
  }
  catch (err)
  {}
}


function resizeFrameNoScroll()
{
  var iframe = document.getElementById('forum_iframe');
  try
  {
    if(iframe != null)
    {
        iframe.height = iframe.contentWindow.document.body.offsetHeight + 20;
        iframe.width = iframe.contentWindow.document.body.offsetWidth;
    }
  }
  catch (err)
  {}
}

function goto(url)
{
    if(url.length > 0)
    {
        document.location = url;
    }
}

function addBookmark(url)
{
    bookmark = escape(document.location).replace(/&/gi, '%26');
    bookmarkName = escape(document.title).replace(/&/gi, '%26');
    
    

    url = url + '?url=' + bookmark + '&name=' + bookmarkName + '&idl=' + getQueryVariable('idl') + '&idi=' + getQueryVariable('idi');
    window.open(url,'','scrollbars=no,menubar=no,height=340,width=500,resizable=no,toolbar=no,location=no,status=no');
     
}

function getQueryVariable(variable) {
  var query = window.location.search.substring(1);
  var vars = query.split("&");
  for (var i=0;i<vars.length;i++) {
    var pair = vars[i].split("=");
    if (pair[0] == variable) {
      return pair[1];
    }
  } 
  return '';
}

function cleanInput(value)
{
   var field = document.getElementById(value);
   field.value = '';
}

// pega no texto exisitente no elemento xxxx_id e 
// copia-o para o elemento value (textarea), formatando-o
function writeOnInput (value, id, page)
{
    if(id != null)
    {
        var mensagem;
        var field = document.getElementById(value);
        var str_regexp = "<[Dd][Ii][Vv]>.*</[Dd][Ii][Vv]>[<br> || <BR>]*";
        
        var message = document.getElementById('message' + id).innerHTML;
        var regexp = new RegExp(str_regexp);
        
        message = message.replace(regexp, "");

        var txt = "[QUOTE]" + document.getElementById('autor' + id).innerHTML + '\r\n' + message + "[/QUOTE]";
        var txt = txt + "[MSG]" + id + "[/MSG]";
            
        var txt = txt + "[PAGE]" + page + "[/PAGE]";

        // 'gi' faz uma substituicao case insensitive e global (na string inteira)
        txt = txt.replace(/<br>/gi, '\r\n');        
        
        field.value = txt;
    }
}

function InitMenus()
{

        var ddmx = new DropDownMenuX('menu');
        ddmx.type = "horizontal";
        ddmx.delay.show = 0;
        ddmx.delay.hide = 400;
        ddmx.position.levelX.left = 0;
        ddmx.init();
        
        ddmx = new DropDownMenuX('aplic_negocio');
        ddmx.type = "vertical";
        ddmx.delay.show = 0;
        ddmx.delay.hide = 400;
        ddmx.position.levelX.left = 2;
        ddmx.init();
 }

function frameNavigate(field, url)
{
    var frame = document.getElementById(field);
    frame.src = url;
    return;
}

function printFrame(elem)
{
    var frame = document.getElementById(elem);
    frame.contentWindow.focus();
    frame.contentWindow.print();
}



function checkFileExists(elem)
{                    
    html = elem.parentNode.innerHTML;  
    obj = elem;          
    var filepath = elem.value;
    var firstpos = filepath.lastIndexOf('\\')+1;
    var lastpos = filepath.length;
    var fileName = filepath.substring(firstpos,lastpos);
    
    req = getreq();
    req.onreadystatechange = filexists;
    req.open("HEAD", '/upl/Manuais/3059/' + fileName, true);
    req.send(null);
}

function filexists()
{
    if(req.readyState == 4)
    {
        if(req.status == 200)
        {
            var answer = confirm("O ficheiro já existe. Deseja sobrepor?");
            if(!answer)
            {
                obj.parentNode.innerHTML = html;
            }
        }
    }
}

function getreq()
{
    if(window.XMLHttpRequest)
        return new XMLHttpRequest();
    else if(window.ActiveXObject)
        return new ActiveXObject("Microsoft.XMLHTTP");
}


function disableCtrl(ctrlId, disable)
{
    setDisabled(document.getElementById(ctrlId), disable);
}

function setDisabled(ctrl, disable) 
{
    try
    {
        ctrl.disabled = disable;
        if(ctrl.Validators)
        {
            var i;
            for(i = 0; i < ctrl.Validators.length; i++)
            {
                ValidatorEnable(ctrl.Validators[i], !disable)
            }
        }
    }
    catch(e){}

    if (ctrl.childNodes && ctrl.childNodes.length>0)
    {
        for (var i = 0; i<ctrl.childNodes.length; i++)
        {
            setDisabled(ctrl.childNodes[i], disable);
        }
    }
}

function clearTextBox(textBox)
{
    var textBoxCtrl = document.getElementById(textBox);
    if (textBoxCtrl!=null)
    {
        textBoxCtrl.value = "";
    }
} 

function clearDropDownList(dropDownList)
{
    var dropDownListCtrl = document.getElementById(dropDownList);
    if (dropDownListCtrl!=null)
    {
        dropDownListCtrl.selectedIndex = 0;
    }
}

function clearCheckBox(checkBox)
{
    var checkBoxCtrl = document.getElementById(checkBox);
    if (checkBoxCtrl!=null)
    {
        checkBoxCtrl.checked = false;
    }
}

function clearListBox(listBox)
{
    var listBoxCtrl = document.getElementById(listBox);
    if (listBoxCtrl!=null)
    {
        for (var i=listBoxCtrl.options.length-1; i>=0; i--)
        {
            listBoxCtrl.options[i] = null;
        }
        listBoxCtrl.selectedIndex = -1;
    }
}

// Scripting: Hendrik Muus
// letters will be replaced with digits
repl = new Array (	"A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M",
			"N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z",
		 	"10","11","12","13","14","15","16","17","18","19","20","21","22",
		 	"23","24","25","26","27","28","29","30","31","32","33","34","35");

function checkibancore(iban) {
	if(iban.length == 0)
	{
	    return 1;
	}
	illegal = /\W|_/; // contains chars other than (a-zA-Z0-9) 
	if(illegal.test(iban)) { return 0; } // yes, alert and exit
	else { // no, continue
		illegal = /^\D\D\d\d.+/; // first chars are letter letter digit digit
		if(illegal.test(iban) == false) { return 0; } // no, alert and exit
		else { // yes, continue
			illegal = /^\D\D00.+|^\D\D01.+|^\D\D99.+/; // check digit are 00 or 01 or 99
			if(illegal.test(iban)) { return 0; } // yes, alert and exit
			else { // no, continue
				iban = iban.toUpperCase(); // uppercase, to ease
					iban = iban.substr(4,iban.length-4) + iban.substr(0,4); // country and check digits to the end
					for (i = 0; i <= 25; i++) { // replace letters with digits
						while (iban.search(repl[i])!= -1) { iban = iban.replace(repl[i],repl[i+26]); }} // all of them
					coss = Math.ceil(iban.length/7); // calc count of substrings
					rmndr = ""; // remainer starts empty and always preceeds the current substring
					for (i = 1; i <= coss; i++) { // step by step
						rmndr = String(parseFloat(rmndr+iban.substr((i-1)*7,7))%97); } // modulo division 97
					return rmndr; }}}} // return the remainer
					
// perform the check -- checks full IBAN for validity
function checkIBAN(sender, args)
{
    var ibanOK = checkibancore(args.Value);

	if(ibanOK=="1")
	    args.IsValid = true;
	else
	    args.IsValid = false;	
	
}

//Devolve 1 se o NIB for válido.
function getMod97 (sender, args)
{   
        sIBAN = args.Value; 
         
        var sChunk = "";
        var nResult = 0, nProcessed = 0, nInputLength = sIBAN.length, nModChunk;
        var bFirst = true;
        var nAmount = 9;      

        while ( nProcessed < nInputLength )
        {
            if ( nProcessed + nAmount > nInputLength )
                       nAmount = nInputLength - nProcessed;

            sChunk += sIBAN.substr ( nProcessed, nAmount );
            nModChunk = ( sChunk ) % 97;
            sChunk = String ( nModChunk );
            nProcessed += nAmount;
            nAmount = 7;

        }    
        
        if(nModChunk  == "1")
            args.IsValid =true;
        else 
            args.IsValid =false;
}

function addLoadEvent(func) {

  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      if (oldonload) {
        oldonload();
      }
      func();
    }
  }
}

//Copy HTML code from divSrc to divDst
function copyDiv(divSrc, divDst)
{
    var div1 = document.getElementById(divSrc);
    var div2 = document.getElementById(divDst);
    //Verifica se o div origem existe, se não existir esconde o div destino
    if(div1){
        //copy HTML
        div2.innerHTML = div1.innerHTML;   
    }
    else{
        div2.style.visibility ="hidden";
    }
}

// HtmlDecode http://lab.msdn.microsoft.com/annotations/htmldecode.js
//   client side version of the useful Server.HtmlDecode method
//   takes one string (encoded) and returns another (decoded)
function HtmlDecode(s)
{
      var out = "";
      if (s==null) return;
      var l = s.length;
      for (var i=0; i<l; i++)
      {
            var ch = s.charAt(i);
          
            if (ch == '&')
            {
                var semicolonIndex = s.indexOf(';', i+1);

            if (semicolonIndex > 0)
            {
                        var entity = s.substring(i + 1, semicolonIndex);
                        if (entity.length > 1 && entity.charAt(0) == '#')
                        {
                              if (entity.charAt(1) == 'x' || entity.charAt(1) == 'X')
                                    ch = String.fromCharCode(eval('0'+entity.substring(1)));
                              else
                                    ch = String.fromCharCode(eval(entity.substring(1)));
                        }
                    else
                      {
                              switch (entity)
                              {
                                    case 'quot': ch = String.fromCharCode(0x0022); break;
                                    case 'amp': ch = String.fromCharCode(0x0026); break;
                                    case 'lt': ch = String.fromCharCode(0x003c); break;
                                    case 'gt': ch = String.fromCharCode(0x003e); break;
                                    case 'nbsp': ch = String.fromCharCode(0x00a0); break;
                                    case 'iexcl': ch = String.fromCharCode(0x00a1); break;
                                    case 'cent': ch = String.fromCharCode(0x00a2); break;
                                    case 'pound': ch = String.fromCharCode(0x00a3); break;
                                    case 'curren': ch = String.fromCharCode(0x00a4); break;
                                    case 'yen': ch = String.fromCharCode(0x00a5); break;
                                    case 'brvbar': ch = String.fromCharCode(0x00a6); break;
                                    case 'sect': ch = String.fromCharCode(0x00a7); break;
                                    case 'uml': ch = String.fromCharCode(0x00a8); break;
                                    case 'copy': ch = String.fromCharCode(0x00a9); break;
                                    case 'ordf': ch = String.fromCharCode(0x00aa); break;
                                    case 'laquo': ch = String.fromCharCode(0x00ab); break;
                                    case 'not': ch = String.fromCharCode(0x00ac); break;
                                    case 'shy': ch = String.fromCharCode(0x00ad); break;
                                    case 'reg': ch = String.fromCharCode(0x00ae); break;
                                    case 'macr': ch = String.fromCharCode(0x00af); break;
                                    case 'deg': ch = String.fromCharCode(0x00b0); break;
                                    case 'plusmn': ch = String.fromCharCode(0x00b1); break;
                                    case 'sup2': ch = String.fromCharCode(0x00b2); break;
                                    case 'sup3': ch = String.fromCharCode(0x00b3); break;
                                    case 'acute': ch = String.fromCharCode(0x00b4); break;
                                    case 'micro': ch = String.fromCharCode(0x00b5); break;
                                    case 'para': ch = String.fromCharCode(0x00b6); break;
                                    case 'middot': ch = String.fromCharCode(0x00b7); break;
                                    case 'cedil': ch = String.fromCharCode(0x00b8); break;
                                    case 'sup1': ch = String.fromCharCode(0x00b9); break;
                                    case 'ordm': ch = String.fromCharCode(0x00ba); break;
                                    case 'raquo': ch = String.fromCharCode(0x00bb); break;
                                    case 'frac14': ch = String.fromCharCode(0x00bc); break;
                                    case 'frac12': ch = String.fromCharCode(0x00bd); break;
                                    case 'frac34': ch = String.fromCharCode(0x00be); break;
                                    case 'iquest': ch = String.fromCharCode(0x00bf); break;
                                    case 'Agrave': ch = String.fromCharCode(0x00c0); break;
                                    case 'Aacute': ch = String.fromCharCode(0x00c1); break;
                                    case 'Acirc': ch = String.fromCharCode(0x00c2); break;
                                    case 'Atilde': ch = String.fromCharCode(0x00c3); break;
                                    case 'Auml': ch = String.fromCharCode(0x00c4); break;
                                    case 'Aring': ch = String.fromCharCode(0x00c5); break;
                                    case 'AElig': ch = String.fromCharCode(0x00c6); break;
                                    case 'Ccedil': ch = String.fromCharCode(0x00c7); break;
                                    case 'Egrave': ch = String.fromCharCode(0x00c8); break;
                                    case 'Eacute': ch = String.fromCharCode(0x00c9); break;
                                    case 'Ecirc': ch = String.fromCharCode(0x00ca); break;
                                    case 'Euml': ch = String.fromCharCode(0x00cb); break;
                                    case 'Igrave': ch = String.fromCharCode(0x00cc); break;
                                    case 'Iacute': ch = String.fromCharCode(0x00cd); break;
                                    case 'Icirc': ch = String.fromCharCode(0x00ce ); break;
                                    case 'Iuml': ch = String.fromCharCode(0x00cf); break;
                                    case 'ETH': ch = String.fromCharCode(0x00d0); break;
                                    case 'Ntilde': ch = String.fromCharCode(0x00d1); break;
                                    case 'Ograve': ch = String.fromCharCode(0x00d2); break;
                                    case 'Oacute': ch = String.fromCharCode(0x00d3); break;
                                    case 'Ocirc': ch = String.fromCharCode(0x00d4); break;
                                    case 'Otilde': ch = String.fromCharCode(0x00d5); break;
                                    case 'Ouml': ch = String.fromCharCode(0x00d6); break;
                                    case 'times': ch = String.fromCharCode(0x00d7); break;
                                    case 'Oslash': ch = String.fromCharCode(0x00d8); break;
                                    case 'Ugrave': ch = String.fromCharCode(0x00d9); break;
                                    case 'Uacute': ch = String.fromCharCode(0x00da); break;
                                    case 'Ucirc': ch = String.fromCharCode(0x00db); break;
                                    case 'Uuml': ch = String.fromCharCode(0x00dc); break;
                                    case 'Yacute': ch = String.fromCharCode(0x00dd); break;
                                    case 'THORN': ch = String.fromCharCode(0x00de); break;
                                    case 'szlig': ch = String.fromCharCode(0x00df); break;
                                    case 'agrave': ch = String.fromCharCode(0x00e0); break;
                                    case 'aacute': ch = String.fromCharCode(0x00e1); break;
                                    case 'acirc': ch = String.fromCharCode(0x00e2); break;
                                    case 'atilde': ch = String.fromCharCode(0x00e3); break;
                                    case 'auml': ch = String.fromCharCode(0x00e4); break;
                                    case 'aring': ch = String.fromCharCode(0x00e5); break;
                                    case 'aelig': ch = String.fromCharCode(0x00e6); break;
                                    case 'ccedil': ch = String.fromCharCode(0x00e7); break;
                                    case 'egrave': ch = String.fromCharCode(0x00e8); break;
                                    case 'eacute': ch = String.fromCharCode(0x00e9); break;
                                    case 'ecirc': ch = String.fromCharCode(0x00ea); break;
                                    case 'euml': ch = String.fromCharCode(0x00eb); break;
                                    case 'igrave': ch = String.fromCharCode(0x00ec); break;
                                    case 'iacute': ch = String.fromCharCode(0x00ed); break;
                                    case 'icirc': ch = String.fromCharCode(0x00ee); break;
                                    case 'iuml': ch = String.fromCharCode(0x00ef); break;
                                    case 'eth': ch = String.fromCharCode(0x00f0); break;
                                    case 'ntilde': ch = String.fromCharCode(0x00f1); break;
                                    case 'ograve': ch = String.fromCharCode(0x00f2); break;
                                    case 'oacute': ch = String.fromCharCode(0x00f3); break;
                                    case 'ocirc': ch = String.fromCharCode(0x00f4); break;
                                    case 'otilde': ch = String.fromCharCode(0x00f5); break;
                                    case 'ouml': ch = String.fromCharCode(0x00f6); break;
                                    case 'divide': ch = String.fromCharCode(0x00f7); break;
                                    case 'oslash': ch = String.fromCharCode(0x00f8); break;
                                    case 'ugrave': ch = String.fromCharCode(0x00f9); break;
                                    case 'uacute': ch = String.fromCharCode(0x00fa); break;
                                    case 'ucirc': ch = String.fromCharCode(0x00fb); break;
                                    case 'uuml': ch = String.fromCharCode(0x00fc); break;
                                    case 'yacute': ch = String.fromCharCode(0x00fd); break;
                                    case 'thorn': ch = String.fromCharCode(0x00fe); break;
                                    case 'yuml': ch = String.fromCharCode(0x00ff); break;
                                    case 'OElig': ch = String.fromCharCode(0x0152); break;
                                    case 'oelig': ch = String.fromCharCode(0x0153); break;
                                    case 'Scaron': ch = String.fromCharCode(0x0160); break;
                                    case 'scaron': ch = String.fromCharCode(0x0161); break;
                                    case 'Yuml': ch = String.fromCharCode(0x0178); break;
                                    case 'fnof': ch = String.fromCharCode(0x0192); break;
                                    case 'circ': ch = String.fromCharCode(0x02c6); break;
                                    case 'tilde': ch = String.fromCharCode(0x02dc); break;
                                    case 'Alpha': ch = String.fromCharCode(0x0391); break;
                                    case 'Beta': ch = String.fromCharCode(0x0392); break;
                                    case 'Gamma': ch = String.fromCharCode(0x0393); break;
                                    case 'Delta': ch = String.fromCharCode(0x0394); break;
                                    case 'Epsilon': ch = String.fromCharCode(0x0395); break;
                                    case 'Zeta': ch = String.fromCharCode(0x0396); break;
                                    case 'Eta': ch = String.fromCharCode(0x0397); break;
                                    case 'Theta': ch = String.fromCharCode(0x0398); break;
                                    case 'Iota': ch = String.fromCharCode(0x0399); break;
                                    case 'Kappa': ch = String.fromCharCode(0x039a); break;
                                    case 'Lambda': ch = String.fromCharCode(0x039b); break;
                                    case 'Mu': ch = String.fromCharCode(0x039c); break;
                                    case 'Nu': ch = String.fromCharCode(0x039d); break;
                                    case 'Xi': ch = String.fromCharCode(0x039e); break;
                                    case 'Omicron': ch = String.fromCharCode(0x039f); break;
                                    case 'Pi': ch = String.fromCharCode(0x03a0); break;
                                    case ' Rho ': ch = String.fromCharCode(0x03a1); break;
                                    case 'Sigma': ch = String.fromCharCode(0x03a3); break;
                                    case 'Tau': ch = String.fromCharCode(0x03a4); break;
                                    case 'Upsilon': ch = String.fromCharCode(0x03a5); break;
                                    case 'Phi': ch = String.fromCharCode(0x03a6); break;
                                    case 'Chi': ch = String.fromCharCode(0x03a7); break;
                                    case 'Psi': ch = String.fromCharCode(0x03a8); break;
                                    case 'Omega': ch = String.fromCharCode(0x03a9); break;
                                    case 'alpha': ch = String.fromCharCode(0x03b1); break;
                                    case 'beta': ch = String.fromCharCode(0x03b2); break;
                                    case 'gamma': ch = String.fromCharCode(0x03b3); break;
                                    case 'delta': ch = String.fromCharCode(0x03b4); break;
                                    case 'epsilon': ch = String.fromCharCode(0x03b5); break;
                                    case 'zeta': ch = String.fromCharCode(0x03b6); break;
                                    case 'eta': ch = String.fromCharCode(0x03b7); break;
                                    case 'theta': ch = String.fromCharCode(0x03b8); break;
                                    case 'iota': ch = String.fromCharCode(0x03b9); break;
                                    case 'kappa': ch = String.fromCharCode(0x03ba); break;
                                    case 'lambda': ch = String.fromCharCode(0x03bb); break;
                                    case 'mu': ch = String.fromCharCode(0x03bc); break;
                                    case 'nu': ch = String.fromCharCode(0x03bd); break;
                                    case 'xi': ch = String.fromCharCode(0x03be); break;
                                    case 'omicron': ch = String.fromCharCode(0x03bf); break;
                                    case 'pi': ch = String.fromCharCode(0x03c0); break;
                                    case 'rho': ch = String.fromCharCode(0x03c1); break;
                                    case 'sigmaf': ch = String.fromCharCode(0x03c2); break;
                                    case 'sigma': ch = String.fromCharCode(0x03c3); break;
                                    case 'tau': ch = String.fromCharCode(0x03c4); break;
                                    case 'upsilon': ch = String.fromCharCode(0x03c5); break;
                                    case 'phi': ch = String.fromCharCode(0x03c6); break;
                                    case 'chi': ch = String.fromCharCode(0x03c7); break;
                                    case 'psi': ch = String.fromCharCode(0x03c8); break;
                                    case 'omega': ch = String.fromCharCode(0x03c9); break;
                                    case 'thetasym': ch = String.fromCharCode(0x03d1); break;
                                    case 'upsih': ch = String.fromCharCode(0x03d2); break;
                                    case 'piv': ch = String.fromCharCode(0x03d6); break;
                                    case 'ensp': ch = String.fromCharCode(0x2002); break;
                                    case 'emsp': ch = String.fromCharCode(0x2003); break;
                                    case 'thinsp': ch = String.fromCharCode(0x2009); break;
                                    case 'zwnj': ch = String.fromCharCode(0x200c); break;
                                    case 'zwj': ch = String.fromCharCode(0x200d); break;
                                    case 'lrm': ch = String.fromCharCode(0x200e); break;
                                    case 'rlm': ch = String.fromCharCode(0x200f); break;
                                    case 'ndash': ch = String.fromCharCode(0x2013); break;
                                    case 'mdash': ch = String.fromCharCode(0x2014); break;
                                    case 'lsquo': ch = String.fromCharCode(0x2018); break;
                                    case 'rsquo': ch = String.fromCharCode(0x2019); break;
                                    case 'sbquo': ch = String.fromCharCode(0x201a); break;
                                    case 'ldquo': ch = String.fromCharCode(0x201c); break;
                                    case 'rdquo': ch = String.fromCharCode(0x201d); break;
                                    case 'bdquo': ch = String.fromCharCode(0x201e); break;
                                    case 'dagger': ch = String.fromCharCode(0x2020); break;
                                    case 'Dagger': ch = String.fromCharCode(0x2021); break;
                                    case 'bull': ch = String.fromCharCode(0x2022); break;
                                    case 'hellip': ch = String.fromCharCode(0x2026); break;
                                    case 'permil': ch = String.fromCharCode(0x2030); break;
                                    case 'prime': ch = String.fromCharCode(0x2032); break;
                                    case 'Prime': ch = String.fromCharCode(0x2033); break;
                                    case 'lsaquo': ch = String.fromCharCode(0x2039); break;
                                    case 'rsaquo': ch = String.fromCharCode(0x203a); break;
                                    case 'oline': ch = String.fromCharCode(0x203e); break;
                                    case 'frasl': ch = String.fromCharCode(0x2044); break;
                                    case 'euro': ch = String.fromCharCode(0x20ac); break;
                                    case 'image': ch = String.fromCharCode(0x2111); break;
                                    case 'weierp': ch = String.fromCharCode(0x2118); break;
                                    case 'real': ch = String.fromCharCode(0x211c); break;
                                    case 'trade': ch = String.fromCharCode(0x2122); break;
                                    case 'alefsym': ch = String.fromCharCode(0x2135); break;
                                    case 'larr': ch = String.fromCharCode(0x2190); break;
                                    case 'uarr': ch = String.fromCharCode(0x2191); break;
                                    case 'rarr': ch = String.fromCharCode(0x2192); break;
                                    case 'darr': ch = String.fromCharCode(0x2193); break;
                                    case 'harr': ch = String.fromCharCode(0x2194); break;
                                    case 'crarr': ch = String.fromCharCode(0x21b5); break;
                                    case 'lArr': ch = String.fromCharCode(0x21d0); break;
                                    case 'uArr': ch = String.fromCharCode(0x21d1); break;
                                    case 'rArr': ch = String.fromCharCode(0x21d2); break;
                                    case 'dArr': ch = String.fromCharCode(0x21d3); break;
                                    case 'hArr': ch = String.fromCharCode(0x21d4); break;
                                    case 'forall': ch = String.fromCharCode(0x2200); break;
                                    case 'part': ch = String.fromCharCode(0x2202); break;
                                    case 'exist': ch = String.fromCharCode(0x2203); break;
                                    case 'empty': ch = String.fromCharCode(0x2205); break;
                                    case 'nabla': ch = String.fromCharCode(0x2207); break;
                                    case 'isin': ch = String.fromCharCode(0x2208); break;
                                    case 'notin': ch = String.fromCharCode(0x2209); break;
                                    case 'ni': ch = String.fromCharCode(0x220b); break;
                                    case 'prod': ch = String.fromCharCode(0x220f); break;
                                    case 'sum': ch = String.fromCharCode(0x2211); break;
                                    case 'minus': ch = String.fromCharCode(0x2212); break;
                                    case 'lowast': ch = String.fromCharCode(0x2217); break;
                                    case 'radic': ch = String.fromCharCode(0x221a); break;
                                    case 'prop': ch = String.fromCharCode(0x221d); break;
                                    case 'infin': ch = String.fromCharCode(0x221e); break;
                                    case 'ang': ch = String.fromCharCode(0x2220); break;
                                    case 'and': ch = String.fromCharCode(0x2227); break;
                                    case 'or': ch = String.fromCharCode(0x2228); break;
                                    case 'cap': ch = String.fromCharCode(0x2229); break;
                                    case 'cup': ch = String.fromCharCode(0x222a); break;
                                    case 'int': ch = String.fromCharCode(0x222b); break;
                                    case 'there4': ch = String.fromCharCode(0x2234); break;
                                    case 'sim': ch = String.fromCharCode(0x223c); break;
                                    case 'cong': ch = String.fromCharCode(0x2245); break;
                                    case 'asymp': ch = String.fromCharCode(0x2248); break;
                                    case 'ne': ch = String.fromCharCode(0x2260); break;
                                    case 'equiv': ch = String.fromCharCode(0x2261); break;
                                    case 'le': ch = String.fromCharCode(0x2264); break;
                                    case 'ge': ch = String.fromCharCode(0x2265); break;
                                    case 'sub': ch = String.fromCharCode(0x2282); break;
                                    case 'sup': ch = String.fromCharCode(0x2283); break;
                                    case 'nsub': ch = String.fromCharCode(0x2284); break;
                                    case 'sube': ch = String.fromCharCode(0x2286); break;
                                    case 'supe': ch = String.fromCharCode(0x2287); break;
                                    case 'oplus': ch = String.fromCharCode(0x2295); break;
                                    case 'otimes': ch = String.fromCharCode(0x2297); break;
                                    case 'perp': ch = String.fromCharCode(0x22a5); break;
                                    case 'sdot': ch = String.fromCharCode(0x22c5); break;
                                    case 'lceil': ch = String.fromCharCode(0x2308); break;
                                    case 'rceil': ch = String.fromCharCode(0x2309); break;
                                    case 'lfloor': ch = String.fromCharCode(0x230a); break;
                                    case 'rfloor': ch = String.fromCharCode(0x230b); break;
                                    case 'lang': ch = String.fromCharCode(0x2329); break;
                                    case 'rang': ch = String.fromCharCode(0x232a); break;
                                    case 'loz': ch = String.fromCharCode(0x25ca); break;
                                    case 'spades': ch = String.fromCharCode(0x2660); break;
                                    case 'clubs': ch = String.fromCharCode(0x2663); break;
                                    case 'hearts': ch = String.fromCharCode(0x2665); break;
                                    case 'diams': ch = String.fromCharCode(0x2666); break;
                                    default: ch = ''; break;
                              }
                        }
                        i = semicolonIndex;
                  }
            }
            out += ch;
      }
      return out;
}

function SetValidatorMessage(validatorID, message)
{
   var validator = document.all ? document.all[validatorID] : document.getElementById(validatorID);
   validator.errormessage = message;
}

function resizeFlash(movie) {
    try
    {
       var movieObj = getFlashObj(movie);
       var width = movieObj.TGetProperty("/", 8);
       var height= movieObj.TGetProperty("/", 9);
	    movieObj.setAttribute("width", width);
	    movieObj.setAttribute("height", height);
      }
      catch (err)
      {}
}

function getFlashObj(movieName){
    if (navigator.appName.indexOf("Microsoft") != -1) {
        return window[movieName];
    }
    else {
      if(document[movieName].length != undefined){
          return document[movieName][1];
      }
        return document[movieName];
    }
}

function ajaxLogout()
{      
    var cookies = document.cookie;
    var req = getreq();
    req.onreadystatechange = function(){document.cookie = cookies;};
    req.open("HEAD", 'Login/silent_logout.aspx', true);
    req.send(null);
}

function ajaxLogoutInLogin()
{      
    var cookies = document.cookie;
    var req = getreq();
    req.onreadystatechange = function(){document.cookie = cookies;};
    req.open("HEAD", 'silent_logout.aspx', true);
    req.send(null);
}

// Conf Screen //
function setConfKey(hiddenElemID)
{
     var combos = document.getElementsByName('confKey');
     if(combos.length > 0)
     {
         var result = '';
         for(i=0; i < combos.length; i++)
         {
            result = result + combos[i].value;
         }
         document.getElementById(hiddenElemID).value = result;
     }
}

function setConfCard(hiddenElemID)
{
     var combos = document.getElementsByName('confCard');
     var result = '';
     for(i=0; i < combos.length; i++)
     {
        result = result + combos[i].value;
     }
     document.getElementById(hiddenElemID).value = result;
}

function nextFocus(nextElemID, currValue, maxLength)
{
    var elem = document.getElementById(nextElemID);
    if(elem && currValue.length == maxLength)
    {
        elem.focus();
    }
}
function initVKFields()
{
     var fields = document.getElementsByName('confKey');
     if(fields.length > 0)
     {
         for(i = fields.length-1; i >= 0; i--)
         {
            enableVirtualKeyboardOnField(fields[i].id);
         }
         fields[0].focus();
     }
     else
     {
         fields = document.getElementsByName('confCard');
         if(fields.length > 0)
         {
             for(i = fields.length-1; i >= 0; i--)
             {
                enableVirtualKeyboardOnField(fields[i].id);
             }
             fields[0].focus();
         }         
     }
}

function openDetail(url)
{
	newWindow = window.open(url,'','scrollbars=yes,menubar=no,height=650,width=800,resizable=yes,toolbar=no,location=no,status=no');return false;
	return false;
}

function openDetailWidthMaior(url)
{
	newWindow = window.open(url,'','scrollbars=yes,menubar=no,height=650,width=1024,resizable=yes,toolbar=no,location=no,status=no');return false;
	return false;
}

function sendDetailToTransaction(url)
{
    window.opener.location.href = url;
    window.close();
}

function openSurveyPreview(url)
{
	newWindow = window.open(url,'','scrollbars=yes,menubar=no,height=600,width=800,resizable=yes,toolbar=no,location=no,status=no');return false;
	return false;
}

function openSurveyPreviewWidthMaior(url)
{
	newWindow = window.open(url,'','scrollbars=yes,menubar=no,height=600,width=1024,resizable=yes,toolbar=no,location=no,status=no');return false;
	return false;
}

function DateTimeValidator(source, args)
{
    if(args.Value == "dd/mm/aaaa")
    {
        document.getElementById(source.controltovalidate).value = "";
        args.IsValid = true;
        return;
    }
    var date = args.Value.split('/');
    var day = date[0];
    var month = date[1];
    var year = date[2];

    var DateVal = month + "/" + day + "/" + year;
    var dt = new Date(DateVal);
    if(dt.getDate()!=day){
        args.IsValid = false;
        return;
    }else if(dt.getMonth()!=month-1){
        args.IsValid = false;
        return;
    }else if(dt.getFullYear()!=year){
        args.IsValid = false;
        return;
    }        
    args.IsValid = true;
}

function CheckListValidator(source, args)
{
    var lista = document.getElementById (args.Value);
    var chkLista = lista.getElementsByTagName("input");
    for(var i = 0; i < chkLista.length; i++)
    {  
        if(chkLista[i].checked)
        {
            args.IsValid = true;
            return;
        }
    }
    args.IsValid = false;

} 

// /ConfScreen //

function getEventTarget(e)
{
	var targ;
    e = e || window.event;
    targ = e.target || e.srcElement;
    if (targ.nodeType == 3) // defeat Safari bug
    {
        targ = targ.parentNode;
    }    
    return targ;
}


function cancelEvent(e)
{
    e = e || window.event;
    e.Cancel = true;
    return false;
}

// requires MicrosoftAjax.js
function AutoNumberFormat(evt)
{
   try
   {
        evt = evt || window.event;
        textBoxObj = getEventTarget(evt);

        var stringValue;
        stringValue = textBoxObj.value;

        stringValue = stringValue.replace(new RegExp(String.fromCharCode(160), 'g'), '');
        stringValue = stringValue.replace(/\./g, '');
        stringValue = '0000' + stringValue.replace(/\,/g, '');

        stringValue = stringValue.substring(0, stringValue.length - 2) + Sys.CultureInfo.CurrentCulture.numberFormat.CurrencyDecimalSeparator + stringValue.substring(stringValue.length - 2, stringValue.length)
            
        num = Number.parseLocale(stringValue);

        if(!isNaN(num))
        {
            textBoxObj.value = num.localeFormat('N2');
        }
   }
   catch (err)
   {
   }
}

function ButtonDropDown(elem, valor)
{
    try
    {
        if(elem != null)
        {
            var elemSelect = elem.selectedIndex;
            // valor = 0 -> Up
            if(valor == 0)
            {
                if( elemSelect != 0)
                {
                    elem.selectedIndex = elemSelect - 1;
                    try
                    {
                        if(document.dispatchEvent) { // W3C
                            var oEvent = document.createEvent( "HTMLEvents" );
                            oEvent.initEvent("change", true, true);
                            elem.dispatchEvent( oEvent );
                        }
                        else if(document.fireEvent) { // IE
                            elem.fireEvent("onchange");
                        }
                    }
                    catch(err)
                    {
                    }
                }
            }
            else
            {
                // valor = 1 -> Down
                if(valor == 1)
                {
                    if( elemSelect != elem.length - 1)
                    {
                        elem.selectedIndex = elemSelect + 1;
                        try
                        {              
                            if(document.dispatchEvent) { // W3C
                                var oEvent = document.createEvent( "HTMLEvents" );
                                oEvent.initEvent("change", true, true);
                                elem.dispatchEvent( oEvent );
                            }
                            else if(document.fireEvent) { // IE
                                elem.fireEvent("onchange");
                            }
                        }
                        catch(err)
                        {
                        }
                    }
                }
            }
        }
    }
    catch(err)
    {
    }
}


