var screenUpdated = false;
var LoadCityListAS = function(targetElementId,url,method,parameters){
       var targetElement = $(targetElementId);
       	if (targetElement == null) {
       	    throw 'Target element is null!';
       	}
       	if (url == null) {
       	    throw 'URL has to be provided';
       	}
       	if (method == null) {
       	    method = 'get';
       	} else if (method != 'get' && method != 'post') {
       	    throw 'Method should be get or post'; 
       	}
       	var myAjax = new Ajax.Updater(
       	{ success: targetElement }, 
       	url, 
       	{ 
       	    onCreate :createProgress,
       	    method: method,
       	    parameters: parameters, 
       	    onFailure: myerrFunc,
       	    evalScripts: true,
       	    onComplete:onFinishOfAS
       	    
	});
};

var createProgress = function(){
  $('modal_dialog_progress').style.display='block';
}

var myerrFunc=function(t) {
	alert(t.responseText);	
   }
var onFinishOfAS = function(){
    $('modal_dialog_progress').style.display='none';
    ActivateTabsAS();
};
var LoadCityListMEA = function(targetElementId,url,method,parameters){
       var targetElement = $(targetElementId);
       	if (targetElement == null) {
       	    throw 'Target element is null!';
       	}
       	if (url == null) {
       	    throw 'URL has to be provided';
       	}
       	if (method == null) {
       	    method = 'get';
       	} else if (method != 'get' && method != 'post') {
       	    throw 'Method should be get or post'; 
       	}
       	var myAjax = new Ajax.Updater(
       	{ success: targetElement }, 
       	url, 
       	{ 
       	    onCreate :createProgress,
       	    method: method,
       	    parameters: parameters, 
       	    onFailure: myerrFunc,
       	    evalScripts: true,
       	    onComplete:onFinishOfMEA
       	    
	});
};


var onFinishOfMEA = function(){
    $('modal_dialog_progress').style.display='none';
    ActivateTabsMEA();
};
var LoadCityListEU = function(targetElementId,url,method,parameters){
       var targetElement = $(targetElementId);
       	if (targetElement == null) {
       	    throw 'Target element is null!';
       	}
       	if (url == null) {
       	    throw 'URL has to be provided';
       	}
       	if (method == null) {
       	    method = 'get';
       	} else if (method != 'get' && method != 'post') {
       	    throw 'Method should be get or post'; 
       	}
       	var myAjax = new Ajax.Updater(
       	{ success: targetElement }, 
       	url, 
       	{ 
       	    onCreate :createProgress,
       	    method: method,
       	    parameters: parameters, 
       	    onFailure: myerrFunc,
       	    evalScripts: true,
       	    onComplete:onFinishOfEU
       	    
	});
};


var onFinishOfEU = function(){
    $('modal_dialog_progress').style.display='none';
    ActivateTabsEU();
};
var LoadCityListNA = function(targetElementId,url,method,parameters){
       var targetElement = $(targetElementId);
       	if (targetElement == null) {
       	    throw 'Target element is null!';
       	}
       	if (url == null) {
       	    throw 'URL has to be provided';
       	}
       	if (method == null) {
       	    method = 'get';
       	} else if (method != 'get' && method != 'post') {
       	    throw 'Method should be get or post'; 
       	}
       	var myAjax = new Ajax.Updater(
       	{ success: targetElement }, 
       	url, 
       	{ 
       	    onCreate :createProgress,
       	    method: method,
       	    parameters: parameters, 
       	    onFailure: myerrFunc,
       	    evalScripts: true,
       	    onComplete:onFinishOfNA
       	    
	});
};


var onFinishOfNA = function(){
     $('modal_dialog_progress').style.display='none';
    ActivateTabsNA();
};
var LoadCityListSA = function(targetElementId,url,method,parameters){
       var targetElement = $(targetElementId);
       	if (targetElement == null) {
       	    throw 'Target element is null!';
       	}
       	if (url == null) {
       	    throw 'URL has to be provided';
       	}
       	if (method == null) {
       	    method = 'get';
       	} else if (method != 'get' && method != 'post') {
       	    throw 'Method should be get or post'; 
       	}
       	var myAjax = new Ajax.Updater(
       	{ success: targetElement }, 
       	url, 
       	{ 
       	    onCreate :createProgress,
       	    method: method,
       	    parameters: parameters, 
       	    onFailure: myerrFunc,
       	    evalScripts: true,
       	    onComplete:onFinishOfSA
       	    
	});
};


