﻿var dtCh= "-";
var minYear=1900;
var maxYear=2100;

function isInteger(s){
	var i;
    for (i = 0; i < s.length; i++){   
        // Check that current character is number.
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) return false;
    }
    // All characters are numbers.
    return true;
}

function stripCharsInBag(s, bag){
	var i;
    var returnString = "";
    // Search through string's characters one by one.
    // If character is not in bag, append to returnString.
    for (i = 0; i < s.length; i++){   
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }
    return returnString;
}

function daysInFebruary (year){
	// February has 29 days in any year evenly divisible by four,
    // EXCEPT for centurial years which are not also divisible by 400.
    return (((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28 );
}
function DaysArray(n) {
	for (var i = 1; i <= n; i++) {
		this[i] = 31
		if (i==4 || i==6 || i==9 || i==11) {this[i] = 30}
		if (i==2) {this[i] = 29}
   } 
   return this
}

function isDate(dtStr){
	var daysInMonth = DaysArray(12)
	var pos1=dtStr.indexOf(dtCh)
	var pos2=dtStr.indexOf(dtCh,pos1+1)
	var strMonth=dtStr.substring(0,pos1)
	var strDay=dtStr.substring(pos1+1,pos2)
	var strYear=dtStr.substring(pos2+1)
	strYr=strYear
	if (strDay.charAt(0)=="0" && strDay.length>1) strDay=strDay.substring(1)
	if (strMonth.charAt(0)=="0" && strMonth.length>1) strMonth=strMonth.substring(1)
	for (var i = 1; i <= 3; i++) {
		if (strYr.charAt(0)=="0" && strYr.length>1) strYr=strYr.substring(1)
	}
	month=parseInt(strMonth)
	day=parseInt(strDay)
	year=parseInt(strYr)
	if (pos1==-1 || pos2==-1){
		alert("A data introduzida é inválida.\nO formato deve ser dd-mm-aaaa.")
		return false
	}
	if (strMonth.length<1 || month<1 || month>12){
		alert("Introduza um mês válido.")
		return false
	}
	if (strDay.length<1 || day<1 || day>31 || (month==2 && day>daysInFebruary(year)) || day > daysInMonth[month]){
		alert("Introduza um dia válido.")
		return false
	}
	if (strYear.length != 4 || year==0 || year<minYear || year>maxYear){
		alert("Introduza um ano válido com 4 digitos entre "+minYear+" e "+maxYear)
		return false
	}
	if (dtStr.indexOf(dtCh,pos2+1)!=-1 || isInteger(stripCharsInBag(dtStr, dtCh))==false){
        alert('A data introduzida é inválida.\nO formato deve ser dd-mm-aaaa.');
		return false
	}
return true
}

function ValidateForm(){
	var dt=document.frmSample.txtDate
	if (isDate(dt.value)==false){
		dt.focus()
		return false
	}
    return true
 }

var req_id = "";

function windowOpen(url, nome, x, y, scroll, posx, posy)
{
    window.open(url, nome, 'top='+posx+'; left='+posy+'; toolbar=no; width='+x+'; height='+y+'; scrollbars='+scroll+';');
}

function verRelatorio()
{
    var data = document.getElementById("txtDataDecisao").value;
    if (data.length==10)
    { 
        var dataEn = data.substring(3,5)+'-'+data.substring(0,2)+'-'+data.substring(6,10);
        if (isDate(dataEn)) windowOpen("RelatorioDecisaoImpressao.aspx?Data="+data, 'Relatorio', 750, 475, 1);
    }
    else
    {
        alert('A data introduzida é inválida.\nO formato deve ser dd-mm-aaaa.');
    }
}

function verDetalhe()
{
    var table = document.form1.parentElement;  
    var rows = table.getElementsByTagName("tr");

    for(i = 3; i < rows.length-1; i++) 
    {
        if (document.getElementById("ctl01_ctl0"+i+"_chkSelect"))
            if (document.getElementById("ctl01_ctl0"+i+"_chkSelect").checked) windowOpen("RegistoDecisaoDetalhe.aspx?ID="+req_id, "Registo", 550, 547, 1);

        if (document.getElementById("ctl01_ctl"+i+"_chkSelect"))
            if (document.getElementById("ctl01_ctl"+i+"_chkSelect").checked) windowOpen("RegistoDecisaoDetalhe.aspx?ID="+req_id, "Registo", 550, 547, 1);
    }

    var check;
    for(i = 3; i < rows.length-1; i++) 
    {
        if (document.getElementById("ctl01_ctl0"+i+"_chkSelect"))
            if (document.getElementById("ctl01_ctl0"+i+"_chkSelect").checked) check=1;

        if (document.getElementById("ctl01_ctl"+i+"_chkSelect"))
            if (document.getElementById("ctl01_ctl"+i+"_chkSelect").checked) check=1;
    }
    if (check!=1) alert('É necessário seleccionar um registo.');
}

function abreRegisto(module, regID)
{
//    windowOpen('Editar'+module+'.aspx?ID='+regID+'', module, 550, 415, 1, 100, 100);
    location.href=module+'.aspx?ID='+regID;
}

function abreListaRegistos(module, id, select)
{
    windowOpen('Listar'+module+'.aspx?select='+select+'&id='+id+'', module, 550, 300, 1, 150, 150);
}

var rowSelIndex = -1;
      
function OnMouseOver(object, index)
{
    var table = object.parentElement;  
    var rows = table.getElementsByTagName("tr");

    if (table.getElementsByTagName("tr")[0].className == 'datagridPager') rows[index+2].className = "datagridOverItemStyle";
    if (table.getElementsByTagName("tr")[0].className != 'datagridPager') rows[index+1].className = "datagridOverItemStyle";
}

function OnMouseOut(object, index)
{
    var table = object.parentElement;  
    var rows = table.getElementsByTagName("tr");
                
    if (table.getElementsByTagName("tr")[0].className == 'datagridPager')
        j=1; // Com paginação
    else
        j=2; // Sem paginação

    for(i = 0; i < rows.length; i++){           
        if (rows[i].index != null)
        {
            if (j==1)
            {
                if(i % 2 == 0) 
                        rows[i].className = "datagridItem"; 
                else
                        rows[i].className = "datagridAltItem"; 
             }
             else
             {
                if(i % 2 == 0) 
                        rows[i].className = "datagridAltItem"; 
                else
                        rows[i].className = "datagridItem"; 
             }              

           if (document.getElementById("ctl01_ctl0"+(i+j)+"_chkSelect"))
                if (document.getElementById("ctl01_ctl0"+(i+j)+"_chkSelect").checked)
                    rows[i].className = "datagridSelectedItemStyle";

           if (document.getElementById("ctl01_ctl"+(i+j)+"_chkSelect"))
                if (document.getElementById("ctl01_ctl"+(i+j)+"_chkSelect").checked)
                    rows[i].className = "datagridSelectedItemStyle";

        }       
     }

}

function SelDatagridLine(object, index)
{                                   
    var table = object.parentElement;  
    var rows = table.getElementsByTagName("tr");   

    for(i = 0; i < rows.length; i++){           
        if (rows[i].index != null)
        {
            if (table.getElementsByTagName("tr")[0].className == 'datagridPager')
            {
                if(i % 2 == 0) 
                        rows[i].className = "datagridItem"; 
                else
                        rows[i].className = "datagridAltItem"; 
             }
             else
             {
                if(i % 2 == 0) 
                        rows[i].className = "datagridAltItem"; 
                else
                        rows[i].className = "datagridItem"; 
             }
        }
        
        if (document.getElementById("ctl01_ctl0"+(i+3)+"_chkSelect"))
            document.getElementById("ctl01_ctl0"+(i+3)+"_chkSelect").checked=false; 
        if (document.getElementById("ctl01_ctl"+(i+3)+"_chkSelect"))
            document.getElementById("ctl01_ctl"+(i+3)+"_chkSelect").checked=false      }

    if (table.getElementsByTagName("tr")[0].className == 'datagridPager') rows[index+2].className = "datagridSelectedItemStyle";
    if (table.getElementsByTagName("tr")[0].className != 'datagridPager') rows[index+1].className = "datagridSelectedItemStyle";

     if (document.getElementById("ctl01_ctl0" + (index + 3) + "_chkSelect"))
        document.getElementById("ctl01_ctl0" + (index + 3) + "_chkSelect").checked=true;

     if (document.getElementById("ctl01_ctl" + (index + 3) + "_chkSelect"))
        document.getElementById("ctl01_ctl" + (index + 3) + "_chkSelect").checked=true; 

     rowSelIndex = index;                 
     req_id = object.reqID;
 }
 
 function showhide(object1, object2)
 {
    if (document.getElementById(object2).style.display=="")
        document.getElementById(object2).style.display="none";
        
    if (document.getElementById(object2).style.display == "none")
    {
        document.getElementById(object1).src = "images/seta_cima.gif";
        document.getElementById(object2).style.display = "block";
    }
    else
    {
        document.getElementById(object1).src = "images/seta_baixo.gif";
        document.getElementById(object2).style.display = "none";
    }
        
 }
 
function selectAll()
{
    totalregistos = document.getElementById('ctl00_ContentPlaceHolder1_lblTotalRegistos').innerHTML;
    for (i=0; i<=totalregistos; i++)
    {
        if (document.getElementById('chkOnOff').value == '0')
        {
            if (document.getElementById(''+i+''))
            {
                document.getElementById(''+i+'').checked = 1;
                chkOnOff = '1';
            }
        }
        if (document.getElementById('chkOnOff').value == '1')
        {
            if (document.getElementById(''+i+''))
            {
                document.getElementById(''+i+'').checked = 0;
                chkOnOff = '0';
            }
        }
    }
    document.getElementById('chkOnOff').value = chkOnOff;
}

function deleteSelected(object)
{
    totalregistos = document.getElementById('ctl00_ContentPlaceHolder1_lblTotalRegistos').innerHTML;
    selectedRecords = "";

    for (i=0; i<=totalregistos; i++)
    {
        if (document.getElementById(''+i+''))
        {
            if (document.getElementById(''+i+'').checked==true)
            {
               selectedRecords = selectedRecords + document.getElementById(''+i+'').name + ",";
               }
        }
    }
    selectedRecords = selectedRecords.substring(0,selectedRecords.length-1);
    if (selectedRecords.length>0)
        location.href=object + '.aspx?IDs=' + selectedRecords + '&delete=1';
    else
        alert('Não existem registos seleccionados.');
}

function selectSelected(object, id, select)
{
    totalregistos = document.getElementById('ctl00_ContentPlaceHolder1_lblTotalRegistos').innerHTML;
    selectedRecords = "";

    for (i=0; i<=totalregistos; i++)
    {
        if (document.getElementById(''+i+''))
        {
            if (document.getElementById(''+i+'').checked==true)
               selectedRecords = selectedRecords + document.getElementById(''+i+'').name + ",";
        }
    }
    selectedRecords = selectedRecords.substring(0,selectedRecords.length-1);
    select=parseInt(select)+2;
    
    if ((selectedRecords.indexOf(',')>0) && (top.location.href.indexOf('Imagens')>0))
    {
        alert('É apenas possível seleccionar uma imagem.');
    }
    else
    {
        window.opener.document.getElementById('ctl00$ContentPlaceHolder1$txtIDImagem').value = selectedRecords;
        window.opener.document.forms[0].submit();
        window.close();        
    }
    
    if (selectedRecords.length>0)
        top.location.href='Listar'+object+'.aspx?select='+select+'&ids='+selectedRecords+'&id='+id+'';
    else
        alert('Não existem registos seleccionados.');
}

function selectSelectedDoc(object, id, select) {
    totalregistos = document.getElementById('ctl00_ContentPlaceHolder1_lblTotalRegistos').innerHTML;
    selectedRecords = "";

    for (i = 0; i <= totalregistos; i++) {
        if (document.getElementById('d' + i + '')) {
            if (document.getElementById('d' + i + '').checked == true)
                selectedRecords = selectedRecords + document.getElementById('d' + i + '').name + ",";
        }
    }
    selectedRecords = selectedRecords.substring(0, selectedRecords.length - 1);
    select = parseInt(select) + 2;

    if (selectedRecords.length > 0)
        top.location.href = object + '.aspx?select=' + select + '&ids=' + selectedRecords + '&id=' + id + '';
    else
        alert('Não existem registos seleccionados.');
}

function stopMarquee(object)
{
    document.getElementById(object).scrollAmount=0;
}

function startMarquee(object)
{
    document.getElementById(object).scrollAmount=2;
}