function createAjaxObj(){
var httprequest=false;
if (window.XMLHttpRequest){ // if Mozilla etc.
	httprequest=new XMLHttpRequest();
	if (httprequest.overrideMimeType)
	httprequest.overrideMimeType('text/html');
}
else if (window.ActiveXObject){ // if IE
	try {
		httprequest=new ActiveXObject("Msxml2.XMLHTTP");
	} 
	catch (e){
		try{
			httprequest=new ActiveXObject("Microsoft.XMLHTTP");
		}
		catch (e){}
	}
}
return httprequest
}

var ajaxpack=new Object()
ajaxpack.basedomain="http://"+window.location.hostname
ajaxpack.ajaxobj=createAjaxObj()
ajaxpack.filetype="txt"
ajaxpack.addrandomnumber=1 //Set to 1 or 0. 1 - add.
resptxt='empty'

ajaxpack.getAjaxRequest=function(url, parameters, callbackfunc, filetype, target){
	ajaxpack.ajaxobj=createAjaxObj() //recreate ajax object to defeat cache problem in IE
	if (ajaxpack.addrandomnumber==1) //Further defeat caching problem in IE?
	var parameters=parameters+"&ajaxcachebust="+new Date().getTime()
	if (this.ajaxobj){
		this.filetype=filetype
		this.target=target
		this.ajaxobj.onreadystatechange=callbackfunc
		this.ajaxobj.open('GET', url+"?"+parameters+"&tg="+target, true)
		this.ajaxobj.send(null)
//		return callbackfunc
	}
}

ajaxpack.postAjaxRequest=function(url, parameters, callbackfunc, filetype, target){
	ajaxpack.ajaxobj=createAjaxObj() //recreate ajax object to defeat cache problem in IE
	if (this.ajaxobj){
		this.filetype=filetype
		this.target=target
		this.ajaxobj.onreadystatechange = callbackfunc
		this.ajaxobj.open('POST', url, true);
		this.ajaxobj.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		this.ajaxobj.setRequestHeader("Content-length", parameters.length);
		this.ajaxobj.setRequestHeader("Connection", "close");
		this.ajaxobj.send(parameters);
	}
}

function getPostParameters(){	// fetch all form elements (may vary) and form post string
var poststr = ''
var x=document.getElementById("myform")
///debugger;
	for (var i=0;i<x.length;i++){
		if (x.elements[i].name == 'replybox' && x.elements[i].checked == false){
//			poststr = poststr + "&" + x.elements[i].id + "=" + encodeURI(x.elements[i].value)
		} else if (x.elements[i].name == 'hide' && x.elements[i].checked == false){
//		
		} else if (x.elements[i].name == 'vote' && x.elements[i].checked == false){				
//			poststr = poststr + "&" + x.elements[i].id + "=" + encodeURI(x.elements[i].value)
		} else {
			var tmp = encodeURIComponent(x.elements[i].value); //encodeURI(x.elements[i].value);
			poststr = poststr + "&" + x.elements[i].id + "=" + tmp; //encodeURI(x.elements[i].value)
		}

	}
return poststr
}

function PostMsg(){
	var poststr=getPostParameters()
	var id=document.getElementById("myform").id.value 		//get the value from a form field
	var target=document.getElementById("myform").tg.value
	ajaxpack.postAjaxRequest("/vote.php?id=" + id, poststr, processGetPost, "txt",target)
}

function PostMsg2(id,target){
	var poststr=getPostParameters()
	ajaxpack.postAjaxRequest("/vote.php?id=" + id, poststr, processGetPost, "txt",target)
}

function PostMsg3(id,target){
	var poststr=getPostParameters()
	ajaxpack.postAjaxRequest("/mailbox.php?id=" + id, poststr, processGetPost, "txt",target)
}

function PostMsg4(id,target){
	var poststr=getPostParameters()
	ajaxpack.postAjaxRequest("/votecomment.php?id=" + id, poststr, processGetPost, "txt",target)
}

