	


//					AJAX SETTING					//
/*
	ÆÄÀÏ¸í : ajaxCls.js
	ÀÛ¼ºÀÏ : 07.07.25
	ÀÛ¼ºÀÚ : Á¶ÇöÈñ
	
	08.02.18 : prototype paramSetFrm( formName ) Ãß°¡
*/

//			1. XMLHttpRequest °´Ã¼ »ý¼º ST			//
	function AjaxCls()
	{
		this.httpReq		= null;			// XMLHttpRequest °´Ã¼
		this.pageDoc		= null;			// È£Ãâ ÆäÀÌÁöÀÇ document °´Ã¼
		this.pageUrl		= '';			// °á°ú¿äÃ»ÆäÀÌÁö ÁÖ¼Ò
		this.paramArr		= new Array();	// ¿äÃ»ÆäÀÌÁö·Î ³Ñ±æ ÆÄ¶ó¸ÞÅÍÁ¤º¸
		this.parameters		= '';			// ÆÄ¶ó¸ÞÅÍ Á¤º¸ ÀçÁ¤ÀÇ
		this.handlerFunc	= null;			// responseÈÄ ¼öÇàÇÒ ÇÔ¼ö
		this.errMsg			= '';			// Error Message
		this.method			= 'POST';		// µ¥ÀÌÅÍ Àü¼Û¹æ½Ä Default:POST
		
		if(window.XMLHttpRequest)
		{// Mozilla, Safari,...
			this.httpReq = new XMLHttpRequest();
			
		 	if(this.httpReq.overrideMimeType)
		 	{
		    		this.httpReq.overrideMimeType('text/xml');
		 	}
		}else if(window.ActiveXObject)
		{// IE
		 	try
		 	{
		    		this.httpReq = new ActiveXObject("Msxml2.XMLHTTP");
		 	}catch( errorMsg )
		 	{
		    		try
		    		{
		       		this.httpReq = new ActiveXObject("Microsoft.XMLHTTP");
		    		}catch( errorMsg ){}
		 	}
		}
		
		if (!this.httpReq)
		{
			alert('Cannot create XMLHTTP instance');
			return false;
		}
		
	}//		EO		function AjaxCls()
	
	AjaxCls.prototype = 
	{
		toString : function()
		{
			var str = "";
			str += "Ajax Class\n";
			str += "Target URI : "+this.pageUrl+"\n";
			str += "Method : "+this.method+"\n";
			str += "ReadyState : "+this.httpReq.readyState;
			return str;
		},
		
		paramSet : function( name, value )
		{
		    //escape : À¯´ÏÄÚµå, encodeURIComponent : UTF-8
			var paramInfo = name + "=" + value;
			this.paramArr.push( paramInfo );
		},
		
		paramSetFrm : function( formName )
		{
			var paramInfo = '';	
			var obj = eval( "document." + formName );
			var i=0;
			for( i=0; i<obj.elements.length; i++ )
			{
				paramInfo = obj.elements[i].id + "=" + obj.elements[i].value;
				this.paramArr.push( paramInfo );
			}
		},
		
		stateChange : function( req, handlerFunc )
		{
			return function()
			{
			    // ÀÀ´äÄÚµå
				if( req.readyState == 4 )
				{
				    //  HTTP »óÅÂÄÚµå
					if( req.status == 200 )
					{
						handlerFunc( req );
					}else if( req.status == 404 )
					{
						alert( "Request URL does not found." );
					}else
					{
						alert( "Error : status code is " + req.status );
					}
				}
			}
		},
		
		sendInfo : function()
		{
			if( this.url == "" )
			{
				this.ErrMsg = "URLÀÌ ¼³Á¤µÇÁö ¾Ê¾Ò½À´Ï´Ù";
				alert( this.ErrMsg );				
				return false;
			}else if( this.handlerFunc == null )
			{
				this.ErrMsg = "ÇÚµé·¯ ÇÔ¼ö°¡ Á¤ÀÇµÇÁö ¾Ê¾Ò½À´Ï´Ù";
				alert( this.ErrMsg );
				return false;
			}else if( this.pageDoc == null )
			{
				this.ErrMsg = "½Ç ÆäÀÌÁöÀÇ °´Ã¼¸¦ ¼³Á¤ÇØ ÁÖ¼¼¿ä";
				alert( this.ErrMsg );
				return false;
			}else
			{
				this.parameters = this.paramArr.join("&");
				var handlerFunction = this.stateChange(this.httpReq, this.handlerFunc);
				this.httpReq.onreadystatechange = handlerFunction;
				this.httpReq.open( this.method, this.pageUrl, true );
				this.httpReq.setRequestHeader( "Content-Type","application/x-www-form-urlencoded" );
				this.httpReq.send( this.parameters );
			}
		}
		
	}//		EO		AjaxCls.prototype
//			1. XMLHttpRequest °´Ã¼ »ý¼º ED			//
/*
**********************************************************************************
							»ç¿ë ¹æ¹ý
**********************************************************************************	

	<script>
	
	function dataReq()
	{
	    var obj = new AjaxCls();
	    
		obj.pageUrl	= "testXml01.jsp";	            // µ¥ÀÌÅÍ¸¦ ¿äÃ»ÇÒ ÆäÀÌÁö ÁÖ¼Ò
		obj.paramSet( "paramName", "paramData" );	// ÇØ´ç ÆäÀÌÁö·Î ³Ñ±æ ÆÄ¶ó¸ÞÅÍ Á¤º¸
		obj.pageDoc	= document;		                // ÇöÀç ÆäÀÌÁö°¡ °¡Áø document °´Ã¼
		obj.handlerFunc = dataRes();		        // µ¥ÀÌÅÍ ¿äÃ»ÈÄ ¼öÇàÇÒ ÇÔ¼ö¸í
		//obj.handlerFunc = dataRes( variable );        // º¯¼ö »ç¿ë°¡´É
		
		obj.sendInfo();				                // ¸Þ¼¼Áö Àü´Þ
	}
	
	function dataRes()
	{
		return function( res )
		{
			ÇÊ¿äÀÛ¾÷ ¼öÇà
			ex)	res.responseText;
				res.responseXML;
				µîµî...
				
				//xml »ùÇÃ
				var resXml = res.responseXML;
				
     			properties = resXml.getElementsByTagName( "properties" );
     			resultMsg  = properties[0].getElementsByTagName( "result" )[0].firstChild.nodeValue;
                
                var showEl      = resXml.getElementsByTagName( "show" );
                var titleEl     = resXml.getElementsByTagName( "title" );
                var ratingEl    = resXml.getElementsByTagName( "rating" );
                
                document.all.textSpan.innerText = textObj;
                
                document.all.titleSpan.innerText = titleEl[0].childNodes[0].nodeValue;
                document.all.ratingSpan.innerText = ratingEl[0].childNodes[0].nodeValue;
		}
	}
	
	</script>
	
*/
/*
    ÀÚ¸ÅÇ° trim
    res.responseText¸¦ »ç¿ëÇÒ °æ¿ì °¡²û¾²ÀÓ - °ø¹éÁ¦°Å¿ë
*/
	function trim(str)
	{
		str = str.replace(/(^\s*)|(\s*$)/g,"");		
		return str;
	}
