var msg_error = "";
var url_root = "";
function checknumber(numBox) 
{
	var check = new RegExp("^[0-9]{1,*}$");
	if(check.exec(numBox.value) == null)
	{
		msg_error+= numBox.title + " n'est pas valide.";
		setError(numBox);
		return false;
	}
	else
	{
		return true;
	}
}

function checkAnnee(annee)
{
	var check = new RegExp("^2[0-9]{3}$");
	if(check.exec(annee.value) == null)
	{
		msg_error+= annee.title + " n'est pas valide.";
		setError(annee);
		return false;
	}
	else
	{
		return true;
	}		
}

function checkMontant(montant)
{
	var check = new RegExp("^[0-9]{1,8}[.,]{0,1}[0-9]{0,2}$");
	if(check.exec(montant.value) == null)
	{
		msg_error+= montant.title + " n'est pas valide.";
		setError(montant);
		return false;
	}
	else
	{
		return true;
	}		
}

function remplace(expr,a,b) {
	var i=0
	while (i!=-1) {
	 i=expr.indexOf(a,i);
	 if (i>=0) {
		expr=expr.substring(0,i)+b+expr.substring(i+a.length);
		i+=b.length;
	 }
	}
	return expr;
}	

function checkEmailFormat(email)
{
	var check = new RegExp("^([a-zA-Z0-9_-])+([.]?[a-zA-Z0-9_-]{1,})*@([a-zA-Z0-9-_]{2,}[.])+[a-zA-Z]{2,4}$");
	return (check.exec(email) == null)?false:true;
}

function checkNameFormat(login)
{
	var check = new RegExp("^[a-zA-Z\']{2,*}$");
	return (check.exec(login) == null)?false:true;
}
function checkDateFormat(date) {
	//var RegExPattern = /^(?=\d)(?:(?:(?:(?:(?:0?[13578]|1[02])(\/|-|\.)31)\1|(?:(?:0?[1,3-9]|1[0-2])(\/|-|\.)(?:29|30)\2))(?:(?:1[6-9]|[2-9]\d)?\d{2})|(?:0?2(\/|-|\.)29\3(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))|(?:(?:0?[1-9])|(?:1[0-2]))(\/|-|\.)(?:0?[1-9]|1\d|2[0-8])\4(?:(?:1[6-9]|[2-9]\d)?\d{2}))($|\ (?=\d)))?(((0?[1-9]|1[012])(:[0-5]\d){0,2}(\ [AP]M))|([01]\d|2[0-3])(:[0-5]\d){1,2})?$/;
	var RegExPattern = /^((((0?[1-9]|[12]\d|3[01])[\.\-\/](0?[13578]|1[02])[\.\-\/]((1[6-9]|[2-9]\d)?\d{2}))|((0?[1-9]|[12]\d|30)[\.\-\/](0?[13456789]|1[012])[\.\-\/]((1[6-9]|[2-9]\d)?\d{2}))|((0?[1-9]|1\d|2[0-8])[\.\-\/]0?2[\.\-\/]((1[6-9]|[2-9]\d)?\d{2}))|(29[\.\-\/]0?2[\.\-\/]((1[6-9]|[2-9]\d)?(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00)|00)))|(((0[1-9]|[12]\d|3[01])(0[13578]|1[02])((1[6-9]|[2-9]\d)?\d{2}))|((0[1-9]|[12]\d|30)(0[13456789]|1[012])((1[6-9]|[2-9]\d)?\d{2}))|((0[1-9]|1\d|2[0-8])02((1[6-9]|[2-9]\d)?\d{2}))|(2902((1[6-9]|[2-9]\d)?(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00)|00))))$/;
	if ((date.value.match(RegExPattern)) && (date.value!='')) 
	{
		return true;
	} 
	else 
	{
		msg_error+= date.title + " n'est pas valide.";
		setError(date);
		return false;
	}	
}
function checkRequiredInfos(RequiredElements)
{
	var flg = true;
	
	for (var i = 0; i < RequiredElements.length; i++)
	{
		if (Trim($F(RequiredElements[i])) == '')
		{
			setError(RequiredElements[i]);
			msg_error += $(RequiredElements[i]).title + " est un champs obligatoire. \n";
			flg = false;
		}
		else
		{
			clearError(RequiredElements[i]);
		}
	}
	return flg;
}

function setError(X)
{
	$(X).style.backgroundColor = "#ff8888";
}
function clearError(X)
{
	$(X).style.backgroundColor = "#ffffff";
}

function Trim(ori)
{
        while (ori.substring(0,1) == ' ')
        {
                ori = ori.substring(1, ori.length);
        }
        while (ori.substring(ori.length-1, ori.length) == ' ')
        {
                ori = ori.substring(0,ori.length-1);
        }
        return ori;
}

function loading()
{
	$A(document.getElementsByClassName('alphacube_buttons')).each(function(element) { element.innerHTML = "<img src='"+url_root+"/images/ajax-loader.gif' alt='Charger encour...' />";});
}

