jQuery.noConflict();

 (function($j) {

    Global = {

        settings: {
            isIE: false
        },

        init: function() {

            var self = this;

            if ($j.browser.msie && parseInt($.browser.version) <= 8) {
                $j("body").addClass("ie");
                self.settings.isIE = true;
            }

            self.isLoaded();
            self.initSocialLinks();
            self.initCustomerLogos();
            self.initTables();
            self.initHomeBanners();
            self.initVideoPlayer();
            self.initMgmtProfiles();
            self.initKB();
            self.initSelectBoxes();
            self.initRegForm();
            self.initOverlays();
            self.initGoToByScroll();

        },

        isLoaded: function() {

            var self = this;


            $j(window).load(function() {
                $j('body').removeClass("js-loading").addClass('jqr');
            });


        },

        initExternalLinks: function() {

            $j('a[rel="external"]').click(function() {
                this.target = "_blank";
            });

        },

        initSocialLinks: function() {

            var self = this;
            var social = '#Social';

            var url = window.location;
            var title = $j('title').html();
            $j('li.twitter a').attr('href', 'http://twitter.com/home?status=Currently reading ' + url + '%20@avecto').attr('target', '_blank');
            $j('li.delicious a').attr('href', 'http://del.icio.us/post?url=' + url + '&title=' + title + '').attr('target', '_blank');
            $j('li.digg a').attr('href', 'http://digg.com/submit?url=' + url + '&title=&bodytext=&media=news&topic=' + title + '').attr('target', '_blank');

        },

        initForms: function() {

            $j.tools.validator.fn("select", "Please select.",
            function(input, value) {
                return (value == '0') ? false: true;
            });

            if ($j('form').length) {
                $j('form').validator({
                    errorInputEvent: 'keyup change'
                });
            }

        },

        initHomeBanners: function() {

            if ($j('.home').length) {
                $j("#HomeBanners").scrollable({
                    circular: true,
                    mousewheel: true
                }).navigator().autoscroll({
                    interval: 5000
                });

                $j(".navi a").each(function(i) {
                    $j(this).attr("id", "nav" + i);
                });
            }
        },

        initVideoPlayer: function() {

            var self = this;

            if ($j('#Videos').length) {

                $j('#Videos .videos-inner').fadeIn();

                var el = $j("#Videos .video-player");
                var pos = el.offset();

                var t = pos.top;
                var l = pos.left;

                if (self.settings.isIE == true) {
                    /* DD roundies offset fix */
                    t = t - $j('.content-container').offset().top;
                    l = l - $j('.content-container').offset().left;

                }

                $j('#Videos span.image').css({
                    position: "absolute",
                    top: t,
                    left: l
                });

                $j('.video-list ul li').hover(
                function() {
                    $j(".image", this).stop(true, true).fadeIn();
                },
                function() {
                    $j(".image", this).hide();
                });

                $j('.video-list ul li .image').hover(
                function() {
                    $j(this).hide();
                });

                $j('.video-list ul li a').click(function() {

                    var link = $j(this).attr('href');

                    $j('#VideoPlayer').addClass('loading').load(link,
                    function() {
                        $j('#VideoPlayer').removeClass('loading');
                    });

                    $j("#Videos .image").hide();

                    $j(".video-list ul li a").addClass("active").not(this).removeClass("active");

                    return false;
                });

                $j(window).load(function() {
                    $j('.video-list ul li:first .image').stop(true, true).fadeIn();
                });



            }

        },

        initTables: function() {

            if ($j('table').length) {
                $j('table tr:even').addClass('even');
                $j('table tr:odd').addClass('odd');
            }
        },

        initOverlays: function() {

            if ($j('.fancybox').length) {

                /*
                $j("a[rel='#Overlay']").overlay({

                                    mask: '#CCCCCC',

                                    onBeforeLoad: function() {

                                        var wrap = this.getOverlay().find(".contentWrap");
                                        var image = new Image();
                                        image.src = this.getTrigger().attr("href");
                                        wrap.append(image);
                                    },
                                    onClose: function() {
                                        $('#Overlay .contentWrap').empty();
                                    }
                                })*/
								$j(".fancybox").fancybox();
                
            }
        },

        initGoToByScroll: function() {

            if ($j('.js-scroll-to-div').length) {

                $j("a.js-scroll-to-div").click(function(e) {
                    e.preventDefault();
                    goToByScroll($j(this).attr("href"));
                });

                function goToByScroll(id) {
                    $j('html,body').animate({
                        scrollTop: $j(id).offset().top
                    },
                    'slow');
                }

            }
        },


        initMgmtProfiles: function() {

            if ($j('.company-management').length) {

                $j('.js-mp-list a').click(function() {
                    $j(".js-mp-list li.active").removeClass("active");
                    var c = $j(this).attr('class');
                    var el = $j(this).attr('href');

                    $j("[class*=" + c + "]").parent().addClass("active");
                    $j(".management-profile").hide();
                    $j(el).show();

                    return false;
                });

                $j('.management-photos a').hover(function() {
                    $j(".js-mp-list li.active").removeClass("active");
                    var c = $j(this).attr('class');
                    var el = $j(this).attr('href');

                    $j("[class*=" + c + "]").parent().addClass("active");
                    $j(".management-profile").hide();
                    $j(el).show();

                    return false;
                });

                $j(".js-mp-list a:first").trigger('click');

            }
        },

        initCustomerLogos: function() {

            if ($j('.customer-logo-list').length) {

                $j(".customer-logo-list ul li span.image img").each(function(i) {
                    $j(this).delay(i * 100).fadeIn();
                });
            }

        },

        initKB: function() {

            if ($j('.knowledgebase').length) {

                if ($j('.tab-table').length) {
                    $j('table tr:even').addClass('even');
                    $j('table tr:odd').addClass('odd');
                } else {
                    $j('table tr').removeClass('even');
                    $j('table tr').removeClass('odd');
                }

                if ($j('.kb-content-tabs').length) {
                    $j('.kb-content-tabs a').click(function() {

                        $j('.kb-content-tabs a').removeClass('active');
                        $j('.tab-table').hide();
                        var El = $j(this).attr("href");
                        $j(this).addClass('active');
                        $j(El).show();

                        return false;

                    });

                    $j('.kb-content-tabs a:first').click();
                }

                if ($j('.kb-search-results').length) {
                    var n = $j(".kb-sr").length;
                    var str;
                    if (n == 1) {
                        str = " Result"
                    } else {
                        str = " Results"
                    }
                    $j(".kb-sr-results-count").html(n + str);

                }

            }
        },

        initSelectBoxes: function() {

            if ($j('.register-form').length) {

                function selectReplacement(obj) {
                    // append a class to the select
                    obj.className += ' replaced';
                    // create list for styling
                    var ul = document.createElement('ul');
                    ul.className = 'select-replacement';
                    var opts = obj.options;
                    for (var i = 0; i < opts.length; i++) {
                        var selectedOpt;
                        if (opts[i].selected) {
                            selectedOpt = i;
                            break;
                        } else {
                            selectedOpt = 0;
                        }
                    }
                    for (var i = 0; i < opts.length; i++) {
                        var li = document.createElement('li');
                        var txt = document.createTextNode(opts[i].text);
                        li.appendChild(txt);
                        li.selIndex = opts[i].index;
                        li.selectID = obj.id;
                        li.onclick = function() {
                            selectMe(this);
                        }
                        if (i == selectedOpt) {
                            li.className = 'selected';
                            li.onclick = function() {
                                this.parentNode.className += ' select-open';
                                this.onclick = function() {
                                    selectMe(this);
                                }
                            }
                        }
                        if (window.attachEvent) {
                            li.onmouseover = function() {
                                this.className += ' hover';
                            }
                            li.onmouseout = function() {
                                this.className =
                                this.className.replace(new RegExp(" hover\\b"), '');
                            }
                        }
                        ul.appendChild(li);
                    }
                    // add the input and the ul
                    obj.parentNode.appendChild(ul);
                }
                function selectMe(obj) {
                    var lis = obj.parentNode.getElementsByTagName('li');
                    for (var i = 0; i < lis.length; i++) {
                        if (lis[i] != obj) {
                            // not the selected list item
                            lis[i].className = '';
                            lis[i].onclick = function() {
                                selectMe(this);
                            }
                        } else {
                            setVal(obj.selectID, obj.selIndex);
                            obj.className = 'selected';
                            obj.parentNode.className =
                            obj.parentNode.className.replace(new RegExp(" select-open\\b"), '');
                            obj.onclick = function() {
                                obj.parentNode.className += ' select-open';
                                this.onclick = function() {
                                    selectMe(this);
                                }
                            }
                        }
                    }
                }
                function setVal(objID, selIndex) {
                    var obj = document.getElementById(objID);
                    obj.selectedIndex = selIndex;
                }
                function setForm() {
                    var s = document.getElementsByTagName('select');
                    for (var i = 0; i < s.length; i++) {
                        selectReplacement(s[i]);
                    }
                }
                function closeSel(obj) {
                    // close the ul
                    }
                window.onload = function() {
                    (document.all && !window.print) ? null: setForm();
                }

            }
        },

        initRegForm: function() {

            if ($j('.register-login-landing').length) {

                var self = this;

                //$j('input').val('me@email.co.uk');
                $j('.next-step-1').click(function(e) {
                    var fieldset = null,
                    proceed = false;

                    fieldset = $j(this).closest('fieldset');
                    proceed = processFormStep(fieldset);
                    if (proceed) {
                        fieldset.fadeOut(200,
                        function() {
                            $j('.step2').fadeIn();
                        });

                    }
                    e.preventDefault();
                });

                $j('.next-step-2').click(function(e) {
                    var fieldset = null,
                    proceed = false;

                    fieldset = $j(this).closest('fieldset');
                    proceed = processFormStep(fieldset);
                    if (proceed) {
                        fieldset.fadeOut(200,
                        function() {
                            $j('.step3').fadeIn();
                        });

                    }
                    e.preventDefault();
                });

                $j('.next-step-3').click(function(e) {
                    var fieldset = null,
                    proceed = false;

                    fieldset = $j(this).closest('fieldset');
                    proceed = processFormStep(fieldset);
                    if (proceed) {
                        alert('form submitted')
                    } else {
                        e.preventDefault();
                    }
                });


                $j('.login-btn').click(function(e) {
                    var fieldset = null,
                    proceed = false;

                    fieldset = $j(this).closest('fieldset');
                    proceed = processFormStep(fieldset);
                    if (proceed) {
                        } else {
                        e.preventDefault();
                    }
                });


                function processFormStep(fieldset) {

                    var hasError = false,
                    formRow = 'frow-required',
                    errorClass = 'frow-error';

                    fieldset.find('.' + errorClass).removeClass(errorClass);

                    fieldset.find('.' + formRow).each(function() {

                        var self = this,
                        fieldvalue = null;

                        if ($j(this).hasClass('frow-select')) {
                            fieldvalue = $j('select', this).val().trim();
                        }
                        else if ($j(this).hasClass('frow-textarea')) {
                            fieldvalue = $j('textarea', this).val().trim();
                        }
                        else {
                            fieldvalue = $j('input', this).val().trim();
                        }

                        if (fieldvalue === '') {
                            $j(this).addClass(errorClass);
                            hasError = true;
                        }
                        else if (fieldvalue === '0') {
                            $j(this).addClass(errorClass);
                            hasError = true;
                        }
                        else if ($j(this).hasClass('frow-email')) {
                            if (! (/^([_a-z0-9-]+)(\.[_a-z0-9-]+)*@([a-z0-9-]+)(\.[a-z0-9-]+)*(\.[a-z]{2,4})$/.test(fieldvalue))) {
                                $j(this).addClass(errorClass);
                                hasError = true;
                            }
                        }
                    });

                    if (hasError) {
                        return false;
                    } else {
                        return true;
                    }

                }





            }

        }


        /*

        y: function() {
            if ($j(var1.length) {
             }
        }
*/

    };

    $j().ready(function() {

        Global.init();

    });

})(jQuery);

