//v5.1.2 fix vitrine
//v5.1.1 fix detect device
//v5.1 detect device
//v5 new cookie methodology
//v4 Fix https
//v3.3 Fix prototype
//site remarketing
//mail remarketing
var nvg = new function () {

	this.version=5;			
	var navegg = new Object();
	navegg.site = "12691";
	navegg.data = "2";
	navegg.format = "2";

	if (location.href.search('.abril.com.br') != -1) navegg.domain = ".abril.com.br";
	

	this.ltset = function (fld,vle,ds)
	{
		var ltd='';
		if (navegg.domain) ltd = ';domain=' + navegg.domain;			
		var d = new Date();
		d.setTime(d.getTime()+(ds*24*60*60*1000));
		var ex = d.toGMTString();
		document.cookie = fld + "=" + vle + ";expires=" + ex + ";path=/" + ltd;
	}

	this.ltinc = function (src)
	{
		var c=document.createElement("script");
		c.type="text/javascript";
	        c.src=document.location.protocol + '//navdmp.com/' + src;
		c.async = true;
		var p = document.getElementsByTagName('script')[0]; 
		p.parentNode.insertBefore(c, p);		
	}

	this.ltget = function (name)
	{
		var start = document.cookie.indexOf( name + "=" );
		var len = start + name.length + 1;
		if ( ( !start ) && ( name != document.cookie.substring( 0, name.length ) ) ) return null;
		if ( start == -1 ) return null;
		var end = document.cookie.indexOf( ";", len );
		if ( end == -1 ) end = document.cookie.length;
		return unescape( document.cookie.substring( len, end ) );
	}


	this.ltgc = function ( fld ) 
	{
		if (this.ltget('navdmp') == undefined) { return undefined; }
		else 
		{
			var cntnt = this.ltget('navdmp').split('_');
			switch(fld)
			{
				case 'ndi': return (cntnt[0]); break;
				case 'ctr': return (cntnt[1]); break;
				case 'gender': case 'navegg_gender': return (cntnt[2]); break;
				case 'age': case 'navegg_age': return (cntnt[3]); break;
				case 'education': case 'navegg_education': return (cntnt[4]); break;
				case 'interests': case 'navegg_interests': return (cntnt[8]); break;
				case 'city': case 'navegg_city': return (cntnt[5]); break;
				case 'region': case 'navegg_region': return (cntnt[6]); break;
				case 'country': case 'navegg_country': return (cntnt[7]); break;
				case 'prod': case 'navegg_prod': return (cntnt[9]); break;
				case 'class': case 'navegg_class': return (cntnt[10]); break;
	}	}	}
		

	this.ltload = function (tst)
	{
		var ndr='', ndp='', ndc='', tit='' ;

		uri = '&v='+this.version; 

		if ( (this.ltgc('ctr') == undefined )  || ( this.ltgc('ctr') != ( this.datestr() )  ) || ( (navegg.format != 'none') && navegg.format != undefined ) ) 
		{
			uri = uri + '&upd=1';

			if (navegg.data) uri = uri + '&ndt=' + navegg.data;  

			if (navegg.format) {
				switch (navegg.format) 
				{ 
					case 'ids': var ndf='2'; break;
					case 'none':   var ndf='0'; break;
					default: var ndf='1'; break;
				}
				uri = uri + '&ndf=' + ndf;
			}

		}
		if ( navegg.site ) nds=navegg.site;
		else {
			var r=document.getElementById("navegg").src.split('?');
			var nds=r[1]; 
		}
		
		if (tst)  uri  = uri + '&tst=' + tst;
		if ( navegg.product )  ndp = '&ndp=' + escape(navegg.product);
		if ( navegg.category)  ndc = '&ndc=' + escape(navegg.category);		
		if ( navegg.referer )  ndr = '&ndr=' + escape(navegg.referer);
		if ( document.title)   tit = '&tit=' + escape(document.title);
	
		if ( nds > 0 ) this.ltinc('get?nds='+nds+uri+ndr+ndp+ndc+tit);
	}

	this.datestr = function ()
	{
		var d = new Date();
		return (d.getMonth().toString() + d.getDate().toString()) ;
	}
	
	this.ltstart = function (id,tuple)
	{
		if ( (this.ltgc('ctr') == undefined )  || ( ltgc('ctr') != ( this.datestr() ) ) ) 
		{
			this.ltset('navdmp' , id + '_' + this.datestr() + '_' + tuple ,1);	
		}
	}

	this.ltgetcust = function (name,value)
	{
		if (value == undefined) { var value = 0; }
		if (this.ltget('navdmp_cust') == undefined) { return 0; }
		else
		{
			cookiecustom = this.ltget('navdmp_cust');
			if (cookiecustom.search('_'+name+'_') != -1) { return 1; } else if (cookiecustom.search('_'+name+'=') != -1) {
				if (value==1) {
					var ckcstp = cookiecustom.split('_'); var ckckckck = '';
					for (xx in ckcstp)
					{
						if (typeof (ckcstp[xx]) == 'string') {
							if (ckcstp[xx].search('=') != -1) { var ckcstpp = ckcstp[xx].split('='); if (ckcstpp[0] == name) { if (ckckckck == '') { ckckckck = ckckckck + ckcstpp[1]; } else { ckckckck = ckckckck+','+ckcstpp[1]; } } }
						}
					}
					return ckckckck;
				} else { return 1; }
			} else { return 0; }
		}
	}

	this.ltcustom = function (name)
	{
		if (this.ltgetcust(name) != 1) { 
			if (this.ltget('navdmp_cust') == undefined || this.ltget('navdmp_cust') == '') { cookiecust = '_'; } else { cookiecust = this.ltget('navdmp_cust'); }
			this.ltset('navdmp_cust',cookiecust+name+'_',30);
		}
	}

	this.ltgetallcust = function (format,pref,callback)
	{
		if (this.ltget('navdmp_cust') == undefined) { return ''; }
		else 
		{
			if (pref == undefined) var pref = '';
			var retorno = '';
			var cntnt = this.ltget('navdmp_cust').split('_');
			for (x in cntnt) {
				if (typeof (cntnt[x]) == 'string') {
					if (cntnt[x] != '') { 
						if (cntnt[x].search('=') != -1) {
							if (format=='q') retorno = retorno + '&' + pref + cntnt[x];
							var cntntnt = cntnt[x].split('=');
							if (format=='c') eval (callback.replace('%n%',pref+cntntnt[0]).replace('%v%',cntntnt[1]));
						} else {
							if (format=='q') retorno = retorno + '&' + pref + cntnt[x] + '=1';
							if (format=='c') eval (callback.replace('%n%',pref+cntnt[x]).replace('%v%','1'))
						}
					}
				}
			}
			return retorno;
		}
	}

	this.ltdelcust = function (name)
	{
		if (this.ltgetcust(name) == 1) { 
			cookiecust = this.ltget('navdmp_cust');
			nc = cookiecust.replace(new RegExp ('_'+name+'(=.+)?_', 'ig'), '_');
			if (nc == '_') nc = '';
			this.ltset('navdmp_cust',nc,30);
		}
	}

}

