// Example header text. Can be configured in the options.

window.onerror=function(desc, page, line, chr){
    /* alert('JavaScript error occurred! \n'
    +'\nError description: \t'+desc
    +'\nPage address:      \t'+page
    +'\nLine number:       \t'+line
    );*/
}

$(function () {
    $('a').focus(function () {
        this.blur();
    });
    SI.Files.stylizeAll();
    slider.init();

    $(".sfsearchTxt").val(' ');  // clear value of serach box
    $(".sfsearchSubmit").mouseover(function () {
        if ($(".sfsearchBox").width() <= 140) { // search box is not expanded and user mouse's over 
            $(".TopNavMenuItem").each(function () {
  
                var off = $(this).position();
                var offsb = $(".sfsearchBox").position();
  
                if (((offsb.left) - (off.left)) < 185) { //hide nav menu items closer than set value to search box
                    $(this).animate({
                        "opacity": 0
                    }, 200);
                }
            });
            $(".sfsearchBox").css("width", "150px");    //show searchbox
            $(".sfsearchTxt").css("border", "solid 1px #4A4847");
            $(".sfsearchTxt").selectRange(6, 15);
            $(".sfsearchBox").css("z-index", "400");
            $(".sfsearchTxt").css("opacity", "1");
            $(".sfsearchTxt").parent().addClass("curFocus");
        }
        else{
            //hmm, something to do if user scrolls over submit button and box is already visible 
        }
    });

    $('html').click(function () {       //click anywhere in document

        $(".TopNavMenuItem").animate({  //show hidden nav items
            "opacity": 1
        }, 500);

        $(".sfsearchBox").css("width", "20px");   //hide search box
        $(".sfsearchBox").css("border", "0");
        $(".sfsearchTxt").css("border", "0");
        $(".sfsearchTxt").css("opacity", "0");
        $(".sfsearchTxt").val(' ');
        $(".sfsearchTxt").css("z-index", "0");

    });

    $('.sfsearchBox').click(function (event) {
        event.stopPropagation();           // don't let click function propagate to sfsearchBox         
    });

    $.fn.selectRange = function (start, end) {   // function to place cursor
        return this.each(function () {
            if (this.setSelectionRange) {
                this.focus();
                this.setSelectionRange(start, end);
            }
            else if (this.createTextRange) {
                var range = this.createTextRange();
                range.collapse(true);
                range.moveEnd('character', end);
                range.moveStart('character', start);
                range.select();
            }
        });
    };

    $('input.text-default').each(function () {
        $(this).attr('default', $(this).val());
    }).focus(function () {
        if ($(this).val() == $(this).attr('default')){
            $(this).val('');
        }
    }).blur(function () {
        if ($(this).val() == ''){
            $(this).val($(this).attr('default'));
        }
    });

    $('input.text,textarea.text').focus(function () {
        $(this).addClass('textfocus');
    }).blur(function () {
        $(this).removeClass('textfocus');
    });

    var popopenobj = 0, popopenaobj = null;
    $('a.popup').click(function () {
        var pid = $(this).attr('rel').split('|')[0], _os = parseInt($(this).attr('rel').split('|')[1]);
        var pobj = $('#' + pid);
        if (!pobj.length){
            return false;
        }
        if (typeof popopenobj == 'object' && popopenobj.attr('id') != pid) {
            popopenobj.hide(50);
            $(popopenaobj).parent().removeClass(popopenobj.attr('id').split('-')[1] + '-open');
            popopenobj = null;
        }
        return false;
    });
    $('p.images img').click(function () {
        var newbg = $(this).attr('src').split('bg/bg')[1].split('-thumb')[0];
        $(document.body).css('backgroundImage', 'url(' + _siteRoot + 'images/bg/bg' + newbg + '.jpg)');

        $(this).parent().find('img').removeClass('on');
        $(this).addClass('on');
        return false;
    });
    
    $('div.sc-large div.img:has(div.tml)').each(function () {
        $('div.tml', this).hide();
        $(this).append('<a href="#" class="tml_open">&nbsp;</a>').find('a').css({
            left: parseInt($(this).offset().left) + 864, top: parseInt($(this).offset().top) + 1
        }).click(function () {
            $(this).siblings('div.tml').slideToggle();
            return false;
        }).focus(function () {
            this.blur();
        });
    });
});

