
var javsParams = {
    cookieName		: "avsAdult",
    adultIndicator	: "verifiedAsAdult",
    avsToken		: Math.round( Math.random() * 1000000000 + 1 ).toString(),
    avsTokenPrefix	: "sentWithToken:",
    validHours		: 3,
    cookiesDisabledPage : "http://avs.cashbill.pl/nocookies.html"
}

function parseURL()
{
    var params = new Object();
    var getparams = document.location.search.replace(/^\?/,'').split('&');
    for( i=0; i<getparams.length; i++ )
        if( getparams[i].length )
	{
	    var nameval = getparams[i].split('=');
	    
	    var name = unescape(nameval[0]);
	    var value = ( (nameval.length>1) ? unescape(nameval[1]) : "" );
	    var command = 'params.'+name+'="'+value+'"';
	    
	    eval( command );
	}
    for ( param in params )
            params[param] = unescape( params[param] );
	    
    return params;
}


function obj2get(obj)
{
    var get = new Array();
    if( typeof obj != "undefined" )
        for( field in obj )
            get.push( field+'='+escape(obj[field]) );
    return get.join('&');
}

											    
function canUseCookies()
{
    var cookieEnabled = (navigator.cookieEnabled) ? true : false ;
    
    if( typeof navigator.cookieEnabled=="undefined" && !cookieEnabled )
    { 
	document.cookie = javsParams.cookieName+'=testcookie';
	cookieEnabled = ( document.cookie.indexOf("testcookie")!=-1 ) ? true : false;
    }
    
    return cookieEnabled;
}



function is_verified()
{
    if( document.cookie.indexOf(javsParams.adultIndicator) != -1 )
	return true;
    else
	return false;
}


function adultReturnFromAVS()
{
    var urlParams = parseURL();
    if( urlParams.avstoken )
    {
	if( document.cookie.indexOf(javsParams.avsTokenPrefix+urlParams.avstoken) != -1 )
	{
	    if( urlParams.adult == "true" )
	    {
		return true;
	    }
	}
    }
	
    return false;
}


function markAsVerified()
{
    var expiredate = new Date();
    expiredate.setTime( expiredate.getTime() + javsParams.validHours*60*60*1000 );
    
    document.cookie = javsParams.cookieName+'='+javsParams.adultIndicator
		    +'; expires='+expiredate.toGMTString()
		    +'; path=/' ;
}


function markAsSentToAVS()
{
    var expiredate = new Date();
    expiredate.setTime( expiredate.getTime() + javsParams.validHours*60*60*1000 );
    
    document.cookie = javsParams.cookieName+'='+javsParams.avsTokenPrefix+javsParams.avsToken
		    +'; expires='+expiredate.toGMTString()
		    +'; path=/';
}
							      

function show_avs()
{
    var get = new Array();
    if( typeof avs != "undefined" )
	for( field in avs )
	    switch( typeof avs[field] )
	    {
		case "number":
		    get.push( escape(field+'='+avs[field]) );
		    break;
		case "string": 
		default:
		    get.push( escape(field+'="'+escape(avs[field])+'"') );
	    }
    
    get.push( escape('from="'+escape(document.location.href)+'"') );
    get.push( escape('avstoken='+javsParams.avsToken) );
    
    if( ! is_verified() )
    {
	if( canUseCookies() )
	{
	    if( adultReturnFromAVS() )
	    {
		markAsVerified();
		
		var params = parseURL();
		if( params.from )
		    if( params.from.length > 1 )
			document.location.replace( params.from );
		    
	    } else {
		markAsSentToAVS();
		document.location.replace("http://avs.cashbill.pl/verify.html?"+get.join('&'));
	    }
	    
	} else {
	
	    document.location.replace( javsParams.cookiesDisabledPage 
					+ '?from='
					+ escape('"'+escape(document.location.href)+'"') 
				    );
	}
    }

}

show_avs();

