//##################################
//#         DLE AJAX
//##################################

function _get_obj_toppos(obj) {
	var top = obj.offsetTop;
	while( (obj = obj.offsetParent) != null ) {
		top += obj.offsetTop;
	}
	return top;
}

function center_div() {
	this.divname = '';
	this.divobj  = '';
	}

center_div.prototype.clear_div = function() {
	try {
		if ( ! this.divobj ) {
		return;
		} else {
		this.divobj.style.display  = 'none';
		}
	}
	catch(e) {
	return;
	}
}

center_div.prototype.Ywindow = function() {
	var scrollY = 0;
	if ( document.documentElement && document.documentElement.scrollTop ) {
	scrollY = document.documentElement.scrollTop;
	}
	else if ( document.body && document.body.scrollTop ) {
		scrollY = document.body.scrollTop;
	}
	else if ( window.pageYOffset ) {
		scrollY = window.pageYOffset;
	}
	else if ( window.scrollY ) {
		scrollY = window.scrollY;
	}
	return scrollY;
}

center_div.prototype.move_div = function() {
	try {
		this.divobj = document.getElementById( this.divname );
	}
	catch(e) {
	return;
	}
	var my_width  = 0;
	var my_height = 0;
	if ( typeof( window.innerWidth ) == 'number' ) {
		my_width  = window.innerWidth;
		my_height = window.innerHeight;
	}
	else if ( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
		my_width  = document.documentElement.clientWidth;
		my_height = document.documentElement.clientHeight;
	}
	else if ( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
		my_width  = document.body.clientWidth;
		my_height = document.body.clientHeight;
	}
	this.divobj.style.position = 'absolute';
	this.divobj.style.display  = 'block';
	this.divobj.style.zIndex   = 99;
	var divheight = parseInt( this.divobj.style.Height );
	var divwidth  = parseInt( this.divobj.style.Width );
	divheight = divheight ? divheight : 50;
	divwidth  = divwidth  ? divwidth  : 200;
	var scrolly = this.Ywindow();
	var setX = ( my_width  - divwidth  ) / 2;
	var setY = ( my_height - divheight ) / 2 + scrolly;
	setX = ( setX < 0 ) ? 0 : setX;
	setY = ( setY < 0 ) ? 0 : setY;
	this.divobj.style.left = setX + "px";
	this.divobj.style.top  = setY + "px";
}

