var prm;
var postbackElement;

function init() {
    prm = Sys.WebForms.PageRequestManager.getInstance();
    prm.add_initializeRequest(initializeRequest);
    prm.add_endRequest(endRequest);
}

function initializeRequest(sender, args) {
    if (prm.get_isInAsyncPostBack()) {
        //debugger
        args.set_cancel(true);
    }
}

function endRequest(sender, args)
{ }

function ChangeApplyButtonVisibility()
{
  var element = document.getElementById("BtApply");
  if(element != null) 
  {
    element.disabled = false;
    element.className = "bt_apply_edicao bt_apply_active";
  }
}

function CopyPosition(sourceId, targetId)
{
    var source = document.getElementById(sourceId);
    var target = document.getElementById(targetId);
    target.style.position = 'absolute';
    target.style.top = source.style.top;
    target.style.left = source.style.left;
    target.style.height = source.style.height;
    target.style.width = source.style.width;
    
    var aux = 'top[' + source.style.top + '] left[' + source.style.left + '] height[' + source.style.height + '] width[' + source.style.width + ']';
    alert(aux);
}

function MarkApply ()
{
  //MarkChanged();
  var imgapply = document.getElementById("ImgApply");
  imgapply.style.visibility = "visible";
  
  var divGlass = document.getElementById("glass");
  divGlass.style.visibility = "visible";
}

function MarkChanged() {
    var btapply = document.getElementById("EntEfectivos_btnGravar");
  btapply.disabled = false;
  btapply.className = 'bt_style_efectivos bt_style_efectivos_active';
}

function MarkUnChanged() {
    var btapply = document.getElementById("EntEfectivos_btnGravar");
    btapply.disabled = true;
    btapply.className = 'bt_style_efectivos bt_style_efectivos_inactive';
}

function showhideallowsave(state) {
    if (state) {
        alert("1" + state);
        document.getElementById("EntEfectivos_btnGravar").style.display = 'block';
        document.getElementById("chkAutorizarGravar").style.display = 'block';
        document.getElementById("lblAutorizarGravar").style.display = 'block';
        document.getElementById("EntEfectivos_btnGravar").disabled = true;
        document.getElementById("EntEfectivos_btnGravar").className = 'bt_style_efectivos bt_style_efectivos_inactive';
    }
    else {
        alert("2" + state);
        document.getElementById("EntEfectivos_btnGravar").style.display = 'none';
        document.getElementById("chkAutorizarGravar").style.display = 'none';
        document.getElementById("lblAutorizarGravar").style.display = 'none';
    }
}

function KeyIndexor(event,id)
{
  if(!event.shiftKey && !event.ctrlKey)
  {
    var keyCode = (typeof(event.which) !== 'undefined') ? event.which : event.keyCode;
    switch(event.type)
    {
      case 'keypress':
        if(isValidChar(keyCode))
        {
          //JV - MarkChanged();
          return true;
        }
        break;
        
      case 'keyup':
        if(keyCode >= 37 && keyCode <= 40) // arrows
        {
          Navigate(keyCode,id);
          return true;
        }
        break;
    }
  }
  
  return false;
}

function isValidChar(keyCode)
{
  return (keyCode >= 48 && keyCode <= 57) || //numbers & numpad
         (keyCode == 8);// || //backspace
         //(keyCode == 46); //delete (é o "." no evento KeyPress)
}

function Navigate(keyCode,id)
{
  var element = document.getElementById(id);
  if(element)
  {
    var visibleColumnCount = GetElementVisibleColumnCount(element) || 0;
    var dir = GetDirectionTabOffsetFromKeyCode(keyCode, visibleColumnCount);
    if(dir != null)
    {
      target = GetElementByTabIndex(element.tabIndex + dir);
      if(target)
      {
        try{ target.focus(); }catch(ex){ /* EAT THIS */ }
      }
    }
  }
}

function GetElementVisibleColumnCount(element)
{
  while(element)
  {
    var visibleColumnCount = element.getAttribute('_visibleColumnCount_');
    if(visibleColumnCount != null)
    {
      return parseFloat(visibleColumnCount);
    }
    
    element = element.parentNode;
  }
}

var g_elementsByTabIndex = null;

function GetElementByTabIndex(targetTabIndex)
{
  if(targetTabIndex > 0)
  {
    if(!g_elementsByTabIndex)
    {
      g_elementsByTabIndex = {};
      
      var allElements = document.all ? document.all : theForm.elements;
      for(var i = 0 ; i < allElements.length ; i++)
      {
        var elem = allElements[i];
        if(elem.tabIndex > 0)
        {
          var tabIndexKey = '_I' + elem.tabIndex;
          if(!(tabIndexKey in g_elementsByTabIndex))
          {
            g_elementsByTabIndex[tabIndexKey] = elem;
          }
        }
      }
    }
    
    var targetTabIndexKey = '_I' + targetTabIndex;
    
    return g_elementsByTabIndex[targetTabIndexKey];
  }
}

