function getCookie( 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 ) );
}

function setCookie( name, value, expires, path, domain, secure ) {
	var today = new Date();
	today.setTime( today.getTime() );
	if ( expires ) {
		expires = expires * 1000 * 60 * 60 * 24;
	}
	var expires_date = new Date( today.getTime() + (expires) );
	document.cookie = name+'='+escape( value ) +
		( ( expires ) ? ';expires='+expires_date.toGMTString() : '' ) + //expires.toGMTString()
		( ( path ) ? ';path=' + path : '' ) +
		( ( domain ) ? ';domain=' + domain : '' ) +
		( ( secure ) ? ';secure' : '' );
}

function deleteCookie( name, path, domain ) {
	if ( getCookie( name ) ) document.cookie = name + '=' +
			( ( path ) ? ';path=' + path : '') +
			( ( domain ) ? ';domain=' + domain : '' ) +
			';expires=Thu, 01-Jan-1970 00:00:01 GMT';
}

function getCookiePath()
{
var path = document.location.pathname;
var match = path.match(/(\/apps\/geoservices)?(\/staging)?\/\w+\//);
var basepath = (match != null ? match[0] : null);
return basepath;
}

function gup2( name, url)
{
  var regexS = "[\\?&]"+name+"=([^&#]*)";
  var regex = new RegExp( regexS, "i" );
  var results = regex.exec( url );
  if( results == null )
  {
    return "";
  }
  else
  {
    return results[1];
  }
}

function setUrlParam(url, paramName, paramValue)
{
    // First remove existing parameters from URL.
    var regexS = "[?]"+paramName+"=([^&#]*)";
    var regex = new RegExp( regexS, "ig" );
    var newurl = url.replace(regex, "?");
    regexS = "&"+paramName+"=([^&#]*)";
    regex = new RegExp( regexS, "ig" );
    newurl = newurl.replace(regex, "");
    // Add new parameter and value. Determine separator symbol.
    var symbol = "?";
    if ( newurl.indexOf("?") != -1 ) {
        if (newurl.indexOf("?") == newurl.length - 1)
        { symbol = "";}
        else {symbol = "&";	}
    }
    return newurl + symbol + paramName + "=" + encodeURIComponent(paramValue);
}

// Voor browser history is wijziging van de top-frame URL nodig. Het
// is echter niet altijd toegestaan in Javascript top.location uit te
// lezen, omdat CMS van een andere site komt.
// Daarom gebruik van document.referrer, met de aanname dat parent frame
// ook top frame is.
function getTopURL()
{
	var topurl = document.referrer;
	//voorkomen dat de referrer leeg is door de legenda href met #1 
	if (self == top)
	{ // pagina is niet in iframe geladen
	    topurl = document.location.href;
	}
    return topurl;
}

var cookieload = false;
function startupprocedure()
{
    var topurl = getTopURL();
    var printing;
	
    //Als de cookie parameter staat gespecificeerd, betekent dat er een cookie geladen moet worden. Als deze parameter er niet is
    //moet deze parameter gezet worden op de parent frame om een history item aan te maken.
    var cookieName = "RWSNLgeotool";
	
    //voorkomen dat cookie geladen word als er geprint gaat worden.
    printing = gup2("printing", topurl);
		
    // Cookieload op top frame.
    cookieload = gup2("cookieload", topurl);
    // Cookieload op huidige pagina
    mycookieload = gup2("cookieload", document.location.href);

    if( !cookieload && printing == "" ){
        //set een leeg cookie. Bij een leeg cookie zullen de originele parameter waardes alsnog uitgelezen worden.
        setCookie( cookieName , "", null, getCookiePath() );
        // Ontsnapping om geen reload te doen.
        // Nodig om bijv Geotool in Tridion frame te tonen.
        if (!mycookieload || mycookieload != "false") {
            top.location.replace(setUrlParam(topurl, "cookieload", "true"));
        }
    }
    else{
        if (mycookieload == "false") {
            setCookie(cookieName, "", null, getCookiePath());
        }
	if (printing == "map" || printing == "popup" ){
            setCookie(cookieName, "", null, getCookiePath());
	}
    }
	
	
}
// start function
startupprocedure();

//end