var onFinishOfSA = function(){
    $('modal_dialog_progress').style.display='none';
    ActivateTabsSA();
};

var LoadCityListAF = function(targetElementId,url,method,parameters){
       var targetElement = $(targetElementId);
       	if (targetElement == null) {
       	    throw 'Target element is null!';
       	}
       	if (url == null) {
       	    throw 'URL has to be provided';
       	}
       	if (method == null) {
       	    method = 'get';
       	} else if (method != 'get' && method != 'post') {
       	    throw 'Method should be get or post'; 
       	}
       	var myAjax = new Ajax.Updater(
       	{ success: targetElement }, 
       	url, 
       	{ 
       	    onCreate :createProgress,
       	    method: method,
       	    parameters: parameters, 
       	    onFailure: myerrFunc,
       	    evalScripts: true,
       	    onComplete:onFinishOfAF
       	    
	});
};
var onFinishOfAF = function(){
    $('modal_dialog_progress').style.display='none';
    
};




var LoadHomePage = function(targetElementId, url, method, parameters) {
	var targetElement = $(targetElementId);
	if (targetElement == null) {
	    throw 'Target element is null!';
	}
	if (url == null) {
	    throw 'URL has to be provided';
	}
	if (method == null) {
	    method = 'get';
	} else if (method != 'get' && method != 'post') {
	    throw 'Method should be get or post'; 
	}
	var myAjax = new Ajax.Updater(
	{ success: targetElement }, 
	url, 
	{ 
	    method: method,
	    parameters: parameters, 
	    onFailure: errFunc,
	    evalScripts: true,
	    onComplete:onFinishOfLP
	});
    
};
var onFinishOfLP = function(){
    createAutoCompleter();
};

function formRequest(formElementId) {
         Event.observe(formElementId, 'submit', handleSubmitEvent, true);
}



function handleSubmitEvent(event) {
    	var formElement = Event.element(event);
    	var updateElement = $('body');
        if (formElement.tagName.toLowerCase() != 'form') {
            throw 'Element ' + formElement + ' is not a FORM element!';
        }
        var method = formElement.method;
        if (method == null) {
            method = 'get';
        }
        var url = formElement.action;
        if (url == null) {
        	throw 'No action defined on ' + formElement;
        }
        try {
        	Event.stop(event);
			var myRequest = new Ajax.InitialUpdater(
				{ success: updateElement ,failure:formElement.parentNode}, 
				url, 
				{ 
				        onCreate :showSearchDiv,
				        method: method, 
					parameters: Form.serialize(formElement),
					evalScripts: true,
					onFailure: errFunc,
					onComplete:screenUpdater
										
				});
		} finally {
		        
			return false;
		}
    }
       
   var handlerFunc = function(t) {
       alert(t.responseText);
   }
   var errFunc = function(t) {
		Effect.Fade('interstatial');
		Effect.Fade('interstatialheading');
		Effect.Appear('header');
		Effect.Appear('body');
		Effect.Appear('footer');
		createAutoCompleter();
   }
   var screenUpdater=function(t){
              var responseText = t.responseText;
              var mystatus = responseText.split("id=\"");
	           mystatus = mystatus[1].split("\"");
                   mystatus = mystatus[0];
                   
                   if(mystatus=='Results'){
			Effect.Fade('interstatial');
			Effect.Fade('interstatialheading');
			Effect.Appear('header');
			Effect.Appear('body');
			Effect.Appear('footer');
			createAutoCompleter();
		   }else{
			setTimeout("apperInError()",1000);
			
			
		   }
	   
   }
   
   function apperInError(){
	Effect.Fade('interstatial');
	Effect.Fade('interstatialheading');
	Effect.Appear('header');
	Effect.Appear('body');
	Effect.Appear('footer');
	createAutoCompleter();
       
   }
   
   var showSearchDiv=function(){
             Effect.Fade('header');
	     Effect.Fade('body');
	     Effect.Fade('footer');
	     Effect.Appear('interstatial');
	     Effect.Appear('interstatialheading');
	
   }
   
 Ajax.InitialUpdater = Class.create(Ajax.Request, {
     initialize: function($super, container, url, options) {
       this.container = {
         success: (container.success || container),
         failure: (container.failure || (container.success ? null : container))
       };
   
       options = Object.clone(options);
       var onComplete = options.onComplete;
       options.onComplete = (function(response, json) {
         this.updateContent(response.responseText);
         if (Object.isFunction(onComplete)) onComplete(response, json);
       }).bind(this);
   
       $super(url, options);
     },
   
     updateContent: function(responseText) {
       var mystatus = responseText.split("id=\"");
       mystatus = mystatus[1].split("\"");
       mystatus = mystatus[0];
       var receiver = this.container[this.success()&&mystatus=='Results'? 'success' : 'failure'],
           options = this.options;
       
       if (!options.evalScripts) responseText = responseText.stripScripts();
        if (receiver = $(receiver)) {
         if (options.insertion) {
           if (Object.isString(options.insertion)) {
             var insertion = { }; insertion[options.insertion] = responseText;
             
             receiver.insert(insertion);
           }
           else options.insertion(receiver, responseText);
         }
         else {
           receiver.update(responseText);
         }
       }
     }
});





