
// mobile users check
if (
    !!navigator.userAgent.match(/ipad|ipod|iphone|android|opera mini|blackberry|pre\/|palm os|palm|hiptop|avantgo|plucker|xiino|blazer|elaine|iris|3g_t|windows ce|opera mobi|iemobile/i)
) {
    var mobile = true;
} else {
    var mobile = false;
}

if (mobile && document.location.pathname == '/en-gb/') {
    window.location = 'http://m.1759.guinness.com';
}

if (!cookiedomain) cookiedomain = '.guinness.com';

$(document).ready(function(){
    
    var boxHeight = 720;
    
    if (mobile) {
        $(".agegate").attr("href", "/mobilegate.html");
        var boxHeight = window.innerHeight < 450 ? 450 : window.innerHeight;
    }
    
    if (gatewayUserUnderage()) {
        gatewaySendUserAway(1200);
    }
    
    var value = $.readCookie('diageoagecheck');
    if (value) {
        if (document.location.pathname === '/') {
            var locale = $.readCookie('locale') || '/en-row';
            if (mobile) { // st patricks redirect for mobile
                locale += "/fdoty";
            }
            window.location = locale;
        }
        return false;
    } else {
        $(".agegate").colorbox({
            close: false,
            escKey: false,
            height: boxHeight + 'px',
            onComplete: gatewayLoadComplete,
            opacity: 1,
            open: true,
            overlayClose: false,
            scrolling: false,
            transition: 'none',
            top: '0px'
        });
    }
});

function gatewayEmbedSurge() {
	var fo = new SWFObject("/swf/GatewaySurge.swf", "flash", "960", "231", "5", "#000000", true);
	fo.addParam("allowScriptAccess", "always");
	fo.addParam("base", ".");
	fo.addParam("wmode", "transparent");
	fo.write("flashcontent");
}

function gatewayLoadComplete() {
    
    // Used if gateway translations are needed
    translateGatewayCopy();
    
    $("#gatewayForm select:first").focus();
    
    $.msg = function(text, style) {
        style = style || 'gatedenied';
        
        $('#gate-error-msg')
            .attr('class', style)
            .html(text)
            .fadeIn('slow')
            .animate({opacity: 1.0}, 3000)  //<== wait 3 seconds before fading out
            .fadeOut('slow', function() {
                $(this).text('');
            });
    };
    
    attachGatewayEvents();
    if (!mobile) gatewayEmbedSurge();
    preloadEnterButton();
}