function unloading()
{
	$A(document.getElementsByClassName('alphacube_buttons')).each(function(element) { element.innerHTML = '<input value="Valider" onclick="Dialog.okCallback()" class="ok_button" type="button" /><input value="Retour" onclick="Dialog.cancelCallback()" class="cancel_button" type="button" />';});
}

function closeAllModalWindows() {
  Windows.closeAllModalWindows();
  return true;
}

function check_form_basic()
{
	var RequiredElements = $A();
	var i=0;
	$A($$('.must')).each(function(element){
		$A(element.select('select','input','textarea')).each(function(element1){
		RequiredElements[i] = element1;
		i++;
		});
	});
	if(checkRequiredInfos(RequiredElements))
	{
		return true;
	}
	else
	{
		alert(msg_error);
		msg_error = "";
		return false;
	}
}


function add(section)
{
	var html = $("div_add").innerHTML;
	$("div_add").innerHTML = "<img src='"+url_root+"/images/ajax-loader.gif' alt='Charger encour...' />";
	
	Dialog.confirm({url: url_root + "/" + section + "/add/", options: {method: 'get'}},
	{top: 50, width:800, className: "alphacube", okLabel: "Valider", cancelLabel:"Retour", 
		draggable:true,maximizable:true,minimizable:true,recenterAuto:false,destroyOnClose:true,closable:true,
		onOk: function(win){
				loading();
				$("MyForm").getInputs('text').each(function(element){$(element).observe('keydown', function(event){ clearError($(element)); });});
				$("MyForm").select('select').each(function(element){$(element).observe('change', function(event){ clearError($(element)); });});
				
				if(check_form()==true)
				{
					$("div_add").innerHTML = html;
					//for animation fckeditor
					if(section == "animation")
					{
						$("MyForm").submit();
					}
					else
					{
						$("MyForm").request({
					  		onComplete: afterValid
						});
					}
				}
				else unloading();
			},
		onCancel:function(win){$("div_add").innerHTML = html;}
	});
}

function edit(section, id) 
{
	var html = $("div_edit_" + id).innerHTML;
	$("div_edit_" + id).innerHTML = "<img src='"+url_root+"/images/ajax-loader.gif' alt='Charger encour...' />";
	
	Dialog.confirm({url: url_root + "/" + section + "/edit/id/"+id, options: {method: 'get'}},
	{top: 50, width:800, className: "alphacube", okLabel: "Valider", cancelLabel:"Retour", 
	draggable:true,maximizable:true,minimizable:true,recenterAuto:false,destroyOnClose:true,closable:true,
	onOk: function(win){
			loading();
			$("MyForm").getInputs('text').each(function(element){$(element).observe('keydown', function(event){ clearError($(element)); });});
			$("MyForm").select('select').each(function(element){$(element).observe('change', function(event){ clearError($(element)); });});
						
			if(check_form()==true)
			{
				$("div_edit_" + id).innerHTML = html;
				//for animation fckeditor
				if(section == "animation")
				{
					$("MyForm").submit();
				}
				else
				{
					$("MyForm").request({
				  		onComplete: afterValid
					});
				}
			}
			else unloading();
		},
	onCancel:function(win){$("div_edit_" + id).innerHTML = html;}
	})
}

function del(section, id, msg) 
{
	if(!msg) msg = "Voulez vous le(a) supprimer ?";
	Dialog.confirm(msg, 
	{top: 50,width:300, okLabel: "Oui", className: "alphacube", id: "mypopup", cancelLabel:"Non", 
	onOk:function(win) {
		loading();
		var param = "id=" + id + "&del=Yes";
		new Ajax.Request(url_root + "/" + section + "/delete/", {
		  method: 'post',
		  parameters : param,
		  onComplete: afterValid
		});
		}
	});
}

function afterValid(resultat)
{
	var res = eval('('+resultat.responseText+')');
	alert(res[1]); 
	unloading();
	if(res[0] == "OK")location.reload(true);
}

 /* 
  function show_modal() {
  	alert("ici");
    if($("overlay_modal"))
  		$("overlay_modal").style.display = "block";
  }*/
function changepass() 
{
	var html = $("info_user").innerHTML;
	$("info_user").innerHTML = "<img src='"+url_root+"/images/ajax-loader.gif' alt='Charger encour...' />";
	
	Dialog.confirm({url: url_root + "/user/changepass", options: {method: 'get'}},
	{top: 50, width:800, className: "alphacube", okLabel: "Valider", cancelLabel:"Retour", 
	draggable:true,maximizable:true,minimizable:true,recenterAuto:false,destroyOnClose:true,closable:true,
	onOk: function(win){
			loading();
			$("MyForm").getInputs('password').each(function(element){$(element).observe('keydown', function(event){ clearError($(element)); });});

			if(check_form_basic()==true)
			{
				$("info_user").innerHTML = html;
				$("MyForm").request({
				  onComplete: afterValid
				});
			}
			else unloading();
		},
	onCancel:function(win){$("info_user").innerHTML = html;}
	})
}

 
