// Editar Perfil

var DOM = YAHOO.util.Dom;
var EVT = YAHOO.util.Event;
var EVTP = YAHOO.util.EventProvider;
var XHR = YAHOO.util.Connect;

function showErro(id){
  erro = document.getElementById(id);
  erro.style.display = "block";  
}

function hideErro(id){
  erro = document.getElementById(id);
  erro.style.display = "none";  
}

function RenderTTFs()
{
  
  var h1s = document.getElementsByTagName('h1');
  for(var i = 0; i < h1s.length; i++){
    h1s[i].className = 'h1';
  }

  var h2s = document.getElementsByTagName('h2');
  for(var i = 0; i < h2s.length; i++){
    if(h2s[i].className == '')
      h2s[i].className = 'h2';
  }
  
  var h3s = document.getElementsByTagName('h3');
  for(var i = 0; i < h3s.length; i++){
    h3s[i].className = 'h3';
  }
  
  var h5s = document.getElementsByTagName('h5');
  for(var i = 0; i < h5s.length; i++){
    //h5s[i].className = 'h5';
  }
  
  DATAFUNCS.RenderFonts('contacto',{
   fontSize         : '18.75',
   backgroundColor  : 'FFFFFF',
   color            : '64B324',
   fontFile         : 'fonts/MYRIMM565600.TTF',
   transparent      : '1'
  });
  
  DATAFUNCS.RenderFonts('h1',{
   fontSize         : '18.75',
   backgroundColor  : 'FFFFFF',
   color            : '000000',
   fontFile         : 'fonts/MYRIMM565600.TTF',
   transparent      : '1'
  });
  
  DATAFUNCS.RenderFonts('h2',{
   fontSize         : '15',
   backgroundColor  : 'FFFFFF',
   color            : '333333',
   fontFile         : 'fonts/MM215600.TTF',
   transparent      : '1'
  });
  
  DATAFUNCS.RenderFonts('h2mail',{
   fontSize         : '14',
   backgroundColor  : 'FFFFFF',
   color            : '333333',
   fontFile         : 'fonts/MYRIMM565600.TTF',
   fontWeight       : 'bold',
   transparent      : '1'
  });
  
  DATAFUNCS.RenderFonts('h3',{
   fontSize         : '10.5',
   backgroundColor  : 'FFFFFF',
   color            : '9C9A9A',
   fontFile         : 'fonts/MYRIMM565600.TTF',
   fontWeight       : 'normal',
   transparent      : '1'
  });
  
  DATAFUNCS.RenderFonts('h5',{
   fontSize         : '12.75',
   backgroundColor  : 'FFFFFF',
   color            : '669B31',
   fontFile         : 'fonts/MYRIMM565600.TTF',
   transparent      : '1'
  });
  
  DATAFUNCS.RenderFonts('txt_vantagens_home',{
   fontSize         : '12',
   backgroundColor  : '95CB56',
   color            : '302F2E',
   fontFile         : 'fonts/MYRIMM565600.TTF',
   transparent      : '1'
  });
  
  DATAFUNCS.RenderFonts('subs',{
   fontSize         : '15',
   backgroundColor  : 'FFFFFF',
   color            : '64B324',
   fontFile         : 'fonts/MYRIMM565600.TTF',
   transparent      : '1'
  });
  
  DATAFUNCS.RenderFonts('subs2',{
   fontSize         : '15',
   backgroundColor  : 'FFFFFF',
   color            : '333333',
   fontFile         : 'fonts/MM215600.TTF',
   transparent      : '1'
  });
  
  DATAFUNCS.RenderFonts('txtValorPagar',{
   fontSize         : '12',
   backgroundColor  : 'FFFFFF',
   color            : '333333',
   fontFile         : 'fonts/MM215600.TTF',
   transparent      : '1'
  });
  
  DATAFUNCS.RenderFonts('hometxt',{
   fontSize         : '14',
   backgroundColor  : 'FFFFFF',
   color            : '669B31',
   fontFile         : 'fonts/MYRIM400600.TTF',
   fontWeight       : 'bold',
   transparent      : '1'
  });
  
}