function dle_ajax(file) {
	this.AjaxFailedAlert = "Ваш браузер не поддерживает расширенные возможности управления сайтом, мы настоятельно рекомендуем сменить браузер.\n";
	this.requestFile = file;
	this.method = "POST";
	this.URLString = "";
	this.encodeURIString = true;
	this.execute = false;
	this.loading_fired		= 0;
	this.centerdiv          = null;
	this.onLoading = function() { };
	this.onLoaded = function() { };
	this.onInteractive = function() { };
	this.onCompletion = function() { };
	this.onShow = function( message ) {
	if ( ! this.loading_fired ) {
		this.loading_fired = 1;
	if ( message ) {
		document.getElementById( 'loading-layer-text' ).innerHTML = message;
	}
	this.centerdiv         = new center_div();
	this.centerdiv.divname = 'loading-layer';
	this.centerdiv.move_div();
	}
	return;
	};

	this.onHide = function() {
	try {
		if ( this.centerdiv && this.centerdiv.divobj ) {
			this.centerdiv.clear_div();
		}
	}
	catch(e) { }
	this.loading_fired = 0;
	return;
	};

	this.createAJAX = function() {
	try {
		this.xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
	} catch (e) {
	try {
		this.xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
	} catch (err) {
	this.xmlhttp = null;
	}
	}

	if(!this.xmlhttp && typeof XMLHttpRequest != "undefined")
		this.xmlhttp = new XMLHttpRequest();
	if (!this.xmlhttp){
		this.failed = true;
	}
	};
	this.setVar = function(name, value){
		if (this.URLString.length < 3){
			this.URLString = name + "=" + value;
		} else {
			this.URLString += "&" + name + "=" + value;
		}
	}
	this.encVar = function(name, value){
		var varString = encodeURIComponent(name) + "=" + encodeURIComponent(value);
return varString;
}
this.encodeURLString = function(string){
varArray = string.split('&');
for (i = 0; i < varArray.length; i++){
urlVars = varArray[i].split('=');
if (urlVars[0].indexOf('amp;') != -1){
urlVars[0] = urlVars[0].substring(4);
}
varArray[i] = this.encVar(urlVars[0],urlVars[1]);
}
return varArray.join('&');
}
this.encodeVAR = function(url){
url = url.toString();
var regcheck = url.match(/[\x90-\xFF]/g);
if ( regcheck )
{
for (var i = 0; i < i.length; i++)
{
url = url.replace(regcheck[i], '%u00' + (regcheck[i].charCodeAt(0) & 0xFF).toString(16).toUpperCase());
}
}
return escape(url).replace(/\+/g, "%2B");
}
this.runResponse = function(){
eval(this.response);
}
this.sendAJAX = function(urlstring){
this.responseStatus = new Array(2);
if(this.failed && this.AjaxFailedAlert){
alert(this.AjaxFailedAlert);
} else {
if (urlstring){
if (this.URLString.length){
this.URLString = this.URLString + "&" + urlstring;
} else {
this.URLString = urlstring;
}
}
if (this.encodeURIString){
var timeval = new Date().getTime();
this.URLString = this.encodeURLString(this.URLString);
this.setVar("rndval", timeval);
}
if (this.element) { this.elementObj = document.getElementById(this.element); }
if (this.xmlhttp) {
var self = this;
if (this.method == "GET") {
var totalurlstring = this.requestFile + "?" + this.URLString;
this.xmlhttp.open(this.method, totalurlstring, true);
} else {
this.xmlhttp.open(this.method, this.requestFile, true);
}
if (this.method == "POST"){
try {
this.xmlhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded')
} catch (e) {}
}
this.xmlhttp.send(this.URLString);
this.xmlhttp.onreadystatechange = function() {
switch (self.xmlhttp.readyState){
case 1:
self.onLoading();
break;
case 2:
self.onLoaded();
break;
case 3:
self.onInteractive();
break;
case 4:
self.response = self.xmlhttp.responseText;
self.responseXML = self.xmlhttp.responseXML;
self.responseStatus[0] = self.xmlhttp.status;
self.responseStatus[1] = self.xmlhttp.statusText;
self.onCompletion();
if(self.execute){ self.runResponse(); }
if (self.elementObj) {
var elemNodeName = self.elementObj.nodeName;
elemNodeName.toLowerCase();
self.onHide();
if (elemNodeName == "input" || elemNodeName == "select" || elemNodeName == "option" || elemNodeName == "textarea"){
if (self.response == 'error') { alert('Ainooi ioeeiiai'); } else {
self.elementObj.value = self.response;
}
} else {
if (self.response == 'error') { alert('Ainooi ioeeiiai'); } else {
self.elementObj.innerHTML = self.response;
}
}
}
self.URLString = "";
break;
}
};
}
}
};
this.createAJAX();
}

//##################################
//#         JS EDIT
//##################################

