// Popup code
var gPopupMask = null;
var gPopupContainer = null;
var gPopFrame = null;
var gReturnFunc;
var gPopupIsShown = false;

var gHideSelects = false;


var gTabIndexes = new Array();
// Pre-defined list of tags we want to disable/enable tabbing into
var gTabbableTags = new Array("A","BUTTON","TEXTAREA","INPUT","IFRAME");

// If using Mozilla or Firefox, use Tab-key trap.
if (!document.all) {
	document.onkeypress = keyDownHandler;
}

function myEmptyCallback()
{


}

function get_xmlhttp() {
        try {
                xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
                try {
                        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
                } catch (E) {
                        xmlhttp = false;
                }
        }
        if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
                xmlhttp = new XMLHttpRequest();
        }
        return xmlhttp;
}

function isdefined( variable) {
    return (typeof(window[variable]) == "undefined")?  false: true;
}

// Function disabled because the function from MEXBRIT is more complete (Ismael Tarqui)30-11-2006
function ajax_init( ajax_server, div_container, values, callback )
{
	var objetus;

    objetus = get_xmlhttp();
    objetus.open ("GET", ajax_server + "?" + values, true);

    objetus.onreadystatechange=function() {
        if ( objetus.readyState == 1 )
        {
            document.getElementById(div_container).style.display = "";
            document.getElementById(div_container).innerHTML = "...";

        }
        else if ( objetus.readyState==4)
        {
            if( objetus.status==200)
            {
                document.getElementById(div_container).innerHTML = objetus.responseText;
                if ( callback != '' )
                  callback();
            }
            else
            {
                window.alert('error-['+ objetus.status +']-' + objetus.responseText );
            }
        }
    }
    objetus.send(null);
}

/* ajax_function
 * Envia una solicitud GET a ajax_server con la variables "function" y las definidas en parameters.
 * @author       David Callizaya <calidavidx21@hotmail.com>
 * @version 1.0
 * @package ajax
 * @param string ajax_server  url de la pagina servidor
 * @param string function     función solicitada en el lado del servidor
 * @param string parameters   variables pasadas por url. Ej. variable=valor&otravariable=suvalor
 */
function ajax_function(ajax_server, funcion, parameters, method)
{
    var objetus;
    objetus = get_xmlhttp();
    var response;
    try
    {
    	if (parameters) parameters = '&' + encodeURI(parameters);
    	if (!method ) method ="GET";
    	data = "action=" + funcion + parameters;
    	objetus.open( method, ajax_server + ((method==='GET')?('?'+data): '') , false);
      if (method==='POST') objetus.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
      objetus.send(((method==='GET')? null : data));
  	}catch(ss)
  	{
  		alert("error"+ss.message);
  	}
    return objetus.responseText;
}
/* ajax_message
 * Envia una solicitud GET a ajax_server con la variables "function" y las definidas en parameters.
 * @author       David Callizaya <calidavidx21@hotmail.com>
 * @version 1.0
 * @package ajax
 * @param string ajax_server  url de la pagina servidor
 * @param string function     función solicitada en el lado del servidor
 * @param string parameters   variables pasadas por url. Ej. variable=valor&otravariable=suvalor
 */
function ajax_message(ajax_server, funcion, parameters, method, callback)
{
    var objetus;
    objetus = get_xmlhttp();
    var response;
    try
    {
    	if (parameters) parameters = '&' + encodeURI(parameters);
    	if (!method ) method ="GET";
    	data = "action=" + funcion + parameters;
    	objetus.open( method, ajax_server + ((method==='GET')? '?'+data : '') , true );
      objetus.onreadystatechange=function() {
        if ( objetus.readyState==4)
        {
          if( objetus.status==200)
          {
              if ( callback ) callback(objetus.responseText);
          }
        }
      }
      if (method==='POST') objetus.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
      objetus.send(((method==='GET')? null : data));
  	}catch(ss)
  	{
  		alert("error"+ss.message);
  	}
}
/* ajax_post
 * Envia una solicitud GET/POST a ajax_server con los parametros definidos
 * o los campos de un formulario
 * @author       David Callizaya <calidavidx21@hotmail.com>
 * @version 1.0
 * @package ajax
 * @param string ajax_server  url de la pagina servidor
 * @param string function     función solicitada en el lado del servidor
 * @param string parameters   variables pasadas por url o formulario.
 * @example: ajax_post('foo.com', document.form[0], "POST", callback )
 */