function ltgetcust (id,tuple)
{
	nvg.ltgetcust (id,tuple);
}

function ltstart (id,tuple)
{
	nvg.ltstart (id,tuple);
}

function ltgc (fld)
{
	return (nvg.ltgc (fld));
}

function ltgetallcust (format,pref,callback)
{
	return (nvg.ltgetallcust (format,pref,callback));
}

function ltload (tst)
{
    return (nvg.ltload(tst));
}

function subDomain(url) 
{ 
    try
    {
         url = url.replace(new RegExp(/^\s+/),""); // START
         url = url.replace(new RegExp(/\s+$/),""); // END  
         url = url.replace(new RegExp(/\\/g),"/");   
         url = url.replace(new RegExp(/^http\:\/\/|^https\:\/\/|^ftp\:\/\//i),"");   
         url = url.replace(new RegExp(/^www\./i),"");   
         url = url.replace(new RegExp(/\/(.*)/),"");   
         if (url.match(new RegExp(/\.[a-z]{2,3}\.[a-z]{2}$/i))) {
               url = url.replace(new RegExp(/\.[a-z]{2,3}\.[a-z]{2}$/i),"");   
         } else if (url.match(new RegExp(/\.[a-z]{2,4}$/i))) {
               url = url.replace(new RegExp(/\.[a-z]{2,4}$/i),"");
         }  
         url = url.replace(".abril",""); 
         url = url.replace("origin.",""); 
         return(url);
    }
    catch(err){}
}

var request = { getParameter: _getParameter };   
function _getParameter(querystring){   
    try
    {
         var querystr = new Array();   
         loc = window.location.search.substr(1).split('&'); 
         if ((loc!='')&&(loc!=null)) {   
             for (var icnt=0;icnt< loc.length;icnt++) 
             {   
                 var q = loc[icnt].split('='); 
                 querystr[q[0]] = q[1]; 
             }   
             return querystr[querystring]; 
         } 
         else
             return(null); 
    }
    catch(err){}        
}  

function siteRetargeting(){
    try
    {
        sub_domain = subDomain(document.domain);
        nvg.ltcustom('site='+sub_domain);
        return true;
    }
    catch(err){}
}

function mailRemarketing(){
    try
    {
        codProjeto = request.getParameter("codProjeto");
        if (codProjeto == '901') { nvg.ltcustom('assine=veja'); }
        if (codProjeto == '904') { nvg.ltcustom('assine=exame'); }
        return true;
    }
    catch(err){}
}

function detectDevice(){
    try
    {
        ua = navigator.userAgent.toLowerCase();
        android = ua.match(/(android)\s+([\d.]+)/);
       
        xoom = ua.match(/xoom/g);
        galaxy = ua.match(/galaxy/g) || ua.match(/p1000m/g);
        ipad = ua.match(/ipad/g);
        
        if (xoom)  nvg.ltcustom('device=xoom');
        if (galaxy)  nvg.ltcustom('device=galaxy');
        if (ipad)  nvg.ltcustom('device=ipad');
        
        return true;
    }
    catch(err){}
}
//End Custom features

//write custom segments
nvg.ltload();
siteRetargeting();
mailRemarketing();
detectDevice();

