    //создаем объект request для AJAX
 var request0 = null;
   try {
   
     request0 = new XMLHttpRequest();
   } catch (trymicrosoft) {
     try {
       request0 = new ActiveXObject("Msxml2.XMLHTTP");
     } catch (othermicrosoft) {
       try {
         request0 = new ActiveXObject("Microsoft.XMLHTTP");
       } catch (failed) {
         request0 = null;
       }
	    }
	    }

   if (request0 == null){
     alert("Error creating request0 object!");
	 }
	     //создаем объект request для AJAX
 var request1 = null;
   try {
   
     request1 = new XMLHttpRequest();
   } catch (trymicrosoft) {
     try {
       request1 = new ActiveXObject("Msxml2.XMLHTTP");
     } catch (othermicrosoft) {
       try {
         request1 = new ActiveXObject("Microsoft.XMLHTTP");
       } catch (failed) {
         request1 = null;
       }
	    }
	    }

   if (request1 == null){
     alert("Error creating request1 object!");
	 }
	 
//вывод списка форм, разрешенного конкретному пользователю
function drawFormlist(){
var url = "opros/form_list_construction.php";
	var params = "id=";
	request0.open("POST", url, true);
	request0.onreadystatechange = showFormList;
	request0.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	request0.send(params);
}

function showFormList(){
  if (request0.readyState == 4) {
       if (request0.status == 200) {
		 var xmlDoc = request0.responseText;
updateElemnt('show_form', xmlDoc)
}
 }
}


//функция вывода элементов формы
function draw_form(form_id){	
var url = "opros/form_construction.php";
	var params = "form_id="+form_id;
	request0.open("POST", url, true);
	request0.onreadystatechange = showFormElements;
	request0.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	request0.send(params);

}


function showFormElements(){
  if (request0.readyState == 4) {
       if (request0.status == 200) {
		 var xmlDoc = request0.responseText;
updateElemnt('show_form', xmlDoc);
}
 }
}

//функция вывода элементов формы с заполнением их данными, если пользователь уже принимал участие в анкете-опросе
function draw_form_update(form_id){	

var url = "opros/form_construction_update.php";
	var params = "form_id="+form_id;
	request0.open("POST", url, true);
	request0.onreadystatechange = showFormElements;
	request0.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	request0.send(params);

}


//функции вывода результатов опросов и списка пользователей, принимавших участие в анкетировании
function viewResults(user_id,form_id,type_id){

var url = "opros/get_results.php";
	var params = "form_id="+form_id+"&user_id="+user_id+"&type_id"+type_id;
	request0.open("POST", url, true);
	request0.onreadystatechange = showResults;
	request0.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	request0.send(params);
}

function showResults(){
  if (request0.readyState == 4) {
       if (request0.status == 200) {
		 var xmlDoc = request0.responseText;
updateElemnt('show_form', xmlDoc);

}
 }
}
//функция вывода результатов анкетирования
function viewFormsResults(user_id,form_id){
var url = "opros/get_forms_results.php";
	var params = "form_id="+form_id+"&user_id="+user_id;
	request0.open("POST", url, true);
	request0.onreadystatechange = showFormsResults;
	request0.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	request0.send(params);
}

function showFormsResults(){
  if (request0.readyState == 4) {
       if (request0.status == 200) {
		 var xmlDoc = request0.responseText;
updateElemnt('show_form', xmlDoc);

}
 }
}
//функция для редактирования ответов анкет и опросов
function editAnswers(form_id,user_id){



}