var slider = {
    num: -1,
    cur: 0,
    cr: [],
    al: null,
    at: 10 * 1000,
    ar: true,
    init: function () {
        if (!slider.data || !slider.data.length){
            return false;
        }

        var d = slider.data;

        slider.num = d.length;

        var len = slider.num;
        var i = len;
        
        while (i--) {
            var p = parseInt(Math.random() * len);
            var t = d[i];
            d[i] = d[p];
            d[p] = t;
        }
     
        var pos = Math.floor(Math.random() * 1); //slider.num);

        for (var i = 0; i < slider.num; i++) {

            $('#' + d[i].id).css({ left: ((i - pos) * 1000) });
            $('#slide-nav').append('<a id="slide-link-' + i + '" href="#" class="SlideshowMenuItem" onclick="slider.slide(' + i + ');return false;" onfocus="this.blur();">' + (i + 1) + '</a>');
        }

        $('img,div#slide-controls', $('div#slide-holder')).fadeIn();
        slider.text(d[pos]);
        slider.on(pos);
        slider.cur = pos;
        window.setTimeout('slider.auto();', slider.at);
    },
    auto: function () {
        if (!slider.ar){
            return false;
        }

        var next = slider.cur + 1;
        if (next >= slider.num) {
            next = 0;
        }
        slider.slide(next);
    },
    slide: function (pos) {
        if (pos < 0 || pos >= slider.num || pos == slider.cur){
            return;
        }

        window.clearTimeout(slider.al);
        slider.al = window.setTimeout('slider.auto();', slider.at);

        var d = slider.data;
        for (var i = 0; i < slider.num; i++){
            $('#' + d[i].id).stop().animate({ left: ((i - pos) * 1000) }, 1000, 'swing');
        }

        slider.on(pos);
        slider.text(d[pos]);
        slider.cur = pos;
    },
    on: function (pos) {
        $('#slide-nav a').removeClass('on');
        $('#slide-nav a#slide-link-' + pos).addClass('on');
    },
    text: function (di) {
        slider.cr['a'] = di.client;
        slider.cr['b'] = di.desc;
        slider.ticker('#slide-client span', di.client, 0, 'a');
        slider.ticker('#slide-desc', di.desc, 0, 'b');
    },
    ticker: function (el, text, pos, unique) {
        if (slider.cr[unique] != text){
            return false;
        }

        ctext = text.substring(0, pos) + (pos % 2 ? '-' : '_');
        $(el).html(ctext);

        if (pos == text.length){
            $(el).html(text);
        }
        else{
            window.setTimeout('slider.ticker("' + el + '","' + text + '",' + (pos + 1) + ',"' + unique + '");', 30);
        }
    }
};

// STYLING FILE INPUTS 1.0 | Shaun Inman <http://www.shauninman.com/> | 2007-09-07
if (!window.SI){
    var SI = {};
}{
}

SI.Files = {
    htmlClass: 'SI-FILES-STYLIZED',
    fileClass: 'file',
    wrapClass: 'cabinet',

    fini: false,
    able: false,
    init: function () {
        this.fini = true;
    },
    stylize: function (elem) {
        if (!this.fini) {
            this.init();
        }
        if (!this.able) {
            return;
        }

        elem.parentNode.file = elem;
        elem.parentNode.onmousemove = function (e) {
            if (typeof e == 'undefined') {
                e = window.event;
            }
            if (typeof e.pageY == 'undefined' && typeof e.clientX == 'number' && document.documentElement) {
                e.pageX = e.clientX + document.documentElement.scrollLeft;
                e.pageY = e.clientY + document.documentElement.scrollTop;
            }
            var ox = oy = 0;
            var elem = this;
            if (elem.offsetParent) {
                ox = elem.offsetLeft;
                oy = elem.offsetTop;
                while (elem = elem.offsetParent) {
                    ox += elem.offsetLeft;
                    oy += elem.offsetTop;
                }
            }
        };
    },
    stylizeAll: function () {
        if (!this.fini) {
            this.init();
        }
        if (!this.able) {
            return;
        }
    }


};
