/**
 * @class: Util
 * @description: Defines Util functions
 * @author: len.nguyenvan
 * @version: 1.0
 **/
 
(function($){
	
	$.fn.accordSupport = function(options){
		var defaults = {
				slideDuration: 500,
				trigSelector: 'li',
				contSelector: 'ul.subLev:first',
				onComplete: null
			},
			internal = $.extend(defaults, options);
			
		return this.each(function(){
			var jcontainer = $(this),
				jtrigs = jcontainer.children(internal.trigSelector),
				animateComplete = true;
			
			if(jtrigs.length){
				for(var i = 0; i < jtrigs.length; i++){
					if(!jtrigs.eq(i).hasClass('active')){
						jtrigs.eq(i).data('isShow', 0).find(internal.contSelector).removeClass('hidden').css('display', 'none');
					}
				}
				
				jtrigs.each(function(idx){
					if($(this).find(internal.contSelector).length){
						$(this).find('a:first').unbind('click.zaccord').bind('click.zaccord', function(){
							if(!animateComplete){
								return false;
							}
							
							animateComplete = false;
							
							var jtrig = $(this),
								jcont = jtrig.closest('li').find(internal.contSelector);
							
							if(jtrig.data('isShow')){
								jtrig.data('isShow', 0).removeClass('active');
								
								jcont.stop(true).slideUp(internal.slideDuration, function(){
									animateComplete = true;
									if(internal.onComplete){
										internal.onComplete.call(this, jtrig, jcont);
									}
								});
							}else{
								jtrig.data('isShow', 1).addClass('active');
								
								jcont.stop(true).slideDown(internal.slideDuration, function(){
									animateComplete = true;
									if(internal.onComplete){
										internal.onComplete.call(this, jtrig, jcont);
									}
								});
							}
						
							return false;
						});
					}
				});
			}
		
		});
	};
	
	$.fn.balanceSize = function(options){
		var defaults = {
				leftCont: '.main:first',
				rightCont: '.sidebar:first'
			},
			internal = $.extend(defaults, options);
			
		return this.each(function(){
			var jcontainer = $(this);
				
			$(window).unbind('resize.zbalance').bind('resize.zbalance', function(){
				var jleft = jcontainer.find(internal.leftCont).css('height', ''),
					jright = jcontainer.find(internal.rightCont),
					leftHeight = jleft.height(),
					rightHeight = jright.height();
					
				if(leftHeight < rightHeight){
					jleft.css('height', rightHeight - parseInt(jleft.css('padding-top')) - 10);
				}
			}).trigger('resize.zbalance');
		});
	};
	
	$.fn.alterText = function(options){
		var defaults = {
				leftCont: '.main:first',
				rightCont: '.sidebar:first'
			},
			internal = $.extend(defaults, options);
			
		return this.each(function(){
			$(this).unbind('focus.zalter').unbind('blur.zalter').bind('focus.zalter', function(){
				var jelm = $(this);
				if($.trim(jelm.val()) == jelm.data('altertext')){
					jelm.val('');
				}
			}).bind('blur.zalter', function(){
				var jelm = $(this);
				if($.trim(jelm.val()) == ''){
					jelm.val(jelm.data('altertext'));
				}
			});
		});
	};
})(jQuery);
