Array.prototype.max = function() 
{
  var max = Number(this[0])
  var len = this.length
  for (var i = 1; i < len; i++) if (Number(this[i]) > max) max = Number(this[i])
  return max;                                                                     
}


function showHide(element)
{ 
  if(document.getElementById(element).style.display == 'none') { document.getElementById(element).style.display = 'block'; }
  else document.getElementById(element).style.display = 'none'   

}



//Функція створення об'єкту XMLHTTPRequest

function makeRequestObject() {
var httpReq;

	if (window.XMLHttpRequest) { // Mozilla, Safari, ...
		httpReq = new XMLHttpRequest();
		if (httpReq.overrideMimeType) {
			httpReq.overrideMimeType('text/xml');
			
		}
	} 
	else if (window.ActiveXObject) { // IE
		try {
			httpReq = new ActiveXObject("Msxml2.XMLHTTP");
		} 
		catch (e) {
			try {
				httpReq = new ActiveXObject("Microsoft.XMLHTTP");
			} 
			catch (e) {}
		}
	}
 if (!httpReq) {
		alert('К сожалению, ваш браузер не поддерживает этой функции'); 
		return false;
	} else { return httpReq;} 
}


function TagsProposition()
{ var parent_ids_input, parentsInput, parents,tags_str=''
  if (document.getElementById('tags_proposition'))
   { 
     parent_ids_input='parent_ids_input'
       
     parents=document.getElementById(parent_ids_input).value.substr(1, document.getElementById(parent_ids_input).value.length-2).split('.')
     //alert ('document.getElementById(parent_ids_input).value='+document.getElementById(parent_ids_input).value)
     //alert('parents.max()='+parents.max())
     
     for (var i=0;i<=parents.max();i++)
     { parentsInput='parents'+parents[i]
      // if (document.getElementsByName(parentsInput)[0]) alert ('i='+i+' document.getElementsByName(parentsInput)[0]='+document.getElementsByName(parentsInput)[0])
       if (document.getElementsByName(parentsInput)[0] && document.getElementsByName(parentsInput)[0].innerHTML.length>0) 
         tags_str+=document.getElementsByName(parentsInput)[0].innerHTML +'.'
     }
     //alert('i='+i+'tags_str='+tags_str)
     var parents=tags_str.split('.')
     var temp_selected='.'
     
     document.getElementById('tags_proposition').innerHTML='<b>Возможно, следует добавить:</b><br> '
     var show_flag=false
     
     for (var i=0;i<=parents.length;i++)
     { 
       //if (parents[i]) alert (parents[i]) 
       if (parents[i]   && temp_selected.search("[.]"+parents[i]+"[.]") < 0 && document.getElementById(parent_ids_input).value.search("[.]"+parents[i]+"[.]") < 0)   
       { //alert (parents[i] + ' -ok' )
        show_flag=true
        parentsInput='tree_row'+parents[i]
        if (document.getElementsByName(parentsInput)[0])
        document.getElementById('tags_proposition').innerHTML+="<a name='tag_img"+parents[i]+"' style='cursor:pointer'><img src='/img/plus.png' onClick='tagPlus("+parents[i]+",\""+document.getElementsByName(parentsInput)[0].innerHTML+"\")'></a>"+document.getElementsByName(parentsInput)[0].innerHTML+", "
        temp_selected+=parents[i]+"."
       } 
     }
     if (show_flag) document.getElementById('tags_proposition').style.display='block'
       else document.getElementById('tags_proposition').style.display='none' 
   }
}


function tagMinus(id,name)
{  var parent_ids_input, tag_names
   parent_ids_input='parent_ids_input'
   tag_names='tag_names'
        
   document.getElementById(parent_ids_input).value=document.getElementById(parent_ids_input).value.replace('.'+id+'.','.');
   document.getElementById(tag_names).innerHTML=document.getElementById(tag_names).innerHTML.replace(name+', ',''); 
       
     imgStr='tag_img'+id
     textStr='tree_row'+id      
   
     for (var i=0;i<document.getElementsByName(imgStr).length;i++)
       {if (document.getElementsByName(textStr)[i]) document.getElementsByName(textStr)[i].className='txtsm' 
        document.getElementsByName(imgStr)[i].innerHTML='<img src=/img/plus.png onClick=\'tagPlus('+id+',"'+name+'")\'>'
      }   
TagsProposition()

}

