
var d = document;
var wnd = false;
function myGetElem(i){return d.getElementById(i)}
function newElement(type,props){
el = d.createElement(type);
for( pr in props){el[pr] = props[pr];
}return el;
}

function inner_width(){
	if ( !window.innerWidth) return (d.documentElement && d.documentElement.clientWidth) || (d.body && d.body.clientWidth);
	return window.innerWidth
}

function inner_height(){
	if ( !window.innerHeight) return (d.documentElement && d.documentElement.clientHeight) || (d.body && d.body.clientHeight);
	return window.innerHeight
}
function page_y_offset(){
	 return self.pageYOffset || 
(document.documentElement && document.documentElement.scrollTop) || 
(document.body && document.body.scrollTop);
}

function page_x_offset(){
	 return self.pageXOffset || 
(document.documentElement && document.documentElement.scrollLeft) || 
(document.body && document.body.scrollLeft);
}


win_obj = {};
win_obj.back_func = false;
win_obj.resize = function(){this.myGetElem.style.height = myGetElem('window_content').style.height+70}
win_obj.keydown=function(e){e=e || window.event;key=e.charCode || e.keyCode;if(key==27)win_obj.close()}
win_obj.content=function(m){this.wcontent=m}
win_obj.title=function(m){this.wtitle=m}

win_obj.load = function(server,w,h){
  
  JsHttpRequest.query(
    server, {}, function(rst, err){
	 // win_obj.load_img(0);
		
	  if ( err!='' ){
		
	    alert(err); 
		return false;
      }else if ( rst!='' ){
	    win_obj.content(rst.content);
		win_obj.title(rst.title);
		win_obj.show(w,h);
		win_obj.resize();
	  }
	},true
  );
  return false;
  //win_obj.load_img(1);	
}


win_obj.close = function(){


if(myGetElem('modal_wnd')){myGetElem('modal_wnd').parentNode.removeChild(myGetElem('modal_wnd'))}if(myGetElem('background')){myGetElem('background').parentNode.removeChild( myGetElem('background') );}

return false;

}

win_obj.show = function(width,height){

  if ( !d.body ){return false} //IE не поддерживает
  this.myGetElem = false;
 
  this.background = false;
  if ( myGetElem('modal_wnd') ){
	this.close();
  }
 
  this.myGetElem = d.createElement("div");
  this.background = d.createElement('div');
  //  вешаем события
 
  this.background.onclick = "win_obj.close()";
  
  window.onkeydown = function(e){ win_obj.keydown(e) };
  //return false;
	//устанавливаем бэкграунд
  this.background.id =  this.background.className = 'background';
 
  this.background.style.height = d.body.scrollHeight+'px'; 
  this.background.style.width = d.body.scrollWidth+'px'; 
 
  d.body.appendChild(this.background);
  // формируем окно
  this.myGetElem.className='message';
  this.myGetElem.style.display = 'none';
  this.myGetElem.id='modal_wnd';
  d.body.appendChild(this.myGetElem);
  this.myGetElem.innerHTML ='<span style="float:right;color:#626456;margin:5px;"><a  style="text-decoration:none;cursor:pointer"  onclick="return win_obj.close()"><img src="/source/img/close.gif"></a></span>';
  this.myGetElem.style.width=width+'px' ;
  this.myGetElem.style.height=height+'px' ;
 
  
  this.myGetElem.innerHTML+= '<div class="message_title" id="window_title">'+ this.wtitle+'</div> ';
 
 
  
  
  this.myGetElem.innerHTML+= '<div id="window_content" >'+this.wcontent+'</div>';
  
  this.myGetElem.style.left = ( this.inner_width() - width)/2+'px';
  this.myGetElem.style.top = (this.inner_height()  - height)/ 2+this.page_y_offset()+'px';

  this.background.style.display = 'block';
  this.myGetElem.style.display = 'block';
  
  this.background.style.height = d.body.scrollHeight+'px'; 
  this.background.style.width = d.body.scrollWidth+'px'; 
  myGetElem('window_content').style.height=(height-70)+'px' ;
 
  if ( this.back_func ){
	eval( this.back_func+'()');
  }
  
}


