/*http://www.prototypejs.org/learn*/

var ajax_action_handler_url = C_ABSOLUTE_PATH + 'ajax_actions.php';

function ajax_info (display) {
	if (display == 1) {
		document.getElementById('ajax_waiting').style.display = '';
	} else {
		document.getElementById('ajax_waiting').style.display = 'none';
	}
}

/************************************************************************************************************************************************************************************************
 * MAIL MESSAGE TEMPLATE
 */
function get_mail_message_template (ajax_action, id_communication) {
	ajax_info(1);
	
	var source = document.getElementById('id_message_tpl_' + id_communication);
	var url = ajax_action_handler_url;
	var pars =
			'ajax_action=' + ajax_action +  
			'&id_message_tpl=' + source.value + 
			'&id_target=' + 'message_text_' + id_communication + 
			''
	;
	var myAjax = new Ajax.Request(
		url,
		{
			method: 'post',
			parameters: pars,
			onComplete: response_mail_message_template_handler,
			evalScripts: true
		}
	);
}

function response_mail_message_template_handler (response) {
	//alert(response.responseText);
	
	if (response.responseText) {
		ajax_info(0);
		
		var text = response.responseXML.getElementsByTagName("text")[0].firstChild.data;
		var id_target = response.responseXML.getElementsByTagName("id_target")[0].firstChild.data;
		var target = document.getElementById(id_target);
		
		target.value = text 
			+ "\n----------------------------------------\n" 
			+ target.value;
	}	
}

function cache_remove(ajax_action, id_cache, cache_name, e) {
	ajax_info(1, e);
	var url = ajax_action_handler_url;
	var pars =
			'ajax_action=' + ajax_action +  
			'&id_cache=' + id_cache + 
			'&cache_name=' + cache_name + 
			''
	;
	var myAjax = new Ajax.Request(
		url,
		{
			method: 'post',
			parameters: pars,
			onComplete: response_cache_remove,
			evalScripts: true
		}
	);
}	
function response_cache_remove (response) {
	//alert(response.responseText);
	
	if (response.responseText) {
		window.location.reload();
	}	
}

/************************************************************************************************************************************************************************************************
/* REACTION MESSAGE TEMPLATE
/*/

function get_reaction_message_template (ajax_action, id_complaining, id_communication, is_supervisor, no_e_mail) {
	ajax_info(1);

	var id_target = 'reaction_' + id_communication;
	var url = ajax_action_handler_url;
	var pars =
			'ajax_action=' + ajax_action +  
			'&id_complaining=' + id_complaining + 
			'&id_communication=' + id_communication + 
			'&is_supervisor=' + is_supervisor + 
			'&no_e_mail=' + no_e_mail + 
			''
	;
	new Ajax.Updater(
		id_target, 
		url,
  		{
	    	method: 'get',
			parameters: pars,
			onComplete: reaction_message_template_handler
  		}
  	);
}

function reaction_message_template_handler (response) {
	//alert(response.responseText);
	if (response.responseText) {
		ajax_info(0);
		
		var id_communication = document.getElementById('id_communication').value;
		var reaction_box = document.getElementById('reaction_' + id_communication);
		var message_text_textarea = document.getElementById('message_text_' + id_communication);

		reaction_box.style.display = ''; 
		message_text_textarea.focus();		
	}
}

function company_search_updater(ajax_action, company_search_object, title) {
	
	print_company_item(false);
	
	var url = ajax_action_handler_url;
	var pars =
			'ajax_action=' + ajax_action +  
			'&searched_text=' + company_search_object.value +  
			''
	;
	ajax_search_layer(company_search_object, title, 0, 23);
	
	var myAjax = new Ajax.Request(
		url,
		{
			method: 'post',
			parameters: pars,
			onComplete: response_company_search_updater,
			evalScripts: true
		}
	);
}

function ajax_search_layer(obj, title, offset_x, offset_y) {
	var layer_message_main = document.getElementById('layer_message_main');
	var layer_message_head = document.getElementById('layer_message_head');
	var layer_message_body = document.getElementById('layer_message_body');

	align_search_layer(obj, offset_x, offset_y)

	layer_message_main.style.display = '';
	layer_message_head.innerHTML = title;
	
}

function align_search_layer(obj, offset_x, offset_y) {
	var layer_message_main = document.getElementById('layer_message_main');
	
	object_position = find_object_position(obj);
	
	layer_message_main.style.left = (object_position[0] + offset_x) + 'px';
	layer_message_main.style.top = (object_position[1] + offset_y) + 'px';
	
}

function response_company_search_updater (response) {
	//alert(response.responseText);
	document.getElementById('layer_message_body').innerHTML = response.responseText;	
}

function log_compl_add_activity (ajax_action, ip2long, field, text) {
	
	var url = ajax_action_handler_url;
	
	if ((text.length % 10) == 0)  {
		//alert(ajax_action + ': ' + ip2long + ': ' + field + ': ' + text);
		
		var pars =
				'ajax_action=' + ajax_action +  
				'&ip2long=' + ip2long +  
				'&field=' + field +  
				'&text=' + text + 
				''
		;
		var myAjax = new Ajax.Request(
			url,
			{
				method: 'post',
				parameters: pars,
				evalScripts: true
			}
		);
	} else {
		return;
	}

}


