/**
 * @author Roland Lambert
 */
jQuery.fn.fadeToggle = function(speed, easing, callback){
    return this.animate({
        opacity: 'toggle'
    }, speed, easing, callback);
};
jQuery.fn.scrollCenter = function(target, frame, speed, easing, callback){
    target_height = target.height() * 0.5;
    if ((target.height() - target.height() * 0.5) < frame.height()) {
        target_height = target.height() - frame.height();
    }
    if (speed) {
        //speed = speed/100 *target_height;
    }
    return this.animate({
        top: ('-=' + target_height)
    }, speed, easing, callback);
};
var obx = {
    init: function(){
        obx.form.init();
        obx.slideshow.init();
        obx.expanding_list.init();
        if (!$('#gallery a').length == 0) {
            $(function(){
                $('#gallery a').lightBox({
                    fixedNavigation: true
                }); // Select all links in object with gallery ID
            });
        };
            },
    form: {
        init: function(){
        
            if (!$('label.text input, label textarea').length == 0) {
                if ($('label.text input').length > 0) {
                    $('label.text input').each(function(index, domEle){
                    
                        if ($(this).val() != "") {
                            domEle.defVal = $(this).val();
                            
                            $(this).bind("focus", function(){
                                if ($(this).val() == domEle.defVal) {
                                    $(this).val("");
                                }
                            });
                            $(this).bind("blur", function(){
                            
                                if ($(this).val() == "") {
                                    $(this).val(domEle.defVal);
                                }
                            })
                        }
                    })
                };
                if ($('label textarea').length > 0) {
                    $('label textarea').each(function(index, domEle){
                        if ($(this).html() != "") {
                        
                            domEle.defVal = $(this).html();
                            
                            $(this).bind("focus", function(){
                                if ($(this).html() == domEle.defVal) {
                                    $(this).html("");
                                }
                            });
                            $(this).bind("blur", function(){
                                if ($(this).val() == "") {
                                    $(this).html(domEle.defVal);
                                }
                            })
                        }
                    })
                }
            }
        }
    },
    slideshow: {
        window: null,
        nav: null,
        length: null,
        index: 0,
        interval: 0,
        timeout: 0,
        init: function(){
            if ($('.slideshow').length == 0) {
                return;
            }
            obx.slideshow.window = $('.slideshow .window');
            obx.slideshow.nav = $('.slideshow .nav');
            obx.slideshow.window.find("li").hide();
            obx.slideshow.window.find("li").css({
                'position': 'absolute'
            })
            obx.slideshow.nav.find('a').each(function(i){
                $(this).bind("click", {
                    index: i
                }, obx.slideshow.switch_item);
            })
            obx.slideshow.interval = setInterval(function(){
                obx.slideshow.next()
            }, 8000);
            obx.slideshow.index = obx.slideshow.window.find("li").length;
            obx.slideshow.next();
            
        },
        switch_item: function(e){
            var current = $(e.target);
            if (!current.parent().hasClass('.current')) {
                clearInterval(obx.slideshow.interval);
                clearTimeout(obx.slideshow.timeout);
                obx.slideshow.timeout = setTimeout(function(){
                    obx.slideshow.interval = setInterval(obx.slideshow.next, 8000)
                }, 15000);
                obx.slideshow.display(e.data.index);
            }
        },
        display: function(index){
        
            obx.slideshow.index = index;
            current = $(obx.slideshow.nav.find('li a')[index]);
            obx.slideshow.nav.find('li.current').removeClass('current');
            current.parent().toggleClass('current');
            obx.slideshow.window.find("li:not(:visible)").css({
                'z-index': 1
            });
            obx.slideshow.window.find("li:visible").css({
                'z-index': 3
            }).fadeToggle(500);
            
            new_item = $(obx.slideshow.window.find("li")[index]);
            
            new_item.show().css({
                'top': 0,
                'left': 0
            });//.scrollCenter(new_item, obx.slideshow.window, 8000)

            
            obx.slideshow.window.parent().find("p.message:first").html(new_item.find(".message:first").html());
			return false;
        },
        next: function(){
            if (obx.slideshow.index < obx.slideshow.window.find("li").length - 1) {
                obx.slideshow.index++;
            }
            else {
                obx.slideshow.index = 0;
            }
            obx.slideshow.display(obx.slideshow.index);
        }
    },
    expanding_list: {
    	init :function(){
    	var lists = $(".expanding-ul");
    	lists.each(function(index, list) {
	    	list = $(list);
	    	//alert(list);
	    	list.listUl = $(list.find(".horz-list"));
	    	list.btn = list.find(".expanding-ul-button");
	    	list.btnText  = list.btn.find("span").text();
	    	list.listHeight = list.listUl.height();
	    	list.itemHeight =  $(list.listUl.find("li")[0]).height();
	    	list.listUl.height(list.itemHeight*4);


	    	list.btn.click(function() {
	    	    	if(list.listUl.height()<list.listHeight) { 
	    	        	list.listUl.animate( { height: list.listHeight }, 1000);
	    	        	list.btn.addClass('open');
	    				list.btn.select("span").html("<span>Close</span>");
		    	    }else{
		    	        list.listUl.animate( { height: list.itemHeight*4 }, 1000);
		    	        list.btn.select("span").html("<span>"+list.btnText+"</span>");
		    	        list.btn.removeClass('open');    
		    	    }
	    			});
	    		});
    	}
    	
    }
}

$(document).ready(obx.init);