function attachGatewayEvents() {
    $("#enter_button").click(function(){
        
        var day = $("#d").val();
        var month = $("#m").val();
        var year = $("#yr").val();
        var country = $('#c').val();
        var age = 18;
        
        switch (country) {  
            case "0":age = -1;break;
            case "af":age = 0;break;
            case "al":age = 18;break;
            case "dz":age = 18;break;
            case "ad":age = 18;break;
            case "ao":age = 18;break;
            case "ag":age = 18;break;
            case "ar":age = 18;break;
            case "am":age = 18;break;
            case "en-au":age = 18;break;
            case "at":age = 18;break;
            case "az":age = 0;break;
            case "bs":age = 18;break;
            case "bh":age = 21;break;
            case "bd":age = 0;break;
            case "bb":age = 18;break;
            case "by":age = 18;break;
            case "be":age = 18;break;
            case "bz":age = 18;break;
            case "bj":age = 18;break;
            case "bt":age = 18;break;
            case "bo":age = 18;break;
            case "ba":age = 18;break;
            case "bw":age = 18;break;
            case "br":age = 18;break;
            case "bn":age = 0;break;
            case "bg":age = 18;break;
            case "bf":age = 18;break;
            case "bi":age = 18;break;
            case "kh":age = 18;break;
            case "cm":age = 21;break;
            case "en-ca":age = 19;break;
            case "fr-ca":age = 18;break;
            case "cv":age = 18;break;
            case "cf":age = 18;break;
            case "td":age = 18;break;
            case "cl":age = 18;break;
            case "cn":age = 18;break;
            case "co":age = 18;break;
            case "km":age = 18;break;
            case "cg":age = 18;break;
            case "ck":age = 18;break;
            case "cr":age = 18;break;
            case "ci":age = 18;break;
            case "hr":age = 18;break;
            case "cu":age = 18;break;
            case "cy":age = 18;break;
            case "cz":age = 18;break;
            case "dk":age = 18;break;
            case "dj":age = 18;break;
            case "dm":age = 18;break;
            case "do":age = 18;break;
            case "dc":age = 18;break;
            case "et":age = 0;break;
            case "ec":age = 18;break;
            case "eg":age = 0;break;
            case "sv":age = 18;break;
            case "gq":age = 18;break;
            case "er":age = 18;break;
            case "ee":age = 18;break;
            case "fj":age = 18;break;
            case "fi":age = 18;break;
            case "fr-fr":age = 18;break;
            case "ga":age = 18;break;
            case "gm":age = 18;break;
            case "ge":age = 18;break;
            case "de":age = 18;break;
            case "gh":age = 18;break;
            case "en-gb":age = 18;break;
            case "en-nie":age = 18;break;
            case "gr":age = 18;break;
            case "gd":age = 18;break;
            case "gt":age = 18;break;
            case "gn":age = 18;break;
            case "gw":age = 18;break;
            case "gy":age = 18;break;
            case "ht":age = 18;break;
            case "hn":age = 21;break;
            case "en-hk":age = 18;break;
            case "hu":age = 18;break;
            case "is":age = 0;break;
            case "in":age = 25;break;
            case "en-id":age = 21;break;
            case "bh-id":age = 18;break;
            case "ir":age = 0;break;
            case "iq":age = 0;break;
            case "en-ie":age = 18;break;
            case "il":age = 18;break;
            case "it-it":age = 18;break;
            case "jm":age = 18;break;
            case "ja-jp":age = 20;break;
            case "jo":age = 0;break;
            case "kz":age = 0;break;
            case "ke":age = 18;break;
            case "ki":age = 18;break;
            case "ko-kr":age = 18;break;
            case "kw":age = 0;break;
            case "kg":age = 0;break;
            case "la":age = 18;break;
            case "lv":age = 18;break;
            case "lb":age = 18;break;
            case "ls":age = 18;break;
            case "lr":age = 18;break;
            case "ly":age = 0;break;
            case "li":age = 18;break;
            case "lt":age = 18;break;
            case "lu":age = 18;break;
            case "mk":age = 18;break;
            case "mg":age = 18;break;
            case "mw":age = 18;break;
            case "en-my":age = 18;break;
            case "mv":age = 18;break;
            case "ml":age = 18;break;
            case "mt":age = 18;break;
            case "mh":age = 18;break;
            case "mr":age = 18;break;
            case "mu":age = 18;break;
            case "mx":age = 18;break;
            case "fm":age = 18;break;
            case "md":age = 18;break;
            case "mc":age = 18;break;
            case "mn":age = 18;break;
            case "ma":age = 18;break;
            case "mz":age = 18;break;
            case "mm":age = 18;break;
            case "na":age = 18;break;
            case "nr":age = 18;break;
            case "np":age = 0;break;
            case "nl":age = 18;break;
            case "nz":age = 18;break;
            case "ni":age = 18;break;
            case "ne":age = 18;break;
            case "ng":age = 18;break;
            case "ko-nkr":age = 18;break;
            case "no":age = 0;break;
            case "om":age = 21;break;
            case "pk":age = 0;break;
            case "pw":age = 21;break;
            case "pa":age = 18;break;
            case "pg":age = 18;break;
            case "py":age = 20;break;
            case "pe":age = 18;break;
            case "ph":age = 18;break;
            case "pl":age = 18;break;
            case "pt":age = 18;break;
            case "qa":age = 18;break;
            case "ro":age = 18;break;
            case "ru-ru":age = 18;break;
            case "rw":age = 18;break;
            case "kn":age = 18;break;
            case "lc":age = 18;break;
            case "vc":age = 18;break;
            case "ws":age = 21;break;
            case "sm":age = 18;break;
            case "st":age = 18;break;
            case "sa":age = 0;break;
            case "sn":age = 18;break;
            case "cs":age = 18;break;
            case "sc":age = 18;break;
            case "sl":age = 18;break;
            case "en-sg":age = 18;break;
            case "sk":age = 18;break;
            case "si":age = 18;break;
            case "sb":age = 21;break;
            case "so":age = 18;break;
            case "za":age = 18;break;
            case "ko-skr":age = 19;break;
            case "es-es":age = 18;break;
            case "lk":age = 18;break;
            case "sd":age = 0;break;
            case "sr":age = 18;break;
            case "sz":age = 18;break;
            case "se":age = 1;break;
            case "ch":age = 18;break;
            case "sy":age = 0;break;
            case "tw":age = 18;break;
            case "tj":age = 0;break;
            case "tz":age = 18;break;
            case "th":age = 18;break;
            case "tg":age = 18;break;
            case "to":age = 18;break;
            case "tt":age = 18;break;
            case "tn":age = 18;break;
            case "tr":age = 18;break;
            case "tm":age = 0;break;
            case "tv":age = 18;break;
            case "ug":age = 18;break;
            case "ua":age = 18;break;
            case "ae":age = 21;break;
            case "en-us":age = 21;break;
            case "uy":age = 18;break;
            case "uz":age = 0;break;
            case "vu":age = 18;break;
            case "ve":age = 18;break;
            case "vn":age = 18;break;
            case "ye":age = 0;break;
            case "zm":age = 18;break;
            case "zw":age = 18;break;
            case "en-row":age = 18;break;
            default:age = 18;break;
        }

        // Check Malaysia
        if (country === 'en-my') {
            if (!gatewayValidateMalaysia()){
                return false;
            }
        }
        
        var mydate = new Date();
        mydate.setFullYear(year, month-1, day);
        var currdate = new Date();
        currdate.setFullYear(currdate.getFullYear() - age);

        if ((currdate - mydate) < 0){
            $.msg('Sorry, you must be at least ' + age + ' to enter.');
            gatewaySendUserAway(2000);
            return false;
        } else if(age==0){
            $.msg('Sorry, we are unable to allow you access to our web site.');
        } else if(age==-1){
            $.msg('Sorry, we are unable to allow you access to our web site. Please select country.');
        }
        else if((currdate - mydate) >= 0){
            
            if (gatewayRememberUser()) {
                gatewaySetCookie(30);
            } else {
                gatewaySetCookie(null);
            }

            $.colorbox.close();
            gatewayRedirect();
        } else {
            $.msg('Please enter your date of birth above');
        }
        return false;
    });
    
    var readyToGo = false;
    GUINNESS.surgePlaying = false;
    
    var gatewayCountryChange = function() {
        $("#d, #m, #yr").val('no');
        readyToGo = false;
        
        gatewayStartSurge();
        
        if ($(this).val() == 'en-my') {
            $('#malaysia-check-container').show();
        } else {
            $('#malaysia-check-container').hide();            
        }
    };
    
    // Reset day, month & year on country change, check for country for special cases
    $("#c").change(gatewayCountryChange);
    $('#c').keyup(gatewayCountryChange);
    
    $(window).resize(function() {
        if (GUINNESS.surgePlaying) {
            var timeout = null;
            function playSurge(){
                if($(document.getElementById('flash')).is(':visible')){
                    window.clearTimeout(timeout);
                    gatewayStartSurge();
                }
            }
            timeout = window.setTimeout(playSurge, 1000);
        }
    });
    
    $("#d, #m, #yr").change(function(){
        if (
            $("#d").val() != "no" &&
            $("#m").val() != "no" &&
            $("#yr").val() != "no"
        ) {
            $('#enter_button').attr("src", "/img/button_enter_on.gif");
            readyToGo = true;
        } else {
            $('#enter_button').attr("src", "/img/button_enter_off.gif");
            readyToGo = false;
        }
    });
}