function delete_admin_note (ajax_action, ajax_action_refresh, id_admin_notes, id_complaining, id_target) {
	ajax_info(1);
	
	var url = ajax_action_handler_url;
	
	var pars =
			'ajax_action=' + ajax_action +  
			'&ajax_action_refresh=' + ajax_action_refresh +  
			'&id_admin_notes=' + id_admin_notes + 
			'&id_complaining=' + id_complaining +  
			'&id_target=' + id_target + 
			''
	;
	var myAjax = new Ajax.Request(
		url,
		{
			method: 'post',
			parameters: pars,
			onComplete: response_refresh_admin_note,
			evalScripts: true
		}
	);
}

function write_admin_note (ajax_action, ajax_action_refresh, id_complaining, id_source, id_target) {
	ajax_info(1);
	
	var source = document.getElementById(id_source);
	var url = ajax_action_handler_url;
	
	var pars =
			'ajax_action=' + ajax_action +  
			'&ajax_action_refresh=' + ajax_action_refresh +  
			'&id_complaining=' + id_complaining +  
			'&text=' + source.value + 
			'&id_target=' + id_target + 
			''
	;
	source.value = '';
	var myAjax = new Ajax.Request(
		url,
		{
			method: 'post',
			parameters: pars,
			onComplete: response_refresh_admin_note,
			evalScripts: true
		}
	);
}

function response_refresh_admin_note (response) {
	//alert(response.responseText);
	
	if (response.responseText) {
		ajax_info(0);
		
		var ajax_action = response.responseXML.getElementsByTagName("ajax_action")[0].firstChild.data;
		var id_target = response.responseXML.getElementsByTagName("id_target")[0].firstChild.data;
		var id_complaining = response.responseXML.getElementsByTagName("id_complaining")[0].firstChild.data;

		
		var url = ajax_action_handler_url;
		var pars =
				'ajax_action=' + ajax_action +  
				'&id_target=' + id_target +  
				'&id_complaining=' + id_complaining +  
				''
		;
	
		new Ajax.Updater(
			id_target, 
			url, 
			{
	  			method: 'get',
				parameters: pars
	  		}
	  	);
	}	
}

function test_central_duplicity(ajax_action, tested_value) {

	var url = ajax_action_handler_url;
	var pars =
			'ajax_action=' + ajax_action +  
			'&tested_value=' + tested_value +  
			''
	;
	var myAjax = new Ajax.Request(
		url,
		{
			method: 'post',
			parameters: pars,
			onComplete: response_test_central_duplicity,
			evalScripts: true
		}
	);
}
function response_test_central_duplicity (response) {
	if (response.responseText != '') {
		alert(response.responseText);
	}
}


/************************************************************************************************************************************************************************************************
 * LAYER BOX
 */
function layer_box_window (url, height, width) {
   /**
	* new LITBox(Message or HREF, {options});
	* -----------------
	* Option Parameters
	* -----------------
    * width: pixel width
    * height: pixel height
    * type: 'window','alert','confirm'
    * func: function to call when confirming yes
    * draggable: ability to drag around screen
    * resizable: ability to resize
    * overlay: show overlay mask
    * opacity: final opacity [0,1]
    * left: how far from the left of the screen
    * top: how far from the top of the screen
	*/
	new LITBox(url, {type:'window', resizable:true, draggable:true, overlay:true, height:height, width:width});
	return false;
}

/************************************************************************************************************************************************************************************************
 * PERIODICAL UPDATER
 */

function check_user_new_message(ajax_action, object_id) {
	
	var url = ajax_action_handler_url;
	var pars =
			'ajax_action=' + ajax_action +  
			''
	;
	new Ajax.PeriodicalUpdater(
		object_id, 
		url,
  		{
	    	method: 'get',
			parameters: pars,
	    	frequency: 1,
	    	decay: 2
  		}
  	);
}


/************************************************************************************************************************************************************************************************
 * UPDATER

 */


function check_provider_by_ip(ajax_action, ip_address, object_id) {
	
	var url = ajax_action_handler_url;
	var pars =
			'ajax_action=' + ajax_action +  
			'&ip_address=' + ip_address +  
			''
	;

	new Ajax.Updater(
		object_id, 
		url, 
		{
  			method: 'get',
			parameters: pars
  		}
  	);
}  

function company_select_refresh(ajax_action, id_company_draft, object_id) {

	var url = ajax_action_handler_url;
	var pars =
			'ajax_action=' + ajax_action +  
			'&id_company_draft=' + id_company_draft +  
			''
	;

	new Ajax.Updater(
		object_id, 
		url, 
		{
  			method: 'get',
			onComplete: se,
			parameters: pars
		}
  	);
}  

function se (response) {
	//alert(response.responseText);
}