// JavaScript Document
//No enviar formulario al teclear ENTER
var ScriptDivName = "ScriptDiv";
var FormName = 0;

function pulsar(e) {
  tecla = (document.all) ? e.keyCode : e.which;
  return (tecla != 13);
}

//Determina que navegador se esta usando, IE o Moz
ie4 = (document.all)? true:false;
var ns4;
if(ie4==false)
	ns4=true;

//Array con los contenedores que se usaron para mostrar combos con AJAX
var DivObjArray = new Array();

//Funcion que checkea si el dato ingresado en el campo es válido
//Probablemente se pueda integrar a la función GetTextOptions
function CheckInputValue(InputObj,Check)
{
	//Check=1:Para devolver un texto con el error
	//Check=2:Para devolver js que pinte el campo con el error
	//Obs: cuando no se envía check es para retornar el combo
	
	InputName = InputObj.name;
	//Traigo los elementos asociados al campo
	if(InputName)
		Data = GetInputData(InputName);
	
	if(Data){
	if(Data.indexOf("-")!=-1)
	{
		Data = Data.split("-");
		DivName = Data[0];
		DivObj = document.getElementById(DivName);
		ErrorDivName = Data[2];
		ErrorDivObj = document.getElementById(ErrorDivName);
	}
	InputValue = InputObj.value;
	
	//Si es un campo donde puedan haber registros repetidos uso "< dato único >" para diferenciar la elección
	//Para estos casos es necesario quitar "< dato único >" para enviar el dato
	if(InputValue.indexOf("<")!=-1 && InputValue.indexOf(">")!=-1)
	{
		ValueArray = InputValue.split("<");
		InputValue = ValueArray[0];
	}
	
	//Si el contenedor esta vació continuo
	if(DivObj.innerHTML=="")
	{
		//Para mostrar todos los usuarios del grupo
		if(InputName=="ToUserName")
		{
			Url = "/messages/index.php?FieldName="+InputName+"&FieldValue="+InputValue+"&Ajax=1&Check="+Check;
		}
		
		//Si Check es 2 retorno js
		if(Check!=2)
			RefreshAjaxDiv(ErrorDivName, Url);
		else
		{
			RefreshAjaxDiv(ScriptDivName, Url);
		}
	}
	}
}

function GetTextOptions(Tecla,InputName,DivName,AjaxComboName)
{
		InputValue = document.forms[FormName][InputName].value;
		
		//alert("Campo: "+InputName);
		//alert("Valor: "+InputValue);
		//alert("Div: "+DivName);
		InputLength = InputValue.length;
		
		/*if(InputValue.indexOf(";")!=-1)
		{
			IVArray = InputValue.split(";");
			IVArrayLength = IVArray.length;
			InputValue = IVArray[IVArray.length-1];
			//alert(InputValue);
		}*/
		
		if(InputValue.indexOf("<")!=-1 && InputValue.indexOf(">")!=-1)
		{
			ValueArray = InputValue.split("<");
			InputValue = ValueArray[0];
		}
		
		DivObj = document.getElementById(DivName);
		//Si presione la flecha inferior
		if(Tecla=="40")
		{	
			if(DivObj.innerHTML=="")
			{
				if(InputName=="ToUserName")
				{
					GroupId = document.forms[FormName]["GroupId"].value;
					if(GroupId!=0 && GroupId!="")
						UrlStr="&GroupId="+GroupId;
					else
						UrlStr="";
					Url = "/messages/index.php?FieldName="+InputName+"&FieldValue="+InputValue+"&Ajax=1"+UrlStr;
				}
				
				//alert(Url);
				RefreshAjaxDiv(DivName, Url);
				//Guardo el contenedor en un array para luego poder cerrarlo
			}
			else
			{
				//Si el contenedor contiene algo hago foco en el combo
				AjaxComboObj = document.getElementById(AjaxComboName);
				AjaxComboObj.focus();
			}
		}
}

function GetInputData(InputName)
{
	//Relacion entre el campo de texto y los elementos usados para trabajar con AJAX
	//Data:'1-2-3-4'
	//		1=Id del contenedor(div) donde se carga el combo
	//		2=Id del combo con las opciones para ese campo
	//		3=Id del contenedor donde se muestra un error u otras opciones
	//			Ej:(En el caso de usuarios con el mismo nombre muestra un combo con las ci)	 
	//		4=Nombre del campo oculto donde guardo el id correspondiente al dato cargado en el campo
	switch (InputName)
	{
		case "ToUserName":
			Data = 'ToUserNameDiv-ToUserNameCombo-ToUserNameError-ToUser-QuickMsgForm';
		break;
	}
	
	return Data;
}

