function S_xWindowPerguntasFrequentes(urlfaqs) {
	wfaqsheight = 400;
	varposy = 600;
	//varposy = document.getElementById('lnk_snirh_faqs').parentNode.offsetTop;

	var jq = $('#lnk_snirh_faqs');
	
	if(jq) {
		var position = jq.offset();
		varposy = position.top;		
	} else {
		varposy = document.getElementById('lnk_snirh_faqs').parentNode.offsetTop;
	}


	if(!dhxWins.window("wfaqs")) {
		w1 = dhxWins.createWindow("wfaqs",650,(varposy-wfaqsheight),500,wfaqsheight);
		w1.setText("Perguntas Frequentes");
		w1.attachURL("snirh/_pages/faqs.php?urlfaqs="+urlfaqs, true);
	}
}

function AnoHidrologico(mes,ano,formato) {
	// Devolve o ano hidrológico no formato (YYYY/YY ou outro)

	var anoh = new String();
	var saida = new String();

	if(mes >= 10) {
		anoh = ano + "/" + (ano+1).toString().substr(2,2);
	} else {
		anoh = (ano-1) + "/" + ano.toString().substr(2,2);
	}

	switch(formato) {
		case "YYYY/YY":
			saida = anoh;
		break;
		case "YYYYi":
			saida = anoh.substr(0,4);
		break;
		case "YYYYf":
			// Multiplicar por 1 para converter de string para número
			saida = anoh.substr(0,4) * 1 + 1;
		break;
	}

	return saida;
}

function ValidarData_OLD(dateStr) {
	// Valida as datas introduzidas
	var datePat = /^(\d{1,2})(\/|-)(\d{1,2})(\/|-)(\d{4})$/;
	var matchArray = dateStr.match(datePat); // is the format ok?
	
	if (matchArray == null) {
		alert("O formato da data deve ser DD/MM/YYYY ou DD-MM-YYYY.");
		return false;
	}
	
	day = matchArray[1]; // p@rse date into variables
	month = matchArray[3];
	year = matchArray[5];
	
	if (month < 1 || month > 12) { // check month range
		alert("O mês deve ser entre 1 e 12.");
		return false;
	}
	
	if (day < 1 || day > 31) {
		alert("O dia deve ser entre 1 e 31.");
		return false;
	}
	
	if ((month==4 || month==6 || month==9 || month==11) && day==31) {
		alert("O mês "+month+" não tem 31 dias!")
		return false;
	}
	
	if (month == 2) { // check for february 29th
		var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
			if (day > 29 || (day==29 && !isleap)) {
			alert("Fevereiro " + year + " não tem " + day + " dias!");
			return false;
		}
	}

	return true; // date is valid
}

function DataConsitenciaAntesDepois_OLD(antes,depois) {

	var datePat = /^(\d{1,2})(\/|-)(\d{1,2})(\/|-)(\d{4})$/;
	var matchArray_antes = antes.match(datePat); // is the format ok?
	var matchArray_depois = depois.match(datePat); // is the format ok?
	
	if (matchArray_antes == null || matchArray_depois == null) {
		alert("O formato da data deve ser DD/MM/YYYY ou DD-MM-YYYY.");
		return false;
	}
	
	var dataAntes = new Date();
	dataAntes.setYear(matchArray_antes[5]);
	dataAntes.setMonth( matchArray_antes[3]);
	dataAntes.setDate(matchArray_antes[1]);

	var dataDepois = new Date();
	dataDepois.setYear(matchArray_depois[5]);
	dataDepois.setMonth( matchArray_depois[3]);
	dataDepois.setDate(matchArray_depois[1]);
	
	var diff = dataDepois.getTime() - dataAntes.getTime();
	var dias = Math.floor(diff / (1000 * 60 * 60 * 24));
	
	if(dias >= 1) {
		return true;
	} else {
		alert("Inconsistência nas datas.")
		return false;
	}
}