function tagPlus(id,name)
{  var parent_ids_input, tag_names, parents
   parents_block='parents'+id
 
   parent_ids_input='parent_ids_input'
   tag_names='tag_names'
   if (document.getElementById(parent_ids_input).value.indexOf('.')!=0) document.getElementById(parent_ids_input).value="."+document.getElementById(parent_ids_input).value
       
     if (document.getElementById(parent_ids_input).value.indexOf('.'+id+'.')<0)
     { document.getElementById(tag_names).innerHTML+=name+', ';
       document.getElementById(parent_ids_input).value+=id+'.';
  
    //  
  
     imgStr='tag_img'+id
     textStr='tree_row'+id      
  
     for (var i=0;i<=document.getElementsByName(imgStr).length-1;i++)
       {if (document.getElementsByName(textStr)[i]) document.getElementsByName(textStr)[i].className='bold_grey' 
        document.getElementsByName(imgStr)[i].innerHTML='<img src=/img/pin_minus.png onclick=\'tagMinus('+id+',"'+name+'")\'>'
      }   
     
     if (!document.getElementsByName('search_form')[0]) TagsProposition()
     
     }
}




function AddParentTags(table)
 {
   var httpRequest = makeRequestObject();
  if (httpRequest) {   

 var param='type_query=AddParentTags&table='+table+'&id='+document.getElementById('element_id').value+'&tags='+document.getElementById('parent_ids_input').value;
   
  previewContents('tags_form');
 
	httpRequest.onreadystatechange = function() { showContents(httpRequest,'tags_form',''); };
	httpRequest.open('POST', '/forms/tags.php?rand='+Math.random(), true);
	httpRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
  httpRequest.send(param);
  
  }
 }


function ShowTagsTree(id_type)
 {
   var httpRequest = makeRequestObject();
   var param
       
  if (httpRequest) {   


          param='type_query=ShowTagsTree&id_type='+id_type;
   // передача виділених тегів??   
          if(document.getElementById('parent_ids_input')) 
            { if (document.getElementById('parent_ids_input').value.substr(0, 1)!='.')document.getElementById('parent_ids_input').value='.'+document.getElementById('parent_ids_input').value; 
              param+='&parent_ids='+encodeURIComponent(document.getElementById('parent_ids_input').value);
              }


  previewContents('tags_tree');
 
	httpRequest.onreadystatechange = function() { showContents(httpRequest,'tags_tree',''); };
	httpRequest.open('POST', '/forms/tags.php?rand='+Math.random(), true);
	httpRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
  httpRequest.send(param);
  
  }
 } 
 
function makeQuote(formId)
  { var httpRequest = makeRequestObject();
       
  if (httpRequest) {    
   
   var param='type_query=incertQuote&title='+encodeURIComponent(formId.title.value)+'&enable='+encodeURIComponent(formId.enable.value)+'&author='+encodeURIComponent(formId.author.value)+'&text='+encodeURIComponent(formId._text.value)+'&pioneer='+encodeURIComponent(formId.pioneer.value)+'&translation='+encodeURIComponent(formId.translation.value)+'&remarks='+encodeURIComponent(formId.remarks.value)+'&pub_date='+encodeURIComponent(formId.pub_date.value)+'&tags='+encodeURIComponent(formId.tags.value)+'&storage_place='+encodeURIComponent(formId.storage_place.value)+'&storage_url='+encodeURIComponent(formId.storage_url.value);
  if (formId.id.value) param+='&id='+formId.id.value;
  previewContents('buttom') ;
  
	httpRequest.onreadystatechange = function() { showContents(httpRequest,'quotes','');};
	httpRequest.open('POST', '/forms/quotes.php?rand='+Math.random(), true);
	httpRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
  httpRequest.send(param);
  
  }
 }

