﻿
//////////// ajax obj
Ajax={};

// hívások kezelése
Ajax.makeRequest=function(method, url, callbackMethod, mytarget){

	this.mytarget=mytarget;
	
	this.request=(window.XMLHttpRequest) ? new XMLHttpRequest(): new ActiveXObject("MSXML2.XMLHTTP");
	this.request.onreadystatechange=callbackMethod;
	this.request.open(method, url, true);
	this.request.send(url);
}

// folyamat állapota
Ajax.checkReadyState=function(){

	switch(this.request.readyState){

		case 1:
		document.getElementById(this.mytarget).innerHTML='Feldolgozás, kérem várjon...';
		break;
		
		case 2:
		document.getElementById(this.mytarget).innerHTML='Feldolgozás, kérem várjon...';
		break;
		
		case 3:
		document.getElementById(this.mytarget).innerHTML='Feldolgozás, kérem várjon...';
		break;
		
		case 4:
		AjaxUpdater.isUpdating=false;
		document.getElementById(this.mytarget).innerHTML=this.request.responseText;
		break;				
	}
}

// adat-típus vizsgálata
Ajax.getResponse=function(){

	if(this.request.getResponseHeader('Content-Type').indexOf('xml')!=-1){	
		return this.request.responseXml.documentElement;
	}else{
		return this.request.responseText;
	}
}

//////////// frissítő obj
AjaxUpdater={};

// frissítő init
AjaxUpdater.initialize=function(){
	AjaxUpdater.isUpdating=false;		
}
AjaxUpdater.initialize();

// frissítés
AjaxUpdater.Update=function(method, service, callback, mytarget){

	if(callback == undefined || callback == ""){
		callback=AjaxUpdater.onResponse;
	}
	
	Ajax.makeRequest(method, service, callback, mytarget);
	AjaxUpdater.isUpdating=true;
}

//////////// form feldolgozása

function encodeNameAndValue(sName, sValue){

	var sParam=encodeURIComponent(sName);
	sParam+="=";
	sParam+=encodeURIComponent(sValue);	
	return sParam;
}

function formCheck(myForm){

	// tömbbe
	var aParams=new Array();
	
	var items='';
	var form=myForm;
	
	for(var i=0; i<document.getElementById(form).length; i++){
	
		var oField=document.getElementById(form).elements[i];
		
		items+=oField.name+'-'+oField.type+'\n';
		
		switch(oField.type){
		
			case "button":
			case "submit":
			case "reset":
			break;
			
			case "checkbox":
			case "radio":
			if(!oField.checked){
				break;
			}
		
			case "text":
			case "hidden":
			case "pasword":
			aParams.push(encodeNameAndValue(oField.name, oField.value));
			break;
			
			default:
			switch(oField.type){
				case "select":
				aParams.push(encodeNameAndValue(oField.name, oField.options[oField.selectedIndex].value));
				break;
				
				default:
				aParams.push(encodeNameAndValue(oField.name, oField.value));
			}				
		}	
	}
	
	// alert(items);
	
	return aParams.join("&");	
}

//////////// Csabik

adatfeldolgoz=function(){

	if(Ajax.checkReadyState() == 200){
		AjaxUpdater.isUpdating=false;
	}else{
		// TODO
	}
}