function ajax_post(ajax_server, parameters, method, callback, asynchronous )
{
    var objetus;
    objetus = get_xmlhttp();
    var response;
    try
    {
      if (typeof(parameters)==='object') parameters = ajax_getForm(parameters);
    	if (!method ) method ="GET";
    	if (typeof(asynchronous)==='undefined') asynchronous = true;
    	data = parameters;
    	if (method==='GET/POST') {
    	  objetus.open( 'POST', ajax_server + ((data.length<1024)?('?'+data):''), asynchronous );
    	} else {
    	  objetus.open( method, ajax_server + ((method==='GET')? '?'+data : '') , asynchronous );
    	}
      objetus.onreadystatechange=function() {
        if ( objetus.readyState==4)
        {
          if( objetus.status==200)
          {
              if ( callback ) callback(objetus.responseText);
          }
        }
      }
      if ((method==='POST')||(method==='GET/POST')) objetus.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
      objetus.send(((method==='GET')? null : data));
    	if (!asynchronous) return objetus.responseText;
  	}catch(ss)
  	{
  		alert("Error: "+ var_dump(ss));
  	}
}
function ajax_getForm( thisform ) {
  var formdata='';
  // Loop through form fields
  for (var i=0; i < thisform.length; i++)
  {
    if ( formdata!=='' ) formdata = formdata + '&';
    //Build Send String
    if(thisform.elements[i].type == "text"){ //Handle Textbox's
      formdata = formdata + thisform.elements[i].name + "=" + escape(thisform.elements[i].value);
    }else if(thisform.elements[i].type == "textarea"){ //Handle textareas
      formdata = formdata + thisform.elements[i].name + "=" + escape(thisform.elements[i].value);
    }else if(thisform.elements[i].type == "checkbox"){ //Handle checkbox's
      if (thisform.elements[i].checked) formdata = formdata + thisform.elements[i].name + "=" + thisform.elements[i].value;
    }else if(thisform.elements[i].type == "radio"){ //Handle Radio buttons
      if(thisform.elements[i].checked==true){
         formdata = formdata + thisform.elements[i].name + "=" + thisform.elements[i].value;
      }
    }else if(thisform.elements[i].type == "select-multiple"){ //Handle list box
      for(var j=0; j<thisform.elements[i].options.length ;j++){
         if ( j!==0 ) formdata = formdata + '&';
         formdata = formdata + (
          (thisform.elements[i].options[j].selected)?
            thisform.elements[i].name + "=" + encodeURIComponent(thisform.elements[i].options[j].value)
            :''
          );
      }
    }else{
      //finally, this should theoretically this is a select box.
      formdata = formdata + thisform.elements[i].name + "=" + escape(thisform.elements[i].value);
    }
  }
  return formdata;
}
/* Loads a page in a div.
 * and execute the javascript node that it contains.
 */
function loadPage ( url, div, params )  {
  div.innerHTML=ajax_function(url,'',params);
  var myScripts = div.getElementsByTagName('SCRIPT');
  var scripts=[];
  for(var rr=0; rr<myScripts.length ; rr++) scripts.push(myScripts[rr].innerHTML);
  for(var rr=0; rr<scripts.length ; rr++){
    try {
      if (scripts[rr]!=='')
        if (window.execScript)
            window.execScript( scripts[rr], 'javascript' );
          else
            window.setTimeout( scripts[rr], 0 );
    } catch (e) {
      alert(e.description);
    }
  }
}

//Function Copied from Mexbrit (Ismael Tarqui)30-11-2006
/*
function ajax_init( ajax_server, div_container, values, callback, fldName)
{
	var objetus;
    objetus = get_xmlhttp();
    objetus.open ("GET", ajax_server + "?" + values, true);

    objetus.onreadystatechange=function() {
        if ( objetus.readyState == 1 )
        {
            document.getElementById(div_container).style.display = "";
            document.getElementById(div_container).innerHTML = "...";

        }
        else if ( objetus.readyState==4)
        {
            if( objetus.status==200)
            {
                document.getElementById(div_container).innerHTML = objetus.responseText;
                if ( fldName && callback == '' ) {
                   var control = document.getElementById( 'form[' + fldName + ']' );
                   if ( control.dependentFields ) onChangeDependents(fldName);
                }
                if ( callback != '' )
                  callback();
            }
            else
            {
                window.alert('error-['+ objetus.status +']-' + objetus.responseText );
            }
        }
    }
    objetus.send(null);
}*/