win_obj.inner_width = function(){if ( !window.innerWidth){return (d.documentElement && d.documentElement.clientWidth) || (d.body && d.body.clientWidth);}return window.innerWidth}
win_obj.inner_height = function(){if ( !window.innerHeight){return (d.documentElement && d.documentElement.clientHeight) || (d.body && d.body.clientHeight);}return window.innerHeight}
win_obj.page_y_offset = function(){return self.pageYOffset || (d.documentElement && d.documentElement.scrollTop) || (d.body && d.body.scrollTop);}

	

	////	комментарии
comments = {};
comments.server = false;
comments.imgloadurl = false;

comments.send = function(n_id){
  if ( myGetElem('keystring') ){keystr = myGetElem('keystring').value }else{keystr =''}
  comments_editor.remove()
	myGetElem('c_form').style.display = 'none';
	d.body.appendChild( myGetElem('c_form') );
	comments_editor.create(comments.editor);
	
  JsHttpRequest.query(
    comments.server+'&act=ajax_add_comment', {'f_id':n_id,'c_comment':myGetElem('c_comment').value,'keystring':keystr}, function(rst, err){
		
	   if ( err!='' ){
	    comments.error(err); 
		comments.loadimg(0);
		return false;
      }else if ( rst!='' ){
	 
	   if ( rst['result']!=undefined ){
	  myGetElem('list_comments').innerHTML = myGetElem('list_comments').innerHTML+rst['result'];
	  if ( myGetElem('no_comments') ){
	  	myGetElem('no_comments').innerHTML = '';
	  }
	}
	comments.loadimg(0);
	//myGetElem('comment_area').innerHTML = result['msg'];
	myGetElem('c_comment').value='';
		
	  }
	},true
  );
  comments.loadimg(1);
}


comments.answer = function(c_id){
	comments_editor.remove();
	if ( !myGetElem('answer_'+c_id) || !myGetElem('c_form') ){
		
		return false;
	}
	myGetElem(c_id).appendChild( myGetElem('c_form') )
	
	myGetElem('c_form_msg').value=myGetElem('answer_'+c_id).innerHTML;
	myGetElem('c_form').style.display='block';
	
	comments_editor.create(comments.editor);

	comments_editor.setContent( myGetElem('answer_'+c_id).innerHTML );
	
	myGetElem('c_form_button').add_c_id = c_id;
	myGetElem('c_form_button').onclick=comments.save_answer;
}

comments.save_answer = function(e){
	
	if (!e)e=window.event;if ( !e.srcElement) e.srcElement=e.target;o = e.srcElement;
	c_id = o.add_c_id;
	c = comments_editor.getContent();
	comments_editor.remove()
	
	myGetElem('c_form').style.display='none';
	myGetElem(c_id).parentNode.appendChild( myGetElem('c_form') );
	
	comments_editor.create(comments.editor);
	myGetElem(c_id).style.backgroundColor='#FD7A04';
	
	JsHttpRequest.query(
		comments.server+'&act=mod_answer', {'c_answer':c ,'c_id':c_id}, 	  function(rst, err){
		
		if ( err!='' ){
			comments.error(err); 
		}else if ( rst!='' ){
			
			if ( !myGetElem(c_id).outerHTML ){
				var range = document.createRange(); 
				range.setStartBefore(myGetElem(c_id)); 
				var docFrag = range.createContextualFragment(rst); 
				myGetElem(c_id).parentNode.replaceChild(docFrag, myGetElem(c_id) );
			}else{
				myGetElem(c_id).outerHTML=rst
			}
		}
		
		myGetElem(c_id).style.backgroundColor='';
		},true
	);
	
}

comments.mod = function(c_id){
	comments_editor.remove();
	if ( !myGetElem('comment_'+c_id) || !myGetElem('c_form') ){
		return false;
	}
	
	myGetElem(c_id).appendChild( myGetElem('c_form') )
	myGetElem('c_form_msg').value=myGetElem('comment_'+c_id).innerHTML;
	myGetElem('c_form').style.display='block';
	comments_editor.create(comments.editor);
	comments_editor.setContent( myGetElem('comment_'+c_id).innerHTML );
	myGetElem('c_form_button').add_c_id = c_id;
	myGetElem('c_form_button').onclick= comments.save;
}