function PostForm(pageurl){	// pageurl - target page to process and display form data
	var poststr=getPostParameters()
	var id=document.getElementById("myform").id.value
	ajaxpack.postAjaxRequest(pageurl, poststr, processGetPost, "txt","lcomment")
}

function GetPage(urlstr,getstr){
	ajaxpack.getAjaxRequest(urlstr, getstr, processGetPost, "txt","lcomment")
}

function GetPage2(urlstr,getstr,targetfield){	// return html in specified field id
	ajaxpack.getAjaxRequest(urlstr, getstr, processGetPost, "txt",targetfield);
}

function GetPage3(urlstr,getstr,targetfield){	// return html in specified field id
	ajaxpack.getAjaxRequest(urlstr, getstr, processGetPost2, "txt",targetfield)
}

function GetPage4(urlstr,getstr,targetfield){	// return html in specified field id
	if (document.getElementById(targetfield).innerHTML.length > 800) document.getElementById(targetfield).innerHTML = '&nbsp;';
	else {
		var kod = '<div style="font-size: 11px;">Loading page...&nbsp;&nbsp;<img src="/imgs/wait.gif" width="47" height="15" alt="" border="0"></div>';
		document.getElementById(targetfield).innerHTML=kod;
		ajaxpack.getAjaxRequest(urlstr, getstr, processGetPost, "txt",targetfield);
	}
}

function processGetPost(){
var myajax=ajaxpack.ajaxobj
var myfiletype=ajaxpack.filetype
	if (myajax.readyState == 4){ //if request of file completed
		if (myajax.status==200 || window.location.href.indexOf("http")==-1){
			if (myfiletype=="txt"){
//				alert(myajax.responseText)
//				alert(ajaxpack.target)
				document.getElementById(ajaxpack.target).innerHTML=myajax.responseText
			} else
				alert(myajax.responseXML)
		}
	}
}

function processGetPost2(){
var myajax=ajaxpack.ajaxobj
var myfiletype=ajaxpack.filetype
	if (myajax.readyState == 4){ //if request of file completed
		if (myajax.status==200 || window.location.href.indexOf("http")==-1){
			if (myfiletype=="txt"){
//				alert(myajax.responseText)
//				alert(ajaxpack.target)
				document.getElementById(ajaxpack.target).value=myajax.responseText
			} else
				alert(myajax.responseXML)
		}
	}
}

function ChangeOption(selectedOption) {	// option: t1, t2, etc.
//	var e=document.getElementsByName("zag");
	var e = numTabs;
	var nam1 = 'ar';	// first area: ar0, ar1, etc.
	var nam2 = 'ar_';	// second area ar_0, ar_1, etc.

	for(var i=0;i<e;i++){
		document.getElementById(nam1+i).style.display = 'none';
		document.getElementById(nam2+i).style.display = 'none';
//		ea[i].style.display = 'none'; // not working in IE6 - suxx
//		eb[i].style.display = 'none';
		opt = 't' + (i+1);
		if(opt == selectedOption) {
			document.getElementById(nam1+i).style.display = '';
			document.getElementById(nam2+i).style.display = '';
//			ea[i].style.display = '';
//			eb[i].style.display = '';
			setBackImage(opt);
		}
	}
}

function setBackImage (id1) {
var imageURL = '/imgs/tab_a3.gif';
//var el=document.getElementsByName("zag");
var len = numTabs+1;//el.length + 1;
	for(var i=1;i<len;i++){
		var id2 = 't'+i;
		if (id1 == id2){
		    document.getElementById(id2).style.backgroundImage = 'url(' + imageURL + ')';
			document.getElementById(id2).style.backgroundRepeat='no-repeat';
			document.getElementById(id2).style.borderBottom = '1px solid transparent';	//малоумнуе MSIE не знают, что это и поэтому:
			if (/MSIE (\d+\.\d+);/.test(navigator.userAgent)) document.getElementById(id2).style.borderBottom = '1px solid #ffff7f';
		} else {
			document.getElementById(id2).style.backgroundImage = 'none';
			document.getElementById(id2).style.borderBottom = '1px solid #b8b8b8';
		}		
	}
}