/* Function disabled because the function from MEXBRIT is more complete (Ismael Tarqui) - 30-11-2006
function ajax_init_2( ajax_server, div, values, callback )
{
	var objetus;
    objetus = get_xmlhttp();
    objetus.open ("GET", ajax_server + "?" + values, true);
    objetus.onreadystatechange=function() {
        if ( objetus.readyState == 1 )
        {
            //document.getElementById(div_container).style.display = "";
            //document.getElementById(div_container).innerHTML = "...";
            div.style.display = "";
            div.innerHTML = "...";
        }
        else if ( objetus.readyState==4)
        {
            if( objetus.status==200)
            {
                //document.getElementById(div_container).innerHTML = objetus.responseText;
                div.innerHTML = objetus.responseText;
                if ( callback != '' )
                  callback();
            }
            else
            {
                window.alert('error-['+ objetus.status +']-' + objetus.responseText );
            }
        }
    }
    objetus.send(null);
}
*/

// Function ajax_init2 copied from mexbrit because is more complete. (Ismael Tarqui) - 30-11-2006
function ajax_init2( ajax_server, div_container, values, callback, fldName)
{
	var objetus;
    objetus = get_xmlhttp();
    objetus.open ("GET", ajax_server + "?" + values, false);

    objetus.onreadystatechange=function() {
        if ( objetus.readyState == 1 )
        {
            document.getElementById(div_container).style.display = "";
            document.getElementById(div_container).innerHTML = "...";

        }
        else if ( objetus.readyState==4)
        {
            if( objetus.status==200)
            {
                document.getElementById(div_container).innerHTML = objetus.responseText;
                if ( fldName && callback == '' ) {
                   var control = document.getElementById( 'form[' + fldName + ']' );
                   if ( control.dependentFields ) onChangeDependents(fldName);
                }
                if ( callback != '' )
                  callback();
            }
            else
            {
                window.alert('error-['+ objetus.status +']-' + objetus.responseText );
            }
        }
    }
    objetus.send(null);
}

//// Function refillDropdown copied from mexbrit because is more complete. (Ismael Tarqui) - 30-11-2006
function refillDropdown( fldName, ajax_server, values )
{
	var objetus;
    objetus = get_xmlhttp();
    objetus.open ("GET", ajax_server + "?" + values, false);
    objetus.onreadystatechange=function() {
        if ( objetus.readyState == 1 )
        {
          var dropdown = document.getElementById( 'form[' + fldName + ']' );
          while ( dropdown.hasChildNodes() )
            dropdown.removeChild( dropdown.childNodes[0] );
        }
        else if ( objetus.readyState==4)
        {
            if( objetus.status==200)
            {
              var xmlDoc = objetus.responseXML;
              if ( xmlDoc ) {
                 var dropdown = document.getElementById( 'form[' + fldName + ']' );
                 var dataArray = xmlDoc.getElementsByTagName('item');
                 var unselected = 'yes';
                 for (var i=0; i<dataArray.length; i++){
                    dropdown.options[ dropdown.length] = new Option(dataArray[i].firstChild.xml, dataArray[i].attributes[0].value );
                    if (dataArray[i].attributes.length == 2) {
                      dropdown.options[ dropdown.length-1].selected = true;
                      unselected = 'no';
                    }
                 }
                 dropdown.unselected = unselected;
              }
            }
            else
            {
                window.alert('error-['+ objetus.status +']-' + objetus.responseText );
            }
        }
    }
    objetus.send(null);
}


//// Function refillText copied from mexbrit because is more complete. (Ismael Tarqui) - 30-11-2006
function refillText( fldName, ajax_server, values )
{
	var objetus;
    objetus = get_xmlhttp();
    objetus.open ("GET", ajax_server + "?" + values, false);
    objetus.onreadystatechange=function() {
        if ( objetus.readyState == 1 )
        {
          var textfield = document.getElementById( 'form[' + fldName + ']' );
          textfield.value = '';

        }
        else if ( objetus.readyState==4)
        {
            if( objetus.status==200)
            {
              var xmlDoc = objetus.responseXML;
              if ( xmlDoc ) {
                 var textfield = document.getElementById( 'form[' + fldName + ']' );
                 var dataArray = xmlDoc.getElementsByTagName('value');
                 textfield.value = dataArray[0].firstChild.xml;
              }
            }
            else
            {
                window.alert('error-['+ objetus.status +']-' + objetus.responseText );
            }
        }
    }
    objetus.send(null);
}

