    function tvlNewBrowserWindow(url) {
        window.open(url,'blank','');
    }

    function setElementDisabled(elementId, value) {
        var element = document.getElementById(elementId);
        element.disabled = value;
    }

    function helpWindow(url) {
        window.open(url,'help','');
    }

    function createTooltip(id, message) {
        $(function() { $(id).tooltip({ delay: 1000, bodyHandler: function() { return message; } }); });
    }

    function createAutoComplete(code, url, queryParam, errorMessage,  onValueChanged) {
        var dataSource = new YAHOO.util.XHRDataSource(url);
        dataSource.responseType = YAHOO.util.XHRDataSource.TYPE_TEXT;
	    // Define the schema of the delimited results
	    dataSource.responseSchema = {
	        recordDelim: "|",
	        fieldDelim: ","
	    };
        dataSource.scriptQueryParam = queryParam;

        var autoComplete = new YAHOO.widget.AutoComplete(code + "_appearance", code + "Container", dataSource, {useIFrame: true, forceSelection: true});

        autoComplete.formatResult = function(resultItem, query) {
            return resultItem[0];
        };

        var hiddenFieldOnSelectionFiller = function(sType, args) {
            var itemData = args[2];
            var element = document.getElementById(code);
            element.setAttribute("value", itemData[1]);
            $("#"+code+"ErrorMessage").text("");
        };

        var clearHiddenField = function(sType, args) {
            var element = document.getElementById(code);
            element.setAttribute("value", "");
        };

        var showErrorMessage = function(sType, args) {
            if (args[1] != "") {
                $("#"+code+"ErrorMessage").text(args[1] + " " + errorMessage);
            }
            clearHiddenField();
        };
        
        autoComplete.itemSelectEvent.subscribe(hiddenFieldOnSelectionFiller);
        autoComplete.unmatchedItemSelectEvent.subscribe(clearHiddenField);
        autoComplete.selectionEnforceEvent.subscribe(showErrorMessage);
        if ("" != onValueChanged) {
            autoComplete.itemSelectEvent.subscribe(onValueChanged);
        }
    }


    function createMultilanguageTabContainer(tabContainerName) {
        var tabView = new YAHOO.widget.TabView(tabContainerName);
        tabView.set("activeIndex", 0);
        if (window.multilanguageFields == null) {
            window.multilanguageFields = new Array();

        }
        window.multilanguageFields[window.multilanguageFields.length] = tabView;
        tabView.addListener("activeTabChange", languageChanged);
    }

    function languageChanged(eventInfo) {
        var newSelectedTab = eventInfo.newValue;
        var selectedIndex;
        for (var i = 0; i < window.multilanguageFields.length; i++) {
            var selectedIndexForCurrentTabView = window.multilanguageFields[i].getTabIndex(newSelectedTab);
            if (selectedIndexForCurrentTabView != null) {
                selectedIndex = selectedIndexForCurrentTabView;
            }
        }
        setSelectedTabIndex(selectedIndex);
    }

    function setSelectedTabIndex(selectedIndex) {
        if (selectedIndex != null) {
            for (var i = 0; i < window.multilanguageFields.length; i++) {
                if (window.multilanguageFields[i].get('activeIndex') != selectedIndex) {
                    window.multilanguageFields[i].set('activeIndex', selectedIndex);
                }
            }
        }
    }

    function createProductTabContainer(tabContainerName, productId) {
        var tabView = new YAHOO.widget.TabView(tabContainerName);

        function selectedTabChanged(eventInfo) {
            var cookieState = tabView.get("activeIndex");
            if ("" != productId) {
                cookieState = cookieState + "_" + productId;
            }

            YAHOO.util.Cookie.set("selectedTab", cookieState);
        }
        tabView.addListener("activeTabChange", selectedTabChanged);

        var activeIndex = 0;
        var cookieValue = YAHOO.util.Cookie.get("selectedTab");
        if (cookieValue != null) {
            var cookieInfo = cookieValue.split("_");
            if ((cookieInfo.length < 2) || (cookieInfo[1] == productId)) {
                activeIndex = cookieInfo[0];
            }
        }

        /*
         Check if the remembered Tab index from the cookie has a corresponding tab on the actual rendered page.
         (bugfix: no tab was selected when switching to page with less tabs, and the last tab was selected)
        */
        var maxTabIndex = tabView.get("tabs").length - 1;
        if (activeIndex > maxTabIndex){
            tabView.set("activeIndex", maxTabIndex);
        } else {
            tabView.set("activeIndex", activeIndex);
        }

        return tabView;
    }

    function createTabGeneral(tabContainerName, group, isSelected) {
        var titleElement = document.getElementById(tabContainerName + "_tabList");
        var titleLi = document.createElement("li");
        titleElement.appendChild(titleLi);
        if (isSelected) {
            titleLi.setAttribute("class", "selected");
        }
        var titleA = document.createElement("a");
        titleLi.appendChild(titleA);
        titleA.setAttribute("href", "#" + group + "_tab");
        return titleA
    }

    function createProductTab(tabContainerName, group, groupTitleMessage, isSelected) {
        var titleA = createTabGeneral(tabContainerName, group, isSelected);
        var titleEm = document.createElement("em");
        titleEm.appendChild(document.createTextNode(groupTitleMessage));
        titleA.appendChild(titleEm);
    }

    function createMultilanguageTab(tabContainerName, group, flagUrl, isSelected) {
        var titleA = createTabGeneral(tabContainerName, group, isSelected);
        var flagImage = document.createElement("img");
        flagImage.setAttribute("src", flagUrl);
        titleA.appendChild(flagImage);
    }


    $(document).ready(function() {
        $("a.backToTop").button().click(function(){
            $("html, body").animate({ scrollTop: 0}, 'slow' );
            return false;
        });

        if(!$.browser.msie){
            $('.floatingButtonBar').hide();    
            $(window).scroll(function () {
                var toolbarid = $('.floatingButtonBar');
                if ($(window).scrollTop() <150) {
                    toolbarid.fadeOut('slow');
                }

                if ($(window).scrollTop() >=150){
                    toolbarid.fadeIn('slow');
                }
            });
        };

//         if ($.exists(".inlineValidationError:first")) {
//            var $tab = $(".inlineValidationError:first").closest("div[id$='tab']").attr('id');
//            var tabView = new YAHOO.widget.TabView("mainTabContainer");
//            tabView.set("activeIndex",$("#mainTabContainer_tabList li").index($("a[href$=\"" + $tab + "\"]").closest("li")));
//
//            $("html, body").animate({scrollTop: $(".inlineValidationError:first").offset().top -30}, 'slow');
//         }

    });

jQuery.exists = function(selector) {return ($(selector).length > 0);}

jQuery.goToField = function(selector) {
    if ($.exists("[name=\"" + selector + "\"]")) {
        var $tab = $("[name=\"" + selector + "\"]").closest("div[id$='tab']").attr('id');
        var tabView = new YAHOO.widget.TabView("mainTabContainer");
        tabView.set("activeIndex",$("#mainTabContainer_tabList li").index($("a[href$=\"" + $tab + "\"]").closest("li")));

        $("html, body").animate({scrollTop: $("[name=\"" + selector + "\"]").offset().top - 15}, 'slow');
     }
}




