var ajax = {};
ajax.xhr = {};
var obj_name;
var frmDate;
var reVal;

ajax.xhr.Request = function(url, callback, md) {
	this.url = url;
	this.callback = callback;
	this.send(md);
}

ajax.xhr.Request.prototype = {
	getXMLHttpRequest: function() {
		if (window.ActiveXObject) {
			try {
				return new ActiveXObject("Msxml2.XMLHTTP");
			} catch(e) {
			try {
				return new ActiveXObject("Microsoft.XMLHTTP");
			} catch(e1) {
				return null;
			}
		}
		} else if (window.XMLHttpRequest) {
			return new XMLHttpRequest();
		} else {
			return null;
		}
	},
	send: function(md) {
		this.req = this.getXMLHttpRequest();

		var httpUrl = this.url;

		if (md == "GET")
			this.req.open("GET", httpUrl, true);
		else
			this.req.open("POST", httpUrl, true);
		this.req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

		var request = this;
		this.req.onreadystatechange = function() {
			request.onStateChange.call(request);
		}
		if (md == "GET")
			this.req.send(null);
		else
			this.req.send(frmDate);
	},
	onStateChange: function() {
		var req = this.req
		if (req.readyState==4) {
			if (req.status == 200){
				this.callback(req);
			}else if (req.status == 404)
				alert("Request URL does not exist");
			else if (req.status == 403)
				alert("Access denied.");
			else
				alert("Error: status code is " + req.status);
		}
	}
}

function ActRequest(url, md, callbackFunction) {
	if(callbackFunction == undefined){
		new ajax.xhr.Request(url, ShowResponse, md);
	}else{
		new ajax.xhr.Request(url, callbackFunction, md);
	}
}

function ShowResponse(req){

	var inData = req.responseText;
	var arrayTemp = inData.split("##########");
	var in_objname = trim(arrayTemp[1]);
	if(document.getElementById(in_objname)){document.getElementById(in_objname).innerHTML = trim(arrayTemp[0]);}
	if(arrayTemp.length > 2){reVal = arrayTemp[2];}

}

function trim(str) {
    str = this != window? this : str;
    return str.replace(/^\s+/, '').replace(/\s+$/, '');
}

//½ÇÇàÈ£Ãâ
function exLink(url,md){
	if(md == "POST") frmDate = formDataQueryString(document.frmname);
	ActRequest(url,md);
}


function paramEscape(paramValue)
{
	return escape(paramValue);
	//return encodeURIComponent(paramValue);
}

//Æûµ¥ÀÌÅÍ
function formDataQueryString(docForm)
{
	var submitString = '';
	var formElement = '';
	var lastElementName = '';

	for(i = 0 ; i < docForm.elements.length ; i++)
	{
		formElement = docForm.elements[i];
		switch(formElement.type)
		{
			case 'text' :
			case 'select-one' :
			case 'hidden' :
			case 'password' :
			case 'textarea' :
				submitString += formElement.name + '=' + paramEscape(formElement.value) + '&';
				break;
			case 'radio' :
				if(formElement.checked)
				{
					submitString += formElement.name + '=' + paramEscape(formElement.value) + '&';
				}
				break;
			case 'checkbox' :
				if(formElement.checked)
				{
					
					if(formElement.name == lastElementName)
					{
						if(submitString.lastIndexOf('&') == submitString.length - 1)
						{
							submitString = submitString.substring(0, submitString.length - 1);
						}
						submitString += ',' + paramEscape(formElement.value);
					}
					else
					{
						submitString += formElement.name + '=' + paramEscape(formElement.value);
					}
					submitString += '&';
					lastElementName = formElement.name;
				}
				break;
		}
	}
	submitString = submitString.substring(0, submitString.length - 1);
	//document.all("result").value = submitString;
	return submitString;
}

function init_Top_Menu(menu_code){
	obj_name = "top_menu";
	ActRequest("/Include/Ajax/Get_Top_Menu.asp?menu_code="+menu_code+"&obj_name="+obj_name, "GET");
}

function init_banner_view(code,cnt,obj_name){
	ActRequest("/Include/Ajax/Get_Banner.asp?code="+code+"&cnt="+cnt+"&obj_name="+obj_name, "GET");
}

function init_Main_Section(func_mode,user_path_gubun,common_path,obj_name,vTime){
	ActRequest("/Include/Ajax/Get_Main_Section.asp?func_mode="+func_mode+"&user_path_gubun="+user_path_gubun+"&common_path="+common_path+"&obj_name="+obj_name+"&vTime="+vTime, "GET");
}

function init_News_List(menu_code,ser_uid){
	obj_name = "news_list";
	ActRequest("/Include/Ajax/Get_News_List.asp?menu_code="+menu_code+"&obj_name="+obj_name+"&ser_uid="+ser_uid, "GET");
}

function init_Blog_Rank_Section(obj_name){
	ActRequest("/Include/Ajax/Get_Blog_Rank.asp?obj_name="+obj_name, "GET");
}	

function init_Ucc_List(obj_name,section_code,area_code){
	ActRequest("/Include/Ajax/Get_Ucc_List.asp?obj_name="+obj_name+"&section_code="+section_code+"&area_code="+area_code, "GET");
}
