﻿//wrap code in a closure to allow use of $
(function ($) {

    AKQA.DeviceManager = (function () {
        // Device detection
        var isiPad = (navigator.platform.match(/iPad/i)) ? true : false,
            isiPod = (navigator.platform.match(/iPod/i)) ? true : false,
	        isiPhone = (navigator.platform.match(/iPhone/i)) ? true : false,
            isAndroid = (navigator.userAgent.match(/Android/i)) ? true : false,
			isHandset = isiPhone || isiPod || isAndroid,
	        isMac = (navigator.platform.match(/Mac/i)) ? true : false,
            isiOS = isiPad || isiPod || isiPhone,
            isWindows = !isMac && !isiOS && !isAndroid,
            isWebkit = $.browser.webkit,
            isMozilla = $.browser.mozilla,
            isOpera = $.browser.opera,
            isIE = $.browser.msie,
            isChrome = (navigator.userAgent.match(/Chrome/i)) ? !isAndroid : false,
            isSafari = (navigator.userAgent.match(/Safari/i)) ? !isChrome : false,
            isMobileWebkit = isiOS || isAndroid, // not a complete list, but we haven't tested other devices
            iOSVersion = (isiOS) ? navigator.appVersion.match(/OS (.)/i)[1] : 0,
            IEVersion = (isIE) ? navigator.userAgent.match(/MSIE ([0-9]{1,}[\.0-9]{0,})/i)[1] : 0,
            useFontFace = isiOS || isMac || isAndroid,
            useCufon = isWindows,
            useCSSTransitions = isMobileWebkit && ('WebKitCSSMatrix' in window && 'm11' in new WebKitCSSMatrix());

        return {
            isiPad: function () {
                return isiPad;
            },
            isiPod: function () {
                return isiPod;
            },
            isiPhone: function () {
                return isiPhone;
            },
            isiOS: function () {
                return isiOS;
            },
            isMac: function () {
                return isMac;
            },
            isWebkit: function () {
                return isWebkit;
            },
            isMozilla: function () {
                return isMozilla;
            },
            isOpera: function () {
                return isOpera;
            },
            isIE: function () {
                return isIE;
            },
            isAndroid: function () {
                return isAndroid;
            },
			isHandset: function () {
				return isHandset;
			},
            isChrome: function () {
                return isChrome;
            },
            isSafari: function () {
                return isSafari;
            },
            isMobileWebkit: function () {
                return isMobileWebkit;
            },
            useFontFace: function () {
                return useFontFace;
            },
            useCufon: function () {
                return useCufon;
            },
            useCSSTransitions: function () {
                return useCSSTransitions;
            },
            iOSVersion: function () {
                return iOSVersion;
            },
            IEVersion: function () {
                return IEVersion;
            }
        };
    } ());

    //load font face fonts
    if (AKQA.DeviceManager.useFontFace()) {
        if (AKQA.DeviceManager.isiOS()) {
            //workaround for @font-face weirdness in iOS
            document.write(
                '<link rel="stylesheet" type="text/css" href="http://fast.fonts.com/cssapi/a35df4d4-8139-4cbd-b0d2-8f3803a0d16e.css">' +
                '<script type="text/javascript" src="http://use.typekit.com/zro2jlc.js"></script>' //regular
            );
        } else {
            document.write(
                '<link rel="stylesheet" type="text/css" href="http://fast.fonts.com/cssapi/a35df4d4-8139-4cbd-b0d2-8f3803a0d16e.css">' +
                '<script type="text/javascript" src="http://use.typekit.com/kca3bgf.js"></script>'
            );
        }
    }

    //load cufon fonts
    if (AKQA.DeviceManager.useCufon()) {
        //Patch for jQuery's Sizzle engine to work correctly with VML elements in IE only (see http://bugs.jquery.com/ticket/7071)
        if (AKQA.DeviceManager.isIE()) {
            document.write(
                '<script type="text/javascript" src="' + AKQA.ASSETS_PATH + '/library/js/ie_vml_sizzlepatch.js"></script>'
            );
        }
        document.write(
            '<script type="text/javascript" src="' + AKQA.ASSETS_PATH + '/library/js/cufon-yui.js"></script>' +
		    '<script type="text/javascript" src="' + AKQA.ASSETS_PATH + '/library/webfonts/Trajan-Pro_400-Trajan-Pro_700.font.js"></script>' +
            '<script type="text/javascript" src="' + AKQA.ASSETS_PATH + '/library/webfonts/Albertina_400-Albertina_500-Albertina_italic_500.font.js"></script>' +
            '<script type="text/javascript" src="' + AKQA.ASSETS_PATH + '/library/webfonts/Albertina_400-Albertina_500-Albertina_italic_500.font-TALEO.js"></script>'

        );
    }

    //load multitouch support
    if (AKQA.DeviceManager.isMobileWebkit()) {
        document.write(
		    '<script type="text/javascript" src="' + AKQA.ASSETS_PATH + '/library/js/jquery.jScrollTouch.custom.js"></script>' +
            '<script type="text/javascript" src="' + AKQA.ASSETS_PATH + '/library/js/jquery.jswipe-0.1.2.custom.js"></script>'
        );
    }

} (jQuery.noConflict()));