function vNam(){
	var el=document.getElementsByName("zag");
	for(var i=1;i < el.length;i++){
		alert(el[i].name);
	}
}

function setComment (comm,target) {
	if (document.getElementById(target).innerHTML.length > 10) document.getElementById(target).innerHTML = '&nbsp;';
	else document.getElementById(target).innerHTML = '<div style=\"font-size: 11px;\">' + comm + '</div>';
}

function sendto(addr1,addr2){
	arg="mailto:"+addr1+"@"+addr2;
	document.location.href=arg;
}

function redir(addr1){
	arg="http://"+addr1;
	url_w = window.open(arg,"new_w");
//	url_w.open(arg,"new_w");
	url_w.focus();
}

function _url(page){
//	window.location = "http://" + document.domain + page;
	alert(page);
//	document.location.href = "mailto:wwwizz@eiwiwiw.ru";
	window.location.replace = "http://file.rusmidi";
}

function midi(url){
	mid = window.open("","mid_w","height=250,width=390,resizable=yes,scrollbars=no,top=0,left=0");
	url = "/view.php?"+url;
	mid.open(url,"mid_w");
	mid.focus();
}

function imgallery(params){
	url = "/picupload.php?"+params;
	var w = screen.availWidth;
	ww = "780";
	if (w > 800 && w < 1024) ww = "900";
	if (w > 1024) ww = "1050";
	pic = window.open(url,"pic_w","height=580,width="+ww+",resizable=yes,scrollbars=yes,top=0,left=0");
//	pic.open(url,"pic_w");
	pic.focus();
}

function smiles2(param){
var url = "/smiles2.php?nochat=1";
	if (param == 0) url = "/smiles.php?nochat=1";
	if (param == 2)  url = "/smiles.php?nochat=2";
	pic = window.open(url,"pic_w","height=280,width=470,resizable=yes,scrollbars=yes,top=0,left=0");
	pic.focus();
}

function ruskbd(){
	url = "/ruskbd.html";
	kbd = window.open(url,"ruskbd_w","height=280,width=500,resizable=yes,scrollbars=yes,top=0,left=0");
//	pic.open(url,"pic_w");
	kbd.focus();
}

function unCheck(elemId,val) {	// uncheck all elements, but not current, like radio button
var x=document.getElementsByName(elemId)
	for(var i=0;i<x.length;i++){
		if (x[i].value != val)
		x[i].checked = false
	}
}

function insrt(beg,end){
	if (document.selection) { // for IE 
	var str = document.selection.createRange().text;
	document.forms['myform'].elements['mess'].focus();
	var sel = document.selection.createRange();
	sel.text = beg + str + end;
	return false;
	} else if ((typeof document.forms['myform'].elements['mess'].selectionStart) != 'undefined') { // for Mozilla
	var txtarea = document.forms['myform'].elements['mess'];
	var selLength = txtarea.textLength;
	var selStart = txtarea.selectionStart;
	var selEnd = txtarea.selectionEnd;
	var oldScrollTop = txtarea.scrollTop;
	//if (selEnd == 1 || selEnd == 2)
	//selEnd = selLength;
	var s1 = (txtarea.value).substring(0,selStart);
	var s2 = (txtarea.value).substring(selStart, selEnd)
	var s3 = (txtarea.value).substring(selEnd, selLength);
	txtarea.value = s1 + beg + s2 + end + s3;
	txtarea.selectionStart = s1.length;
	txtarea.selectionEnd = s1.length + s2.length + beg.length + end.length;
	txtarea.scrollTop = oldScrollTop;
	txtarea.focus();
	return;
	}
}

