var _reg = new RegExp("[_]", "g");

function messageGlobal(style,msg) {
  if (msg!="") {
    $('ajaxMessageGlobal').className = 'message-'+style;
    new $('ajaxMessageGlobal').update(msg);
  } else {
    new $('ajaxMessageGlobal').update('&nbsp;');
    $('ajaxMessageGlobal').className = '';
  }
}

/* enregistrement d'un compte */
function refreshImgConfirm(e) {
  var random = Math.floor(Math.random()*1000);
  var src = $('imgConfirm').src;
  var file = src.substring(0, src.indexOf('?', 0));
  var args = src.toQueryParams();
  args['rnd'] = random;
  $('imgConfirm').src = file+'?'+$H(args).toQueryString();
}

function submitProfilForm(e) {
  $('messageAjaxTest').show();
  $('messageAjaxError').hide();
  var post = $('formProfil').serialize(true);
  Object.extend(post,{'action':'submit'});
	var myAjax = new Ajax.Request(_rootPath+'profil.php', {
		method: 'post',
		parameters: post,
		onComplete: function (xhr, json) {
      $('messageAjaxTest').hide();
      if (json.error > 0) $('messageAjaxError').show();
		  if (json.error > 9) {
		    messageGlobal('error',xhr.responseText);
		    return false;
		  } else if (json.error == 5) {
  		  eval(xhr.responseText);
        // reset  errorImg
        $$('#formProfil div.error').each(function reset(id) {
          $(id.id).hide();
        });
        error.each(function disp(pair) {
          if (pair.key == 'errorMsg') return;
          $(pair.key+'Error').update(pair.value);
          $(pair.key+'Error').show();
      	});
      	messageGlobal('error',error.get('errorMsg'));
      } else {
        window.location.href = xhr.responseText;
      }
	 }
  });
}


function submitLogin(e) {
  $('messageAjaxTest').show();
  $('messageAjaxError').hide();
  messageGlobal('','');
	var myAjax = new Ajax.Request(_rootPath+'login.php', {
		method: 'post',
		parameters: $('formLogin').serialize(true),
		onComplete: function (xhr, json) {
      $('messageAjaxTest').hide();
      if (json.error > 0) $('messageAjaxError').show();
		  if (json.error > 9) {
        messageGlobal('error',xhr.responseText);
		    return false;
      } else if (json.error == 5 ) {
  		  eval(xhr.responseText);
        // reset  error text
        $$('#formLogin div.error').each(function reset(id) {
          $(id.id).hide();
        });
        error.each(function disp(pair) {
          if (pair.key == 'errorMsg') return;
          $(pair.key+'Error').update(pair.value);
          $(pair.key+'Error').show();
      	});
      	messageGlobal('error',error.get('errorMsg'));
      } else {
        window.location.href = xhr.responseText;
      }
    }
  });
}

/* --- formulaire de compétences --- */
function submitCompForm(e) {
  $('messageAjaxTest').show();
  $('messageAjaxError').hide();
  var post = $('formComp').serialize(true);
  //Object.extend(post,{'action':'submit'});
	var myAjax = new Ajax.Request(_rootPath+'profil.php', {
		method: 'post',
		parameters: post,
		onComplete: function (xhr, json) {
      $('messageAjaxTest').hide();
      if (json.error > 0) $('messageAjaxError').show();
		  if (json.error > 9) {
		    messageGlobal('error',xhr.responseText);
		    return false;
		  } else if (json.error == 5) {
  		  eval(xhr.responseText);
        // reset  errorImg
        $$('#formComp div.error').each(function reset(id) {
          $(id.id).hide();
        });
        error.each(function disp(pair) {
          if (pair.key == 'errorMsg') return;
          $(pair.key+'Error').update(pair.value);
          $(pair.key+'Error').show();
      	});
      	messageGlobal('error',error.get('errorMsg'));
      } else {
        window.location.href = xhr.responseText;
      }
    }
  });
}

function compDelete(e) {
  if (confirm(_lang['askCompDel'])) {
    var reg = /comp_/;
    var id = null;
    // retrouve l'id de la compétence
    $(Event.element(e).id).ancestors().each(function(parent) {
      if (parent.nodeName == 'DIV' && reg.test(parent.id))
        id = parent.id;
        return true;
    });
    
    var reg = new RegExp("[_]", "g");
    var infos = id.split(reg);

  	var myAjax = new Ajax.Request(_rootPath+'profil.php', {
  		method: 'post',
  		postBody: $H({
  		  'mode': 'comp',
  		  'action': 'delete',
  		  'c':infos[1]
      }).toQueryString(),
  		onComplete: function (xhr, json) {
  		  if (json.error > 9) {
  		    messageGlobal('error',xhr.responseText);
  		    return false;
  		  } else {
          $(id).replace('');
          messageGlobal('valid',xhr.responseText);
        }
      }
    });
  }    
}