function MenuNewsBuild( m_id, event ){
var menu=new Array()
menu[0]='<a onclick="ajax_prep_for_edit(\'' + m_id + '\', \'' + event + '\'); return false;" href="#">' + menu_short + '</a>';
menu[1]='<a href="' + dle_root + 'admin.php?mod=editnews&action=editnews&id=' + m_id + '" target="_blank">' + menu_full + '</a>';
return menu;
}
function ajax_cancel_for_edit( news_id )
{
if ( n_cache[ news_id ] != "" )
{
document.getElementById( 'news-id-'+news_id ).innerHTML = n_cache[ news_id ];
}
return false;
}
function whenCompletedSave(){
n_cache[ e_id ] = '';
}
function ajax_save_for_edit( news_id, event )
{
var ajax = new dle_ajax();
var allow_br = 0;
if (document.getElementById('allow_br_'+news_id).checked) { allow_br = 1; }
e_id = news_id;
ajax.onShow ('');
var news_txt = ajax.encodeVAR( document.getElementById('edit-news-'+news_id).value );
var news_title = ajax.encodeVAR( document.getElementById('edit-title-'+news_id).value );
var varsString = "news_txt=" + news_txt;
ajax.setVar("id", news_id);
ajax.setVar("allow_br", allow_br);
ajax.setVar("news_title", news_title);
ajax.setVar("field", event);
ajax.setVar("action", "save");
ajax.requestFile = dle_root + "engine/ajax/editnews.php";
ajax.method = 'POST';
ajax.element = 'news-id-'+news_id;
ajax.onCompletion = whenCompletedSave;
ajax.sendAJAX(varsString);
return false;
}
function whenCompleted(){
var post_main_obj = document.getElementById( 'news-id-' + s_id );
var post_box_top  = _get_obj_toppos( post_main_obj );
if ( post_box_top )
{
scroll( 0, post_box_top - 70 );
}
}
function ajax_prep_for_edit( news_id, event )
{
if ( ! n_cache[ news_id ] || n_cache[ news_id ] == '' )
{
n_cache[ news_id ] = document.getElementById( 'news-id-'+news_id ).innerHTML;
}
var ajax = new dle_ajax();
s_id = news_id;
ajax.onShow ('');
var varsString = "";
ajax.setVar("id", news_id);
ajax.setVar("field", event);
ajax.setVar("action", "edit");
ajax.requestFile = dle_root + "engine/ajax/editnews.php";
ajax.method = 'GET';
ajax.element = 'news-id-'+news_id;
ajax.onCompletion = whenCompleted;
ajax.sendAJAX(varsString);
return false;
}
function whenCompletedCommentsEdit(){
var post_main_obj = document.getElementById( 'comm-id-' + comm_id );
var post_box_top  = _get_obj_toppos( post_main_obj );
if ( post_box_top )
{
scroll( 0, post_box_top - 70 );
}
}
function MenuCommBuild( m_id ){
var menu=new Array()
menu[0]='<a onclick="ajax_comm_edit(\'' + m_id + '\'); return false;" href="#">' + menu_short + '</a>';
menu[1]='<a href="' + dle_root + '?do=comments&action=comm_edit&id=' + m_id + '">' + menu_full + '</a>';
return menu;
}
function ajax_comm_edit( n_id )
{
if ( ! c_cache[ n_id ] || c_cache[ n_id ] == '' )
{
c_cache[ n_id ] = document.getElementById( 'comm-id-'+n_id ).innerHTML;
}
var ajax = new dle_ajax();
comm_id = n_id;
ajax.onShow ('');
var varsString = "";
ajax.setVar("id", n_id);
ajax.setVar("action", "edit");
ajax.requestFile = dle_root + "engine/ajax/editcomments.php";
ajax.method = 'GET';
ajax.element = 'comm-id-'+n_id;
ajax.onCompletion = whenCompletedCommentsEdit;
ajax.sendAJAX(varsString);
return false;
}
function ajax_cancel_comm_edit( c_id )
{
if ( n_cache[ c_id ] != "" )
{
document.getElementById( 'comm-id-'+c_id ).innerHTML = c_cache[ c_id ];
}
return false;
}
function whenCompletedSaveComments(){
c_cache[ comm_edit_id ] = '';
}
function ajax_save_comm_edit( c_id )
{
var ajax = new dle_ajax();
comm_edit_id = c_id;
ajax.onShow ('');
var comm_txt = ajax.encodeVAR( document.getElementById('edit-comm-'+c_id).value );
var varsString = "comm_txt=" + comm_txt;
ajax.setVar("id", c_id);
ajax.setVar("action", "save");
ajax.requestFile = dle_root + "engine/ajax/editcomments.php";
ajax.method = 'POST';
ajax.element = 'comm-id-'+c_id;
ajax.onCompletion = whenCompletedSaveComments;
ajax.sendAJAX(varsString);
return false;
}
function doFavorites( fav_id, event )
{
var ajax = new dle_ajax();
ajax.onShow ('');
var varsString = "fav_id=" + fav_id;
ajax.setVar("action", event);
ajax.requestFile = dle_root + "engine/ajax/favorites.php";
ajax.method = 'GET';
ajax.element = 'fav-id-'+fav_id;
ajax.sendAJAX(varsString);
return false;
}
function CheckLogin()
{
var ajax = new dle_ajax();
var name = ajax.encodeVAR( document.getElementById('name').value );
ajax.onShow ('');
var varsString = "name=" + name;
ajax.requestFile = dle_root + "engine/ajax/registration.php";
ajax.method = 'POST';
ajax.element = 'result-registration';
ajax.sendAJAX(varsString);
return false;
}
function doCalendar(month, year){
var ajax = new dle_ajax();
ajax.onShow ('');
var varsString = "";
ajax.setVar("year", year);
ajax.setVar("month", month);
ajax.requestFile = dle_root + "engine/ajax/calendar.php";
ajax.method = 'GET';
ajax.element = 'calendar-layer';
ajax.sendAJAX(varsString);
}
function ShowBild(sPicURL) {
window.open(dle_root + 'engine/modules/imagepreview.php?image='+sPicURL, '', 'resizable=1,HEIGHT=200,WIDTH=200, top=0, left=0, scrollbars=yes');
}
function doRate(){
var ajax = new dle_ajax();
var form = document.getElementById('rating');
ajax.onShow ('');
var varsString = "go_rate=" + form.go_rate.value;
ajax.setVar("news_id", form.news_id.value);
ajax.requestFile = dle_root + "engine/ajax/rating.php";
ajax.method = 'GET';
ajax.element = 'ratig-layer';
ajax.sendAJAX(varsString);
}

