if ('undefined' === typeof(Emv.Tools)) {

    Emv.Tools = {};
}

Emv.Tools = {

    /**
     * Set startpage in browser.
     * Get current page as browser homepage for ie, set link to infopage for ff, opera, safari.
     *
     * @uses jQuery.browser (http://api.jquery.com/jQuery.browser/)
     * @param string fallbackUrl
     * @param string currentPage
     * @return boolean
     */
    setAsHomepage: function(fallbackUrl, currentPage) {

        if ($.browser.msie) {

            document.body.style.behavior = 'url(#default#homepage)';
            document.body.setHomePage(currentPage);

            return false;
        }

        self.location.href = fallbackUrl;

        return false;
    },

    /**
     * Install browser open search.
     *
     * @param string serviceDomain
     * @return boolean
     */
    installOpenSearch: function(serviceDomain) {

        var openSearchXmlUri = '';

        switch (serviceDomain) {

            case 'mediabiz.de':
                openSearchXmlUri = 'http://www.mediabiz.de/search/opensearch.xml';
                break;

            case 'kino.de':
                openSearchXmlUri = 'http://www.kino.de/search/opensearch.xml';
                break;

            case 'video.de':
                openSearchXmlUri = 'http://www.video.de/search/opensearch.xml';
                break;

            default:
                return false;
        }

        try {

            window.external.AddSearchProvider(openSearchXmlUri);
        } catch (e) {

            alert('FEHLER: Ihr Browser unterstützt diese Funktion leider nicht.');
        }

        return false;
    }
};

Emv.Tools.Toggle = {

    toggleOpen: function(element) {

        $(element).parent().find('li').each(function() {

            $(this).removeClass('opened').addClass('closed');
        });

        $(element).removeClass('closed').addClass('opened');
    }
};

Emv.Tools.Mail = {

    validate: function(emailAddress) {

        var pattern = new RegExp(/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i);
        return pattern.test(emailAddress);
    }
};

Emv.Tools.Anchor = {

    jumpTo: function(anchor) {

        window.onload = function() {

            window.location.href = '#' + anchor;
        };
    }
};


Emv.Tools.Url = {

    getUrlParam: function(name) {

        name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");

        var regexS = "[\\?&]"+name+"=([^&#]*)";
        var regex = new RegExp( regexS );
        var results = regex.exec( window.location.href );

        if ( results == null )
            return "";
        else
            return results[1];
    }
};