function compActive(e) {
  var id = Event.element(e).id;
  var infos = id.split(_reg);

	var myAjax = new Ajax.Request(_rootPath+'profil.php', {
		method: 'post',
		postBody: $H({
	  'mode'	: 'comp',
      'action'  : 'activ',
      'c'      : infos[1]
    }).toQueryString(),
		onComplete: function (xhr, json) {
			if (json.error == 0) {
        $(id).src=xhr.responseText;
			} else {
		    messageGlobal('error',xhr.responseText);
			}
		}
  });
}


function submitReplyForm() {
	var post = $('formReplyComp').serialize(true);
	var myAjax = new Ajax.Request(_rootPath+'privmsg.php', {
		method: 'post',
		parameters: post,
		onComplete: function (xhr, json) {
      	$('messageAjaxTest').hide();
     	if (json.error > 0) $('messageAjaxError').show();
		  if (json.error > 9) {
		    messageGlobal('error',xhr.responseText);
		    return false;
		  } else if (json.error == 5) {
  		  	eval(xhr.responseText);
        	$$('#replyForm div.error').each(function reset(id) {
          	$(id.id).hide();
          });
          error.each(function disp(pair) {
          $(pair.key+'Error').update(pair.value);
          $(pair.key+'Error').show();
        	});
     	} else {
       		window.location.href = xhr.responseText;
     	}
	 }
  });
}

function msgDelete(e) {
	if (confirm(_lang['askMsgDel'])) {
		
		var id = Event.element(e).id;
		var reg = new RegExp("[_]", "g");
		var infos = id.split(reg);
		var myAjax = new Ajax.Request(_rootPath+'privmsg.php', {
			method: 'post',
			postBody: $H({
			  'folder': 'del',
			  'm':infos[1]
		  }).toQueryString(),
			onComplete: function (xhr, json) {
			  if (json.error > 9) {
				  messageGlobal('error',xhr.responseText);
				return false;
			  } else {
				if (infos[2] == 'in') {
					messageGlobal('valid',xhr.responseText);
					window.location.href = _rootPath+'privmsg.php?folder=inbox';
				} else {
				 	$('row_'+infos[1]).replace('');
				 	messageGlobal('valid',xhr.responseText);
				}
			}
		  }
		});
	}
}

function submitNewMsg() {
	var post = $('formMsgNew').serialize(true);
	var myAjax = new Ajax.Request(_rootPath+'privmsg.php', {
		method: 'post',
		parameters: post,
		onComplete: function (xhr, json) {
      	$('messageAjaxTest').hide();
     	if (json.error > 0) $('messageAjaxError').show();
		  if (json.error > 9) {
		    messageGlobal('error',xhr.responseText);
		    return false;
		  } else if (json.error == 5) {
  		  	eval(xhr.responseText);
        	$$('#contentForm div.error').each(function reset(id) {
          	$(id.id).hide();
          });
          error.each(function disp(pair) {
          $(pair.key+'Error').update(pair.value);
          $(pair.key+'Error').show();
        	});
     	} else {
       		window.location.href = xhr.responseText;
     	}
	 }
  });
}

function verifPseudo(e) {
	var pseudo = Event.element(e).value;
	var myAjax = new Ajax.Request(_rootPath+'privmsg.php', {
		method: 'post',
		postBody: $H({
		  'folder': 'verifPseudo',
		  'pseudo':pseudo
	  }).toQueryString(),
		onComplete: function (xhr, json) {
		  if (json.error > 9) {
			messageGlobal('error',xhr.responseText);
			return false;
		  } else {
				$('destError').update(xhr.responseText);
		    $('destError').show();
		  }
    }
  });
}

function getSelectionId(text, li) {
  var infos = li.id.split(_reg);
  //alert(infos[1]);
  window.location.href = 'activites.php?a='+infos[1];
}

function validEnter(e) {
  var code = e.which || e.keyCode;
  var id = null;
  // retrouve l'id du formulaire
  $(Event.element(e).id).ancestors().each(function(parent) {
    if (parent.nodeName == 'FORM')
      id = parent.id;
      return true;
  });
  if (code == Event.KEY_RETURN) {
    window[_functionSubmit]();
  }
}



