/*****************************************************************************
	* 파일명 : ajaxCommon.js
	* 작성일 : 2009.09.07
	* 작성자 : hjchoi
	* 설명    : Ajax통신을 위한 Utility 스크립트 , prototype.js include 후 사용한다.
 *****************************************************************************/
/**
 * @class visitAjax Ajax 통신을 위한 util Class
 * @constructor visitAjax
 * @param {String} _divTarget  대상 Div
 *
 */ 
visitAjax = {
		
		/**
		 *  Ajax로 Form 요청을 보낼때,
		 *  Callback 함수 호출 
		 * @author hjcohi
		 * @since 2009.09.07 
		 *
		 * @param {Object} inputid   : 필요 인자
		 * @param {Object} pUrl    : 호출 URL
		 * @param {Object} pMethod : 전송 방식 
		 * @param {Object} pParam  : Parameter
		 * @param {Object} pCallback   : 콜백 함수 
		 */
		 ajaxCommSubmitText : function(inputid,pUrl, pMethod, pParam, pCallback){

			var request = new Ajax.Request( pUrl, {
													method : pMethod
													,parameters : pParam
													,onSuccess : function(xmlHttp){
														try{					
															if(typeof(pCallback) != undefined && pCallback != null){
																pCallback(inputid, xmlHttp.responseText);
															}
														}catch(e){
															alert(e.message);
														}
													}  
													,onFailure : function(){ alert('시스템에 문제가 있습니다. 관리자에게 문의하세요.');}  
													,asynchronous: true
												}				
											);
			
		},
	
	/**
	 *  Ajax로 Form 요청을 보낼때,
	 *  div 에 결과 값을 뿌려주거나, Callback 함수 호출하지 않음  
	 * @author hjcohi
	 * @since 2009.09.07 
	 *
	 * @param {Object} pTargetDiv  : 대상 Object ID
	 * @param {Object} pUrl    : 호출 URL
	 * @param {Object} pMethod : 전송 방식 
	 * @param {Object} pForm   : Form Name
	 */
	ajaxCommSubmit : function(pTargetDiv, pUrl, pMethod, pForm){
		var params = null;
		var targetDiv  = pTargetDiv; 
				
		if(typeof(pForm) != undefined && pForm != null){ 
			params = Form.serialize($(pForm));
		}

		var request = new Ajax.Request( pUrl, {
												method : pMethod
												,parameters : params
												,onSuccess : function(xmlHttp){
													try{
														$(targetDiv).update(xmlHttp.responseText);													
													}catch(e){
														alert(e.message);
													}
												}  
												,onFailure : function(){ alert('시스템에 문제가 있습니다. 관리자에게 문의하세요.');}  
												,asynchronous: true
											}				
										);
		
	},
	
	/**
	 *  Ajax로 Form 요청을 보낼때,
	 *  Callback 함수 호출 
	 * @author hjcohi
	 * @since 2009.09.07 
	 *
	 * @param {Object} pUrl    : 호출 URL
	 * @param {Object} pMethod : 전송 방식 
	 * @param {Object} pParam  : Parameter
	 * @param {Object} pCallback   : 콜백 함수 
	 */
	ajaxCommSubmitCallback : function(pUrl, pMethod, pParam, pCallback){

		var request = new Ajax.Request( pUrl, {
												method : pMethod
												,parameters : pParam
												,onSuccess : function(xmlHttp){
													try{					
														if(typeof(pCallback) != undefined && pCallback != null){
															pCallback(xmlHttp);
														}
													}catch(e){
														alert(e.message);
													}
												}  
												,onFailure : function(){ alert('시스템에 문제가 있습니다. 관리자에게 문의하세요.');}  
												,asynchronous: true
											}				
										);
		
	}
	
	
}

