// Funções de utilização pública em JavaScript
//
// -----------------------------------------------------------------------------------------

// Calcula a soma dos borders e padding Lef/Right de um objeto

function iqf_calculaBorPaddRL(vsourceobj)

{
    var vborderLeft = parseInt(document.getElementById(vsourceobj).style.borderLeftWidth);
    if (isNaN(vborderLeft))  { vborderLeft = 0; }
    var vborderRight = parseInt(document.getElementById(vsourceobj).style.borderRightWidth);
    if (isNaN(vborderRight)) { vborderRight = 0; }
    var vpadLeft = parseInt(document.getElementById(vsourceobj).style.paddingLeft);
    if (isNaN(vpadLeft)) { vpadLeft = 0; }
    var vpadRight = parseInt(document.getElementById(vsourceobj).style.paddingRight);
    if (isNaN(vpadRight)) { vpadRight = 0; }
    vsourceWidth = vborderLeft + vborderRight + vpadLeft + vpadRight;
    
    return vsourceWidth;
}

// Calcula a largura total de um objeto  ( Multi-Browser )

function iqf_calculawidth(vsourceobj)

{

    var vsourceWidth = parseInt(document.getElementById(vsourceobj).style.width);
    if (isNaN(vsourceWidth)) { 
        vsourceWidth = parseInt(document.getElementById(vsourceobj).width);
        if (isNaN(vsourceWidth))  { vsourceWidth = 0; }
    }
    var vborderLeft = parseInt(document.getElementById(vsourceobj).style.borderLeftWidth);
    if (isNaN(vborderLeft))  { vborderLeft = 0; }
    var vborderRight = parseInt(document.getElementById(vsourceobj).style.borderRightWidth);
    if (isNaN(vborderRight)) { vborderRight = 0; }
    var vpadLeft = parseInt(document.getElementById(vsourceobj).style.paddingLeft);
    if (isNaN(vpadLeft)) { vpadLeft = 0; }
    var vpadRight = parseInt(document.getElementById(vsourceobj).style.paddingRight);
    if (isNaN(vpadRight)) { vpadRight = 0; }
    vsourceWidth = vsourceWidth + vborderLeft + vborderRight + vpadLeft + vpadRight;
    
    return vsourceWidth;
}

// -------------------------------------------------------------------------------------------

// calcula a altura total de um objeto  ( Multi-Browser )

function iqf_calculaheight(vsourceobj)

{

    var vsourceHeight = parseInt(document.getElementById(vsourceobj).style.height);
    if (isNaN(vsourceHeight)) { 
        vsourceHeight = parseInt(document.getElementById(vsourceobj).height);
        if (isNaN(vsourceHeight))  { vsourceHeight = 0; }
    }
    var vborderTop = parseInt(document.getElementById(vsourceobj).style.borderTopWidth);
    if (isNaN(vborderTop))  { vborderTop = 0; }
    var vborderBottom = parseInt(document.getElementById(vsourceobj).style.borderBottomWidth);
    if (isNaN(vborderBottom)) { vborderBottom = 0; }
    var vpadTop = parseInt(document.getElementById(vsourceobj).style.paddingTop);
    if (isNaN(vpadTop)) { vpadTop = 0; }
    var vpadBottom = parseInt(document.getElementById(vsourceobj).style.paddingBottom);
    if (isNaN(vpadBottom)) { vpadBottom = 0; }
    vsourceHeight = vsourceHeight + vborderTop + vborderBottom + vpadTop + vpadBottom;
    
    return vsourceHeight;
}

// --------------------------------------------------------------------------------------------

// Função para pegar as corrdenadas de um objeto no browser

function iqf_GetTopLeft(vobj) {

var x, y = 0;

// Offset do Objeto   
x = vobj.offsetLeft;
y = vobj.offsetTop;

// Pega o objeto que contem o primeiro

vobj = vobj.offsetParent;

// Rotina recursiva que vai somando os offset dos objetos pais até não haver mais pais.

while(vobj != null)
{
    x = parseInt(x) + parseInt(vobj.offsetLeft);
    y = parseInt(y) + parseInt(vobj.offsetTop);
    vobj = vobj.offsetParent;
}

// Retorna Top and Left como um objeto

return {Top:y, Left:x};
}

// ---------------------------------------------------------------------------------------------

// Função que determina a largura do browser

function iqf_getBrowserWidth()

{
    if (window.innerWidth)
    
        {
          return window.screen.width;
        }
    else if (document.documentElement && document.documentElement.clientWidth != 0)
    
        {
         return document.documentElement.clientWidth;
        }
    else if (document.body)
    
        {
        return document.body.clientWidth;
        }
    else if (window.screen)  
      
        {        
        return window.screen.width;   
        }
    
    return 0;
}

// ---------------------------------------------------------------------------------------------


// Função para pegar as coordenadas do Mouse.
// Não esta sendo usada aqui, pois funciona bem apenas para Internet Explorer.

function iqf_GetMousePos(e)

 {
	var posx = 0;
	var posy = 0;

	if (!e) var e = window.event;
	if (e.pageX || e.pageY) 	{
		posx = e.pageX;
		posy = e.pageY;
	}
	else if (e.clientX || e.clientY) 	{
		posx = e.clientX + document.body.scrollLeft + document.documentElement.scrollLeft;
		posy = e.clientY + document.body.scrollTop + document.documentElement.scrollTop;
	}

	// posx e posy contem a posição do mouse no documento

 
       return{Left:posx , Top:posy};

}

