var debug = true;
var useOrderrefCookies = false;

function dbg( msg )
{
    if ( debug )
    {
        alert(msg);
    }
}

function checkorderref(formobj)
{
    if ( !useOrderrefCookies )
    {
        return true;
    }
    
	if ( formobj.orderref.value == "_" + "ORDERREF" + "_" )
	{
		orderref = getCookie("_NAME_orderref");
		if ( orderref == "" )
		{
			orderref = makeOid();
		}
		
		formobj.orderref.value = orderref;
	}
	
	return true;
}

function loaded(storename, orderref, neworderref, nocookieorderref)
{
    if ( !useOrderrefCookies )
    {
        return true;
    }
    
    // If the orderref is not defined (because we haven't received it yet)
    // try to get it from the cookie. If that fails, use neworderref which is
    // always set to a new unique ref. nocookieorderref is a client connection
    // derived reference that should be unique for a shopper and which doesn't 
    // clash with a sentorder (has an index suffix to prevent this).
    //
    var cookiename = storename + "orderref";

    if ( !hasCookiesEnabled() )
    {
        orderref = nocookieorderref;
        dbg("Using nocookie orderref: " + orderref);
    }
    else if ( (orderref != "") && (orderref != "_ORDERREF_") )
    {
        dbg("Using supplied orderref: " + orderref);
        var currentCookie = getCookie(cookiename);
        if ( currentCookie != orderref )
        {
			dbg("Cookie '" + currentCookie + "' doesn't match orderref, setting cookie " + cookiename + " to " + orderref);
            setCookie(cookiename, orderref, 365,"/");
        }
    }
    else
    {
		orderref = getCookie(cookiename);
        if ( orderref == "" )
        {
            orderref = neworderref;
    		setCookie(cookiename, orderref, 1,"/");
            dbg("Got an empty or unset cookie ('" + orderref + "'), starting new order: " + orderref);
        }
        else
        {
            dbg("Using cookie orderref: " + orderref);
        }
    }


	for ( i=0; i < document.forms.length; i++ )
	{
		if ( typeof(document.forms[i].orderref) != "undefined" )
		{
			document.forms[i].orderref.value = orderref;
		}
	}
}

function hasCookiesEnabled()
{
    // return false;
    
    var testcookiename = "cookiecheck";
    setCookie(testcookiename, "test") ;
    if ( getCookie(testcookiename) != "test" )
    {
        alert("You should consider enabling cookies");
        return false;
    }
    return true;
}
    
