// Set Input Field --------------------

function setInputField(fieldElementId,sampleValue,defaultMsj,errorMsjWrongValue,msjCorrect){

  // Define elements
  var msjDisplayElement
  msjDisplayElement = document.getElementById(fieldElementId+"Msj");
  
  var fieldElement
  fieldElement = document.getElementById(fieldElementId);
  
  if(fieldElement.type!='hidden'){
	// Set the initial class and value for the empty form element and its related message element

	if (!msjDisplayElement.innerHTML) msjDisplayElement.innerHTML = defaultMsj;
	if (!msjDisplayElement.className) msjDisplayElement.className="empty";
	if (!fieldElement.value) fieldElement.value=sampleValue;
	if (!fieldElement.className) fieldElement.className="empty";
  
	// Generate the function to be executed onblur

    var functionBody;
  
    functionBody = "if(fieldElement.value != '' && fieldElement.value != sampleValue){";  
    functionBody += "var checkResult = checkValue(fieldElement.value,fieldElement.getAttribute('datatype'));";
    functionBody += "if (fieldElement.getAttribute('datatype').substr(0,8) == 'compare:' && document.getElementById(fieldElement.getAttribute('datatype').substr(8)).value != fieldElement.value) checkResult = false;";
    functionBody += "if(!checkResult){";
    functionBody += "msjDisplayElement.innerHTML = errorMsjWrongValue;";
    functionBody += "msjDisplayElement.className='error';";
    functionBody += "fieldElement.className='error';";
    functionBody += "}else{";
    functionBody += "msjDisplayElement.innerHTML = msjCorrect;";
    functionBody += "msjDisplayElement.className='correct';";
    functionBody += "fieldElement.className='correct';";
    functionBody += "fieldElement.value=checkResult;";
    functionBody += "}";
    functionBody += "}else{";
    functionBody += "msjDisplayElement.innerHTML = defaultMsj;";
    functionBody += "msjDisplayElement.className='empty';";
    functionBody += "fieldElement.value=sampleValue;";
    functionBody += "if (submitting==1){ fieldElement.value=''; }";
    functionBody += "fieldElement.className='empty';";
    functionBody += "}";

    eval("window." + fieldElementId + "Onblur = function(submitting){" + functionBody + "}");
    eval("window." + fieldElementId + "Onchange = function(submitting){" + functionBody + "}");

    // Set the onblur event to the element

    fieldElement.setAttribute("onblur", "window." + fieldElementId + "Onblur();");
    fieldElement.setAttribute("onchange", "window." + fieldElementId + "Onchange();");
    if(!(window.addEventListener)){
  	  fieldElement.attachEvent("onblur", window[fieldElementId+'Onblur']);
    }

	// Generate the function to be executed onfocus

  	functionBody = '';

  	functionBody = "if(fieldElement.value==sampleValue){";
	functionBody += "fieldElement.value = '';";
	functionBody += "}";
	functionBody += "fieldElement.className = 'focus';";
	functionBody += "msjDisplayElement.innerHTML = defaultMsj;";
  	functionBody += "msjDisplayElement.className = 'empty';";
	functionBody += "if (document.getElementById('"+fieldElementId+"').tagName!='SELECT') setTimeout(\"document.getElementById('"+fieldElementId+"').select()\",5);";

	eval("window." + fieldElement.id + "Onfocus = function(){" + functionBody + "}");

		// Set the onfocus event to the element

  	fieldElement.setAttribute("onfocus", "window." + fieldElementId + "Onfocus();");
	if(!(window.addEventListener)){
       fieldElement.attachEvent("onfocus", window[fieldElementId+'Onfocus']);
  	}
	
  } //	END  if(fieldElement.type!='hidden')
}


// Form Submit Function --------------------

function submitForm(formId){	
	var requiredFields = new Array();
	requiredFields = getElementsByAttribute(document.getElementById(formId), '*', 'required', true);	
	var i
	for (i=0; i<requiredFields.length; i++){
		window[requiredFields[i].id + "Onblur"]('1');
		if (requiredFields[i].className!="correct"){
			if (requiredFields[i].className!="error"){
				document.getElementById(requiredFields[i].id+"Msj").innerHTML = "Este campo debe ser completado";
				document.getElementById(requiredFields[i].id+"Msj").className='error';
				requiredFields[i].className='error';					
			}
			if (findPos(document.getElementById(formId))[0]<getPageScrollOffset()[0] || findPos(document.getElementById(formId))[1]<getPageScrollOffset()[1]){
        window.location.hash = new String((new Date().getMilliseconds()));
        window.location.hash = "#" + formId;
      }
			return false;
			break;
		}
	}
	return true;
}


// Set Submit Button --------------------

function setFormSubmit(formId){  

  document.getElementById(formId).setAttribute("onsubmit", "return submitForm('"+formId+"');");


  // Set events for IE
  
  if(!(window.addEventListener)){
	  
 
	  var functionBody
	  
  functionBody = "event.returnValue = submitForm('"+formId+"');";  
  eval("window." + formId + "Action = function(){" + functionBody + "}");  
  document.getElementById(formId).attachEvent("onsubmit",window[formId + "Action"]);

  }
}
