/*
##########################################################################################

	TRAVELING-SOUTH AFRICA . COM
	
	File: base_ajax.js
	
	Description: Primary AJAX functions used to communicate with backend services

##########################################################################################



*/
// Make Div Request Function, populates 
	function makeDivRequest(url, output_div, show_loading) 
		{
		
			if (show_loading)
				{
					document.getElementById( output_div ).innerHTML = '<img src="images/loading.gif">';	
				}

			var http_request = false;
	
			if (window.XMLHttpRequest) { // Mozilla, Safari, ...
				http_request = new XMLHttpRequest();
				if (http_request.overrideMimeType) {
					http_request.overrideMimeType('text/xml');
					// See note below about this line
				}
			} else if (window.ActiveXObject) { // IE
				try {
					http_request = new ActiveXObject("Msxml2.XMLHTTP");
				} catch (e) {
					try {
						http_request = new ActiveXObject("Microsoft.XMLHTTP");
					} catch (e) {}
				}
			}
			if (!http_request) {
				alert('Unable to communicate with Amatotal Server!');
				return false;
			}
	
			http_request.onreadystatechange = function() { DivWriteContents(http_request, output_div ); };				
			http_request.open('GET', url, true);
			http_request.send(null);
		}

	function makePostRequest(url, output_div, show_loading, params) 
		{
		
			if (show_loading)
				{
					document.getElementById( output_div ).innerHTML = '<img src="images/loading.gif">';	
				}

			var http_request = false;
	
			if (window.XMLHttpRequest) { // Mozilla, Safari, ...
				http_request = new XMLHttpRequest();
				if (http_request.overrideMimeType) {
					http_request.overrideMimeType('text/xml');
					// See note below about this line
				}
			} else if (window.ActiveXObject) { // IE
				try {
					http_request = new ActiveXObject("Msxml2.XMLHTTP");
				} catch (e) {
					try {
						http_request = new ActiveXObject("Microsoft.XMLHTTP");
					} catch (e) {}
				}
			}
			if (!http_request) {
				alert('Unable to communicate with Amatotal Server!');
				return false;
			}
	
			http_request.onreadystatechange = function() { DivWriteContents(http_request, output_div ); };				
			http_request.open('POST', url, true);
			http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
			http_request.setRequestHeader("Content-length", params.length);
			http_request.setRequestHeader("Connection", "close");
			http_request.send(params);
		}


	// Applies returned content into given element ID HTML, else alerts an error
    function DivWriteContents(http_request, div ) 
		{
	
			if (http_request.readyState == 4) {
				if (http_request.status != 200) {
					alert('Connection to the Content Server may have been lost, or there has bee an invalid url request.');
				}
				else
					{ 
						document.getElementById(div).innerHTML =  http_request.responseText; 
						//alert( http_request.responseText );

					}
			}
	
		}
		
		
// MAKE REQUEST - without returning output (one-way req)
	function makeRequest(url) 
		{
			var http_request = false;
	
			if (window.XMLHttpRequest) { // Mozilla, Safari, ...
				http_request = new XMLHttpRequest();
				if (http_request.overrideMimeType) {
					http_request.overrideMimeType('text/xml');
					// See note below about this line
				}
			} else if (window.ActiveXObject) { // IE
				try {
					http_request = new ActiveXObject("Msxml2.XMLHTTP");
				} catch (e) {
					try {
						http_request = new ActiveXObject("Microsoft.XMLHTTP");
					} catch (e) {}
				}
			}
			if (!http_request) {
				alert('Unable to communicate with Amatotal Server!');
				return false;
			}
	
			http_request.onreadystatechange = function() { CheckConnection(http_request); };		
			http_request.open('GET', url, true);
			http_request.send(null);
		}
		
	function PostRequest(url) 
		{
			var http_request = false;
	
			if (window.XMLHttpRequest) { // Mozilla, Safari, ...
				http_request = new XMLHttpRequest();
				if (http_request.overrideMimeType) {
					http_request.overrideMimeType('text/xml');
					// See note below about this line
				}
			} else if (window.ActiveXObject) { // IE
				try {
					http_request = new ActiveXObject("Msxml2.XMLHTTP");
				} catch (e) {
					try {
						http_request = new ActiveXObject("Microsoft.XMLHTTP");
					} catch (e) {}
				}
			}
			if (!http_request) {
				alert('Unable to communicate with Amatotal Server!');
				return false;
			}
	
			http_request.onreadystatechange = function() { CheckConnection(http_request); };		
			http_request.open('GET', url, true);
			http_request.send(null);
		}		

	// Applies returned content into given element ID HTML, else alerts an error
    function CheckConnection(http_request) 
		{
	
			if (http_request.readyState == 4) {
				if (http_request.status != 200) {
					alert('Connection to the Content Server may have been lost, or there has bee an invalid url request.');
				}
				else return true;
			}
	
		}
		
	
	var Spell_Win_Name;
	var Work_Form_Name;
	var Work_Field_Name;
	
	function SpellCheck(form_name,field_name) 
	{
	  //var textform = self.document.proba.description_short.value;
	  //var textform = self.document["proba"]["description_short"].value;
	  
	  var textform = self.document[form_name][field_name].value;
	  
	  //textform = "dfghfhfghfghfgh";
	  //self.document[form_name][field_name].value = "alabala i towa e";
	  //alert (textform);
	  
	  //open popup window and submit to spell_check.php ONLY
	  //1. IF popup window is not open or popup window was closed
	  //2. OR click comes from another form-field
	  
	  //otherwise spellcheck click just focus popup window
	  
	  if ( ! Spell_Win_Name || Spell_Win_Name.closed || (Work_Form_Name != form_name || Work_Field_Name != field_name))
	  {
	  Spell_Win_Name = win_pop('');
	  if (Spell_Win_Name.focus) { Spell_Win_Name.focus(); }
	  
	  self.document.hidden_form.form_name.value = form_name; 	//w skritata forma se izpolzwa ime na pole form_name i field_name
	  self.document.hidden_form.field_name.value = field_name;  	// koito nqmat nishto obshto s promrnliwite w tazi funkciq
	  self.document.hidden_form.first_time_text.value = textform;
	  self.document.hidden_form.submit();
	  
	  Work_Form_Name=form_name;
	  Work_Field_Name=field_name;
	  }
	  else
	  {
	  if (Spell_Win_Name.focus) { Spell_Win_Name.focus(); }
	  }
	
	}
			 
				 
	<!--
	function win_pop(URL)
	{	
		winname=window.open(URL,'WIN','width=600,height=380,left=210,top=210,resizable=yes,scrollbars=yes,status=yes'); 
	return winname;
	}
	--> 