function insrt2(beg,end,parent_fld){
	if (document.selection) { // for IE 
	var str = document.selection.createRange().text;
	document.forms['myform'].elements[parent_fld].focus();
	var sel = document.selection.createRange();
	sel.text = beg + str + end;
	return false;
	} else if ((typeof document.forms['myform'].elements[parent_fld].selectionStart) != 'undefined') { // for Mozilla
	var txtarea = document.forms['myform'].elements[parent_fld];
	var selLength = txtarea.textLength;
	var selStart = txtarea.selectionStart;
	var selEnd = txtarea.selectionEnd;
	var oldScrollTop = txtarea.scrollTop;
	//if (selEnd == 1 || selEnd == 2)
	//selEnd = selLength;
	var s1 = (txtarea.value).substring(0,selStart);
	var s2 = (txtarea.value).substring(selStart, selEnd)
	var s3 = (txtarea.value).substring(selEnd, selLength);
	txtarea.value = s1 + beg + s2 + end + s3;
	txtarea.selectionStart = s1.length;
	txtarea.selectionEnd = s1.length + s2.length + beg.length + end.length;
	txtarea.scrollTop = oldScrollTop;
	txtarea.focus();
	return;
	}
}

function addvote(id, getstring,caption,mode){
	trgtpage =  '/vote.php';
	if (mode == 1) trgtpage = '/votecomment.php';
	if (!document.getElementById('form-'+id)){	// check if created already
		if (document.getElementById('tg')){		// there are another form already at page
			var id2=document.getElementById('tg').value;
			novote(id2.slice(5));
		}	
        var form=document.createElement('div');
        form.setAttribute('id', 'form-'+id);
        form.setAttribute('name', 'form-'+id);
		var head='<div style="display: none;"><img src="/imgs/close.gif" width="16" height="16" alt="close" title="close" border="0"></div>'
				+ '<table width="100%" border="0" cellspacing="0" cellpadding="0" class="votehdr">'
				+ '<tr>'
				+ '<td width="100%">&nbsp;'+ caption+'</td>'
    			+ '<td align="right"><a href="javascript:novote(\''+id+'\');" style="color: #FFFF80;">close</a></td>'
    			+ '<td align="right"><a id="nlink" href = "javascript:novote(\''+id+'\');">'
				+ '<img src="/imgs/close.gif" width="16" height="16" alt="close" title="close" border="0"></a></td>'
				+ '</tr></table>';
        document.getElementById('vote-'+id).appendChild(form);
		GetPage2(trgtpage,getstring,'form-'+id);
		document.getElementById('vote-'+id).innerHTML = head + document.getElementById('vote-'+id).innerHTML
	} else novote(id);
}

function novote(id){
	if (document.getElementById('form-'+id)){
		document.getElementById('vote-'+id).removeChild(document.getElementById('form-'+id));
		document.getElementById('vote-'+id).innerHTML='&nbsp;';
	}
}

function nowork(){
	alert('Эта функция в стадии разработки');
}

function clrField(id)
{
	var xx = document.getElementById(id)
	if (xx.value == 'your@mail.com')  xx.value = '';
}

function getElementsByClassName(strClass, strTag, objContElm) {
  strTag = strTag || "*";
  objContElm = objContElm || document;
  var objColl = objContElm.getElementsByTagName(strTag);
  if (!objColl.length &&  strTag == "*" &&  objContElm.all) objColl = objContElm.all;
  var arr = new Array();
  var delim = strClass.indexOf('|') != -1  ? '|' : ' ';
  var arrClass = strClass.split(delim);
  for (var i = 0, j = objColl.length; i < j; i++) {
    var arrObjClass = objColl[i].className.split(' ');
    if (delim == ' ' && arrClass.length > arrObjClass.length) continue;
    var c = 0;
    comparisonLoop:
    for (var k = 0, l = arrObjClass.length; k < l; k++) {
      for (var m = 0, n = arrClass.length; m < n; m++) {
        if (arrClass[m] == arrObjClass[k]) c++;
        if (( delim == '|' && c == 1) || (delim == ' ' && c == arrClass.length)) {
          arr.push(objColl[i]);
          break comparisonLoop;
        }
      }
    }
  }
  return arr;
}

function blinkIt(elem_name){
var x=document.getElementsByTagName(elem_name)
	for(var i=0;i<x.length;i++){
		x[i].style.color=(x[i].style.color=='blue')?'#FF0000':'blue';
	}
}