function GetDirectionTabOffsetFromKeyCode(keyCode, visibleColumnCount)
{
  var dir;
  
  switch(keyCode)
  {
    case 37: dir = "L"; break;
    case 38: dir = "U"; break;
    case 39: dir = "R"; break;
    case 40: dir = "D"; break;
  }
  
  if(dir) return GetDirectionTabOffset(dir, visibleColumnCount);
}

function GetDirectionTabOffset(dir, visibleColumnCount)
{
  switch(dir)
  {
    case "L": return -1;
    case "R": return +1;
    case "U": return -visibleColumnCount;
    case "D": return +visibleColumnCount;
  }
}

function SaveCurrentFocus()
{
  var elem = document.getElementById('__LASTFOCUS');
  
  if (elem && typeof(event.srcElement) !== 'undefined') 
    elem.value = event.srcElement.id;
}

//POPUPS
function OpenPopup(link,code)
{
  PopupGo(link + "?code=" + code);
}

function PopupGo(url)
{
  var args = 'width=802,resizable=yes,scrollbars=yes,toolbar=no,status=yes';
  var NewWindow = window.open(url, 'NewEditWindow', args);
  if (window.focus) NewWindow.focus();
}

function UpdateRowTotal(id)
{
	var index = id.lastIndexOf('_');
	var subId = id.substring(0, index);
	index = subId.lastIndexOf('_');
	subId = subId.substring(0, index);

	var inputElements = document.getElementsByTagName('input');	
	var total = 0;
	for(i = 0; i < inputElements.length; i++)
		if (inputElements[i].id.indexOf(subId) >= 0)
		{
			var value = inputElements[i].value;
			if(value == '') value = 0;
			total += parseInt(value);
		}


	var elementTotal = document.getElementById(id);
	elementTotal.firstChild.nodeValue = total;
}

function UpdateColTotal(id)
{
	var index = id.lastIndexOf('_');
	var subId = id.substring(0, index);
	index = subId.lastIndexOf('_');
	subId = subId.substring(index+1, subId.length);

	var inputElements = document.getElementsByTagName('input');	
	var total = 0;
	for(i = 0; i < inputElements.length; i++)
		if (inputElements[i].id.indexOf(subId) >= 0)
		{
			var value = inputElements[i].value;
			if(value == '') value = 0;
			total += parseInt(value);
		}


	var elementTotal = document.getElementById(id);
	elementTotal.firstChild.nodeValue = total;
}

function GetRowTotalId(id)
{
	var index = id.lastIndexOf('_');
	var subId = id.substring(0, index);
	var spanElements = document.getElementsByTagName('span');

	for(i = 0; i < spanElements.length; i++)
		if (spanElements[i].id.indexOf(subId) >= 0)
			return spanElements[i].id;

	return null;
}

function GetColTotalId(id)
{
	var index = id.lastIndexOf('_');
	var subId = id.substring(index, id.length);

	var spanElements = document.getElementsByTagName('span');

	for(i = 0; i < spanElements.length; i++)
		if (spanElements[i].id.indexOf(subId+'_total') >= 0)
			return spanElements[i].id;

	return null;
}


function GetCornerTotalId()
{
	var spanElements = document.getElementsByTagName('span');

	for(i = 0; i < spanElements.length; i++)
		if (spanElements[i].id.indexOf('total_total') >= 0)
			return spanElements[i].id;

	return null;
}


function UpdateCornerTotal(id)
{
	var index = id.lastIndexOf('_');
	var subId = id.substring(0, index);
	index = subId.lastIndexOf('_');
	subId = subId.substring(0, index);

	var inputElements = document.getElementsByTagName('input');	
	var total = 0;
	for(i = 0; i < inputElements.length; i++)
		if (inputElements[i].id.indexOf(subId) >= 0)
		{
			var value = inputElements[i].value;
			if(value == '') value = 0;
			total += parseInt(value);
		}


	var cornerTotalId = GetCornerTotalId();
	var elementTotal = document.getElementById(cornerTotalId);
	elementTotal.firstChild.nodeValue = total;
}


function UpdateTotals(id)
{
	var rowTotalId = GetRowTotalId(id);
	UpdateRowTotal(rowTotalId);

	var colTotalId = GetColTotalId(id);
	UpdateColTotal(colTotalId);

	UpdateCornerTotal(id);
}