function getCheckInfo(form_id,update_res){
	var requiredField="";
		//*******************************************************************************************************
		//проверяем все поля INPUT text на заполнение, где это необходимо
	   //**********************************************************************************************************
		//находим все элементы INPUT и узнаем количество типа text
		var elements = document.getElementsByTagName("input");
	var j=0;
	for (var i = 0; i < (document.getElementsByTagName("input").length); i++){
if(elements[i].type=='text'){
j=j+1;
}
		}
			//нашли j количество элементов типа text
			//начинаем проверять необходимые поля
			
	
			for (var i = 0; i < j; i++){
		 		 var question = document.getElementById("input_question"+i).getAttribute("value");

if ((!document.getElementById("input"+i).value) && (document.getElementById("oblig"+i).getAttribute("value")=="checked")){
		change_field_color('input'+i, 'mistake')
		var err= true;
			var requiredField1=question+"<br>"
			}else {
			change_field_color('input'+i, 'good')
													requiredField1="";
				}
				requiredField=requiredField+requiredField1;
				} 
			//закончили проверку, получили значение err=true, если есть ошибки и requiredField. err=false если ошибок не было
		//*******************************************end INPUT******************************************************
		
			//*******************************************************************************************************
		//проверяем все поля TEXTAREA на заполнение, где это необходимо
	   //**********************************************************************************************************
		//находим все элементы TEXTAREA 
		var elements = document.getElementsByTagName("textarea");
	var j=elements.length;
		
			//нашли j количество элементов
			//начинаем проверять необходимые поля
			
			for (var i = 0; i < j; i++){
		 		 var question = document.getElementById("textarea_question"+i).getAttribute("value");

if ((!document.getElementById("textarea"+i).value) && (document.getElementById("oblig_t"+i).getAttribute("value")=="checked")){
		change_field_color('textarea'+i, 'mistake')
		var err= true;
			var requiredField1=question+"<br>"
			}else {
			if(document.getElementById("textarea"+i).value.length>1024){
			change_field_color('textarea'+i, 'mistake')
		var err= true;
			var requiredField1="количество символов поля ("+question+") не должно превышать  1024";
			
			}else{
			change_field_color('textarea'+i, 'good')
													requiredField1="";
													}
				}
				requiredField=requiredField+requiredField1;
				} 
			//закончили проверку, получили значение err=true, если есть ошибки и requiredField. err=false если ошибок не было
		//*******************************************end TEXTAREA******************************************************
		
			//*******************************************************************************************************
		//проверяем все поля CHECKBOX на заполнение, где это необходимо
	   //**********************************************************************************************************
		//находим все элементы CHECKBOX
		//находим количество вопросов c элементами checkbox
		var elements = document.getElementsByTagName("checkbox_hidden");
	var j=elements.length;
					//нашли j количество элементов
					//смотри сколько элементов checkbox в каждом вопросе
					var check_array = new Array(j);
			for (var i = 0; i < j; i++){
			check_array['size'+i] = document.getElementsByTagName("checkbox_hidden"+i).length;
			}	
					//получили количество и поместили в массив
					//начинаем проверять необходимые поля
	var stat_array = new Array(j);
		for (var i = 0; i < j; i++){
					 		var question = document.getElementById("checkbox_question"+i).getAttribute("value");	
	var l = check_array['size'+i];
					
					 var state="";	
				for (var m = 0; m < l; m++){
				var cksM = document.getElementById('checkbox'+i+'_'+m);
			//смотрим, поставлена ли хотя бы одна галочка в каждом вопросе и записываем в массив stat_array[m]
     if (cksM.checked) {
    var state = "checked";
	break;
		   }
 }
  stat_array['stat'+i]=state;
}

//alert(stat_array['stat1']);

			for (var i = 0; i < j; i++){
if ((!stat_array['stat'+i]) && (document.getElementById("oblig_check"+i).getAttribute("value")=="checked")){
		var question = document.getElementById("checkbox_question"+i).getAttribute("value");	
		var err= true;
				change_field_color('checkbox_question'+i, 'mistake');
			var requiredField1=question+"<br>"
			}else {
					change_field_color('checkbox_question'+i, 'good');
													requiredField1="";
				}
				requiredField=requiredField+requiredField1;
				} 
				
			//закончили проверку, получили значение err=true, если есть ошибки и requiredField. err=false если ошибок не было
		//*******************************************end CHECKBOX******************************************************
	
	if(err==1){
				requiredField="<table><td class='alert'>Вы не заполнили обязательные поля:<br>"+requiredField+"</td></table>";
	updateElemnt('status', requiredField);
	}else{
	updateElemnt('status', '');
			writeToBase(form_id,update_res);
	}
	
}

