/**
 * @author ted
 */
(function($){
    $.fn.accordion = function(options){
		
        var defaults = {
            clickTrigger: 'accordion_click',
            divToHide: 'accordion_hide',
            speed: 'slow',
            openFirst: false,
            bgStartPosition: '0 0',
            bgFinishPosition: '0 100%',
            openText:'CLOSE ME',
            closedText: 'OPEN ME'
        };
        
        var opt = $.extend(defaults, options)
        var targetObj = undefined;
        var targetId = undefined;
        var targetTrigger = undefined;
        var defaultIds = 1;
        var arr;
        var limit = 0;
        
        
        
        this.each(function(){
						   
						
			
            var o = opt;
			 
            var triggerClass = '.' + o.clickTrigger;
            var hideClass = '.' + o.divToHide;
            var containerId;
        
			
			      $(hideClass).css('display', 'none');
			  
            if ($(this).attr('id') == '') {
                $(this).attr('id', defaultIds);
                defaultIds += 1;
            }
            var containerId = '#' + $(this).attr('id');
			
            $(containerId + " " + triggerClass).click(function(){

				
                if (targetObj == undefined) {
					
                    targetObj = containerId + ' > ' + hideClass;
                    targetId = containerId;
                    targetTrigger = triggerClass;
                    $(this).css('background-position', o.bgFinishPosition);
                    $(targetObj).slideDown(o.speed);
                    $(targetTrigger).html(o.openText);
                }
                else {
                    if (containerId != targetId) {
                      
                        $(targetObj).slideUp(o.speed);
                        $(targetTrigger).html(o.closedText);
                        $(targetTrigger).css('background-position', o.bgStartPosition);
                        targetObj = containerId + ' > ' + hideClass;
                        targetId = containerId;
                        targetTrigger = triggerClass;
                        $(this).css('background-position', o.bgFinishPosition);
                        $(targetObj).slideDown(o.speed);
                    }
                    else {
                        $(targetTrigger).html(o.closedText);
                        
                        $(targetTrigger).css('background-position', o.bgStartPosition);
                        $(targetObj).slideUp(o.speed, function(){
                            targetObj = undefined;
                            targetId = undefined;
                            targetTrigger = undefined;
                        });
                    }
                }
				
					//Resizer.resizeWindow();
                
            });
            
            
        })
		
		if (opt.openFirst) {
			var open = '.' + opt.divToHide + ':first';
			var _id = '#' + $(open).parent().attr('id')
			targetObj = _id + ' > ' + open;
			targetId = _id;
			targetTrigger = '.'+opt.clickTrigger;
			
			var clickOpen = _id + ' > .' + opt.clickTrigger;
			$(clickOpen).css('background-position', opt.bgFinishPosition);
			$(open).css('display', 'block');
		}
    }
})(jQuery)