//// Function refillText copied from mexbrit because is more complete. (Ismael Tarqui) - 30-11-2006
function refillTextError( div_container, fldName, ajax_server, values, callback )
{
	var objetus;
    objetus = get_xmlhttp();
    objetus.open ("GET", ajax_server + "?" + values, false);
    objetus.onreadystatechange=function() {
        if ( objetus.readyState == 1 )
        {
          var textfield = document.getElementById( 'form[' + fldName + ']' );
          if ( ! textfield ) textfield = document.getElementById( fldName  );
          textfield.value = '';
          document.getElementById(div_container).innerHTML = '';

        }
        else if ( objetus.readyState==4)
        {
            if( objetus.status==200)
            {
              var xmlDoc = objetus.responseXML;
              if ( xmlDoc ) {
                 var textfield = document.getElementById( 'form[' + fldName + ']' );
                 if ( ! textfield ) textfield = document.getElementById( fldName  );

                 var dataArray = xmlDoc.getElementsByTagName('value');
                 textfield.value = dataArray[0].firstChild.xml;

                 var dataArray = xmlDoc.getElementsByTagName('message');
                 if ( dataArray[0].firstChild )
                   document.getElementById(div_container).innerHTML = '<b>' + dataArray[0].firstChild.xml + '</b>';
                 if ( callback != '' )
                   callback();

              }
            }
            else
            {
                window.alert('error-['+ objetus.status +']-' + objetus.responseText );
            }
        }
    }
    objetus.send(null);
}


//// Function ajax_empty copied from mexbrit because is more complete. (Ismael Tarqui) - 30-11-2006
function ajax_empty( div_container )
{
  if (document.getElementById(div_container) ) {
    document.getElementById(div_container).style.display = "";
    document.getElementById(div_container).innerHTML = "";
  }
}

function iframe_get_xmlhttp() {
  try {
    xmlhttp = new ActiveXObject('Msxml2.XMLHTTP');
  } catch (e) {
    try {
      xmlhttp = new ActiveXObject('Microsoft.XMLHTTP');
    } catch (E) {
      xmlhttp = false;
    }
  }
  if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
    xmlhttp = new XMLHttpRequest();
  }
  return xmlhttp;
}
/****/
var tgtg, tgtgDiv;
var dojo=
{
  io:{
    bind:function ( obj ){
      ajax_post( obj.url, obj.formNode , 'GET/POST', function (data) {
          if ( obj.load ) obj.load( 'ready' , data, "");
          if ( obj.handler ) obj.handler( 'ready' , data, "");
        } );
    }
  },
  widget:{
    byId: function ( divID ) {
      tgtgDiv = document.getElementById(divID);
      var div = tgtgDiv;
      return {
        show:function(offset_top,offset_left) {
        	if(typeof(offset_top)=='undefined') offset_top=0;
        	if(typeof(offset_left)=='undefined') offset_left=0;
        	
          var xcentro=((document.body.clientWidth/2)+document.body.scrollLeft-offset_left);
          var ycentro=((document.body.clientHeight/2)+document.body.scrollTop-offset_top);
          tgtg = leimnud.panel.create( {w:600,h:220},{x:xcentro,y:ycentro,center:true},"Add Bid",5,false,{
            ieframe:true,
            container:true,
            title:div.title,
            titleStyle:{background:"silver",width:"99%",color:"white",padding:"4px",border:"1px solid #848484",fontWeight: "bold"},
            botones:{cerrar:true},
            onClose:function(){
              tgtgDiv.style.display="none";
              document.body.appendChild(tgtgDiv);
            },
            style:{panel:{border:"1px solid black"}}
            });
          div.style.display="";
          leimnud.panel.html(tgtg ,div);
          leimnud.panel.createDrag(tgtg );
          leimnud.panel.sombra(tgtg ,{sombra:{color:"#000000",opacity:30}});
          //div.style.display="";
        },
        hide:function() {
          try {
            leimnud.panel.remove(tgtg);
          } catch (e) {
          }
        }
      }
    }
  }
}