//************************************начало функции для записи данных в базу*******************************
function writeToBase(form_id,update_res){
//создаем строку params_send вида params_send=xx=xx&xx=xx с данными, введенными в форму, для того, чтобы передать данные параметры серверу на запись в базу
var params_send="";
	//*******************************************************************************************************
		//составляем массив данных из всех элементов INPUT text
	   //**********************************************************************************************************
		//находим все элементы INPUT и узнаем количество типа text
		
		var elements = document.getElementsByTagName("input");
	var j=0;
	for (var i = 0; i < (document.getElementsByTagName("input").length); i++){
if(elements[i].type=='text'){
j=j+1;
}
		}
		var params_send1="&input_text_qnt="+j;
			//нашли j количество элементов типа text
			if(j!== 0){
					for (var i = 0; i < j; i++){
		 		var question=document.getElementById("input_question"+i).getAttribute("value");
var answer=document.getElementById("input"+i).value;

params_send1=params_send1+"&input_text_question"+i+"="+question+"&input_text_answer"+i+"="+answer;
}
var input_text= true;
params_send=params_send+params_send1;		
			}
		//	if(input_text== true){
		//alert(params_send);
			//}
			
				//*******************************************end INPUT******************************************************

//*******************************************************************************************************
		//составляем массив данных из всех элементов TEXTAREA
	   //**********************************************************************************************************
		//находим все элементы TEXTAREA
	var elements = document.getElementsByTagName("textarea");
	var j=elements.length;
	var params_send1="&textarea_qnt="+j;
			//нашли j количество элементов типа textarea
			
			if(j!== 0){
											for (var i = 0; i < j; i++){
		 		 var question=document.getElementById("textarea_question"+i).getAttribute("value");
var answer=document.getElementById("textarea"+i).value;
params_send1=params_send1+"&textarea_question"+i+"="+question+"&textarea_answer"+i+"="+answer;
}
var textarea= true;
params_send=params_send+params_send1;		
			}
		//if(textarea== true){
			//alert(params_send);
			//}
			
				//*******************************************end TEXTAREA******************************************************

//*******************************************************************************************************
		//составляем массив данных из всех элементов RADIO
	   //**********************************************************************************************************
		//находим все элементы RADIO
			var radio_elements = document.getElementsByTagName("radio_hidden").length;
			var params_send1="&radio_qnt="+radio_elements;
			//начинаем читать необходимые поля
			if(radio_elements!== 0){
			for (var i = 0; i < radio_elements; i++){
var question=document.getElementById("radio_question"+i).getAttribute("value");
for (var o = 0; o < (document.getElementsByTagName("radio"+i+"_hidden").length); o++){
if(document.getElementById("radio"+i+"_"+o).checked){
var answer=document.getElementById("radio"+i+"_"+o).value;
params_send1=params_send1+"&radio_question"+i+"="+question+"&radio_answer"+i+"="+answer;

}
}
}
var radio= true;
params_send=params_send+params_send1;		
			}
			//if(radio== true){
			//alert(params_send);
			//}
			
				//*******************************************end RADIO******************************************************
//*******************************************************************************************************
		//составляем массив данных из всех элементов  SELECT
	   //**********************************************************************************************************
		//находим все элементы  SELECT
			var select_elements = document.getElementsByTagName("select_hidden").length;
		var params_send1="&select_qnt="+select_elements;
			//начинаем читать необходимые поля
					if(select_elements!== 0){
			for (var i = 0; i < select_elements; i++){
var question=document.getElementById("select_question"+i).getAttribute("value");
for (var o = 0; o < (document.getElementById("select"+i).options.length); o++){

if(document.getElementById("option"+i+"_"+o).selected){
var answer=document.getElementById("option"+i+"_"+o).getAttribute("value");
params_send1=params_send1+"&select_question"+i+"="+question+"&select_answer"+i+"="+answer;
}
}
}
var select_element= true;
params_send=params_send+params_send1;		
			}
			
			//if(select_element == true){
			//alert(params_send);
			//}
			
				//*******************************************end SELECT******************************************************
				
		//*******************************************************************************************************
		//составляем массив данных из всех элементов  CHECKBOX
	   //**********************************************************************************************************
		//находим все элементы  CHECKBOX
			var elements = document.getElementsByTagName("checkbox_hidden");
	var j=elements.length;
		var params_send1="&checkbox_qnt="+j;
					//смотри сколько элементов checkbox в каждом вопросе
					var check_array = new Array(j);
			for (var i = 0; i < j; i++){
			check_array['size'+i] = document.getElementsByTagName("checkbox_hidden"+i).length;

			}	
				
					//получили количество и поместили в массив
					if(j!== 0){
					//начинаем проверять необходимые поля
	var stat_array = new Array(j);

	//считываем количество поставленных галочек каждого элемента
				params_send2="";
	for (var i = 0; i < j; i++){
						var l = check_array['size'+i];					
					 var state=0;	
				for (var m = 0; m < l; m++){
				var cksM = document.getElementById('checkbox'+i+'_'+m);
     if (cksM.checked) {
    var state = state+1;;
			   }
 }
  stat_array['stat'+i]=state;
  //генерируем строку ссылки
  	var params_send2=params_send2+"&ch_size"+i+"="+ stat_array['stat'+i];
}
	//прочитали

	var params_send3="";
	var params_send4="";
		for (var i = 0; i < j; i++){
					 		var question = document.getElementById("checkbox_question"+i).getAttribute("value");	
							var l = check_array['size'+i];					
						  var s=0;
						 var params_send4 = params_send4+"&question"+i+"="+question;
						 for (var m = 0; m < l; m++){
				var cksM = document.getElementById('checkbox'+i+'_'+m);
		 if (cksM.checked) {
   	var answer = document.getElementById("checkbox"+i+"_"+m).getAttribute("value");
	  	  params_send3=params_send3+"&checkbox_answer"+i+"_"+s+"="+answer;
	  s=s+1;
	  }
 }
 }
 var checkbox_element= true;
 params_send=params_send+params_send1+params_send2+params_send4+params_send3;	
 }
 	//if(checkbox_element == true){
		//alert(params_send);
			//}
 				//*******************************************end CHECKBOX******************************************************
				

//************* начинаем отправку данных серверу***************************************
			updateElemnt('show_form', '');
			params_send=params_send+"&form_id="+form_id;

var url = "opros/receive.php";



	request1.open("POST", url, true);
	request1.onreadystatechange = confirmSendToBase;
	request1.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	request1.send(params_send);
	}
	
function confirmSendToBase(){

  if (request1.readyState == 4) {
       if (request1.status == 200) {
	   
		 var xmlDoc = request1.responseXML;
		var form_id = xmlDoc.getElementsByTagName("form_id")[0].firstChild.nodeValue;
var user_id = xmlDoc.getElementsByTagName("user_id")[0].firstChild.nodeValue;
var type_id = xmlDoc.getElementsByTagName("type_id")[0].firstChild.nodeValue;

viewResults(user_id,form_id,type_id);
}
 }
}



//**************************************часто используемые функции*********************************************************

  //функция обновления содержимого элементов экрана
function updateElemnt(el_id, el_data){
  var newOut_comments = el_data;
  var divOut = document.getElementById(el_id);
  divOut.innerHTML = newOut_comments;
}

//функция для выделения цветом ошибочного поля
function  change_field_color(el_name, stat){
	var colour="#E2FEE2";
var colour1="#ffffff";
	if (stat == "mistake"){
	var some_obj = document.getElementById(el_name);
	some_obj.style.backgroundColor = colour;
	} 
	if (stat == "good"){
	var some_obj = document.getElementById(el_name);
 	some_obj.style.backgroundColor = colour1;
	}

}
//**************************************часто используемые функции*********************************************************