comments.save = function(e){
	
	if (!e)e=window.event;if ( !e.srcElement) e.srcElement=e.target;o = e.srcElement;
	c_id = o.add_c_id;
	c = comments_editor.getContent();
	comments_editor.remove()
	
	myGetElem('c_form').style.display='none';
	myGetElem(c_id).parentNode.appendChild( myGetElem('c_form') );
	
	comments_editor.create(comments.editor);
	myGetElem(c_id).style.backgroundColor='#FD7A04';
	
	JsHttpRequest.query(
		comments.server+'&act=mod_comment', {'c_comment':c ,'c_id':c_id}, 	  function(rst, err){
		
		if ( err!='' ){
			comments.error(err); 
		}else if ( rst!='' ){
			
			if ( !myGetElem(c_id).outerHTML ){
				var range = document.createRange(); 
				range.setStartBefore(myGetElem(c_id)); 
				var docFrag = range.createContextualFragment(rst); 
				myGetElem(c_id).parentNode.replaceChild(docFrag, myGetElem(c_id) );
			}else{
				myGetElem(c_id).outerHTML=rst
			}
		}
		
		myGetElem(c_id).style.backgroundColor='';
		},true
	);
	
}
comments.del = function(c_id){
	comments_editor.remove()
	myGetElem('c_form').style.display='none';
	d.body.appendChild( myGetElem('c_form') );
	comments_editor.create(comments.editor);
	myGetElem(c_id).style.backgroundColor='#FD7A04';
	JsHttpRequest.query(
		comments.server+'&act=del_comment', {'c_id':c_id}, 	function(rst, err){
		if ( err!='' ){
			comments.error(err); 
			return false;
		 }else if ( rst!='' ){
			myGetElem(c_id).parentNode.removeChild(myGetElem(c_id));
		}
		},true
	);
}

comments.thanks = function(c_id){
	
	comments_editor.remove()
	myGetElem('c_form').style.display='none';
	d.body.appendChild( myGetElem('c_form') );
	comments_editor.create(comments.editor);
	myGetElem(c_id).style.backgroundColor='#FD7A04';
	
	JsHttpRequest.query(
		comments.server+'&act=thanks_comment', {'c_id':c_id}, 	function(rst, err){
		if ( err!='' ){
			comments.error(err); 
			myGetElem(c_id).style.backgroundColor='#FFFFFF';
			return false;
		 }else if ( rst!='' ){
			if ( !myGetElem(c_id).outerHTML ){
				var range = document.createRange(); 
				range.setStartBefore(myGetElem(c_id)); 
				var docFrag = range.createContextualFragment(rst); 
				myGetElem(c_id).parentNode.replaceChild(docFrag, myGetElem(c_id) );
			}else{
				myGetElem(c_id).outerHTML=rst
			}
		}
		},true
	);
}



comments.confirm = function(c_id,flag){
	myGetElem('c_form').style.display='none';
	myGetElem(c_id).style.backgroundColor='#FD7A04';
	if ( flag ){sr = comments.server+'&act=confirm_comment'}else{sr = comments.server+'&act=unconfirm_comment'}
	JsHttpRequest.query(
		sr, {'c_id':c_id}, 	function(rst, err){
		if ( err!='' ){
			comments.error(err); 
			return false;
		 }else if ( rst!='' ){
			if ( !myGetElem(c_id).outerHTML ){
				var range = document.createRange(); 
				range.setStartBefore(myGetElem(c_id)); 
				var docFrag = range.createContextualFragment(rst); 
				myGetElem(c_id).parentNode.replaceChild(docFrag, myGetElem(c_id) );
			}else{
				myGetElem(c_id).outerHTML=rst
			}
			
		}
		},true
	);
}

comments.best = function(c_id){
	myGetElem('c_form').style.display='none';
	myGetElem(c_id).style.backgroundColor='#FD7A04';
	
	JsHttpRequest.query(
		comments.server+'&act=best_comment', {'c_id':c_id}, 	function(rst, err){
		if ( err!='' ){
			comments.error(err); 
			return false;
		 }else if ( rst!='' ){
			if ( !myGetElem(c_id).outerHTML ){
				var range = document.createRange(); 
				range.setStartBefore(myGetElem(c_id)); 
				var docFrag = range.createContextualFragment(rst); 
				myGetElem(c_id).parentNode.replaceChild(docFrag, myGetElem(c_id) );
			}else{
				myGetElem(c_id).outerHTML=rst
			}
			
		}
		},true
	);
}

