﻿/*
  File         : FormFields.js
  Company      : InterDev S.A.
  Creation Date: 2008-05-06
  Developer(s) : Nelson Rodriguez Caliz
  Summay       :
  History      : 1.0.0 Initial Release.
  
*/


function getFocusedElement() {
    // initialize function global reference to document
    // element that currently h(as)f(ocus)
    var hf;

    // IE uses activeElement
    if (document.activeElement)
        hf = document.activeElement;
    else
        hf = document.focusNode;  // Firefox uses focusNode

    return hf;
}

function TargetElementID(obj) {
    sR = "";

    if (obj) {
        if (obj.type) {
            switch (obj.type) {
                case "text":
                    sR = obj.id;
                    break;
            }
        }
    }

    if (sR == "") {
        if (TE_ID) {
            sR = TE_ID;
        }
    }

    return sR;
}

//
function findElement(id){
   if(document.getElementById){ 
      return document.getElementById(id);
   }else if(document.all){
      return document.all[id];
   }else if(document.layers){
      return document.layers[id];
   }else{
      return null;
   }
 }
 
 
 //
 //
function SetActiveField(sFieldName)
{
 elm = findElement(sFieldName);
 if (elm) {
   if (!elm.disabled)
   {
     elm.focus();
     return true;
   }
   else
   {
     return false;
   }
 }
}

//
function SetNextActiveField(sFieldName, bReStart)
{
  Campo = findElement(sFieldName);
  
  var Frm = Campo.form;
  var FrmLng = Frm.length;

  for (i=0; i<FrmLng; i++){
	Elem = Frm.elements[i].name;
	if (Elem == Campo.name){
      Num = i;
	  break;
	}
  }

  Num++;
	
  bMoved = false;
  if (Num <= FrmLng) {
	for (i=Num; i<FrmLng; i++) {
      if (Frm.elements[i].focus && Frm.elements[i].disabled != 'disabled' && !Frm.elements[i].disabled && Frm.elements[i].type != 'hidden' && Frm.elements[i].style.visibility!='hidden' && Frm.elements[i].style.display!='none' && Frm.elements[i].disabled!=true) {
	      try {
              Frm.elements[i].focus();
              bMoved = true;
              break;
          } catch (er) {  }
	  }
	}
  }
 
// return bMoved; 
 if (!bMoved && bReStart)
   SetNextActiveField(Frm.elements[0].name);
}


// Ejecuta la accion asociada a un cualquier otro control que posea metodo Click:
function Do_Action(sControlName) {
    try {
        ActionControl = findElement(sControlName);

        if (ActionControl) {
            ActionControl.focus();
            ActionControl.click(ActionControl);
            ActionControl.focus();
        }
    } catch (e) { }
}


//
function SetFieldValue(sFieldName, nFieldType, sValue)
{
  try {
      Obj = findElement(sFieldName);

      switch (nFieldType)
      {
        case 0: 
          Obj.value = sValue;
          break;
        case 1:
          Obj.innerHTML = sValue;
          break;      
      } 
  }
  catch (er) {}
}

//
function Chg(Campo){
	var Val = Campo.value;
	var Lng = Val.length;
	var Frm = Campo.form;
	var FrmLng = Frm.length;
	var MLng = Campo.maxLength;
	var Num;
	var Elem = "";
	//
	if (event.keyCode != 9 && event.keyCode != 37 && event.keyCode != 38 && event.keyCode != 39 && event.keyCode != 40 && event.keyCode != 46){
		for (i=0; i<FrmLng; i++){
			Elem = Frm.elements[i].name;
			if (Elem == Campo.name){
				Num = i;
				break;
			}
		}
		Num++;
		if((Lng == MLng && Frm.elements[Num]) && event.keyCode != 8) Frm.elements[Num].focus();
		//Frm.elements[Num].
	}
}


//
function checkAll(o, sNamePart, sTargetField) {
    bFound = o.checked ? "block" : "none";

    for (var i = 0; i < document.forms[0].elements.length; i++) {
        if ((document.forms[0].elements[i].type == "checkbox") && (document.forms[0].elements[i].id.indexOf(sNamePart) >= 0 ) ) {
            document.forms[0].elements[i].checked = o.checked;
        }
    }

    if (sTargetField) {
      obj = findElement(sTargetField);

      if (obj)
         obj.style.display = bFound;
    }
}

function VisibleByCheckboxState(sTargetField, sNamePart) {
  obj = findElement(sTargetField);

  if (obj) {
    bFound = "none";
    c = 0;

    for (var i = 0; i < document.forms[0].elements.length; i++) {
        if ((document.forms[0].elements[i].type == "checkbox") && (document.forms[0].elements[i].id.indexOf(sNamePart) >= 0) && (document.forms[0].elements[i].checked)) {
            c++;

            if (c > 1) {
                bFound = "block";
                break;
            }
        }
    }

    obj.style.display = bFound;
  }
}


//
function GCPage(pagerstatefield, pager, newpage) {
    hddContent = findElement(pagerstatefield);

    if (hddContent) {
        if (hddContent.value != newpage) {
            objCurPage = findElement(pager + hddContent.value);
            objNewPage = findElement(pager + newpage);

            if (objCurPage) {
                objCurPage.style.display = 'none';
                objNewPage.style.display = 'block';

                objCurPageItm = findElement(pager + "Itm" + hddContent.value);
                objNewPageItm = findElement(pager + "Itm" + newpage);

                objCurPageItm.className = 'Pager_Item';
                objNewPageItm.className = 'Pager_ItemCurrent';

                hddContent.value = newpage;

                scroll(0, 0);
            }
        }
    }
}

function VisibleHidden(TargetID, imgID) {
    obj = findElement(TargetID);

    if (obj) {
        obj.style.display = (obj.style.display == 'none' ? '' : 'none');

        objImg = findElement(imgID);

        if (objImg) {
            objImg.src = (obj.style.display == 'none' ? objImg.src.replace("minus.png", "plus.png") : objImg.src.replace("plus.png", "minus.png"));
        }
    }
}