function gatewayGetLocale() {
    var locale = document.location.pathname.match(/\/([a-z]{2}-[a-z]{2})\//);
    if (locale && locale[1]) {
        return locale[1];
    } else {
        return null;
    }
}

function gatewayStartSurge() {
    var fo = document.getElementById("flash");
    if (fo && fo.startPlayingMovie) {
        fo.startPlayingMovie();
        GUINNESS.surgePlaying = true;
    }
}

function gatewaySendUserAway(milliseconds) {
    
    $.setCookie( 'underage', '1', {
        path: '/',
		domain: cookiedomain
    });
    
	setTimeout(function () {
		window.location = '/exit.html';
	}, milliseconds);
}

function gatewaySetCookie(days) {
    $.setCookie( 'diageoagecheck', 'verified', {
        duration: days,
        path: '/',
		domain: cookiedomain
    });
}

function gatewayRememberUser() {
    return $('#remember').attr('checked') ? true : false;
}

function gatewayUserUnderage() {
    return $.readCookie('underage') === '1' ? true : false;
}

function gatewayValidateMalaysia() {
    if ($('#malaysia-check').attr('checked') === false) {
        $.msg('Sorry, we are unable to allow you access to our website due to legal restrictions in your country of access.');
        return false;
    }
    return true;
}

function preloadEnterButton() {
    var img = new Image();
    img.src = "/img/button_enter_on.gif";
}

function gatewayRedirect() {
    var country = $('#c').val();
    var path = '/en-row';
    switch (country) {
        case 'de-de':
            path = "http://www.guinness.de/";
            break;
        case 'en-au':
            //path = '/en-au';
            path = "https://secure.guinness.com/en-au/stpatricks";
            break;
        case 'en-ca':
            path = '/en-ca';
            break;
        case 'en':
        case 'en-gb':
            path = '/en-gb';
            break;
        case 'en-hk':
            path = '/en-hk';
            break;
        case 'en-id':
            path = '/en-id';
            break;
        case 'en-ie':
        case 'en-nie':
            path = '/en-ie';
            break;
        case 'en-my':
            path = '/en-my';
            break;
        case 'en-sg':
            path = '/en-sg';
            break;
        case 'en-us':
            //path = '/en-us';
            path = "https://secure.guinness.com/en-us/stpatricks";
            break;
        case 'es-es':
            path = '/es-es';
            break;
        case 'fr-ca':
            path = '/fr-ca';
            break;
        case 'fr-fr':
            path = 'fr-fr';
            break;
        case 'ja-jp':
        case 'ja':
            path = '/ja-jp';
            //path = "https://secure.guinness.com/ja-jp/stpatricks";
            break;
        case 'ko':
        case 'ko-kr':
        case 'ko-kp':
            path = '/ko-kr';
            break;
        case 'id':
        case 'bh-id':
            path = '/bh-id';
            break;
        case 'zh':
        case 'zh-cn':
        case 'zh-gan':
        case 'zh-guoyu':
        case 'zh-hakka':
        case 'zh-wuu':
        case 'zh-xiang':
        case 'zh-yue':
            path = '/en-row';
            break;
        default:
            path = '/en-row';
    }
    $.setCookie("locale", path, {
        path: '/',
		domain: cookiedomain
    });
	$.setCookie("country", $("#c option:selected").attr("data-country"), {
        path: '/',
		duration: 30,
		domain: cookiedomain
    });
    
    // Redirect user to locale site if they are accessing Guiness via the root
    if (document.location.pathname === '/') {
        window.location = path;
    }

    // Redirect user to St Pats promotion if AU
    if (document.location.pathname === '/en-au/') {
        window.location = 'https://secure.guinness.com/en-au/stpatricks';
    }
}

function translateGatewayCopy() {
    var dictionary = null;
    locale = gatewayGetLocale();
    if (locale) {
        switch(locale) {
            case 'ja-jp':
                dictionary = {
                    'text-1': 'お客様が飲酒年齢に達しているかどうかの年齢確認をさせていただいています。',
                    'text-2': 'ギネスでは、適正飲酒に取り組んでおり、お客様が飲酒年齢に達しているか確認させていただいております。',
                    'text-3': '20歳未満のお客様は、本サイトに入場しないようお願いいたします。',
                    'text-4': 'アクセスしている場所はどこですか。',
                    'text-5': '生年月日を入力してください。',
                    'text-6': 'これらの情報を、<a href="/ja-jp/gateway-privacy.html#1">Cookie</a>に保存しますか？',
                    'text-7': '(このコンピューターを共有している場合は、チェックボックスを空欄にしてください。)',
                    'text-8': 'このサイトに入場すると、<a href="/ja-jp/gateway-terms-and-conditions.html">利用規約</a>と<a href="/ja-jp/gateway-privacy.html">プライバシーおよびクッキーに関する通知</a>を受諾されたことになります。',
                    'text-9': '<a href="/ja-jp/gateway-why.html">このような質問をする理由</a>',
                    'text-10': '<a href="/ja-jp/gateway-accessibility.html">アクセシビリティ</a>',
                    'text-11': '<a href="/ja-jp/gateway-terms-and-conditions.html">利用規約</a>',
                    'text-12': '<a href="/ja-jp/gateway-privacy.html">プライバシーポリシー</a>',
                    'text-13': '<a href="/responsible.html">連絡先</a>',
                    'text-14': 'GUINNESS®の商品名及び関連ロゴは商号登録されています。&copy; Guinness & Co. 2008'
                };
                break;
        }
        
        if (dictionary) {
            $('#gwContent p:eq(0)').html(dictionary['text-1']);
            $('#gwContent p:eq(1)').html(dictionary['text-2']);
            $('#gatewayForm label[for="c"]').html(dictionary['text-4']);
            $('#gatewayForm label[for="d"]').html(dictionary['text-5']);
            $('#gatewayForm label[for="remember"]').html(dictionary['text-6']);
            $('#gatewayForm label[for="remember"]').next().next()
                .html(dictionary['text-7'])
                .attr('class', locale);
            $('#enter_conditions').html(dictionary['text-8']);
            $('#gateway-footer li:eq(0)').html(dictionary['text-9']);
            $('#gateway-footer li:eq(1)').html(dictionary['text-10']);
            $('#gateway-footer li:eq(2)').html(dictionary['text-11']);
            $('#gateway-footer li:eq(3)').html(dictionary['text-12']);
            $('#gateway-footer li:eq(4)').html(dictionary['text-13']);
            $('#gateway-footer p').html(dictionary['text-14']);
        }
    }
}

/* jQuery CooQuery Plugin v2 (minified) - http://cooquery.lenonmarcel.com.br/
Copyright 2009, 2010 Lenon Marcel
Dual licensed under the MIT and GPL licenses.
http://www.opensource.org/licenses/mit-license.php
http://www.gnu.org/licenses/gpl.html */
(function($){$.setCookie=function(name,value,options){if(typeof name==='undefined'||typeof value==='undefined')
return false;var str=name+'='+encodeURIComponent(value);if(options.domain)str+='; domain='+options.domain;if(options.path)str+='; path='+options.path;if(options.duration){var date=new Date();date.setTime(date.getTime()+options.duration*24*60*60*1000);str+='; expires='+date.toGMTString();}
if(options.secure)str+='; secure';return document.cookie=str;};$.delCookie=function(name){return $.setCookie(name,'',{duration:-1});};$.readCookie=function(name){var value=document.cookie.match('(?:^|;)\\s*'+name.replace(/([-.*+?^${}()|[\]\/\\])/g,'\\$1')+'=([^;]*)');return(value)?decodeURIComponent(value[1]):null;};$.CooQueryVersion='v 2.0';})(jQuery);