comments.error = function(error){alert(error)}

comments.loadimg = function(flag){
  if ( flag ){
   myGetElem('comment_area').innerHTML = '<img id="waitcommentimg" src="'+comments.imgloadurl+'">';
  }else{
    myGetElem('comment_area').innerHTML ='';
  }
}

	//	редактор, вызывается в шаблоне, обеспечивает развилку между обычным и визуальным
comments_editor = {};
comments_editor.create = function(type){
	
	if ( type=='wysiwyg'){
		
		comments_editor.editor = new tinymce.Editor('c_form_msg', {
	mode : "exact",
		elements : "c_form_msg",
		theme : "advanced",
		content_css : "/source/ext/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/content.css",
		theme_advanced_buttons1 : "mymenubutton,bold,italic,underline,separator,strikethrough,justifyleft,justifycenter,justifyright,justifyfull,bullist,numlist,undo,redo,link,unlink",
		theme_advanced_buttons2 : "",
		theme_advanced_buttons3 : "",
		theme_advanced_toolbar_location : "top",
		theme_advanced_toolbar_align : "left",
		theme_advanced_statusbar_location : ""
	});
		comments_editor.editor.render();
	}
}
comments_editor.remove = function(){
	if ( this.editor){
		this.editor.remove();
	}
}
comments_editor.setContent = function(c){
	
	if ( comments_editor.editor){
		comments_editor.editor.setContent(c);
	}else{
		myGetElem('c_form_msg').innerHTML = c;
	}
	
}

comments_editor.getContent= function(){
	if ( this.editor){
		return this.editor.getContent();
	}else{
		return myGetElem('c_form_msg').value;
	}
}


attention={}
attention.server = false;
attention.imgloadurl = false;


attention.list = function(f_id){
	attention.server = attention.server+'&f_id='+f_id;
	
	win_obj.title('Пожаловаться на вопрос');
	win_obj.load(attention.server,350,240);
	//win_obj.resize();
	//win_obj.show(350,250);
}
attention.show = function(f_id){
  win_obj.title('Пожаловаться на вопрос');
   win_obj.content('<div id="a_result"><div id="a_error" style="color:red"></div><p class="txt">Укажите причину:<br/><textarea id="a_msg" name="a_msg" style="width:300px;height:110px;"></textarea></p><br/><input type="button" onclick="attention.send('+f_id+');" value="Сообщить"></div>');
   win_obj.show(350,250);
  
}

attention.send = function(f_id){
	
	myGetElem('a_error').style.display='none';
	JsHttpRequest.query(
		attention.server, {'f_id':f_id,'a_msg':myGetElem('a_msg').value}, function(rst, err){
		 if ( err!='' ){
			attention.error(err);
		 }else if ( rst!='' ){
			myGetElem('a_result').innerHTML = rst;
		}
		},true
	);
		
	
}
attention.error = function(error){ 
myGetElem('a_error').style.display='block';
myGetElem('a_error').innerHTML = error;
}

	/*


b_category = {}
b_category.load = function(){
	b_category.clear();
	JsHttpRequest.query(
		b_category.server, {'c_main_id':myGetElem('c_main_id').options[myGetElem('c_main_id').selectedIndex].value}, function(rst, err){
		if ( err!='' ){
			b_category.error(err); 
			return false;
		 }else if ( rst!='' ){
			
			myGetElem('c_id').innerHTML = rst['c_id'];
		}
		},true
	);
}

b_category.error = function(msg){
	alert(msg);
}
b_category.clear = function(){
	myGetElem('c_id').innerHTML = '';
}
*/

users = {}
users.server = false;
users.filter_ban = false;
users.filter_id = false;
users.filter_login = false;
users.filter_email = false;
users.filter_ip = false;
users.page = false;
users.send = function(act,id){
	myGetElem('row_'+id).style.backgroundColor = 'red';
	JsHttpRequest.query(
		users.server, {'act':act,'id':id}, function(rst, err){
		if ( err!='' ){
			users.error(err); 
			return false;
		 }else if ( rst!='' ){
			users.update_row(rst.id,rst.row);
		}
		},true
	);
}
users.error = function(e){
	alert(e)
}
users.update_row = function(id,row){
	myGetElem('row_'+id).innerHTML = row;
}
users.update_table = function(page){

}

