﻿var v_set_inner_html_result_count	= 0;
var v_set_inner_html_result			= false;
function CallxmlRequest(actUrl, divFunc, tLayer, objForm){
	v_set_inner_html_result_count	= 0;
	v_set_inner_html_result			= false;
	
	var submitParam = '';
	if (!isObject(objForm)) objForm = getObject(objForm);
	if (isObject(objForm)) submitParam = formData2QueryString(objForm);
	var wMsg = '';

	// Target 레이어 객체화
	if (!isObject(tLayer)) tLayer = getObject(tLayer);

	// 로딩중 레이어 표시
	if (divFunc == 'TEXT'){
		if (isObject(objForm)){
			if (!d_nSearch_proc){
				// 로딩중 레이어 표시 레이어 세팅
				var d_nLoading_Set_Layer = 'L_NEWS,L_COMMUNITY,L_RANKING,L_PDS_SS,L_FAQ_LIST,L_QNA_MYLIST,L_COMMUNITY_CLAN,L_CLAN_MAIN,L_RANKING_MAIN';
				if (d_nLoading_Set_Layer.indexOf(tLayer.id) != -1){
					var vLoadMsg = makeLoadingLayer(tLayer.id, '', '');
					writeinnerHTML(tLayer.id, vLoadMsg);
				}
			}
		}
	}

	// XMLHTTP 객체 생성
	var xmlRequest = null;
	try{	//FireFox, Opera, Safari
		xmlRequest	= new XMLHttpRequest();
	}catch(e){
		xmlRequest	= new ActiveXObject("Microsoft.XMLHTTP");
	}
	xmlRequest.open("POST", actUrl, true);
	xmlRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	xmlRequest.onreadystatechange = function(){	CallBackxmlRequest(xmlRequest, divFunc, tLayer, objForm)	};	
	xmlRequest.send(submitParam);
	return xmlRequest;
}
function DynamicScript(v_node) {
	var bSaf	= (navigator.userAgent.indexOf('Safari') != -1);
	var bOpera	= (navigator.userAgent.indexOf('Opera') != -1);
	var bMoz	= (navigator.appName == 'Netscape');
	if (!v_node) return;
	/* IE wants it uppercase */
	var st = v_node.getElementsByTagName('SCRIPT');
	var strExec;
	for(var i=0;i<st.length; i++){
		if(bSaf){
			strExec = st[i].innerHTML;
			st[i].innerHTML = "";
		} else if (bOpera) {
			strExec = st[i].text;
			st[i].text = "";
		} else if (bMoz) {
			strExec = st[i].textContent;
			st[i].textContent = "";
		} else {
			strExec = st[i].text;
			st[i].text = "";
		}
		try {
			var v_dynamic_script = document.createElement("script");
			v_dynamic_script.type = "text/javascript";
			/* In IE we must use .text! */
			if ((bSaf) || (bOpera) || (bMoz)) {
				v_dynamic_script.innerHTML = strExec;
			}else{
				v_dynamic_script.text = strExec;
			}
			//document.getElementsByTagName("head")[0].appendChild(v_dynamic_script);
		}catch(e){
			alert(e);
		}
	}
}
function CallBackxmlRequest(xmlRequest, divFunc, tLayer, objForm){
	if(xmlRequest == null || xmlRequest.readyState != 4) return;
	if(xmlRequest.responseText.length == 0) return;

//	alert(xmlRequest.getAllResponseHeaders());
	var val = xmlRequest.responseText;
    var c_Host = GetHostFull();
//	alert(val);

	if (divFunc == "TEXT"){
		if (typeof(objForm) != 'undefined'){
			var valLen	= val.length;
			var vals = val.split("\##");
			var d_nIsFunction = vals[0];
			var d_nFunction = vals[1];
			var d_nFunctionDelay = vals[2];

			// Ajax 처리후 콜백 함수 호출일 경우
			if (d_nIsFunction == d_nAjaxCallBackFunction){
				if (d_nFunctionDelay == '') d_nFunctionDelay = 100;
				setTimeout(d_nFunction, d_nFunctionDelay);
				return;
			}else{
				with(objForm){
					var Lcode = parseInt(_MSG_BOARD_NO_RCD_SEARCH.length);
					var vRMsg = val.substring(0, Lcode);
					var vRMsg = vRMsg.replace(/\s/g,"");

					//Ajax 페이지의 리퍼러 페이지 에러 처리
					if (val.substring(0, 14) == "CM_REFERER_ERR"){
						AjaxRunProcess('CM_REFERER_ERR', '', '', '');
						return false;
					}
					if (val.substring(0, 16) == "CM_REQUIRE_LOGIN"){
						var rUrlPage = val.substring(20, val.length);
						AjaxRunProcess('CM_REQUIRE_LOGIN', '', '', rUrlPage);
						return false;
					}
				
					// 게시물 검색 결과 없을 경우
					if (vRMsg == _MSG_BOARD_NO_RCD_SEARCH){
						var vMsg = "";
						if (typeof(search_word) != 'undefined'){
							var vsearch_word = unescape(search_word.value);
							if (vsearch_word != ""){
								var vMsg = "[<b>" + vsearch_word + "</b>] " + val;
							}else{
								var vMsg = val;
							}
							search_word.value = '';
						}

						//서든어택 : 클랜 메인페이지 검색 초기화
						if (tLayer.id == "L_CLAN_MAIN"){
							if (typeof(search_from) != 'undefined'){
								if (search_from.value == "M"){
									search_from.value	= '';
									ClanSearch.PrintClanListByForce();
									return;
								}
							}
						}
						writeinnerErrHTML("EML_search_form", "T", 0, vMsg);
						
						//검색 로딩중 레이어 초기화
						SetObjectStyle.NoneDisplay("L_SearchLoading");
						return;
					}
					if (tLayer.id == 'L_QNA_MYLIST' || tLayer.id == 'L_QNA_MYLIST_IN'){
						//Ajax 사용시 QNA 카테고리 코드->스트링 변환
						val = BCD_QNA_CHG_TEXT(val);
					}
					if (tLayer.id == "L_COMMUNITY" || tLayer.id == "L_COMMUNITY_BDY"){
						//서든어택 베스트 스크린샷
						val = CHG_GET_BESTSS(val);
					}
					
					v_set_inner_html_result	= SetObjectStyle.SetinnerHTML(tLayer, val);
					//검색 로딩중 레이어 초기화
					//SetObjectStyle.NoneDisplay("L_SearchLoading");
					
					var v_dynamic_div = document.createElement("div");
					v_dynamic_div.innerHTML = "_" + val + "_";
					DynamicScript(v_dynamic_div);
					
					//addEvent 관련(CSS코딩 관련 레이어 Height 속성 조절)
					addEvent(document,'mouseup',function(){ setTimeout('CommonControls.SetCssPageObjectSize(\'\', \'\', \'\')', 100) });
					
					return v_set_inner_html_result;
					
				}
			}
		}
	}else if(divFunc == 'CALLFUNCTION'){
		var vals = val.split("\##");
		if (vals.length > 1){
			var d_nIsFunction = vals[0];
			var d_nFunction = vals[1];
			var d_nFunctionDelay = vals[2];
			if (d_nIsFunction == d_nAjaxCallBackFunction){
				if (d_nFunctionDelay == '') d_nFunctionDelay = 100;
				setTimeout(d_nFunction, d_nFunctionDelay);
			}
		}else{
			setTimeout(val, 100);
		}
		//addEvent 관련(CSS코딩 관련 레이어 Height 속성 조절)
		addEvent(document,'mouseup',function(){ setTimeout('CommonControls.SetCssPageObjectSize(\'\', \'\', \'\')', 200) });		
	}else{
		var vals = val.split("\##");
		var divProc = vals[0];
		var errCode = vals[1];

		if (divProc.indexOf("GE_") >= 0 || divProc.indexOf("GS_") >= 0 || divProc.indexOf("CS_") >= 0){ //공통 모듈(게시판/QNA)
			AjaxRunProcess(divProc, errCode, tLayer.id, val);
			return;
		}
		if (c_Host.indexOf(_WEB_URL_SUDDENATTACK) >= 0 || c_Host.indexOf(_WEB_URL_CP_SUDDENATTACK) >= 0){
			AjaxRunProcess_SuddenAttack(divProc, errCode, tLayer.id, val);
			return;
		}
		if (c_Host.indexOf(_WEB_URL_DEKARON) >= 0){
			AjaxRunProcess_Dekaron(divProc, errCode, tLayer.id, val);
			return;
		}
		if (c_Host.indexOf(_WEB_URL_SANGOKUSHI) >= 0){
			AjaxRunProcess_Sangokushi(divProc, errCode, tLayer.id, val);
			return;
		}
		if (c_Host.indexOf(_WEB_URL_NOSTALE) >= 0){
			AjaxRunProcess_Nostale(divProc, errCode, tLayer.id, val);
			return;
		}
		if (c_Host.indexOf(_WEB_URL_TRANSPEE) >= 0){
			AjaxRunProcess_Transpee(divProc, errCode, tLayer.id, val);
			return;
		}
		AjaxRunProcess(divProc, errCode, tLayer.id, val);
	}
}

var AjaxCommonControls = {
	ClosePageLoaderByAjaxPageLoader : function(){
		if (v_set_inner_html_result_count < 30){
			if (!v_set_inner_html_result){
				setTimeout('AjaxCommonControls.ClosePageLoaderByAjaxPageLoader()', 100);
				v_set_inner_html_result_count	= v_set_inner_html_result_count + 1;
			}else{
				setTimeout('PageLoader.ClosePageLoader(\'' + v_L_BOX_PAGE_PROOGRESS + '\')', 200);
				v_set_inner_html_result			= false;
				v_set_inner_html_result_count	= 0;
			}
		}else{
			setTimeout('PageLoader.ClosePageLoader(\'' + v_L_BOX_PAGE_PROOGRESS + '\')', 200);
			v_set_inner_html_result			= false;
			v_set_inner_html_result_count	= 0;
		}
	}
}