var reqwxs1231sg;
var resfgsgfjj5657wer;

function Ajax(){
var action;
var method="GET";
var values=new Array();
var response;
var onResponse;
var onSubmit;
var id;
var params="";
var c=0;
var postParams=null;
 

 this.submit=function(){
  	if(this.method=="GET"||this.method=="get"){
		this.method="GET";
		this.params="?";
		}
	if(this.action==null || this.values==null || this.onResponse==null){
		alert("insufficient parameters.");
		return false;
	}
	this.c=0;
	if(!this.params)this.params="";
	for(var i in this.values){
	if( this.values[i]){
	if(this.c==0)
		this.params+=encode64(i)+"="+encode64(this.values[i]);
	else
		this.params+="&"+encode64(i)+"="+encode64(this.values[i]);
		this.c++;
		}
	}
	if(this.method=="GET") 	this.action+=this.params;
	else{
		this.postParams=this.params;
		}
	if(this.onSubmit!=null){
		eval("var valid="+this.onSubmit);
		if(!valid)
		return valid;
	}
	if(this.id==null) this.id='reqwxs1231sg';
	if(this.response==null)this.response='resfgsgfjj5657wer';
	
	if(this.method=="POST")
	var postConfig=this.id+'.setRequestHeader("Content-type", "application/x-www-form-urlencoded");'+
	this.id+'.setRequestHeader("Content-length", params.length);'+
	this.id+'.setRequestHeader("Connection", "close"); ';
	else var postConfig="";
	
		if (window.XMLHttpRequest) { // Non-IE browsers
		eval(this.id+' = new XMLHttpRequest(); '+this.id+'.onreadystatechange = function() {	if ('+this.id+'.readyState == 4) {		if ('+this.id+'.status == 200) {			'+this.response+'='+this.id+'.responseText;			'+this.onResponse+'		} else {			alert("Problem: " + '+this.id+'.statusText);		}	}};try {			'+this.id+'.open(this.method, this.action, true);		} catch (e) {			alert(e);		}		if(this.postParams=="")this.postParams=null; '+postConfig+this.id+'.send(this.postParams);');
		
	} else if (window.ActiveXObject) { // IE
	eval(this.id+' = new ActiveXObject("Microsoft.XMLHTTP"); '+this.id+'.onreadystatechange =  function() {	if ('+this.id+'.readyState == 4) {		if ('+this.id+'.status == 200) {			'+this.response+'='+this.id+'.responseText;			'+this.onResponse+'		} else {			alert("Problem: " + '+this.id+'.statusText);		}	}};try {				'+this.id+'.open(this.method, this.action, true);} catch(e){ alert(e); }				if(this.postParams=="")this.postParams=null; '+postConfig+this.id+'.send(this.postParams);');
		}
 }

}
var keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/*";

function encode64(input) {
   var output = "";
   var chr1, chr2, chr3;
   var enc1, enc2, enc3, enc4;
   var i = 0;

   do {
      chr1 = input.charCodeAt(i++);
      chr2 = input.charCodeAt(i++);
      chr3 = input.charCodeAt(i++);

      enc1 = chr1 >> 2;
      enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
      enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
      enc4 = chr3 & 63;

      if (isNaN(chr2)) {
         enc3 = enc4 = 64;
      } else if (isNaN(chr3)) {
         enc4 = 64;
      }

      output = output + keyStr.charAt(enc1) + keyStr.charAt(enc2) + 
         keyStr.charAt(enc3) + keyStr.charAt(enc4);
   } while (i < input.length);
   
   return output.replace("+","[plus]").replace("/","[slash]").replace("=","[equal]");
}

function decode64(input) {
   var output = "";
   var chr1, chr2, chr3;
   var enc1, enc2, enc3, enc4;
   var i = 0;

   // remove all characters that are not A-Z, a-z, 0-9, +, /, or =
   input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");

   do {
      enc1 = keyStr.indexOf(input.charAt(i++));
      enc2 = keyStr.indexOf(input.charAt(i++));
      enc3 = keyStr.indexOf(input.charAt(i++));
      enc4 = keyStr.indexOf(input.charAt(i++));

      chr1 = (enc1 << 2) | (enc2 >> 4);
      chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
      chr3 = ((enc3 & 3) << 6) | enc4;

      output = output + String.fromCharCode(chr1);

      if (enc3 != 64) {
         output = output + String.fromCharCode(chr2);
      }
      if (enc4 != 64) {
         output = output + String.fromCharCode(chr3);
      }
   } while (i < input.length);

   return output;
}


























	function validateArray(arr){
		var i;
		var s="[";
		var counter=0;
		for(i in arr) {
		if(counter==0)s+="{'"+i+"':'"+arr[i]+"'}"; else s+=",{'"+i+"':'"+arr[i]+"'}"; counter++;}
		//alert(s+"]");
		return eval(s+"]");
	}

	function showArray(arr){
		var i;
		var s="Array(";
		for(i in arr) s+="["+i+"]="+arr[i];
		return s+")";
	}