function ContaDiasEntreDatas(data_de,data_a) {

	var dias = 0;

	var datePat = /^(\d{1,2})(\/|-)(\d{1,2})(\/|-)(\d{4})$/;
	var matchArray_data_de = data_de.match(datePat); // is the format ok?
	var matchArray_data_a = data_a.match(datePat); // is the format ok?
	
	if (matchArray_data_de == null || matchArray_data_a == null) {
		alert("O formato da data deve ser DD/MM/YYYY ou DD-MM-YYYY.");
		return false;
	}

	var dataDe = new Date();
	dataDe.setYear(matchArray_data_de[5]);
	dataDe.setMonth(matchArray_data_de[3]);
	dataDe.setDate(matchArray_data_de[1]);

	var dataA = new Date();
	dataA.setYear(matchArray_data_a[5]);
	dataA.setMonth(matchArray_data_a[3]);
	dataA.setDate(matchArray_data_a[1]);
	
	var diff = dataA.getTime() - dataDe.getTime();
	var dias = Math.floor(diff / (1000 * 60 * 60 * 24));
	
	return dias;
}

function printf(fstring) {
	/* Function printf(format_string,arguments...)
	 * Javascript emulation of the C printf function (modifiers and argument types 
	 *    "p" and "n" are not supported due to language restrictions)
	 *
	 * Copyright 2003 K&L Productions. All rights reserved
	 * http://www.klproductions.com 
	 *
	 ********************************************************************************/
	
	var pad = function(str,ch,len)
      { var ps='';
        for(var i=0; i<Math.abs(len); i++) ps+=ch;
        return len>0?str+ps:ps+str;
      }
    var processFlags = function(flags,width,rs,arg)
      { var pn = function(flags,arg,rs)
          { if(arg>=0)
              { if(flags.indexOf(' ')>=0) rs = ' ' + rs;
                else if(flags.indexOf('+')>=0) rs = '+' + rs;
              }
            else
                rs = '-' + rs;
            return rs;
          }
        var iWidth = parseInt(width,10);
        if(width.charAt(0) == '0')
          { var ec=0;
            if(flags.indexOf(' ')>=0 || flags.indexOf('+')>=0) ec++;
            if(rs.length<(iWidth-ec)) rs = pad(rs,'0',rs.length-(iWidth-ec));
            return pn(flags,arg,rs);
          }
        rs = pn(flags,arg,rs);
        if(rs.length<iWidth)
          { if(flags.indexOf('-')<0) rs = pad(rs,' ',rs.length-iWidth);
            else rs = pad(rs,' ',iWidth - rs.length);
          }    
        return rs;
      }
    var converters = new Array();
    converters['c'] = function(flags,width,precision,arg)
      { if(typeof(arg) == 'number') return String.fromCharCode(arg);
        if(typeof(arg) == 'string') return arg.charAt(0);
        return '';
      }
    converters['d'] = function(flags,width,precision,arg)
      { return converters['i'](flags,width,precision,arg); 
      }
    converters['u'] = function(flags,width,precision,arg)
      { return converters['i'](flags,width,precision,Math.abs(arg)); 
      }
    converters['i'] =  function(flags,width,precision,arg)
      { var iPrecision=parseInt(precision);
        var rs = ((Math.abs(arg)).toString().split('.'))[0];
        if(rs.length<iPrecision) rs=pad(rs,' ',iPrecision - rs.length);
        return processFlags(flags,width,rs,arg); 
      }
    converters['E'] = function(flags,width,precision,arg) 
      { return (converters['e'](flags,width,precision,arg)).toUpperCase();
      }
    converters['e'] =  function(flags,width,precision,arg)
      { iPrecision = parseInt(precision);
        if(isNaN(iPrecision)) iPrecision = 6;
        rs = (Math.abs(arg)).toExponential(iPrecision);
        if(rs.indexOf('.')<0 && flags.indexOf('#')>=0) rs = rs.replace(/^(.*)(e.*)$/,'$1.$2');
        return processFlags(flags,width,rs,arg);        
      }
    converters['f'] = function(flags,width,precision,arg)
      { iPrecision = parseInt(precision);
        if(isNaN(iPrecision)) iPrecision = 6;
        rs = (Math.abs(arg)).toFixed(iPrecision);
        if(rs.indexOf('.')<0 && flags.indexOf('#')>=0) rs = rs + '.';
        return processFlags(flags,width,rs,arg);
      }
    converters['G'] = function(flags,width,precision,arg)
      { return (converters['g'](flags,width,precision,arg)).toUpperCase();
      }
    converters['g'] = function(flags,width,precision,arg)
      { iPrecision = parseInt(precision);
        absArg = Math.abs(arg);
        rse = absArg.toExponential();
        rsf = absArg.toFixed(6);
        if(!isNaN(iPrecision))
          { rsep = absArg.toExponential(iPrecision);
            rse = rsep.length < rse.length ? rsep : rse;
            rsfp = absArg.toFixed(iPrecision);
            rsf = rsfp.length < rsf.length ? rsfp : rsf;
          }
        if(rse.indexOf('.')<0 && flags.indexOf('#')>=0) rse = rse.replace(/^(.*)(e.*)$/,'$1.$2');
        if(rsf.indexOf('.')<0 && flags.indexOf('#')>=0) rsf = rsf + '.';
        rs = rse.length<rsf.length ? rse : rsf;
        return processFlags(flags,width,rs,arg);        
      }  
    converters['o'] = function(flags,width,precision,arg)
      { var iPrecision=parseInt(precision);
        var rs = Math.round(Math.abs(arg)).toString(8);
        if(rs.length<iPrecision) rs=pad(rs,' ',iPrecision - rs.length);
        if(flags.indexOf('#')>=0) rs='0'+rs;
        return processFlags(flags,width,rs,arg); 
      }
    converters['X'] = function(flags,width,precision,arg)
      { return (converters['x'](flags,width,precision,arg)).toUpperCase();
      }
    converters['x'] = function(flags,width,precision,arg)
      { var iPrecision=parseInt(precision);
        arg = Math.abs(arg);
        var rs = Math.round(arg).toString(16);
        if(rs.length<iPrecision) rs=pad(rs,' ',iPrecision - rs.length);
        if(flags.indexOf('#')>=0) rs='0x'+rs;
        return processFlags(flags,width,rs,arg); 
      }
    converters['s'] = function(flags,width,precision,arg)
      { var iPrecision=parseInt(precision);
        var rs = arg;
        if(rs.length > iPrecision) rs = rs.substring(0,iPrecision);
        return processFlags(flags,width,rs,0);
      }
    farr = fstring.split('%');
    retstr = farr[0];
    fpRE = /^([-+ #]*)(\d*)\.?(\d*)([cdieEfFgGosuxX])(.*)$/;
    for(var i=1; i<farr.length; i++)
      { fps=fpRE.exec(farr[i]);
        if(!fps) continue;
        if(arguments[i]!=null) retstr+=converters[fps[4]](fps[1],fps[2],fps[3],arguments[i]);
        retstr += fps[5];
      }
    return retstr;
}

function BlinkIt() {
	if (!document.all) return;
 	else {
		for(i=0;i<document.all.tags('blink').length;i++){
			s=document.all.tags('blink')[i];
			s.style.visibility=(s.style.visibility=='visible')?'hidden':'visible';
		}
	}
}

function getCheckedValue(radioObj) {
	if(!radioObj)
		return "";
	var radioLength = radioObj.length;
	if(radioLength == undefined)
		if(radioObj.checked)
			return radioObj.value;
		else
			return "";
	for(var i = 0; i < radioLength; i++) {
		if(radioObj[i].checked) {
			return radioObj[i].value;
		}
	}
	return "";
}

function setCheckedValue(radioObj, newValue) {
	if(!radioObj)
		return;
	var radioLength = radioObj.length;
	//alert(radioLength);
	if(radioLength == undefined) {
		radioObj.checked = (radioObj.value == newValue.toString());
		return;
	}
	for(var i = 0; i < radioLength; i++) {
		radioObj[i].checked = false;
		if(radioObj[i].value == newValue.toString()) {
			radioObj[i].checked = true;
		}
	}
}

function ValidarEnderecoEmail(str) {
	//return (str.indexOf(".") > 2) && (str.indexOf("@") > 0);
	var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	return filter.test(str);
}

function S_Trim(texto) {
	// Trim
	return texto.replace(/\s+/g,'');
}

function S_ShowStuff(boxid){
   document.getElementById(boxid).style.display = "block";
}

function S_HideStuff(boxid){
   document.getElementById(boxid).style.display = "none";
}

function S_ShowHideStuffLike(showhide,obj,needle) {
	// obj stands for DIV, IMG,...
   var elems = document.getElementsByTagName(obj);
   for(var i=0; i<elems.length; i++) {
	   var divid = elems[i].id;
	   if(divid.indexOf(needle) > -1) {
		   if(showhide == 'show') {
		   	S_sHOWStuff(divid);
		   } else if(showhide == 'hide') {
		   	S_HideStuff(divid);
		   }
	   };
   }
}