var SimpleRequest = function(targetElementId, url, method, parameters) {
        var targetElement = $(targetElementId);
        if (targetElement == null) {
            throw 'Target element is null!';
        }
        if (url == null) {
            throw 'URL has to be provided';
        }
        if (method == null) {
            method = 'get';
        } else if (method != 'get' && method != 'post') {
            throw 'Method should be get or post'; 
        }
        var myAjax = new Ajax.Updater(
            { success: targetElement }, 
            url, 
            { 
                onCreate :showProgressDiv,
                method: method,
                parameters: parameters, 
                onFailure: errFunc,
                evalScripts: true,
                onComplete:closeProgressDiv
            });
    };
    
 var showProgressDiv=function(){
             
             var innerHTML = "<table  border=\"0\" align=\"center\" cellpadding=\"0\" cellspacing=\"0\" width=\"180\" height=\"80\">";
	       innerHTML=innerHTML+"<tr><td align=\"center\" valign=\"middle\"> <img src='images/international/wait_ax.gif'/><BR/> <BR/>";
	       innerHTML=innerHTML+"<B>Populating Results  <img src='images/international/short_Progress.gif'></B>";
	       innerHTML=innerHTML+"<span id=\"timer2\" style=\"display:none\"></span><a id=\"hider2\" href=\"#$\"></a></td></tr></table>";
              var disabledZone = $('disabledZone');
               if (!disabledZone) {
                   disabledZone = document.createElement('div');
                   disabledZone.setAttribute('id', 'disabledZone');
                   disabledZone.style.position = "absolute";
                   disabledZone.style.zIndex = "1000";
                   
                   
                   var xoffset = (document.all)?document.body.scrollLeft:window.pageXOffset; 
                   var yoffset = (document.all)?document.body.scrollTop:window.pageYOffset;
                   disabledZone.style.left = xoffset;
                   disabledZone.style.top = yoffset;
                   disabledZone.style.width = "100%";
                   disabledZone.style.height = "100%";
                   disabledZone.style.textAlign = "center";
                   document.body.appendChild(disabledZone);
                   var messageZone = document.createElement('div');
                   messageZone.setAttribute('id', 'messageZone');
                   messageZone.style.border = "1px solid black";
                   messageZone.style.margin = "250px";
                   messageZone.style.marginLeft = "350px";
                   messageZone.style.marginRight = "350px";
                   messageZone.style.background = "#dcedad";
                   messageZone.style.color = "white";
                   messageZone.style.fontFamily = "Arial,Helvetica,sans-serif";
                   messageZone.style.padding = "4px";
                   messageZone.innerHTML = innerHTML;
                                           
                   disabledZone.appendChild(messageZone);
               } else {
		   var xoffset = (document.all)?document.body.scrollLeft:window.pageXOffset; 
		   var yoffset = (document.all)?document.body.scrollTop:window.pageYOffset;
		   disabledZone.style.left = xoffset;
                   disabledZone.style.top = yoffset;
                   $('messageZone').innerHTML = innerHTML;
                   disabledZone.style.visibility = 'visible';
          }
    }
    var closeProgressDiv = function(){
          
	   var innerHTML = "<table  border=\"0\" align=\"center\" cellpadding=\"0\" cellspacing=\"0\" width=\"180\" height=\"80\">";
	   innerHTML=innerHTML+"<B>Finished populating</B><br/>";
	   innerHTML=innerHTML+"<strong>Please check the results</strong></td></tr></table>";
           $('messageZone').innerHTML = innerHTML;
           setTimeout("$('disabledZone').style.visibility = 'hidden'",1000);
          
           
    }
    
    
	
	 
	
	