function validate_form(_obj){

  	txt_err = "Preenchimento obrigatório.";
    ema_err = "E-mail incorrecto.";

  	var errors = false;
  	
  	DOM.getElementsByClassName(
  		'required',
  		'',
  		document.body,
  		function(e){

  			var _tag  = e.tagName;
  			var _type = e.getAttribute('type');
  			var _emai = e.getAttribute('email');

  			if(_tag == 'TEXTAREA' || _type == 'text' || _tag == 'SELECT'){
  
  				if(e.value == '' || e.value == txt_err){
  
  					e.style.border = '1px solid #FF0000';
  					e.style.color  = '#FF0000';
  					e.value = txt_err;
  					
  					EVT.addListener(e, "focus", function(){ e.value = ''; });
  					
  					if(errors == false) errors = true;
  					
  				} else {
  					e.style.border = '1px solid #CFD0D8';
  					e.style.color  = '#B3B3B3';
  				}
  				
  				if(_emai == 1){
  					if(verify_email(e.value) == false){
  						
  						e.style.border = '1px solid #FF0000';
  						e.style.color  = '#FF0000';
  						e.value = ema_err;
  						
  						EVT.addListener(e, "focus", function(){ e.value = ''; });
  						
  						if(errors == false) errors = true;
  						
  					} else {
  						e.style.border = '1px solid #CFD0D8';
  						e.style.color  = '#B3B3B3';
  					}
  				}
  				
  			} else if(_type == 'checkbox') {
  				
  				if(e.checked == false){
  					e.checked = true;
  					alert('Existem opções no formulário que foram activas.');
  					if(errors == false) errors = true;
  				}
  
  			} else if(_type == 'password') {
  			 
  			   if(document.getElementById('actualp') && e.id == 'actualp'){
  			     if(document.getElementById('actualp').value != document.getElementById('actual_pass').value){
  			       alert('A password actual introduzida não é igual à existente.');
  					   if(errors == false) errors = true;
             }
           }
           
           if(e.value == '' && e.id != 'actualp' && (document.getElementById('pass1').value == '' || document.getElementById('pass2').value == '')){
            alert('Preenchimento obrigatório dos campos de password');
            if(errors == false) errors = true;
           }
           
           if(e.id == 'pass2'){
            if(document.getElementById('pass1').value != document.getElementById('pass2').value){
              alert('As passwords não coincidem.');
              if(errors == false) errors = true;
            }
           }
  			 
        }

  		}
  		
  	);

  	if(errors == true){
  		return false;
  	} else {
  		return true;
  	}
  }

  function verify_email(_mail){

  	var status = false;
  	var emailRegEx = /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i;

  	if (_mail.search(emailRegEx) == -1) {
  		status = false;
  	} else {
  		status = true;
  	}

  	return status;

  }
  
  function verifyRegFields(obj){

    var cont = 0;
    
    var cont2 = 0;
    
    var cont3 = 0;
    
    var cont4 = 0;
    
    var objele = obj.elements;
    
    for(i = 0; i < objele.length; i++){
      
      var xs = objele[i].name.substring(0,1);

      if((objele[i].value == '' || objele[i].value == unescape(jstr[1]))  && xs == 'R' && !DOM.hasClass(objele[i], 'notrequired')){
      cont++;

       objele[i].style.border="1px solid #FF0000";
      
       objele[i].value=unescape(jstr[1]);
       
      if(document.getElementById('email2')!=undefined){
        objele[i].style.border="1px solid #FF0000";
      }
      
      }else if(xs == 'R' && (objele[i].value != '' || objele[i].value == unescape(jstr[1]) ) ){
      
      if(document.getElementById('email2')!=undefined){
        objele[i].style.border="none";
      }
      
      
      
      }
        
     if(document.getElementById('email2')!=undefined){
      if(objele[i].name == 'R[email][2]' && document.getElementById('email2').value != document.getElementById('email1').value)
        cont2++;
     }
    }
    
    if(document.getElementById('email1')){
      if (!(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,4})+$/.test(document.getElementById('email1').value))){
          //alert("Campo de e-mail incorrecto!")
          document.getElementById('email1').focus();
          document.getElementById('email1').value=unescape(jstr[2]);
          //document.getElementById('email1').style.background="#f0f0f0";
           document.getElementById('email1').style.border="1px solid #FF0000";

          return false;
      }else {
      // document.getElementById('email1').style.background="#FFFFFF";
      document.getElementById('email1').style.border="none";
      }
    }
    if(document.getElementById('email2')){
      if (!(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,4})+$/.test(document.getElementById('email2').value))){
          //alert("Campo de confirmação de e-mail incorrecto!")
          document.getElementById('email2').focus();
          document.getElementById('email2').value=unescape(jstr[3]);
         // document.getElementById('email2').style.background="#f0f0f0";
          document.getElementById('email2').style.border="1px solid #FF0000";

          return false;
      }else {
      //document.getElementById('email2').style.background="#FFFFFF";
      document.getElementById('email2').style.border="none";;
      }
    }
    
    if(profile_errors > 0){
      alert('O seu endereço de perfil não está correcto.')
      return false;
    }
    
    if(document.getElementById('conditions') && document.getElementById('conditions').checked==false){
    alert(unescape(jstr[6]));
    return false;
    }
    
    
    if(cont2 > 0){
      alert(unescape(jstr[5]));
      return false;
    }
    
    if(cont > 0){
      alert(unescape(jstr[4]));
      return false;
    } else {
      return true;
    }
  }
  
  function validateRecuperacao(frmObj){
    
    var errorcont = 0;
    var email = frmObj.email;
    var passw = frmObj.password;
    
    if(email)
      var valem = email.value;

    if(email){
    
      var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
    
      if (!filter.test(valem)){
          errorcont += 1;
          var strerror = unescape(jsonstr[2]);
          var elementfocus = email;
          email.style.border="1px solid #FF0000";
      }
      
    }
    
    if(passw)
      var valep = passw.value;

    if(passw){
    
      if (valep == '' || valep == 'password'){
          errorcont += 1;
          var strerror = unescape(jsonstr[26]);
          var elementfocus = passw;
          passw.style.border="1px solid #FF0000";
      }
      
    }

    if(errorcont == 0){
      return true;
    } else {
      alert(strerror);
      elementfocus.focus();
      return false;
    }
  
  }
  
  function sub_directorio(_obj){
    
    var _vt = document.getElementById('valor_total');

    if(_obj.checked == true){
      _vt.value = number_format((parseFloat(_vt.value) + 49), 2);
    } else {
      _vt.value = number_format((parseFloat(_vt.value) - 49), 2);
    }
    
    open_subscription();
    
  }
  
  function number_format(number, decimals, dec_point, thousands_sep) {
    // Formats a number with grouped thousands  
    // 
    // version: 1006.1915
    // discuss at: http://phpjs.org/functions/number_format    // +   original by: Jonas Raoni Soares Silva (http://www.jsfromhell.com)
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +     bugfix by: Michael White (http://getsprink.com)
    // +     bugfix by: Benjamin Lupton
    // +     bugfix by: Allan Jensen (http://www.winternet.no)    // +    revised by: Jonas Raoni Soares Silva (http://www.jsfromhell.com)
    // +     bugfix by: Howard Yeend
    // +    revised by: Luke Smith (http://lucassmith.name)
    // +     bugfix by: Diogo Resende
    // +     bugfix by: Rival    // +      input by: Kheang Hok Chin (http://www.distantia.ca/)
    // +   improved by: davook
    // +   improved by: Brett Zamir (http://brett-zamir.me)
    // +      input by: Jay Klehr
    // +   improved by: Brett Zamir (http://brett-zamir.me)    // +      input by: Amir Habibi (http://www.residence-mixte.com/)
    // +     bugfix by: Brett Zamir (http://brett-zamir.me)
    // +   improved by: Theriault
    // *     example 1: number_format(1234.56);
    // *     returns 1: '1,235'    // *     example 2: number_format(1234.56, 2, ',', ' ');
    // *     returns 2: '1 234,56'
    // *     example 3: number_format(1234.5678, 2, '.', '');
    // *     returns 3: '1234.57'
    // *     example 4: number_format(67, 2, ',', '.');    // *     returns 4: '67,00'
    // *     example 5: number_format(1000);
    // *     returns 5: '1,000'
    // *     example 6: number_format(67.311, 2);
    // *     returns 6: '67.31'    // *     example 7: number_format(1000.55, 1);
    // *     returns 7: '1,000.6'
    // *     example 8: number_format(67000, 5, ',', '.');
    // *     returns 8: '67.000,00000'
    // *     example 9: number_format(0.9, 0);    // *     returns 9: '1'
    // *    example 10: number_format('1.20', 2);
    // *    returns 10: '1.20'
    // *    example 11: number_format('1.20', 4);
    // *    returns 11: '1.2000'    // *    example 12: number_format('1.2000', 3);
    // *    returns 12: '1.200'
    var n = !isFinite(+number) ? 0 : +number, 
        prec = !isFinite(+decimals) ? 0 : Math.abs(decimals),
        sep = (typeof thousands_sep === 'undefined') ? ',' : thousands_sep,        dec = (typeof dec_point === 'undefined') ? '.' : dec_point,
        s = '',
        toFixedFix = function (n, prec) {
            var k = Math.pow(10, prec);
            return '' + Math.round(n * k) / k;        };
    // Fix for IE parseFloat(0.55).toFixed(0) = 0;
    s = (prec ? toFixedFix(n, prec) : '' + Math.round(n)).split('.');
    if (s[0].length > 3) {
        s[0] = s[0].replace(/\B(?=(?:\d{3})+(?!\d))/g, sep);    }
    if ((s[1] || '').length < prec) {
        s[1] = s[1] || '';
        s[1] += new Array(prec - s[1].length + 1).join('0');
    }    return s.join(dec);
}
  
  function sub_software(_obj, valor){
    
    var _vt = document.getElementById('valor_total');
    
    var _val = parseFloat(valor);
    
    if(_obj.checked == true){
      _vt.value = number_format((parseFloat(_vt.value) + _val), 2);
    } else {
      _vt.value = number_format((parseFloat(_vt.value) - _val), 2);
    }
    
    open_subscription();
    
  }
  
  function verify_app_selection(){
    
    var _d = document.getElementById('directorio');
    var _s = document.getElementById('software');
    
    if(_d.checked || _s.checked){
      return true;
    } else {
      return false;
    }
    
  }
  
  function open_subscription(){
    
    if(document.getElementById('subscribe_final')){
    
      if(verify_app_selection() == true){
        
        document.getElementById('subscribe_div').style.display = 'none';
        document.getElementById('subscribe_final').style.display = 'block';
        
      } else {
        
        document.getElementById('subscribe_div').style.display = 'block';
        document.getElementById('subscribe_final').style.display = 'none';
        
        alert("Tem de selecionar pelo menos 1 serviço para subscrição.");
      }

    }
    
  }
  
  function check_if_validate(){
    
    if(document.subscribe_service.reg_data[1].checked){
      return true;
    } else {
      return false;
    }
    
  }
  
  function constructSelect(myobj, val){
  
    var len = document.getElementById('newcolors').options.length;
    
    if(len > 1){
      for(i = 1; i <= len; i++){
        document.getElementById('newcolors').options[i] = null;
      }
    }
  
    for(i in myobj){
      if(unescape(i) == unescape(val)){
        var corobj = myobj[i][0];
        for(a in corobj){
          var len = document.getElementById('newcolors').options.length;
          document.getElementById('newcolors').options[len] = new Option(corobj[a], a);
        }
      }
    }
  
  
    
  }
  
  function xhr_request(xhr_file, xhr_params, xhr_type, xhr_success_call){

    var AjaxObject = {

    	handleSuccess: function(o){
    		if(typeof(xhr_success_call) == 'function')
		       xhr_success_call(o.responseText);
    	},
    
    	handleFailure: function(o){
    	 alert(o.statusText);
    	},
    
    	startRequest:function() {
    	  
    	  XHR.resetDefaultHeaders();
    	  XHR.initHeader('Content-Type', 'application/x-www-form-urlencoded; charset=ISO-8859-1');
    	  
        if(xhr_type == 'POST')
          XHR.asyncRequest('POST', xhr_file, callback, xhr_params);
        else if(xhr_type == 'GET')
          XHR.asyncRequest('GET', xhr_file + '?' + xhr_params, callback);

    	}
    
    };

    var callback =
    {
    	success:AjaxObject.handleSuccess,
    	failure:AjaxObject.handleFailure,
    	scope: AjaxObject
    };

    AjaxObject.startRequest();

  }
  
  function selectDistrito(myobj){
    
    xhr_request('gest/siterequests/showcities.php', 'distrito=' + myobj.value, 'POST',

      function(response)
      {
        var _obj = eval('(' + response + ')');
        var _cityel = document.getElementById('cidade');
        var len = _cityel.options.length;

        var i;        
        for (i = len - 1; i >= 0; i--) {
          _cityel.remove(i);
        }
        
        if(_obj.cities.length == 0){
          _cityel.options[0] = new Option('Seleccione a cidade', '');
        }
        
        for(i = 0; i < _obj.cities.length; i++){
  
          var len = _cityel.options.length;
          _cityel.options[len] = new Option(_obj.cities[i].city, _obj.cities[i].id);

        }
        
      }

    );
    
  }
  
  function selectDistrito2(myobj){
    
    xhr_request('gest/siterequests/showcities.php', 'distrito=' + myobj.value, 'POST',

      function(response)
      {
        var _obj = eval('(' + response + ')');
        var _cityel = document.getElementById('cidade');
        var len = _cityel.options.length;

        var i;        
        for (i = len - 1; i >= 0; i--) {
          _cityel.remove(i);
        }
        
        _cityel.options[0] = new Option('Seleccione a cidade', '');
        
        for(i = 0; i < _obj.cities.length; i++){
  
          var len = _cityel.options.length;
          _cityel.options[len] = new Option(_obj.cities[i].city, _obj.cities[i].id);

        }
        
      }

    );
    
  }
  
  function set_day(_obj){
    
    document.getElementById('ms').selectedIndex = 0;
    document.getElementById('me').selectedIndex = 0;
    document.getElementById('ts').selectedIndex = 0;
    document.getElementById('te').selectedIndex = 0;
    
  }
  
  function set_hour(_obj){
    
    var _frm = document.getElementById('frmGerais');
    var _day = document.getElementById('day');
    
    var _field = _day.value + _obj.name;
    document.getElementById(_field).value = _obj.value;
    
    if(_obj.name == 'ms' || _obj.name == 'me'){
      var _s = document.getElementById(_day.value + 'ms').value;
      var _e = document.getElementById(_day.value + 'me').value;
      if(_s != '' && _e != ''){
        
        var _s2 = _s.split('_');
        var _e2 = _e.split('_');
        
        document.getElementById(_day.value + 'mt').innerHTML = '<div class="thoras"><div style="padding-top: 5px">'+ _s2[0] +'h' + _s2[1] + ' - '+ _e2[0] +'h' + _e2[1] + '</div></div>';
      } else {
        document.getElementById(_day.value + 'mt').innerHTML = '';
      }
    } else {
      var _s = document.getElementById(_day.value + 'ts').value;
      var _e = document.getElementById(_day.value + 'te').value;
      if(_s != '' && _e != ''){
        
        var _s2 = _s.split('_');
        var _e2 = _e.split('_');
        
        document.getElementById(_day.value + 'tt').innerHTML = '<div class="thoras"><div style="padding-top: 5px">'+ _s2[0] +'h' + _s2[1] + ' - '+ _e2[0] +'h' + _e2[1] + '</div></div>';
      } else {
        document.getElementById(_day.value + 'tt').innerHTML = '';
      }
    }

  }
  
  function add_photo(obj){
    
    var objele = obj.elements;
    
    var next_id = 1;
    
    for(i = 0; i < objele.length; i++){
      if(objele[i].tagName == 'INPUT' && objele[i].type == 'file' && objele[i].name != 'user'){
        next_id++;
      }
    }
    
    var _t = document.createElement('div');
    _t.style.width = '520px';
    
    _t.innerHTML = '<table cellspacing="0" cellpadding="0" width="100%"><tr height="77"><td valign="top" style="padding-left: 20px"><p style="padding:20px 0 3px 0;">Carregue aqui a fotografia:</p><div><input type="file" name="'+next_id+'" class="inputFile_01"></div></td></tr><tr height="2"><td colspan="2" align="center"><div class="separadorGaleria" style="width:504px;"></div></td></tr></table>';
    
    var _ins = document.getElementById('add_photos');
    
    var _lst = DOM.getLastChild(_ins);
    if(!_lst)
      _ins.appendChild(_t);
    else
      DOM.insertAfter(_t, _lst);
    
  }
  
  function simulateChange() {
    var evt = document.createEvent("MouseEvents");
    evt.initMouseEvent("change", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
    var cb = document.getElementById("distrito"); 
    cb.dispatchEvent(evt);
  }

  function changeCity(valor){
    var _cid = document.getElementById('cidade');
    
    for(var i = 0; i < _cid.length; i++){
      if(_cid.options[i].value == valor){
        _cid.selectedIndex = i;
      }
    }
  }
  
  function load_local_data(_obj, json_data)
  {
    
    
     
    var _estb = document.getElementById('estabelecimento');
    var _dist = document.getElementById('distrito');
    var _obs = document.getElementById('observacoes');
    var _cid = document.getElementById('cidade');
    var _mor = document.getElementById('morada');
    var _tel = document.getElementById('tel');
    var _rml = document.getElementById('remove_local');
    
    if(_obj.value != ''){
      
      _rml.style.display = 'block';
      
      _estb.value = json_data[_obj.value].nome_estabelecimento;
      _dist.value = json_data[_obj.value].distrito;
      
      if(_dist.fireEvent)
        _dist.fireEvent('onchange');
      else
        simulateChange();
      
      window.setTimeout('changeCity('+json_data[_obj.value].cidade+')', 400);
      
      _obs.value = json_data[_obj.value].observacoes;
      _mor.value = json_data[_obj.value].morada;
      _tel.value = json_data[_obj.value].tel;
      
      var _days = json_data[_obj.value].dias;
    
      for(i in _days){
        
        if(_days[i].ms != 0 && _days[i].me != 0){
          
          var _s2 = _days[i].ms.split('_');
          var _e2 = _days[i].me.split('_');
          
          document.getElementById(i + 'ms').value = _days[i].ms;
          document.getElementById(i + 'me').value = _days[i].me;
          document.getElementById(i + 'mt').innerHTML = '<div class="thoras"><div style="padding-top: 5px">'+ _s2[0] +'h' + _s2[1] + ' - '+ _e2[0] +'h' + _e2[1] + '</div></div>';
        } else {
          document.getElementById(i + 'ms').value = '';
          document.getElementById(i + 'me').value = '';
          document.getElementById(i + 'mt').innerHTML = '';
        }
        
        if(_days[i].ts != 0 && _days[i].te != 0){
          
          var _s2 = _days[i].ts.split('_');
          var _e2 = _days[i].te.split('_');
          
          document.getElementById(i + 'ts').value = _days[i].ts;
          document.getElementById(i + 'te').value = _days[i].te;
          document.getElementById(i + 'tt').innerHTML = '<div class="thoras"><div style="padding-top: 5px">'+ _s2[0] +'h' + _s2[1] + ' - '+ _e2[0] +'h' + _e2[1] + '</div></div>';
        } else {
          document.getElementById(i + 'ts').value = '';
          document.getElementById(i + 'te').value = '';
          document.getElementById(i + 'tt').innerHTML = '';
        }
        
      }
      
    } else {
      
      _rml.style.display = 'none';
      
      _estb.value = '';
      _dist.value = '';
      
      if(_dist.fireEvent)
        _dist.fireEvent('onchange');
      else
        simulateChange();
      
      _obs.value = '';
      
      for(i = 1; i <= 5; i++){
        document.getElementById(i + 'mt').innerHTML = '';
        document.getElementById(i + 'tt').innerHTML = '';
      }
      
    }
    
  }
  
  function listener_login_form () {
    
    var frmlogin = document.getElementById('frmlogin');
    
    if(frmlogin){
      
      EVT.addListener (
        frmlogin,
        'submit',
        function (evt) {
          
          EVT.stopEvent(evt);
          
          var _email = frmlogin.email.value;
          var _passw = frmlogin.password.value;
          
          var xhr_file = frmlogin.action;
          var xhr_params = 'email=' + _email + '&password=' + _passw + '&remote=1';
          var xhr_type = 'POST';
          var xhr_success_call = function (response) {
            
            var _resp = response.split('--');
            
            if(_resp[1] == 'OK') {
              window.location.reload();
            } else if(_resp[1] == 'OKUTIL'){
              document.getElementById('frm_util').innerHTML = _resp[2];
              document.getElementById('frmapp2').submit();
            } else if(_resp[1] == 'GOPAC'){
              window.location=_resp[2];
            } else {
              alert('O código de utilizador ou a palavra-chave estão incorrectos. Tente novamente por favor.');
              EVT.stopEvent(evt);
            }

          }
          
          try {
            xhr_request(xhr_file, xhr_params, xhr_type, xhr_success_call);
          } catch(err) {
            EVT.stopEvent(evt);
          }
          
        },
        frmlogin,
        false
      )
      
      
      DOM.getElementsBy(
        function (e) {
          return (e.className == 'input') ? true : false;
        },
        'input',
        frmlogin,
        function (e) {
          
          var _val = e.value;
          
          EVT.addBlurListener(
            e,
            function (evt) {
              if(e.value == ''){ e.value = _val }
            },
            e,
            false
          )
          
          EVT.addFocusListener(
            e,
            function (evt) {
              if(e.value == _val){ e.value = '' }
            },
            e,
            false
          )
          
        }
      )
    }

  }
  
  function listener_profile_name () {
    
    var prof = document.getElementById('profile_name');
    var prof_img = document.getElementById('profile_image');
    
    if (prof && prof_img) {
      
      var errorimg = new Image(16,16);
      var okimg    = new Image(16,16);
      
      errorimg.src = 'sysimages/action_delete.gif';
      okimg.src    = 'sysimages/action_check.gif';
      
      var filter = /^\w+$/;
      if ( !filter.test(prof.value) ) {

        prof_img.innerHTML = '<img src="'+errorimg.src+'" />';
        
        profile_errors = 1;
        
      } else {
        
        var xhr_file = 'gest/siterequests/verify_profile_name.php';
        var xhr_params = 'name=' + prof.value;
        var xhr_type = 'POST';
        var xhr_success_call = function (response) {
          var _in = parseInt(response);
          if(_in > 0) {
            prof_img.innerHTML = '<img src="'+errorimg.src+'" />';
            profile_errors = 1;
          } else {
            prof_img.innerHTML = '<img src="'+okimg.src+'" />';
            profile_errors = 0;
          }
        }
        
        xhr_request(xhr_file, xhr_params, xhr_type, xhr_success_call);
      }
      
    }
    
  }
  
  EVT.onDOMReady ( function () { listener_login_form(); } );
