//** ---------------------------------------------------------------------------
// 파 일 명 :utils.js 
// 작 성 자 :임광규
// 작 성 일: 2011-07-13
//** ---------------------------------------------------------------------------
var errorFun =  function(XMLHttpRequest, textStatus, errorThrown) {
	//서버단에서 exception발생 시 처리해 줘야 하는 부분
	validateRequest(XMLHttpRequest)
};


/* 프로젝트에 맞게 고쳐야 함 */
function validateRequest(XMLHttpRequest){
	var msg = XMLHttpRequest.getResponseHeader('errorMsg');
	var isMove = XMLHttpRequest.getResponseHeader('moveErrorPage');
	var script = XMLHttpRequest.getResponseHeader('callScript');
	if(script != null && script != "null"){
		eval(script);
	}

	if(isMove == 'false'){
		alert(decodeURIComponent(msg).replace(/\+/gi, " "));
	}else {					
		if(XMLHttpRequest.status=="500"){
			location.href = "/errorPage/500.do";
		}else if(XMLHttpRequest.status=="404"){
			location.href = "/errorPage/404.do";
		}else if(XMLHttpRequest.status=="403"){
			location.href = "/errorPage/403.do";
		}
	}

	if(XMLHttpRequest.getResponseHeader('resultStatus') != "fail"){
		return true;
	}
	
	return false;
}


	/*
	 * ajax호출을 해준다.
	 * 
	 * 
	 * param - dictionaly객체
	 * url : 호출할 액션 주소
	 * dataType : 리턴받을 결과물의 타입('html', 'script')
	 * data : 넘길 파라메터(그냥 붙여서 넘길경우는 GET방식으로 넘기고, form을 넘기려고 할 시에는 
	 * form.serialize()메소드를 사용하여 변환 후 넣어준다.
	 * ex) 붙여서 넘길 시 : 'param1=a&param2=b'
	 * form전체를 서브밋 시 : $('#폼아이디').serialize()
	 * 
	 * type : POST방식 or GET방식 지정
	 * success : 성공적으로 받아 왔을 시 호출되는 콜백함수 지정
	 * 
	 * **/
	function callAjaxAdmin(opt){
		$.ajax({
			  url: opt["url"],
			  dataType: opt["dataType"],
			  success: opt["success"],
			  data: opt["data"],
			  type : 'POST',
			  error : errorFun
		});
	} 
	 function callAjaxCust(opt){
		 $.ajax({
			 url: opt["url"],
			 dataType: opt["dataType"],
			 success: opt["success"],
			 data: opt["data"]+"&txtCUST_MNGR_MENU_STATE=" + document.getElementById("txtCUST_MNGR_MENU_STATE").value,
			 type : 'POST',
			 error : errorFun
		 });
	 } 

	
	//Jquery용 바이트 가져오기
	//Jquery객체를 넘길것...
	function getByteForJquery(obj)
	{
		var byteSize = 0;
		var retValue = "";
		var aa = 0;
	   
		if ( obj == null ) {
			return 0;
		} else {
			for( var i = 0; i < obj.val().length; i++ ) {
				var chr = escape(obj.val().charAt(i));		
				if ( chr.length == 1 ) {					
					byteSize ++;
					retValue += obj.val().charAt(i);
				} else if ( chr.indexOf("%u") != -1 ) {		
					byteSize += 3;
				} else if ( chr.indexOf("%") != -1 ) {		
					byteSize += chr.length/3;
					retValue += obj.val().charAt(i);
				}
			}
		}
				
		return byteSize;
	}
	
	/*테이블의 첫 로우를 제외하고 모두 remove 한다.*/
	$.fn.removeTableData = function(){
		$(this).find("tr:not(:first)").each(function(){
				$(this).remove();
		});
	}
	
	
	function setListOverOut(){
		/*TR태그의 href속성에 따라 row에 over, out효과를 주고 링크를 건다.
		*/
		
		$("tr").each(function(){
			if(typeof($(this).attr("href")) != 'undefined' && $(this).attr("href") != ''){
				var preBackground = $(this).css('backgroundColor');
				var linkScript = $(this).attr("href");
				var bgColor = '#F7F7F7';

				if($(this).attr("overColor") != '' && $(this).attr("overColor") != undefined){
					bgColor = $(this).attr("overColor");
				}

				///마우스 오버 아웃 효과
				$(this).hover(
					function(){
						//over
						$(this).css('backgroundColor', bgColor);
					}, 
					function(){
						//out
						$(this).css('backgroundColor', preBackground);
					}
				);
				
				var trObj = $(this);
				
				//자바스크립트 링크설정
				$(this).find('td').each(function(){
					var isAbleLink = true;

					$(this).find('button, input, a').each(function(){
						isAbleLink = false;
					});
					
					if(isAbleLink == true){
						$(this).css('cursor','pointer');
						$(this).unbind('click');
						
						$(this).click(function(){
							trObj.css('backgroundColor', preBackground);
							trObj.unbind('hover');
							eval(linkScript);
							trObj.hover(
									function(){
										//over
										$(this).css('backgroundColor', bgColor);
									}, 
									function(){
										//out
										$(this).css('backgroundColor', preBackground);
									}
								);
						});
					}
				});
					
			}
		});
	}	
	
	

	/*
	 * jquery ajax global 작동 셋팅부분
	 */
	 numberOfCalledAjax = 0;
	 glovalJsonAuth = null;
	$.ajaxSetup({
		beforeSend : function(){
			if(numberOfCalledAjax == 0){
				if (g_s_CUST == false)
					uf_showwait();					
			}

			numberOfCalledAjax++;
		},
		complete : function(xhr, statusTxt){
			numberOfCalledAjax--;
			if(numberOfCalledAjax <= 0){
				if (g_s_CUST == false)
					uf_removewait()
			}
			globalExecuteScript();
		}
	});

	function globalExecuteScript(){
	
	}
	
	
	/****************************************************************
	 * Browser()
	 *  : 브라우저 판단
	 *
	 * date   : 2006-12-27
	 ****************************************************************/
	 function Browser() {

	    var ua, s, i;

	    this.isIE    = false;
	    this.isNS    = false;
	    this.version = null;

	    ua = navigator.userAgent;

	    s = "MSIE";
	    if ((i = ua.indexOf(s)) >= 0) {
	        this.isIE = true;
	        this.version = parseFloat(ua.substr(i + s.length));
	        return;
	    }

	    s = "Netscape6/";
	    if ((i = ua.indexOf(s)) >= 0) {
	        this.isNS = true;
	        this.version = parseFloat(ua.substr(i + s.length));
	        return;
	    }

	    // Treat any other "Gecko" browser as NS 6.1.
	    s = "Gecko";
	    if ((i = ua.indexOf(s)) >= 0) {
	        this.isNS = true;
	        this.version = 6.1;
	        return;
	    }
	}
	var browser = new Browser();

	
	//** ---------------------------------------------------------------------------
	//함 수 명 : 
	//인    자 :
	//목    적 : 
	//플 로 우 : 
	//검    수 :
	//생 성 일 : 
	//수    정 :
	//** ---------------------------------------------------------------------------
	function btnFileDownload_Click( SITE_ATCH_FILE_SEQ_N, OTHER_DOMAIN )
	{
		if( OTHER_DOMAIN == undefined )
		{
			OTHER_DOMAIN = "";
		}
		
		var param = "?SITE_ATCH_FILE_SEQ_N="+ SITE_ATCH_FILE_SEQ_N;		
		
		document.getElementById("form1").action		= OTHER_DOMAIN + "/jsp/include_files/common_jsp/download_action.do" + param;	
		document.getElementById("form1").target 	= "ifmaction_action";
		document.getElementById("form1").submit();
	}
	
	//** ---------------------------------------------------------------------------
	//함 수 명 : 
	//인    자 :
	//목    적 : 
	//플 로 우 : 
	//검    수 :
	//생 성 일 : 
	//수    정 :
	//** ---------------------------------------------------------------------------
	function btnFileRemove_Click( SITE_ATCH_FILE_SEQ_N, obj_id, RG_K_RG_C_CD )
	{
		if(!confirm( "삭제하시겠습니까 ?"))
		{
			return;
		}
		
		if( RG_K_RG_C_CD == undefined )
		{
			RG_K_RG_C_CD = "";
		}
		
		var sStr = "SITE_ATCH_FILE_SEQ_N="+ SITE_ATCH_FILE_SEQ_N + "&RG_K_RG_C_CD=" + RG_K_RG_C_CD;
		
		var ajaxArr 		= new Array();
		ajaxArr.url 		= "/jsp/include_files/common_jsp/fileRemove4Ajax.do";
		ajaxArr.dataType 	= "text";
		ajaxArr.data =		 sStr;
		
		ajaxArr.success = function(result)
		{
			var jsonObj = eval('(' + result + ')');
			
			switch (jsonObj.STATUS)	
			{
				case "Y":
					alert( jsonObj.MESSAGE );
					//$("#"+obj_id).remove();
					window.location.reload();
					break;

				case "L":
					alert( jsonObj.MESSAGE );						
					window.location.reload();						
					break;
					
				case "N":
					alert( jsonObj.MESSAGE );
					break;

				default:
					alert("처리에 실패했습니다. 관리자에게 문의하세요.");
					break;
			}
				
			uf_removewait();
		};
		
		callAjaxAdmin(ajaxArr);
	}

	function isAccess(e)
	{
		var keynum;
		var ismouseClick = 1;
		
		if( window.event )	//ie & safari
		{
			keynum = e.keyCode;
			
			//safari
			if( event.button == 0 || keynum == 0)
			{
				ismouseClick = 0;
			}
		}
		else if( e.which )	//netscape/firefox/opera
		{
			
			keynum = e.which;
			
			if( keynum == 1 )		
			{
				ismouseClick = 0;
			}
		}
		
		if( ismouseClick == 0 || keynum == 13 )
		{
			return true;
		}
		else
		{
			return false;
		}
	}
	
	/*	글자확대축소 */	
	var currentFontSize = 1;

	function zoomUtil(state, e){
		var idx;
		var arrFontSize = new Array();
		
		arrFontSize[0] = "65%";
		arrFontSize[1] = "75%";
		arrFontSize[2] = "85%";
		arrFontSize[3] = "100%";
		arrFontSize[4] = "110%";
		arrFontSize[5] = "120%";
		arrFontSize[6] = "130%";
		
		if (isAccess(e)) {
			if (state == "plus") {		
				if (currentFontSize < 6 ) {
					idx = currentFontSize + 1;
					currentFontSize = idx;
				}else{
					idx = 6;
					currentFontSize = idx;
				}			
			
			} else if (state == "default") {
				idx = 1;
				currentFontSize = idx;
			
			} else if (state == "minus") {			
				
				if ( currentFontSize >= 1) {
					idx = currentFontSize - 1;
					currentFontSize = idx;
				}else{
					idx = 0;
					currentFontSize = idx;
				}
				
			}		
		}
		
		document.body.style.fontSize = arrFontSize[idx];
		
		return false;	
	}	