//##################################
//#         LICENCE
//##################################

var n_cache        = new Array();
var c_cache        = new Array();
var comm_id;
var comm_edit_id;
var s_id;
var e_id;
var dle_comments_ajax = new dle_ajax();
function whenCommentsAdded(){
dle_comments_ajax.onHide();
document.getElementById( 'dle-ajax-comments' ).innerHTML += dle_comments_ajax.response;
var post_box_top  = _get_obj_toppos( document.getElementById( 'dle-ajax-comments' ) );
if ( post_box_top )
{
scroll( 0, post_box_top - 70 );
}
var form = document.getElementById('dle-comments-form');
form.comments.value = '';
}
function doAddComments(){
var form = document.getElementById('dle-comments-form');
if (dle_wysiwyg == "yes") {
document.getElementById('comments').value = oEdit1.getXHTMLBody();
form.submit();
}
else {
if (form.comments.value == '' || form.name.value == '')
{
alert ( dle_req_field );
return false;
}
dle_comments_ajax.onShow ('');
var varsString = "post_id=" + form.post_id.value;
dle_comments_ajax.setVar("comments", dle_comments_ajax.encodeVAR(form.comments.value));
dle_comments_ajax.setVar("name", dle_comments_ajax.encodeVAR(form.name.value));
dle_comments_ajax.setVar("mail", dle_comments_ajax.encodeVAR(form.mail.value));
dle_comments_ajax.setVar("skin", dle_skin);
dle_comments_ajax.requestFile = dle_root + "engine/ajax/addcomments.php";
dle_comments_ajax.method = 'POST';
dle_comments_ajax.onCompletion = whenCommentsAdded;
dle_comments_ajax.sendAJAX(varsString);
}
}
function dle_copy_quote(){
dle_txt=''
if (document.getSelection)
{
dle_txt=document.getSelection()
}
else if (document.selection)
{
dle_txt=document.selection.createRange().text;
}
if (dle_txt.replace(" ","") != "")
{
dle_txt='[QUOTE]'+dle_txt+'[/QUOTE]'+unescape("%0A")
}
}
function dle_ins(name) {
	var input=document.getElementById('dle-comments-form').comments;
	if (dle_txt!= ""){input.value += dle_txt}else{input.value += "[b]"+name+"[/b],"+unescape("%0A");}
}
