//ajax error 발생할 때
$(document).ajaxError(function(info,xhr){
	alert('Ajax error\nStatus: ' + xhr.status + ' ' + xhr.statusText);
});

/*$(document).ajaxStart(function(){
	$.blockUI({message: '<h1><img src="/images/busy.gif"/> Just a moment...</h1>'});
}).ajaxStop($.unblockUI);*/

//공통 함수
(function($) {
/*	$.fn.ajaxBlock = function(){
		return $(this).ajaxStart(function(){
			$(this).block({message: '<h1><img src="/images/busy.gif"/> Just a moment...</h1>'});
		}).ajaxStop(function(){
			$(this).unblock();
		});
	};*/
	
/*	$.fn.ajaxBlock = function(){
		//alert(this);
		return this.ajaxStart(function(){
			$.blockUI({message: '<h1><img src="/images/busy.gif"/> Just a moment...</h1>'});
		}).ajaxStop($.unblockUI);
	};*/
	
	$.fn.ajaxBlock = function(){
		return this.one("ajaxStart", function(){
			$.blockUI({message: '<h1><img src="/images/busy.gif"/> Just a moment...</h1>'});
		}).one("ajaxStop", $.unblockUI);
	};	

	$.fn.ajaxBlock2 = function(){
		return this.one("ajaxStart", function(){
			$.blockUI();
		}).one("ajaxStop", $.unblockUI);
	};		
	
	$.fn.emptySelect = function(){
		return this.each(function(){
			if (this.tagName=='SELECT') this.options.length = 0;
		});
	};

	$.fn.loadSelect = function(optionsDataArray, captionName, valueName) {
		return this.emptySelect().addSelect(optionsDataArray, captionName, valueName);
	};
	
	/*$.fn.loadSelect = function(data, captionName, valueName){
		return this.emptySelect().each(function(){
			if (this.tagName=='SELECT') {
				var selectElement = this;
				$.each(data, function(name,optionsDataArray){
					$.each(optionsDataArray,function(index,optionData){
						var option = new Option(eval("optionData." + captionName), eval("optionData." + valueName));
						if ($.browser.msie) {
							selectElement.add(option);
						}
						else {
							selectElement.add(option,null);
						}
					});
				});
			}
		});
	};*/	
	
	$.fn.addSelect = function(optionsDataArray, captionName, valueName){
		return this.each(function(){
			if (this.tagName=='SELECT') {
				var selectElement = this;
				$.each(optionsDataArray,function(index,optionData){
					var option = new Option(eval("optionData." + captionName), eval("optionData." + valueName));
					if ($.browser.msie) {
						selectElement.add(option);
					}
					else {
						selectElement.add(option,null);
					}
				});
			}
		});
	};	
})(jQuery);

/**
* 입력값이 특정 문자(chars)만으로 되어있는지 체크
* 특정 문자만 허용하려 할 때 사용
* ex) if (!containsCharsOnly(form.blood,"ABO")) {
*         alert("혈액형 필드에는 A,B,O 문자만 사용할 수 있습니다.");
*     }
*/
function containsCharsOnly(input,chars) {
    for (var inx = 0; inx < input.length; inx++) {
       if (chars.indexOf(input.charAt(inx)) == -1)
           return false;
    }
    return true;
}

/**
* 입력값이 알파벳 대문자, 숫자로 되어있는지 체크
*/
function isUpperNum(input) {
    var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
    return containsCharsOnly(input,chars);
}

