var API = {

    Cookie: {

        Get: 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 ) );
        },

        Delete: function(name, path, domain) {
            if ( getCookie( name ) ) document.cookie = name + '=' +
                ( ( path ) ? ';path=' + path : '') +
                ( ( domain ) ? ';domain=' + domain : '' ) +
                ';expires=Thu, 01-Jan-1970 00:00:01 GMT';
        },

        Set: function(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' : '' );
			  }

    },

    Event: {

        Add: function(obj, type, fn) {
            if (obj.addEventListener)
                obj.addEventListener( type, fn, true );
            else if (obj.attachEvent) {
                obj["e"+type+fn] = fn;
                obj[type+fn] = function() { obj["e"+type+fn]( window.event ); }
                obj.attachEvent( "on"+type, obj[type+fn] );
            }
        },

        Remove: function(obj, type, fn) {
            if (obj.removeEventListener)
                obj.removeEventListener( type, fn, true );
            else if (obj.detachEvent) {
                obj.detachEvent( "on"+type, obj[type+fn] );
                obj[type+fn] = null;
                obj["e"+type+fn] = null;
            }
        }

    },

    Get: function(id) {
        return document.getElementById(id);
    },

    Security: {

        IsOver18: function(dd, mm, yyyy, limit) {

            var now = new Date();
            var ageYearsAgo = new Date(now.getFullYear()-limit, now.getMonth(), now.getDate());
            var dateOfBirth = new Date(parseInt(yyyy), parseInt(mm) - 1, parseInt(dd));

            return (Date.parse(ageYearsAgo) - Date.parse(dateOfBirth) > -1);

        },

        getHasAcknowledgedAge: function() {
            return API.Cookie.Get('has_acknowledged_age');
        },

        setHasAcknowledgedAge: function(value, rememberMe) {
            API.Cookie.Set('has_acknowledged_age', value, (rememberMe ? 999 : null));
        }

    },
//////////////////////////////////////////////////////////////////////////
    TPErrorMessage: function(overrideId) {
			//alert("errrorrr");
		    var _errorMessageBG = null;
        var _messages = null;
        var _customMessages = new Array(0);
        var _xhtml = null;
				var msg = "";
					
        return {

            _setErrorMessageBG: function() {

                for (var x=0; x<document.getElementsByTagName('table').length; x++) {
                    if (document.getElementsByTagName('table')[x].className.indexOf('errorMessageBG')>-1) {
                        _errorMessageBG = document.getElementsByTagName('table')[x];
                        break;
                    }

                }
                
            },

            getErrorMessageBG: function() {

                if (!_errorMessageBG) {
                    this._setErrorMessageBG();
                }

                return _errorMessageBG;

            },

            _setMessages: function() {

                var message;

                if (!_errorMessageBG) this._setErrorMessageBG();

                _messages = _errorMessageBG.getElementsByTagName('td')[1].childNodes[0].innerHTML.split(/<BR>/i);

                if (_messages[_messages.length-1] == '') {
                    _messages.splice(_messages.length-1, 1);
                }

                if (_customMessages.length > 0) {
                    for (var x=0; x<_messages.length; x++) {
                        for (var y=0; y<_customMessages.length; y++) {

                            if (_messages[x].match(_customMessages[y][0])){ _messages[x] = _customMessages[y][1];}
									      }
                    }
                }
            },

            getMessages: function() {
							if (!_messages) {
              	this._setMessages();
                }
              return _messages;
	            },

            _setXhtml: function(strIntro) {
					
                if (!_messages) this._setMessages();
		
								for(var y=0; y <_messages.length;y++) {
									msg += _messages[y] + "\n";
									}
								
								this.displayAlert();
								//setTimeout('this.displayAlert();', 1000);
            },
						
						displayAlert: function() {
						//	setTimeout('alert(msg);', 1000);
							alert(msg);	
							return;
							},

            getXhtml: function(strIntro) {

                if (!_xhtml) {
                    this._setXhtml(strIntro);
                }
                return _xhtml;

            },

            convertToXhtml: function(strIntro) {
                if (!this.getErrorMessageBG()) return;

                if (!_xhtml) this._setXhtml(strIntro);

            },

            replaceMessage: function(messageMap) {
						//	alert("replace");
                _customMessages.push(messageMap);
							

            },

            replaceMessages: function(messageMaps) {
						//		alert("replaces");
                for (var x=0; x<messageMaps.length; x++) this.replaceMessage(messageMaps[x]);
            }
							
        }

    },		
//////////////////////////////////////////////////////////////////////////
    Window: {

        GetQuery: function(attr) {
            var tmp = [], a = location.search.substr( 1, location.search.length ).split( "&" );
            for ( var i = 0; i < a.length; i++ ) {
                tmp = [a[i].substr(0, a[i].indexOf('=')), a[i].substr(a[i].indexOf('=')+1, a[i].length)];
                if ( new RegExp( tmp[0], "i" ).test( escape( attr ) ) && tmp[1] ) {
                    return unescape( tmp[1] );
                }
            }
            return null;
        },

        GetUri: function() {
            return location.href.substr(location.href.indexOf(document.domain)+document.domain.length, location.href.length);
        },

        GoTo: function(url) {
            location.href = url;
        },

        Open: function(Url, Options) {

            if (Options) {
                _optionArray = new Array(0);
                for (var x in Options) _optionArray.push(x + '=' + Options[x]);
                Options = _optionArray.join(',');
            }

            window.open(Url, 'extraWindow', Options).focus();

        }

    }

}

var errorMessage = API.TPErrorMessage("xhtmlError");


if (API.Security.getHasAcknowledgedAge() != 'true') {
    if (API.Window.GetUri().indexOf('/enter.html') != 0) {
		//if (API.Window.GetUri().indexOf('/_clients/pernod/deutz/enter.html') != 0) {
        API.Window.GoTo('/enter.html?return=' + escape(API.Window.GetUri()));
		//API.Window.GoTo('/_clients/pernod/deutz/enter.html?return=' + escape(API.Window.GetUri()));
    }
}


var hasSubmitted = false;
function noDoubleSubmit() {
	//alert("'noDoubleSubmit' function executed");
  if ( hasSubmitted ) {
    return false;
  } else {
    hasSubmitted = true;
    return true;
  }
}