/** 
* Arquivo de scripts utilizados para fazer validações do cadastro de usuários por AJAX.
* As as requisições são feitas em AJAX, o envio é por POST, e o formato de entrada é JSON.
* @author Alexandre Franco Marquez <afm.com@gmail.com> 
* @version 1.0 
* @copyright Copyright © 2007, Alexandre Franco Marquez. 
* @uses js/ajax.js
*/


var fileRequest     = '';
var idElemRequest   = '';
var idElemOkRequest = '';
var idElemAnimation = '';


function setFileRequest( file ) {
    fileRequest = file;
}


function setElemAnimation( idElem ) {
    idElemAnimation = idElem;
}


function verifCampo( parameters, idElem, useAnimation, idElemOk ) {
    
    idElemRequest   = idElem;
    idElemOkRequest = ( idElemOk == null ) ? '' : idElemOk;
    
    clearAviso( idElemRequest );
    clearAviso( idElemOkRequest );
    
    sendDataPostCadastro( parameters, 'verifRequestElem' );
    
    if ( useAnimation != null ) {
        if ( idElemAnimation.length <= 0 ) {
            setElemAnimation( idElem );
        }
        showAnimation();
    }
    
}


function verifCampoByFile( fileRequest, parameters, idElem, useAnimation, idElemOk ) {
    
    idElemRequest   = idElem;
    idElemOkRequest = ( idElemOk == null ) ? '' : idElemOk;
    
    clearAviso( idElemRequest );
    clearAviso( idElemOkRequest );
    
    sendDataPost( fileRequest, parameters, 'verifRequestElem' )
    
    if ( useAnimation != null ) {
        if ( idElemAnimation.length <= 0 ) {
            setElemAnimation( idElem, idElemOk );
        }
        showAnimation();
    }
    
}

function verifRequestElem() {
    verifRequest( idElemRequest, idElemOkRequest );
}

function verifRequest( idElem, idElemOk ) {
    if ( idElem == null || idElem.length <= 0 )
        return;
    var text = requestDataText();
    if ( text.length <= 0 )
        return;
    var Json = eval("("+text+")");
    clearAviso(idElem);
    hideAnimation();
    for (i=0; i<Json.ajax.length; i++) {
        addAviso( idElem, Json.ajax[i] );
    }
    if ( idElemOk == null || idElemOk == 'undefined' || idElemOk.length <= 0 )
        return;
    clearAviso(idElemOk);
    if ( Json.msg_ok == null || Json.msg_ok == 'undefined' || Json.msg_ok.length <= 0 ) {
        return;
    } else {
        addAviso( idElemOk, Json.msg_ok );
    }
}

function clearAviso( idElem ) {
    var elem = document.getElementById( idElem );
    if ( elem == null ) {
        return;
    }
    elem.innerHTML = '';
    showAviso( idElem, false );
}

function showAviso( idElem, show ) {
    var elem = document.getElementById( idElem );
    if ( elem == null ) {
        return;
    }
    var styleDisplay = ( show ? 'block' : 'none');
    elem.style.display = styleDisplay;
}

function addAviso( idElem, strAviso ) {
    var elem = document.getElementById( idElem );
    if ( elem == null ) {
        return;
    }
    showAviso( idElem, true );
    strAviso = ( strAviso == null ) ? '' : strAviso;
    elem.innerHTML += '<span>'+strAviso+'</span>';
}

function setAviso( idElem, show, strAviso ) {
    clearAviso( idElem );
    addAviso( idElem, strAviso );
    showAviso( idElem, true );
}

function showAnimation() {
    var elem = document.getElementById( idElemAnimation );
    if ( elem == null ) {
        return;
    }
    elem.style.display = 'block';
    elem.className     = 'ajax_loading_peq';
    
}

function hideAnimation() {
    var elem = document.getElementById( idElemAnimation );
    if ( elem == null ) {
        return;
    }
    elem.style.display = 'none';
    
}


function sendDataPostCadastro( parameters, functionName ) {
    sendDataPost( fileRequest, parameters, functionName );
}
