
function validate(type) {
    var ret = false;
    var confirmMessage="Tem a certeza que pretende remover este " + type + "?";
    if(window.confirm(confirmMessage)==true) {
        ret = true;
    }
    return ret;
}

function editField(type){
    var ret = false;
    var confirmMessage="Tem a certeza que pretende editar este " + type + "?";
    if(window.confirm(confirmMessage)==true) {
        ret = true;
    }
    return ret;
}

function delFields() {
    var ret = false;
    var confirmMessage="Tem a certeza que pretende limpar a informação presente nos campos?";
    if(window.confirm(confirmMessage)==true) {
        ret = true;
    }
    return ret;
}

function cancelNavigation() {
    var ret = false;
    var confirmMessage="Tem a certeza que pretende cancelar o seu registo?";
    if(window.confirm(confirmMessage)==true) {
        ret = true;
    }
    return ret;
}

function exitSite() {
    var ret = false;
    var confirmMessage="Tem a certeza que pretende sair?";
    if(window.confirm(confirmMessage)==true) {
        ret = true;
    }
    return ret;
}

function validateMessage(message) {
    var ret = false;
    var confirmMessage= message + "?";
    if(window.confirm(confirmMessage)==true) {
        ret = true;
    }
    return ret;
}


function getBrowserType(){

    var browserType;

    if (document.layers) {
        browserType = "nn4";
    }
    if (document.all) {
        browserType = "ie";
    }
    if (window.navigator.userAgent.toLowerCase().match("gecko")) {
        browserType= "gecko";
    }

    return browserType;
}

function isChecked(element){
    var objArray = document.getElementsByName(element);
    for (var c = 0; c < objArray.length; c++){
        if (objArray[c].checked){
            return true;
        }
    }
    return false;
}

function isChecked2(element, idx){
    var objArray = document.getElementsByName(element);
    if (objArray[idx].checked){
        return true;
    }
    return false;
}

function noEnter(e){
    var characterCode;
    if(e && e.which){
        e = e;
        characterCode = e.which;
    }
    else{
        e = event;
        characterCode = e.keyCode;
    }
    if(characterCode == 13){
        return false;
    }
    else{
        return true;
    }
}

 /*
  * Function do set the focus on a field
  */
function setFocus(elementID){

    elementID = "#" + elementID;

    try{
        if ($(elementID).length > 0){
            $(elementID).focus();
        }
    }catch(ex){
        //quiet exception
    }
}

function showComponent(element) {

    var browserType = getBrowserType();
    var s =  'document.getElementById("' + element + '")';
    var s2 = 'document.layers["' + element + '"]';
    if (browserType == "gecko" )
        document.poppedLayer =
        eval(s);
    else if (browserType == "ie")
        document.poppedLayer =
        eval(s);
    else
        document.poppedLayer =
        eval(s2);
    //document.poppedLayer.style.visibility = "visible";
    document.poppedLayer.style.display = 'inline';

}


function hideComponent(element) {
    var browserType = getBrowserType();
    var s =  'document.getElementById("' + element + '")';
    var s2 = 'document.layers["' + element + '"]';
    if (browserType == "gecko" )
        document.poppedLayer =
        eval(s);
    else if (browserType == "ie")
        document.poppedLayer =
        eval(s);
    else
        document.poppedLayer =
        eval(s2);
    //document.poppedLayer.style.visibility = "hidden";
    if (document.poppedLayer != null )
        document.poppedLayer.style.display = 'none';
}

function matchCharsDivisory(comp){
    var ret = false;
    var str = (window.opener.location).toString();
    var mainArray = str.split("/");
    var currentDivisory = mainArray[mainArray.length -1].split('_');
    if (currentDivisory[0] == comp){
        return true;
    }
    return ret;
}


function matchChars(str, comp){
    var ret = false;
    try{
        if (str.toString().search(comp) != -1){
            ret = true;
        }
    }catch(e){}
    return ret;
}