function pulsarTecla(evento) 
{
  		var Data = new String();
		var ActiveElementObj;
		
		if(ns4)
			Tecla = evento.charCode || evento.keyCode;
		else
			Tecla = event.keyCode; 
		
		InputName = "ToUserName";
		
		if(InputName)
			Data = GetInputData(InputName);
		
		if(Data)
		{
			if(Data.indexOf("-")!=-1)
			{
				Data = Data.split("-");
				DivName = Data[0];
				DivObj = document.getElementById(DivName);
				AjaxComboName = Data[1];
				if(Data[4])
					FormName = Data[4];
			}
			
			if(document.forms[FormName])
			{
				ActiveElementObj = document.forms[FormName]["ActiveElement"];
				if(ActiveElementObj)
					ActiveElement = ActiveElementObj.value;
			}
			
			if(ActiveElementObj)
			{
				//Si presione la flecha inferior
				if(Tecla=="40" && Tecla && InputName && DivName && AjaxComboName && ActiveElement==InputName)
				{
					InputObj = document.forms[FormName][InputName];
					//alert(InputName);
					if(InputObj)
						GetTextOptions(Tecla,InputName,DivName,AjaxComboName);
				}
		
				//Si presione ENTER o ESC
				if(Tecla=="13" || Tecla=="27")
				{	
					DivObj = document.getElementById("ToUserNameDiv");			
					if(DivObj)
						DivObj.innerHTML="";
				
					if(document.forms[FormName])
						InputObj = document.forms[FormName]["ToUserName"];
						//CheckInputValue(InputObj,1);
						//CheckInputValue(InputObj,2);
				}
		
			}
		}
}

function CleanHidden(InputValue,HiddenName,Error)
{
	//Si se borra el dato limpio el hidden asociado
	if(InputValue.length<1)
	{
		document.forms[FormName][HiddenName].value="";
	}
	if(Error==1)
		document.forms[FormName][HiddenName].value="";
}

function AjaxFieldError(InputName,WoR)
{
	//WoR=0 -> Error
	//Wor=1 -> OK
	if(WoR==0)
		document.forms[FormName][InputName].className = "FieldError";
	else
		document.forms[FormName][InputName].className = "FieldOk";
}

function AssignHiddenId(HiddenName,IdValue)
{
	document.forms[FormName][HiddenName].value = IdValue;
}

function ChangeInputDesc(InputName,AddString)
{
	InputObj = document.forms[FormName][InputName];
	InputValue = InputObj.value;
	
	if(InputValue.indexOf("<")!=-1 && InputValue.indexOf(">")!=-1)
	{
		ValueArray = InputValue.split("<");
		InputValue = ValueArray[0];
	}
	
	InputObj.value = InputValue+"<"+AddString+">";
}

/*function AddName(InputName,AddString)
{
	InputObj = document.forms[0][InputName];
	InputValue = InputObj.value;
	if(InputValue.indexOf(";")!=-1)
	{
		IVArray = InputValue.split(";");
		InputValue = IVArray[IVArray.length-1];
		for(i=0;i<IVArray.length-2;i++)
		{
			InputValue+=IVArray[i]+";";
		}
	}
	InputObj.value = InputValue+""+AddString;
}*/

function ValidateForm()
{
	AjaxFieldArray = new Array();
	AjaxFieldArray[0] = "ToUserName";
	
	Error = 0;
	//alert(Error);
	for(i=0;i<AjaxFieldArray.length;i++)
	{
		Data = GetInputData(AjaxFieldArray[i]);
		
		//alert(Data);
	
		if(Data)
		{
			if(Data.indexOf("-")!=-1)
			{
				Data = Data.split("-");
				HiddenName = Data[3];
				ErrorDivName = Data[2];
				ErrorDivObj = document.getElementById(ErrorDivName);
				
				//alert(ErrorDivName);
				if(ErrorDivObj)
				{
					if(ErrorDivObj.innerHTML!="")
					{
						//alert(ErrorDivObj.id);
						//alert(ErrorDivObj.innerHTML);
						//alert(ErrorDivObj.innerHTML.indexOf("<SELECT"));
						//alert(ErrorDivObj.innerHTML.indexOf("&nbsp;"));
						if(ErrorDivObj.innerHTML.indexOf("<SELECT")==-1)
						{
							if(ErrorDivObj.innerHTML.indexOf("&nbsp;")==-1)
								Error = 1;
						}
							
					}
				}
				
				//alert("Texto: "+document.forms[0][AjaxFieldArray[i]].value+"  "+" Valor: "+document.forms[0][HiddenName].value);
				if(document.forms[FormName][AjaxFieldArray[i]].value=="" && document.forms[FormName][HiddenName].value!="")
				{
					//alert("Error");
					Error = 1;
				}
			}
		}
	}
		
	if(Error==0)
	{
		//document.forms[0].submit();
		SendForm('QuickMsgForm','Q');
	}
	else
		alert("Hay datos mal ingresados");
}

function SetActiveElement(InputName, FormName)
{
	document.forms[FormName].ActiveElement.value=InputName;
}

function DelActiveElement(FormName)
{
	document.forms[FormName].ActiveElement.value='';
}

document.onkeydown = pulsarTecla;
if (ns4) document.captureEvents(Event.KEYDOWN);