// Função que realiza um click num objeto

function iqf_ClickOnObject (vobj)
{
var vToClick = document.getElementById(vobj);
vToClick.click();
}

// Função que retorna o Tipo e a versão do browser --------------------------------------------

function iqf_GetBrowser()

{

var ua = navigator.userAgent.toLowerCase();
// alert(ua);
var vbrowser = "";
var vversao = "";
if ( (ua.indexOf("msie") != -1) && (ua.indexOf("opera") == -1) && (ua.indexOf("webtv") == -1) )
   { vbrowser = "IE" ; vversao = parseFloat(ua.substr(ua.indexOf('msie ') + 5,3)); }
else if (ua.indexOf("firefox") != -1)
   { vbrowser = "FIREFOX" ; vversao = parseFloat(ua.substr(ua.indexOf('firefox/') + 8,6)); }
else if (ua.indexOf("chrome") != -1)
   { vbrowser = "CHROME" ; vversao = parseFloat(ua.substr(ua.indexOf('chrome/') + 7,8));}   
else if (ua.indexOf("safari") != -1)
   { vbrowser = "SAFARI" ; vversao = parseFloat(ua.substr(ua.indexOf('safari/') + 7,8)); }
else if (ua.indexOf("opera") != -1)
   { vbrowser = "OPERA" ; vversao = parseFloat(ua.substr(ua.indexOf('opera/') + 6,4)); }
// var isKonqueror = (ua.indexOf("konqueror") != -1);
// var konquerorVersion = parseFloat(ua.substring(ua.indexOf('konqueror/') + 10));
// var isNetscape = (ua.indexOf("netscape") != -1);
// var netscapeVersion = parseFloat(ua.substring(ua.lastIndexOf('/') + 1));

return {browserName:vbrowser , browserVersion:vversao}

}

// ---------------------------------------------------------------------------------------------

// Função para registro de assinaturas para LooKup-Tables --------------------------------------

var vIQPublicAssObj = new Array();
var vIQPublicAssKey = new Array();
var vContadorAss = 0;
 
function iqf_ObjectAssLT(vAss,vObjClID)
{
    vIQPublicAssObj[vContadorAss] = vObjClID;
    vIQPublicAssKey[vContadorAss] = vAss;
    vContadorAss++;
}
 
// Função para preecher os valores dos objetos de acordo com as assinaturas ( LooKup-Tables ) --

function iqf_ObjectSetLT(vAss,vVal)
{
  for (var i = 0; i < vIQPublicAssKey.length; i++)
      {
       if (vIQPublicAssKey[i] == vAss)
          {
            var x = document.getElementById(vIQPublicAssObj[i]);
            x.value = vVal;
          }
      }
}

// ----------------------------------------------------------------------------------------------

// Função que detecta se o Plugin do QuickTime esta instalado

function iqf_soundPlugins()
{
var vQTin = false;

if (navigator.plugins) 
   { 
     for (i=0; i < navigator.plugins.length; i++ ) 
         { 
           var vpg = navigator.plugins[i].name.toLowerCase();
           if (vpg.indexOf("quicktime") >= 0) 
              { vQTin = true; 
              } 
         } 
    } 
return  vQTin;  
}    
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
// ============================================================================================================================================
// O mistério do xmlhttprequest em resolução

function iqf_GetClientFile(vUrl) {
    try { 
        xmlhttp = new ActiveXObject("MSXML2.XMLHTTP"); 
    } catch (e) { 
        try { 
            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); 
        } catch (E) { 
            xmlhttp = false; 
        } 
    } 

    if  (!xmlhttp && typeof  XMLHttpRequest != 'undefined' ) { 
        try  { 
            xmlhttp = new  XMLHttpRequest(); 
        } catch  (e) { 
            xmlhttp = false ; 
        } 
    }

    if (xmlhttp) {
       
        vUrl = vUrl.replace(/\\/g, "\\\\");
        fso = new ActiveXObject( "Scripting.FileSystemObject" );
        if ( !fso.FileExists(vUrl) )
           {
            alert("Can't open file.");
            return;
           }
        
         xmlhttp.onreadystatechange = iqp_processadorMudancaEstado;
        
        
        // var xmlhttp = this.createXMLHttpRequest();
        //xmlhttp.open("POST", "Handler_Teste.ashx?Arquivo=" + vUrl + "&Time=De" , false);
        // xmlhttp.open("GET", "http://localhost/images/smiley.gif",false);
        xmlhttp.open("GET", vUrl,false);
        xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
        //xmlHhttp.send("sessionId="+this.sessionId);
        
        //xmlhttp.open("GET", "Handler_Teste.ashx?Arquivo=" + vUrl + "&Time=De" ,false);

        xmlhttp.send("a1");
        return xmlhttp.responseBody ; 
    }
}

function iqp_processadorMudancaEstado () {
    if ( xmlhttp.readyState == 4) { // Completo 
        if ( xmlhttp.status == 200) { // resposta do servidor OK 
        vPubImg = xmlhttp.responseBody
        } else { 
            alert( "Problema: " + xmlhttp.statusText );  
        } 
    }
}