function buildQueryString(QSName,graphicElement){
    return QSName + '=' + document.getElementById(graphicElement).value;
}

function getElementValue(graphicElement){
    return  document.getElementById(graphicElement).value;
}

function popOpen(url) {
    var scr_w = screen.availWidth;
    var scr_h = screen.availHeight;
    var left  = (scr_w  - 500)/2;
    var top   = (scr_h - 500)/2;
    var attributes = 'status=yes,toolbar=no,resizable=yes,scrollbars=yes,left=' + left + ',top=' + top + ',screenX=0,screenY=0,width=' +600 + ',height=' + 450;
    var windowHandle = window.open(url,"",attributes);
    windowHandle.opener=self;
    windowHandle.focus();
}

function totalComponents(componentName){
    return document.getElementsByName(componentName).length;
}

function to_old_win(url) {
    window.opener.location.href = url;
    window.close();
}

function isEmpty(componentID){
    var ret = true;
    if (document.getElementById(componentID).value.length > 0){
        ret = false;
    }
    return ret;
}

function isNumeric(componentID){
    //var regExp = /\d/;
    //return regExp.test(document.getElementById(componentID).value);
    return !isNaN(document.getElementById(componentID).value);
}

function isNumericRegExp(componentID){
    var isInteger_re = /^\s*\d+\s*$/;
    return String(document.getElementById(componentID).value).search(isInteger_re) != -1 ;
}

function greaterThanZero(componentID){
    var ret = false;
    if (!isEmpty(componentID)){
        if (isNumeric(componentID)){
            return parseInt(document.getElementById(componentID).value) > 0;
        }
    }
    return ret;
}


function getCharsLeft(textField, countField, maxChars){
    try{
        if ( textField.value.length > maxChars){
            textField.value = textField.value.substring(0, maxChars);
        }else{
            countField.value = textField.value.length + '/' + maxChars;
        }
    }catch(e){
        countField.value = '';
    }
}


function SubjectSingularTypeON(){
    var subjectValue = document.getElementById('selSujeito').value.substring(1,2);
    if (subjectValue == 'C' ){
        hideComponent('singularType');
    }else{
        showComponent('singularType');
    }
}

function DisclaimerHipotecasController(){
    var mainFacto = document.getElementById('factoActC').value;
    if (mainFacto == "Aquisição com hipoteca(s) conexa(s) provisórias [art.º 92"
    || mainFacto == "Aquisição com hipoteca(s) conexa(s) definitivas"){
        showComponent('hipotecasDisclaimer');
    }else{
        hideComponent('hipotecasDisclaimer');
    }
}


/*Pode substituir o code target='_blank'*/
function openUpload(url){
    var windowHandler = window.open(url,"","location=1,status=1,scrollbars=1,width=100,height=100");
    windowHandler.moveTo(0,0);
}

