/* 
  Copyright 2004 - Certifica.com 
  $Id: certifica.js,v 1.13 2004/11/05 18:38:13 leus Exp $
*/

DEFAULT_PIVOT_NAME = 'cert_Pivot';
DEFAULT_REDIRECT_TIME = 3000;
DEFAULT_PERIODIC_REDIRECT_TIME = 60000;

var enableCustomTags = true;
var cert_cTags = Array();
var cert_aTags = Array();

function cert_qVal(sValue) 
{
    var pos = String(document.location).indexOf('?');
    if (pos != -1) {
       var query = String(document.location).substring(pos+1);
       var vars = query.split("&");
       for (var i=0; i < vars.length; i++) {
          var pair = vars[i].split("=");
          if (pair[0] == sValue)
             return pair[1];
       }       
    }
    return null;  
}

function cert_getReferrer()
{
   var referrer = document.referrer;
   if (self.cert_getReferrer14)
      return cert_getReferrer14();
/*@cc_on
  @if(@_jscript_version >= 5 )
   try { 
      if ( self != top ) referrer = top.document.referrer;
   } catch(e) {};
  @end
  @*/
  return referrer;
}

function cert_sanitizeCTag(value)
{
	// TODO: sanitizar
	return value;
}
 
/* Crea la URL para obtener un pageview de Certifica. */
/* Sólo necesita los parámetros iSiteId y sPath       */
function cert_getURL(iSiteId, sPath, sAppend) 
{
    var size, colors, referrer, url;
    size = colors = referrer = 'otro';
    var o = cert_qVal('url_origen');
    if (o != null && o != '')
       referrer = o;
    else 
       referrer = escape(cert_getReferrer());
    if ( window.screen.width ) size = window.screen.width;
    if ( window.screen.colorDepth ) colors = window.screen.colorDepth;
    else if ( window.screen.pixelDepth ) colors = window.screen.pixelDepth;
    url = 
       'http://hits.e.cl/cert/hit.dll?sitio_id=' + iSiteId + '&path=' + sPath +
       '&referer=' + referrer + '&size=' + size + '&colors=' + colors;
    url += '&java=' + navigator.javaEnabled();
    
    if (enableCustomTags) {
    	var sCTags = '';
    	for (var ctName in cert_cTags) {
    		sCTags += cert_sanitizeCTag(ctName) + ':' + 
    			cert_sanitizeCTag(cert_cTags[ctName]) + ';';
    	}
    	
    	if (sCTags) {
    		url += '&ct_c=' + sCTags;
    	}
    	
    	sCTags = '';
    	for (var ctName in cert_aTags) {
    		sCTags += cert_sanitizeCTag(ctName) + ':' + 
    			cert_sanitizeCTag(cert_cTags[ctName]) + ';';
    	}

    	if (sCTags) {
    		url += '&ct_a=' + sCTags;
    	}
    }
    
    if (sAppend)
        url += sAppend;
    return url;    
}

/* Efectua un hit en certifica usando una imagen pivote. */
function cert_registerHit(iSiteId, sPath, sPivotName) 
{
   var sAppend = '&cert_cachebuster=' + (1 + Math.floor (Math.random() * 10000));
   if ( !sPivotName )
      sPivotName = DEFAULT_PIVOT_NAME;
   if ( document.images )
      if ( document.images[sPivotName] )
         document.images[sPivotName].src = cert_getURL(iSiteId, sPath, sAppend);
}

/* Efectúa una redirección marcando la ruta de salida */
function cert_registerHitAndRedirect( sURL, iSiteId, sPath, sPivotName ) 
{
   cert_registerHit( iSiteId, sPath, sPivotName );
   setTimeout( "location.href = '" + sURL + "'", DEFAULT_REDIRECT_TIME );
}

/* Abre una nueva ventana, marcando el hit */
function cert_registerHitAndOpenWindow( sURL, iSiteId, sPath, sPivotName, sName, sFeatures, bReplace )
{
   cert_registerHit( iSiteId, sPath, sPivotName );
   if (!sName)
      sName = 'Downloads';
   if (!sFeatures)
      sFeatures = 'toolbar=no,location=no,directories=no,status=yes,menubar=no, scrollbars=no,resizable=no,width=425,height=510,screenX=20,screenY=20';
   window.open( sURL, 
      sName, 
      sFeatures, 
      bReplace 
   );
   return false;
}

/* Marca el hit y reemplaza/abre una URL en el frame 'sName' */
function cert_registerHitAndReplaceOtherFrame( sURL, sName, iSiteId, sPath, sPivotName ) 
{
   cert_registerHitAndOpenWindow( sURL, iSiteId, sPath, sPivotName, sName, 0, true );
}

/* Marca el hit y reemplaza/abre una URL en el frame 'sName' */
function cert_registerHitAndReplaceThisFrame( sURL, iSiteId, sPath, sPivotName ) 
{
   cert_registerHitAndRedirect( sURL, iSiteId, sPath, sPivotName );
}

/* Marca el hit y baja un archivo */
function cert_registerHitAndDownloadFile( sURL, iSiteId, sPath, sPivotName ) 
{
   cert_registerHitAndRedirect( sURL, iSiteId, sPath, sPivotName );
}

/* Marca un hit en la página actual */
function tagCertifica(iSiteId, sPath, sDesc) 
{
    var sAppend = '';
    if (sDesc) {
        sAppend = '&desc=' + escape(sDesc);
    }
    createCTags();
    document.writeln( '<img src="' + cert_getURL(iSiteId, sPath, sAppend) + '" width="1" height="1" border="0" alt="Certifica.com">' );
}

/* Marca un registro cada iTime milisegundos.  */
function cert_registerPeriodicHit( iSiteId, sPath, sPivotName, iTime ) 
{
   if ( !sPivotName )
      sPivotName = DEFAULT_PIVOT_NAME;
   if ( !iTime )
      iTime = DEFAULT_PERIODIC_REDIRECT_TIME;

   cert_registerHit( iSiteId, sPath, sPivotName );
   setTimeout( 'cert_registerPeriodicHit( ' + iSiteId + ', "' + sPath + '", "' + sPivotName + '", ' + iTime + ')', iTime );
}

/* Custom Tags */
function cert_addCustomTag(sCategory, sValue)
{
	cert_cTags[sCategory] = sValue;
}

function cert_addQuantity(sCategory, sValue)
{
	if (sValue) {
		cert_cTags[sCategory] = 0 + sValue;
	}
}

/* Esto es para mi */
function createCTags()
{
	var r = cert_getReferrer();
	
	if (!r) {
		r = 'none';
	}
	
	if (r.match(/^http:\/\/([^/]+)\/.*$/)) {
		r = RegExp.$1;
	}	
	cert_addCustomTag('ref', r);
}
