var ajaxform    = new Array();
var ajaxrezerv  = new Array();
var ajaxObjects = new Array();
var settime		= new Array();
var settime_sel	= new Array();
var stloading	= new Array();

var rand = 1;
var oFCKeditor;

var def_array = 0;
if (navigator.userAgent.indexOf ("MSIE") == -1) var def_array = 1;

window.onerror = doNothing;

function whenLoading(replaceme) {
	if (!replaceme) replaceme = "replaceme";
	if (document.getElementById(replaceme)) {
		e = document.getElementById(replaceme); 
		e.innerHTML = "<span style='background:#ffffaa;width:145px;padding:3px' id='"+replaceme+"_temp'>" + "Данные передаются" + "</span>";
	}

	stloading[replaceme] = 1000;
	setTimeout("whenLoading_sch('"+replaceme+"')", 1000);
}

function whenLoading_sch(replaceme) {
	if (stloading[replaceme]) {
		if (document.getElementById(replaceme+"_temp")) {
			e = document.getElementById(replaceme+"_temp");
			str = e.innerHTML + ".";
			e.innerHTML = str;
		}
		stloading[replaceme] += 1000;
		if (stloading[replaceme] <= 150000) setTimeout("whenLoading_sch('"+replaceme+"')", 1000);
		else {
			delete stloading[replaceme];
			whenError(replaceme);
		}
	}
}

function whenLoaded(replaceme) {
	if (!replaceme) replaceme = "replaceme";
	if (document.getElementById(replaceme)) {
		e = document.getElementById(replaceme); 
		e.innerHTML = "<span style='background:lightgreen;width:130px;padding:3px'>" + "Данные переданы" + "</span>";
	}
	delete stloading[replaceme];
}

function whenInteractive(replaceme) {
	if (!replaceme) replaceme = "replaceme";
	if (document.getElementById(replaceme)) {
		e = document.getElementById(replaceme); 
		e.innerHTML = "<span style='background:#CCE4D0;width:180px;padding:3px'>" + "Идет получение информации" + "</span>";
	}
}

function whenError(replaceme) {
	if (!replaceme) replaceme = "replaceme";
	if (document.getElementById(replaceme)) {
		e = document.getElementById(replaceme);

		e.innerHTML = "<span style='background:red;color:white'>" + "Ошибка..." + "</span>";
		setTimeout("whenError_return('"+replaceme+"')", 2000);
	}
}

function whenError_return(replaceme) {
	if (document.getElementById(replaceme)) {
		e = document.getElementById(replaceme);
		if (ajaxrezerv[replaceme]) { 	
			e.innerHTML = ajaxrezerv[replaceme];
			delete ajaxrezerv[replaceme];
		}
		else e.innerHTML = "";
	}
}

function whenOK(replaceme) {
	if (document.getElementById(replaceme)) {
		e = document.getElementById(replaceme);
		e.innerHTML = "";
	}
}

function FromServer(ajaxIndex, replaceme, outer) {
	whenOK('poselok_info_string');
	if (ajaxform[ajaxIndex] && !ajaxform[ajaxIndex].response || !ajaxform[ajaxIndex]) {return 0;}

	var value_text = ajaxform[ajaxIndex].response;
	ajaxObjects[ajaxIndex] = value_text;

	if (document.getElementById(replaceme) && (value_text.indexOf("<div id='"+replaceme+"'") != -1 ||
											   value_text.indexOf("<div id=\""+replaceme+"\"") != -1)) {outer = 1;}
	delete ajaxform[ajaxIndex];
	delete ajaxrezerv[replaceme];
	
	if (outer) { setOuterHTML(replaceme, value_text); }
	else { 
		if (document.getElementById(replaceme)) {
			document.getElementById(replaceme).innerHTML = value_text;
		} else {
			return false;
		}
	}
}

function ld_content(id, divId, url, outer, msg) {
	var ajaxIndex = id;

	if (document.getElementById(divId) && ajaxObjects[ajaxIndex]) {
		if (outer) { setOuterHTML(divId, ajaxObjects[ajaxIndex]); return true;}
		else { 
			if (document.getElementById(divId)) {
				document.getElementById(divId).innerHTML = ajaxObjects[ajaxIndex];
			} else {
				return false;
			}
		}
//		return false;
	}
	
	if (document.getElementById(divId) && ajaxIndex && !ajaxObjects[ajaxIndex]) {
		ajaxrezerv[ajaxIndex] = document.getElementById(divId).innerHTML;
		ajaxform[ajaxIndex] = new sack();
		ajaxform[ajaxIndex].requestFile = url;
//		if (!msg) {
			ajaxform[ajaxIndex].onError   = function() {whenError('poselok_info_string');}
			ajaxform[ajaxIndex].onFail    = function() {whenError('poselok_info_string');}
	    	ajaxform[ajaxIndex].onLoading = function() {whenLoading('poselok_info_string');}
	    	ajaxform[ajaxIndex].onLoaded  = function() {whenLoaded('poselok_info_string');}
	    	ajaxform[ajaxIndex].onInteractive = function() {whenInteractive('poselok_info_string');}
//		}
		ajaxform[ajaxIndex].onCompletion  = function() { FromServer(ajaxIndex, divId, outer) };
		ajaxform[ajaxIndex].runAJAX();		// Execute AJAX function
		
//		return false;
	}
}

function doNothing() {return false;}

function setOuterHTML(ElementID, txt) { 
	var someElement = document.getElementById(ElementID); 

//работает для IE, но не работает для Firefox.
	if (someElement.outerHTML) { someElement.outerHTML = txt; } 

//работает для Firefox, но не работает для IE.
	else { 
		var range = document.createRange(); 
		range.setStartBefore(someElement); 
		var docFrag = range.createContextualFragment(txt); 
		someElement.parentNode.replaceChild(docFrag, someElement); 
	} 
} 

