text: /*
  	Question2Answer by Gideon Greenspan and contributors
  
  	http://www.question2answer.org/
  
  
  	File: qa-content/qa-admin.js
  	Version: See define()s at top of qa-include/qa-base.php
  	Description: Javascript for admin pages to handle Ajax-triggered operations
  
  
  	This program is free software; you can redistribute it and/or
  	modify it under the terms of the GNU General Public License
  	as published by the Free Software Foundation; either version 2
  	of the License, or (at your option) any later version.
  
  	This program is distributed in the hope that it will be useful,
  	but WITHOUT ANY WARRANTY; without even the implied warranty of
  	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  	GNU General Public License for more details.
  
  	More about this license: http://www.question2answer.org/license.php
  */
  
  var qa_recalc_running=0;
  
  window.onbeforeunload=function(event)
  {
  	if (qa_recalc_running>0) {
  		event=event||window.event;
  		var message=qa_warning_recalc;
  		event.returnValue=message;
  		return message;
  	}
  };
  
  function qa_recalc_click(state, elem, value, noteid)
  {
  	if (elem.qa_recalc_running) {
  		elem.qa_recalc_stopped=true;
  
  	} else {
  		elem.qa_recalc_running=true;
  		elem.qa_recalc_stopped=false;
  		qa_recalc_running++;
  
  		document.getElementById(noteid).innerHTML='';
  		elem.qa_original_value=elem.value;
  		if (value)
  			elem.value=value;
  
  		qa_recalc_update(elem, state, noteid);
  	}
  
  	return false;
  }
  
  function qa_recalc_update(elem, state, noteid)
  {
  	if (state)
  		qa_ajax_post('recalc', {state:state, code:(elem.form.elements.code_recalc ? elem.form.elements.code_recalc.value : elem.form.elements.code.value)},
  			function(lines) {
  				if (lines[0]=='1') {
  					if (lines[2])
  						document.getElementById(noteid).innerHTML=lines[2];
  
  					if (elem.qa_recalc_stopped)
  						qa_recalc_cleanup(elem);
  					else
  						qa_recalc_update(elem, lines[1], noteid);
  
  				} else if (lines[0]=='0') {
  					document.getElementById(noteid).innerHTML=lines[2];
  					qa_recalc_cleanup(elem);
  
  				} else {
  					qa_ajax_error();
  					qa_recalc_cleanup(elem);
  				}
  			}
  		);
  
  	else
  		qa_recalc_cleanup(elem);
  }
  
  function qa_recalc_cleanup(elem)
  {
  	elem.value=elem.qa_original_value;
  	elem.qa_recalc_running=null;
  	qa_recalc_running--;
  }
  
  function qa_mailing_start(noteid, pauseid)
  {
  	qa_ajax_post('mailing', {},
  		function (lines) {
  			if (lines[0]=='1') {
  				document.getElementById(noteid).innerHTML=lines[1];
  				window.setTimeout(function() { qa_mailing_start(noteid, pauseid); }, 1); // don't recurse
  
  			} else if (lines[0]=='0') {
  				document.getElementById(noteid).innerHTML=lines[1];
  				document.getElementById(pauseid).style.display='none';
  
  			} else {
  				qa_ajax_error();
  			}
  		}
  	);
  }
  
  function qa_admin_click(target)
  {
  	var p=target.name.split('_');
  
  	var params={entityid:p[1], action:p[2]};
  	params.code=target.form.elements.code.value;
  
  	qa_ajax_post('click_admin', params,
  		function (lines) {
  			if (lines[0]=='1')
  				qa_conceal(document.getElementById('p'+p[1]), 'admin');
  			else if (lines[0]=='0') {
  				alert(lines[1]);
  				qa_hide_waiting(target);
  			} else
  				qa_ajax_error();
  		}
  	);
  
  	qa_show_waiting_after(target, false);
  
  	return false;
  }
  
  function qa_version_check(uri, version, elem)
  {
  	var params={uri:uri, version:version};
  
  	qa_ajax_post('version', params,
  		function (lines) {
  			if (lines[0]=='1')
  				document.getElementById(elem).innerHTML=lines[1];
  		}
  	);
  }
  