/*Seleccionar Fraccções*/
function checkFraccoes(editarFraccaoID){

    /*id da linha na tabela a editar*/
    var idLinha = editarFraccaoID.split('-',2)[1];

    /*Obter tipo de browser*/
    var browserType = getBrowserType();

    /*Fracções Temporais - Ex: 1,2,3*/
    var fraccoesTemporais;

    var fraccaoAutonoma;

    /*
     *Cross Platform
     */
    if (browserType == 'ie'){

        /*Fraccao Autonoma*/
        fraccaoAutonoma =
        document.getElementById('FraccoesAutonomas-'+idLinha).innerText;

        /*Fraccoes Temporais*/
        fraccoesTemporais =
        document.getElementById('FraccoesTemporais-'+idLinha).innerText;

    }else{

        /*Fraccao Autonoma*/
        fraccaoAutonoma =
        document.getElementById('FraccoesAutonomas-'+idLinha).textContent;

        /*Fraccoes Temporais*/
        fraccoesTemporais =
        document.getElementById('FraccoesTemporais-'+idLinha).textContent;

    }

    /*This variable will hold the value of the F. Autonomas CheckBoxList*/
    var fraccaoAut;

    /*variable to iterate all Fraccoes Autonomas (cblFraccaoAutonoma)*/
    var idFracAut = 1;

    while (document.getElementById('cblFraccaoAutonoma-'+ idFracAut) != null){

        /* Catch the Fraccao Autonoma
         *
         * Ex: [0, A] -> 6 Chars
         */
        fraccaoAut =
        document.getElementById('cblFraccaoAutonoma-'+ idFracAut).value;

        /*
         * Transform into an Array for better manipulation.
         *
         * Ex:
         * [0] -> 0
         * [1] -> A
         */
        var fraccaoAutArray =
        fraccaoAut.substring(1,fraccaoAut.length-1).split(', ',2);
        
        /*alert(trim(fraccaoAutonoma,'') + " - " +fraccaoAutonoma.length + trim(fraccaoAutonoma,'').length);*/
        /*
         * If Fraccao Autonoma choosed by user match with the fraccao
         * inspected so check her respective checkbox.
         *
         * Ex: B == B
         */
        if (trim(fraccaoAutonoma,'') == fraccaoAutArray[1]){

            /*Load Respective Fraccoes Temporais*/
            ajaxFunction(fraccaoAut,'SelFraccoes_getFraccoesTemporaisList.action');

            /*
             *Let's uncheck all ComboBoxes
             */
            unckeckAllCBX('cblFraccaoAutonoma');

            /*Instruction to check
             *
             *We have to iterate more one because id numberation of the objects
             *is 1 based
             */
            document.getElementById(
            'cblFraccaoAutonoma-'+(parseInt(fraccaoAutArray[0])+1)).checked = true;

            /*Exit While*/
            break;
        }

        /*Increase the count*/
        idFracAut++;

    }

    /*
    DEPRECATED. Comes on Ajax Call.
     */

    /*Obter array de Fracções Temporais*/
    /*var fraccoesTemporaisArray = fraccoesTemporais.split(',');*/

    /*Iterar Fraccoes Temporais e seleccionar as contempladas*/
    /*for (var i = 0;i < fraccoesTemporaisArray.length;i++){
        document.getElementById(
        'cblFraccaoTemporal-'+trim(fraccoesTemporaisArray[i],'')).checked = true;
    }*/
}

function howManyCheckedCBX(partialElementID){

    var elementCounter = 1;
    var elementsChecked = 0;

    while (document.getElementById(partialElementID + '-' + elementCounter) != null){

        if (document.getElementById(partialElementID + '-' + elementCounter).checked){
            elementsChecked ++;
        }

        elementCounter++;

    }

    return elementsChecked;
}

function getValueCheckedCBX(partialElementID){

    var elementCounter = 1;

    while (document.getElementById(partialElementID + '-' + elementCounter) != null){

        if (document.getElementById(partialElementID + '-' + elementCounter).checked){
            return document.getElementById(partialElementID + '-' + elementCounter).value;
        }

        elementCounter++;

    }

    return null;

}

function unckeckAllCBX(partialElementID){

    var ret = true;

    try{

        var elementCounter = 1;

        while (document.getElementById(partialElementID + '-' + elementCounter) != null){

            document.getElementById(partialElementID + '-' + elementCounter).checked = false;

            elementCounter++;
            
        }

    }catch(e){

        ret = false;
        
    }

    return ret;
}

/**
 *
 *  Javascript trim, ltrim, rtrim
 *  http://www.webtoolkit.info/
 *
 **/
function trim(str, chars) {
    return ltrim(rtrim(str, chars), chars);
}

function ltrim(str, chars) {
    chars = chars || "\\s";
    return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
}

function rtrim(str, chars) {
    chars = chars || "\\s";
    return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
}