function makeSearch  (formId)
  { var httpRequest = makeRequestObject();
       
  if (httpRequest) {    
  
  if (!formId.pub_year_end.value) formId.pub_year_end.value=formId.pub_year_begin.value
  if (!formId.pub_year_begin.value) formId.pub_year_begin.value=formId.pub_year_end.value  
   
  var param='type_query=makeSearch&string='+encodeURIComponent(formId.string.value)+'&pub_year_begin='+formId.pub_year_begin.value+'&pub_year_end='+formId.pub_year_end.value+'&tags='+formId.parent_ids_input.value;

  previewContents('quotes') ;
  
	httpRequest.onreadystatechange = function() { showContents(httpRequest,'quotes',''); };
	httpRequest.open('POST', '/forms/quotes.php?rand='+Math.random(), true);
	httpRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
  httpRequest.send(param);
  
  }
 }

function showQuotePage(page)
{ var httpRequest = makeRequestObject();
  if (httpRequest) {   

  if (!document.getElementsByName('search_form')[0])     document.getElementById('search_quote').innerHTML=''
  //alert(document.getElementById('search_quote').innerHTML)
  
 var param='type_query=showQuotePage&page='+page;
 
 if (document.forms['search_form']) {
 var formId=document.forms['search_form']
 if (!formId.pub_year_end.value) formId.pub_year_end.value=formId.pub_year_begin.value
  if (!formId.pub_year_begin.value) formId.pub_year_begin.value=formId.pub_year_end.value  
   
  param+='&string='+encodeURIComponent(formId.string.value)+'&pub_year_begin='+formId.pub_year_begin.value+'&pub_year_end='+formId.pub_year_end.value+'&tags='+formId.parent_ids_input.value

 } 
  previewContents('quotes');
 
	httpRequest.onreadystatechange = function() { showContents(httpRequest,'quotes',''); };
	httpRequest.open('POST', '/forms/quotes.php?rand='+Math.random(), true);
	httpRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
  httpRequest.send(param);
  
  }
}

function  ShowSearchForm()
  { var httpRequest = makeRequestObject();
    var httpRequest2 = makeRequestObject();    
  if (httpRequest) {    
     
     document.all.quotes.innerHTML=''
     previewContents('search_quote') 
   
   var param='type_query=ShowSearchForm'
  
  httpRequest.onreadystatechange = function() { showContents(httpRequest,'search_quote','');};
	httpRequest.open('POST', '/forms/quotes.php?rand='+Math.random(), true);
	httpRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
  httpRequest.send(param);
   
   param='type_query=quotes_search_about'
  
	httpRequest2.onreadystatechange = function() { showContents(httpRequest2,'quotes','');};
	httpRequest2.open('POST', '/forms/quotes.php?rand='+Math.random(), true);
	httpRequest2.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
  httpRequest2.send(param)

     
  }
 }

 function  ShowQuote(id)
  { var httpRequest = makeRequestObject();
    var block='quote'+id   

  if (httpRequest) {    
   
   var param='type_query=ShowTextQuote&id='+id

  previewContents(block) 
  
	httpRequest.onreadystatechange = function() { showContents(httpRequest,block,'');};
	httpRequest.open('POST', '/forms/quotes.php?rand='+Math.random(), true);
	httpRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
  httpRequest.send(param);

  }
 }

function  ShowInsertQuoteForm()
  { var httpRequest = makeRequestObject();
       
  if (httpRequest) {    
   
   var param='type_query=ShowInsertForm'
  document.all.search_quote.innerHTML='';
  previewContents('quotes') 
  
	httpRequest.onreadystatechange = function() { showContents(httpRequest,'quotes','');};
	httpRequest.open('POST', '/forms/quotes.php?rand='+Math.random(), true);
	httpRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
  httpRequest.send(param);

  }
 }


function AddTagsForm (table)
{ 
  var httpRequest = makeRequestObject();
  if (httpRequest) {   

 
  var param='type_query=AddTagsForm'
  if (table ) param+='&table='+table
  previewContents('tags_form');
 
	httpRequest.onreadystatechange = function() { showContents(httpRequest,'tags_form',''); };
	httpRequest.open('POST', '/forms/tags.php?rand='+Math.random(), true);
	httpRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
  httpRequest.send(param);
  
  }
}





