// remote scripting library
var ajax_debug_mode = false;
var ajax_request_type = "POST";
var ajax_default_div = "mainContent";


function ajax_debug(text) {
	if (ajax_debug_mode)
		alert("RSD: " + text)
}

function ajax_data(text, tag) {
	data = '';
	startTag = '<'+tag+'>'
	endTag = '</'+tag+'>'
	start = text.indexOf(startTag)
	if (start > 0 ) {
		start = start + startTag.length
		end = text.indexOf(endTag)
		data = text.substring(start,end)
	}
	return data
}


function ajax_init_object() {
	ajax_debug("ajax_init_object() called..")

	var A;
	try {
		A=new ActiveXObject("Msxml2.XMLHTTP");
	} catch (e) {
		try {
			A=new ActiveXObject("Microsoft.XMLHTTP");
		} catch (oc) {
			A=null;
		}
	}
	if(!A && typeof XMLHttpRequest != "undefined") {
		A = new XMLHttpRequest();
	}
	if (!A) {
		ajax_debug("Could not create connection object.");
	}
	return A;
}

function ajax_show_data(div,data) {
	if (document.getElementById) {
		var id = document.getElementById( div );
		if (id) {
			if (typeof id.innerHTML != 'undefined') {
				id.innerHTML = data;
			}
		}
	}
}

function ajax_html(uri, div) {
	var x;
	var post_data = null;
	x = ajax_init_object();
	x.open("GET", '/ajax' + uri, true);
	x.onreadystatechange = function() {
		if (x.readyState != 4) 
			return;
		ajax_debug("received " + x.responseText);
		var status;
		var data;
		status = x.responseText.charAt(0);
		data = x.responseText.substring(2);
		//data = x.responseText;
		if (status == "-") {
			ajax_show_data(div,"Error: " + data);
		}
		else  {
			count = ajax_data(data,'count');
			ajax_show_data(div+'-count',count);
			ajax_show_data(div,data);
			ajax_high_light();
		}
	
	}
	
	
	x.send(post_data);
	delete x;
}

function ajax_high_light () {
	if (self.casiArray) {
		for (var i = 0; i < self.casiArray.length; i++) {
		   var id = 'type-' + self.casiArray[i];
		   var element = document.getElementById(id);
		   if (element) {
		       element.className = 'tipo_24';
		   }
		}
	}
	if (self.eventArray) {
		for (var i = 0; i < self.eventArray.length; i++) {
			var id = 'event-' + eventArray[i];
			var element = document.getElementById(id);
			if (element) {
				element.style.backgroundColor = '#e2f3c9';
			}
		}
	}
}


function _do_get(uri, div) {
   	if (do_get.arguments.length == 1) div = ajax_default_div;
	do_ajax_request("GET",div,'/ajax' + uri);
}

function do_ajax_request(request_type, div, uri, args) {
	var i, x, n;
	var uri;
	var post_data;

	x = ajax_init_object();
	x.open(request_type, uri, true);
	if (request_type == "POST") {
		x.setRequestHeader("Method", "POST " + uri + " HTTP/1.1");
		x.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	}
	x.onreadystatechange = function() {
		if (x.readyState != 4) 
			return;
		var status;
		var data = x.responseText;
		ajax_show_data(div,data);
	}
	x.send(post_data);
	delete x;
}



function ajax_do_call(uri, call_back) {
	ajax_debug_mode = false;
	
	var i, x, n;
	var uri;
	var post_data = null;

	x = ajax_init_object();
	x.open("GET", uri, true);
	x.onreadystatechange = function() {
		if (x.readyState != 4) 
			return;
		ajax_debug("received " + x.responseText);

		var status;
		var data;
		status = x.responseText.charAt(0);
		data = x.responseText.substring(2);
		if (status == "-") 
			alert("Error: " + data);
		else  
			call_back(data);
	}
	x.send(post_data);
	ajax_debug(call_back + " waiting...");
	delete x;
}


function _ajax_do_call(request_type, uri, func_name, args) {
	ajax_debug_mode = true;
	
	var i, x, n;
	var uri;
	var post_data;

	if (request_type == "GET") {
		if (uri.indexOf("?") == -1) 
			uri = uri + "?rs=" + escape(func_name);
		else
			uri = uri + "&rs=" + escape(func_name);
		for (i = 0; i < args.length-1; i++) 
			uri = uri + "&rsargs[]=" + escape(args[i]);
		uri = uri + "&rsrnd=" + new Date().getTime();
		post_data = null;
	} else {
		post_data = "rs=" + escape(func_name);
		for (i = 0; i < args.length-1; i++) 
			post_data = post_data + "&rsargs[]=" + escape(args[i]);
	}

	x = ajax_init_object();
	x.open(request_type, uri, true);
	if (request_type == "POST") {
		x.setRequestHeader("Method", "POST " + uri + " HTTP/1.1");
		x.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	}
	x.onreadystatechange = function() {
		if (x.readyState != 4) 
			return;
		ajax_debug("received " + x.responseText);

		var status;
		var data;
		status = x.responseText.charAt(0);
		data = x.responseText.substring(2);
		if (status == "-") 
			alert("Error: " + data);
		else  
			args[args.length-1](data);
	}
	x.send(post_data);
	ajax_debug(func_name + " uri = " + uri + "/post = " + post_data);
	ajax_debug(func_name + " waiting..");
	delete x;
}




