// 	var mc = new Array();
//	var country = new Array();
//	var airport = new Array();
//	var ac = new Array();
//	var r = new Array();
//	var fa = new Array();

//  var mc = new Array();	
//  var c = new Array();	
//  var a = new Array();
//  var ac = new Array();
//  var r = new Array();	
//  var fa = new Array();	
function sack(file) {

	this.xmlhttp = null;

	this.resetData = function() {
		this.method = "POST";
  		this.queryStringSeparator = "?";
		this.argumentSeparator = "&";
		this.URLString = "";
		this.encodeURIString = true;
  		this.execute = false;
  		this.element = null;
		this.elementObj = null;
		this.requestFile = file;
		this.vars = new Object();
		this.responseStatus = new Array(2);
  	};

	this.resetFunctions = function() {
  		this.onLoading = function() { };
  		this.onLoaded = function() { };
  		this.onInteractive = function() { };
  		this.onCompletion = function() { };
  		this.onError = function() { };
		this.onFail = function() { };
	};

	this.reset = function() {
		this.resetFunctions();
		this.resetData();
	};

	this.createAJAX = function() {
		try {
			this.xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e1) {
			try {
				this.xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e2) {
				this.xmlhttp = null;
			}
		}

		if (! this.xmlhttp) {
			if (typeof XMLHttpRequest != "undefined") {
				this.xmlhttp = new XMLHttpRequest();
			} else {
				this.failed = true;
			}
		}
	};

	this.setVar = function(name, value){
		this.vars[name] = Array(value, false);
	};

	this.encVar = function(name, value, returnvars) {
		if (true == returnvars) {
			return Array(encodeURIComponent(name), encodeURIComponent(value));
		} else {
			this.vars[encodeURIComponent(name)] = Array(encodeURIComponent(value), true);
		}
	}

	this.processURLString = function(string, encode) {
		encoded = encodeURIComponent(this.argumentSeparator);
		regexp = new RegExp(this.argumentSeparator + "|" + encoded);
		varArray = string.split(regexp);
		for (i = 0; i < varArray.length; i++){
			urlVars = varArray[i].split("=");
			if (true == encode){
				this.encVar(urlVars[0], urlVars[1]);
			} else {
				this.setVar(urlVars[0], urlVars[1]);
			}
		}
	}

	this.createURLString = function(urlstring) {

		this.processURLString(this.URLString, true);
	
		// prevents caching of URLString
		this.setVar("rndval", new Date().getTime());

		urlstringtemp = new Array();
		for (key in this.vars) {
			if (false == this.vars[key][1] && true == this.encodeURIString) {
				encoded = this.encVar(key, this.vars[key][0], true);
				delete this.vars[key];
				this.vars[encoded[0]] = Array(encoded[1], true);
				key = encoded[0];
			}

			urlstringtemp[urlstringtemp.length] = key + "=" + this.vars[key][0];
		}
		if (urlstring){
			this.URLString += this.argumentSeparator + urlstringtemp.join(this.argumentSeparator);
		} else {
			this.URLString += urlstringtemp.join(this.argumentSeparator);
		}
	}

	this.runResponse = function() {
		eval(this.response);
	}

	this.runAJAX = function(urlstring) {
	
			this.createURLString(urlstring);
			if (this.element) {
				this.elementObj = document.getElementById(this.element);
			}
			if (this.xmlhttp) {
				var self = this;
	
						var stringnew;
						stringnew="";
						var no_check_inArray;
						for (i=0;i<fa.length;i++){
														
								if(url_ew.length == 2){
									
									finalvalue_code = ac[i];
									
								}else if(url_ew.length > 2){
								
								/* CITY NAME*/
								
									no_check_inArray=0
									var rstr=r[i];
									var inputeln = url_ew.length;
									var finalvalue = mc[i]+" "+rstr;
									
									var finalstr = finalvalue.replace("'","");
									finalstr = finalstr.toUpperCase();
									finalstr = finalstr.substring(0,inputeln);
									var upperstr = url_ew.toUpperCase();
									var str_result = finalstr.match(url_ew.toUpperCase());
	
									if(finalstr == upperstr){
										stringnew+=fa[i];	
										no_check_inArray=1;
									}

								/* AIRPORT NAME*/
									
								if(no_check_inArray == 0){
									var finalvalue_airport = aname[i]+" "+rstr;
									var finalstr_airport1 = finalvalue_airport.replace("'","");
									
									finalstr = finalstr_airport1.toUpperCase();
									finalstr = finalstr.substring(0,inputeln);
									
									if(finalstr == upperstr){
										no_check_inArray=1;
									}//end if
									
									split_finalairport = finalstr_airport1.split(' ');

									for(j=0;j<split_finalairport.length;j++){
										
										finalstr_airportsplit = split_finalairport[j].toUpperCase();
										finalstr_airportsplit = finalstr_airportsplit.substring(0,inputeln);
										
										if(finalstr_airportsplit == upperstr){
											no_check_inArray=1;
											
										}//end if
										
									}//end for
									if(no_check_inArray==1){
										stringnew+=fa[i];
									}

									
									
								}

								/* COUNTRY NAME*/
								if(no_check_inArray == 0){
									
									var finalvalue_airport = co[i]+" "+rstr;
									var finalstr_airport1 = finalvalue_airport.replace("'","");
									
									finalstr = finalstr_airport1.toUpperCase();
									finalstr = finalstr.substring(0,inputeln);
									
									if(finalstr == upperstr){
										no_check_inArray=1;
									}//end if
									
									split_finalairport = finalstr_airport1.split(' ');

									for(j=0;j<split_finalairport.length;j++){
										
										finalstr_airportsplit = split_finalairport[j].toUpperCase();
										finalstr_airportsplit = finalstr_airportsplit.substring(0,inputeln);
										
										if(finalstr_airportsplit == upperstr){
											no_check_inArray=1;
											
										}//end if
										
									}//end for
									if(no_check_inArray==1){
										stringnew+=fa[i];
									}

								}

								
								/* AIRPORT CODE */
								
								if(no_check_inArray == 0){
									var finalvalue_airportcode = ac[i]+" "+rstr;
									var finalstr_airport1code = finalvalue_airportcode.replace("'","");
									finalstr_airport1code = finalstr_airport1code.toUpperCase();
									finalstr_airport1code = finalstr_airport1code.substring(0,inputeln);
									
									if(finalstr_airport1code == upperstr){
										stringnew+=fa[i];
									}
								}
							
								}// END else if(url_ew.length > 2
												
							
						}// END For-Loop
						
						//alert(stringnew);
						//return false;
				
					 	stringnew=stringnew.replace("undefined","");
							
						if(stringnew.length > 5){
							myflag="0";
						}
						self.response = stringnew;
							
						//self.responseXML = self.xmlhttp.responseXML;
						self.responseStatus[0] = "200";
						//self.responseStatus[1] = self.xmlhttp.statusText;

						if (self.execute) {
							self.runResponse();
						}

						if (self.elementObj) {
								
								elemNodeName = self.elementObj.nodeName;
								elemNodeName.toLowerCase();
								if (elemNodeName == "input"
								|| elemNodeName == "select"
								|| elemNodeName == "option"
								|| elemNodeName == "textarea") {
									self.elementObj.value = self.response;
																		
								}else{
									
									self.elementObj.innerHTML = self.response;
									
								}
							}
						if (self.responseStatus[0] == "200") {
							self.onCompletion();
						} else {
							self.onError();  
						}

						self.URLString = "";
			}
	};

	this.reset();
	this.createAJAX();
}