//// test

//formId.id_type.options[formId.id_type.selectedIndex].value

///// end of test

function makeTag(formId,end)
  { var httpRequest = makeRequestObject();
       
  if (httpRequest) {   
   
   
   
   var param='type_query=insert&name='+encodeURIComponent(formId.name.value)+'&id_type='+formId.id_type.options[formId.id_type.selectedIndex].value;
    
   if (formId.parent_ids.value !== undefined)
    {
       if (formId.parent_ids.value[0]!='.')formId.parent_ids.value='.'+formId.parent_ids.value;
       param+='&parent_ids='+encodeURIComponent(formId.parent_ids.value);
    }
   if (end==1) param+='&end='+end; 
    
   if (formId.id.value !== undefined) param+='&id='+formId.id.value; 
   
   

  previewContents('buttom') ;
 
	httpRequest.onreadystatechange = function() { showContents(httpRequest,'tags_tree','');};
	httpRequest.open('POST', '/forms/tags.php?rand='+Math.random(), true);
	httpRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
  httpRequest.send(param);
  
  }
 }
 
 
 function ShowInsertTagForm(id_type,id)
  { 
  
    var httpRequest = makeRequestObject();
  if (httpRequest) {   
   var param='type_query=ShowInsertTagForm&id_type='+id_type
   if (id) param+='&id='+id
  previewContents('tags_tree');
  
	httpRequest.onreadystatechange = function() { showContents(httpRequest,'tags_tree','');};
	httpRequest.open('POST', '/forms/tags.php?rand='+Math.random(), true);
	httpRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
  httpRequest.send(param);
  
  } 
 }
 
//Функція GET-запиту з таблць         
 
function makeRequest(table,id,div,additional_string) {
	var httpRequest = makeRequestObject();
  if (httpRequest){

	previewContents(div) ;
	httpRequest.onreadystatechange = function() { showContents(httpRequest,div,additional_string); };
	httpRequest.open('GET', '/forms/vew.php?table='+table+'&id='+id+'&rand='+Math.random(), true);
  httpRequest.send('');

  }
}
 
 function testComment (formId)
 {var text_alert=formId._text.value;
 alert(text_alert);
 }

//Функція POST-запиту з форми
 
function makePostComment(formId) {
  
  var httpRequest = makeRequestObject();
  
  if (httpRequest) {   
  var param='text_subject='+encodeURIComponent(formId.text_subject.value)+'&type_parent='+formId.type.value+'&id_parent='+formId.id_parent.value+'&moder_mail='+formId.moder_mail.value+'&_text='+encodeURIComponent(formId._text.value)+'&author_name='+encodeURIComponent(formId.author_name.value)+'&author_site='+encodeURIComponent(formId.author_site.value);
  if (formId.code) param+='&code='+formId.code.value

  previewContents('comment_form') ;
	httpRequest.onreadystatechange = function() { showContents(httpRequest,'comments_line',''); document.location.href = "#bottom";};
	httpRequest.open('POST', '/add_ajax_comment.php?rand='+Math.random(), true);
	httpRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
  httpRequest.send(param);
  

  }     
}



//Функція виводу результату в блоці
function showContents(httpRequest,div,additional_string) {
	var myDiv = document.getElementById(div);
  if (myDiv)
  {
   if(myDiv.style.display == 'none') { myDiv.style.display = 'block'; };  
   if (httpRequest.readyState == 4) 
   { 
		if (httpRequest.status == 200) {
			myDiv.innerHTML = httpRequest.responseText+additional_string;
		} else {
      
			myDiv.innerHTML = 'К сожалению, при запросе произошла ошибка';
		}
	 }
	}
}

//Функція очікування результату
function previewContents(div) {
	var myDiv = document.getElementById(div);
  if(myDiv.style.display == 'none') { myDiv.style.display = 'block'; };  
  		myDiv.innerHTML = '<center><img src=/img/wait.gif border=0></center>';
		}


