function request(loader, method, data,reptag, data2) {
    if(reptag==null) reptag='result';
			var reg = new RegExp('.htm?');
			if (reg.test(data) == true){
         var spstr=data.split(".htm?");
         var tmpdata='';
         for (var i=0; i < spstr.length; i++) {
               tmpdata=tmpdata+spstr[i]+'&';
         }
         data=tmpdata;
      }
    document.getElementById(reptag).innerHTML ='<img src="/tmpl/lite/images/loader.gif" width="16" height="16" style="vertical-align:middle" />';
        var req = new JsHttpRequest();
        req.onreadystatechange = function() {
            if (req.readyState == 4) {
                if (req.responseJS) {
                    document.getElementById(reptag).innerHTML =req.responseText;
					runScripts(document.getElementById(reptag).getElementsByTagName('SCRIPT'));
                }
            }
        }
        req.caching = false;
        req.loader = loader;
        req.open(method, '/loader.php'+data, true);
        var data = {
            q: data,
            'data2': data2
        };
        if (data2 == null) delete data.data2;
        req.send(data);
    }
//----------------------------------------------------------------------
function getdata(loader, method, data,reptag, data2) {
    if(reptag==null) reptag='result';
			var reg = new RegExp('.htm?');
			if (reg.test(data) == true){
         var spstr=data.split(".htm?");
         var tmpdata='';
         for (var i=0; i < spstr.length; i++) {
               tmpdata=tmpdata+spstr[i]+'&';
         }
         data='?p='+tmpdata;
      }
    document.getElementById(reptag).innerHTML ='<img src="/tmpl/lite/images/loader.gif" width="16" height="16" style="vertical-align:middle" />';
        var req = new JsHttpRequest();
        req.onreadystatechange = function() {
            if (req.readyState == 4) {
                if (req.responseJS) {
                    document.getElementById(reptag).innerHTML =req.responseText;
					runScripts(document.getElementById(reptag).getElementsByTagName('SCRIPT'));
                }
            }
        }
        req.caching = false;
        req.loader = loader;
        req.open(method, '/loader.php'+data, true);
        var data = {
            q: data,
            'data2': data2
        };
        if (data2 == null) delete data.data2;
        req.send(data);
    }
	
//----------------------------------------------------------------------
function doLoad(fid,did) {
    document.getElementById(did).innerHTML ='<img src="/tmpl/lite/images/loader.gif" width="16" height="16" style="vertical-align:middle;" />';
    var req = new JsHttpRequest();
    req.onreadystatechange = function() {
        if (req.readyState == 4) {
            document.getElementById(did).innerHTML = req.responseText;
			runScripts(document.getElementById(did).getElementsByTagName('SCRIPT'));
        }
    }
    req.open(null, '/loader.php', true);
    req.send( { 'form': document.getElementById(fid) } );
}
//----------------------------------------------------------------------
function doLoadRemote(fid,did) {
    document.getElementById(did).innerHTML ='<img src="http://diplom/tmpl/lite/images/loader.gif" width="16" height="16" />';
    var req = new JsHttpRequest();
    req.onreadystatechange = function() {
        if (req.readyState == 4) {
			alert(req.readyState);
            document.getElementById(did).innerHTML = req.responseText;
			runScripts(document.getElementById(did).getElementsByTagName('SCRIPT'));
        }
    }
	alert(req.readyState);
    req.open(null, 'http://diplom/loader.php', true);
	alert(req.readyState);
    req.send( { 'form': document.getElementById(fid) } );
	alert(req.readyState);
}
/* Функция активации скрипта вызванного через свойство innerHTML */
function runScripts(scripts) {
    if (!scripts) return false;
    for (var i = 0; i < scripts.length; i++) {
        var thisScript = scripts[i];   
        var text;
        if (thisScript.src) {
            var newScript = document.createElement("script");
            newScript.type = thisScript.type;       
            newScript.language = thisScript.language;
            newScript.src = thisScript.src;             
            document.body.appendChild(newScript);   
        } else if (text = (thisScript.text || thisScript.innerHTML)) {
            var text = (""+text).replace(/^\s*<!\-\-/, '').replace(/\-\->\s*$/, '');
            eval(text);
        }
    }
}

//------------------------------------------------------------
function checkLen1(StrId,StrLen,StrMsg){
var str = document.getElementById(StrId).value;
var len = str.length;
var fullLen = StrLen - len;
var count0 = "<br>Текст не может быть длиннее, чем ";
  if ( StrLen < len){ document.getElementById(StrId).value = str.substring(0,StrLen);}
if(len<(StrLen-1)) {document.getElementById(StrMsg).innerHTML = 'Осталось: ' + fullLen;}
else {document.getElementById(StrMsg).innerHTML = count0 + StrLen + ' символов!';}
}
//------------------------------------------------------------
function checkSMSLen(StrId,StrMsg){
var str = document.getElementById(StrId).value;
var type = document.getElementById('rus').value;
if(type == 0) maxlen = 160;
else maxlen = 70;
var len = str.length;
var fullLen = maxlen - len;
var count0 = "<br>Текст не может быть длиннее, чем ";
  if ( maxlen < len){ document.getElementById(StrId).value = str.substring(0,maxlen);}
if(len<(maxlen-1)) {document.getElementById(StrMsg).innerHTML = 'Осталось: ' + fullLen;}
else {document.getElementById(StrMsg).innerHTML = count0 + maxlen + ' символов!';}
}
//-------проверка форм-------------------
function template(object) {
	function createErr(err_txt) {
		err_node.className = 'error';
		err_node.innerHTML = '';
		err_node.appendChild(document.createTextNode(err_txt));
	}
 if(object.className=='required'){
	if(object.type=='text' && (object.name=='email'||object.name=='email[0]')) {
			var reg = new RegExp('^[_\\.0-9a-zA-Z-]+@([0-9a-zA-Z][0-9a-zA-Z_-]+\\.)+[a-zA-Z]{2,4}$');
			if (reg.test(object.value) == false) {
				createErr('Введите корректный email!');
				return false;
			}
	}else if(object.type=='text' && (object.name=='phone'||object.name=='phone[0]' ||object.name=='main_phone')) {
			var reg = new RegExp('^[0-9- +]{5,20}$');
			if (reg.test(object.value) == false) {
				createErr('Введите корректный номер телефона!');
				return false;
			}
	}else if(object.type=='text' || object.type=='textarea'){
			if (object.value.length < 2) {
				createErr('Введите хотя бы два символа!');
				return false;
			}
	}else if(object.type=='select-one'){
			if (object.name=='gorod' && object.value=='0') {
				createErr('Выберите вариант из списка!');
				return false;
			}
			if (object.name=='firm' && object.value=='Не имеет значения') {
				createErr('Выберите вариант из списка!');
				return false;
			}
			if (object.name=='model' && object.value=='Не имеет значения') {
				createErr('Выберите вариант из списка!');
				return false;
			}
	}
 }
if(object.className=='required_dig'){
	var numStr="0123456789";
	var thisChar;
	var counter=0;
	for (var v=0; v<object.value.length; v++) {
		thisChar = object.value.substring(v, v+1);
		if (numStr.indexOf(thisChar) != -1)
		counter++;
	}
	createErr('Неправильный формат данных! Это должно быть целое число.');
	if (counter != object.value.length) return false;
}
if(object.type=='password'&&object.name=='password'){
			if (object.value==''||object.value.length < 3) {
				createErr('Вы не ввели пароль!');
				return false;
			}
}
if(object.type=='password'&&object.name=='password_'){
			if (object.value==''||object.value.length < 3) {
				createErr('Вы не ввели повторный пароль!');
				return false;
			}
}
}
//------------------------------------------
function checkForm(fn){
    var this_len = document.forms[fn].elements.length;
	for (var j=0;j<this_len;j++) {
		if(document.forms[fn].elements[j].value != null && document.forms[fn].elements[j].type != 'submit' && document.forms[fn].elements[j].type != 'button' && document.forms[fn].elements[j].type != 'hidden') {
        document.forms[fn].elements[j].parentNode.insertBefore(err_node, document.forms[fn].elements[j]);
			if (template(document.forms[fn].elements[j]) == false) {
		alert(document.forms[fn].elements[j].type);
				return false;
			}
		}
	}
   		err_node.className = 'noerror';
			err_node.innerHTML = '';
   return true;
}
//----------добавления полей к форме-------------------------
//var countOfFields = 3; // Текущее число полей
//var curFieldNameId = 2; // Уникальное значение для атрибута name
/*var maxFieldLimit = 5; // Максимальное число возможных полей*/
function deleteField(a) {
	// Получаем доступ к ДИВу, содержащему поле
	var contDiv = a.parentNode;
	// Удаляем этот ДИВ из DOM-дерева
	contDiv.parentNode.removeChild(contDiv);
	// Уменьшаем значение текущего числа полей
	countOfFields--;
}

function addfield(namefield){
/*
if (countOfFields >= maxFieldLimit) {
alert("Число полей достигло своего максимума = " + maxFieldLimit);
return false;
}
*/
	// Увеличиваем текущее значение числа полей
	countOfFields++;
	// Увеличиваем ID
	curFieldNameId++;
/*		el = document.createElement('BR');
		document.getElementById(namefield).appendChild(el);*/
		var div = document.createElement("div");
		// Добавляем HTML-контент с пом. свойства innerHTML
		div.innerHTML = "<input name=\"" + namefield + "["+curFieldNameId+"]\" type=\"text\" size=\"50\" /> <input type=\"button\" onclick=\"return deleteField(this)\" style=\"width:20px;\" value=\"-\">";
// Добавляем новый узел в конец списка полей
		document.getElementById(namefield).appendChild(div);
}
/* ******************************************************************** */
function deleteapage(a) {
	// Получаем доступ к ДИВу, содержащему поле
	var contDiv = a.parentNode;
	// Удаляем этот ДИВ из DOM-дерева
	contDiv.parentNode.removeChild(contDiv);
	// Уменьшаем значение текущего числа полей
	countOfFieldsa--;
}

function addapage(namefield){
	// Увеличиваем текущее значение числа полей
	countOfFieldsa++;
	// Увеличиваем ID
	curFieldNameIda++;
		var div = document.createElement("div");
		// Добавляем HTML-контент с пом. свойства innerHTML
		div.innerHTML = "<input type='text' name='pname[" + curFieldNameIda + "]' size='10' /> <input type='text' name='pparent[" + curFieldNameIda + "]' size='10' /> <input type='text' name='ptitle[" + curFieldNameIda + "]' size='30' /> <input type='text' name='plevel[" + curFieldNameIda + "]' size='3' /> <input type='text' name='pfile[" + curFieldNameIda + "]' size='20' /> <input type='text' name='psecurity[" + curFieldNameIda + "]' size='3' /> <input type='button' onclick='return deleteapage(this)' style='width:20px;' value='-' />";
// Добавляем новый узел в конец списка полей
		document.getElementById(namefield).appendChild(div);
}
/* ******************************************************************** */
function deletempage(a) {
	// Получаем доступ к ДИВу, содержащему поле
	var contDiv = a.parentNode;
	// Удаляем этот ДИВ из DOM-дерева
	contDiv.parentNode.removeChild(contDiv);
	// Уменьшаем значение текущего числа полей
	countOfFieldsm--;
}

function addamenu(namefield){
	// Увеличиваем текущее значение числа полей
	countOfFieldsm++;
	// Увеличиваем ID
	curFieldNameIdm++;
		var div = document.createElement("div");
		// Добавляем HTML-контент с пом. свойства innerHTML
		div.innerHTML = "<input type='text' name='punkt_link[" + curFieldNameIdm + "]' size='20' /> <input type='text' name='punkt_name[" + curFieldNameIdm + "]' size='30' /> <input type='text' name='punkt_level[" + curFieldNameIdm + "]' size='3' /> <input type='text' name='punkt_parent[" + curFieldNameIdm + "]' size='20' /> <input type='text' name='punkt_order[" + curFieldNameIdm + "]' size='3' /> <input type='button' onclick='return deletempage(this)' style='width:20px;' value='-' />";
// Добавляем новый узел в конец списка полей
		document.getElementById(namefield).appendChild(div);
}

/* ******************************************************************** */
function deletespage(a) {
	// Получаем доступ к ДИВу, содержащему поле
	var contDiv = a.parentNode;
	// Удаляем этот ДИВ из DOM-дерева
	contDiv.parentNode.removeChild(contDiv);
	// Уменьшаем значение текущего числа полей
	countOfFieldss--;
}

function addspage(namefield){
	// Увеличиваем текущее значение числа полей
	countOfFieldss++;
	// Увеличиваем ID
	curFieldNameIds++;
		var div = document.createElement("div");
		// Добавляем HTML-контент с пом. свойства innerHTML
		div.innerHTML = "<input type='text' name='spname[" + curFieldNameIds + "]' size='10' /> <input type='text' name='spfile[" + curFieldNameIds + "]' size='20' /> <input type='text' name='spparent[" + curFieldNameIds + "]' size='10' /> <input type='text' name='sptitle[" + curFieldNameIds + "]' size='30' /> <input type='text' name='splevel[" + curFieldNameIds + "]' size='3' /> <input type='text' name='sptmpl[" + curFieldNameIds + "]' size='20' /> <input type='text' name='spgroup[" + curFieldNameIds + "]' size='10' /> <input type='button' onclick='return deletespage(this)' style='width:20px;' value='-' />";
// Добавляем новый узел в конец списка полей
		document.getElementById(namefield).appendChild(div);
}


/* ******************************************************************** */
function addfilefield(namefield){
/*	
	if (countOfFields >= maxFieldLimit) {
		alert("Число загружаемых фотографий достигло своего максимума");
		return false;
	}
*/	
	countOfFields++;
	curFieldNameId++;
		var div = document.createElement("div");
		// Добавляем HTML-контент с пом. свойства innerHTML
		div.innerHTML = "<input name=\"" + namefield + "["+curFieldNameId+"]\" type=\"file\" size=\"20\" /> <input type=\"button\"  style=\"width:20px;\" onclick=\"return deleteField(this)\" value=\"-\">";
// Добавляем новый узел в конец списка полей
		document.getElementById(namefield).appendChild(div);
/*
		el = document.createElement('BR');
		document.getElementById(namefield).appendChild(el);
		el = document.createElement('INPUT');
		el.type = 'file';
		el.name = 'file[]';
		document.getElementById(namefield).appendChild(el);
*/		
}
//----------добавления полей к форме-------------------------
function addfields(namefield,fsize){
		el = document.createElement('BR');
		document.getElementById(namefield).appendChild(el);
		el = document.createElement('INPUT');
		el.type = 'text';
		el.name = namefield+'[]';
		el.size=fsize;
		document.getElementById(namefield).appendChild(el);
//	document.getElementById(namefield).innerHTML=document.getElementById(namefield).innerHTML+"<input type=text name="+namefield+"[] size="+fsize+" /><br />";
}
//------------------------------------------
function checkSignForm(fn){
    var this_len = document.forms[fn].elements.length;
	for (var j=0;j<this_len;j++) {
      var object=document.forms[fn].elements[j];
	  if(object.name=='sign_email') {
			var reg = new RegExp('^[_\\.0-9a-zA-Z-]+@([0-9a-zA-Z][0-9a-zA-Z_-]+\\.)+[a-zA-Z]{2,4}$');
			if (reg.test(object.value) == false) {
				alert('Введите корректный email!');
				return false;
			}
		}
	}//for
  return true;
}
//------------------------------------------
function checkPayForm(fn){
    var this_len = document.forms[fn].elements.length;
	for (var j=0;j<this_len;j++) {
      var object=document.forms[fn].elements[j];
	  if(object.name=='LMI_PAYMENT_AMOUNT') {
			var reg = new RegExp('^[0-9]');
			if (reg.test(object.value) == false) {
				alert('Введите корректную сумму!');
				return false;
			}
		}
	}//for
  return true;
}
//----------------------------------------------------
function trhover(tr, hover){
	tr.className = hover ? 'hover '+tr.className : tr.className.replace('hover','')
	//<tr class="high" onmouseover="trhover(this,true)" onmouseout="trhover(this,false)"> - использование
	//в css добавить:
	//tr.high {background-color:#ffffff;}
	//tr:hover.high {background-color:#F5F5EB;}
}

/* Admin menu */
function menu_toggle(id){
	if(document.getElementById('d_'+id).style.display=='none'){
    	document.getElementById('d_'+id).style.display='block'; 
	    document.getElementById('i_'+id).src='/tmpl/black/adm_img/brown_uf.gif';
	}else{
    	document.getElementById('d_'+id).style.display='none'; 
	    document.getElementById('i_'+id).src='/tmpl/black/adm_img/brown_f.gif';	
	}
}

/* ******************************************************************** */
function delline(a) {
	var contDiv = a.parentNode;
	contDiv.parentNode.removeChild(contDiv);
	countOfFields--;
}
function addline(namefield){
	countOfFields++;
	curFieldNameId++;
	var div = document.createElement("div");
	div.innerHTML = "<input type='text' name='stepname[" + curFieldNameId + "]' size='60' /> <input type='text' id='stepsrok[" + curFieldNameId + "]' name='stepsrok[" + curFieldNameId + "]' size='20'  class='datetextbox' readonly='readonly' /> <input type='text' name='stepamount[" + curFieldNameId + "]' size='20' /> <input type='button' onclick='return delline(this)' style='width:20px;' value='-' />";
	document.getElementById(namefield).appendChild(div);
 	Calendar.setup({
 		inputField : 'stepsrok[' + curFieldNameId + ']', 
		ifFormat : '%Y-%m-%d %H:%M:%S',
		showsTime : true
	});
}

/* ******************************************************************** */
function delfline(a) {
	var contDiv = a.parentNode;
	contDiv.parentNode.removeChild(contDiv);
	countOfFields--;
}
function addfline(namefield){
	countOfFields++;
	curFieldNameId++;
	var div = document.createElement("div");
	div.innerHTML = "<input type='text' name='stepname[" + curFieldNameId + "]' size='60' /> <input type='text' id='stepsrok[" + curFieldNameId + "]' name='stepsrok[" + curFieldNameId + "]' size='20'  class='datetextbox' readonly='readonly' /> <input type='text' name='stepamount[" + curFieldNameId + "]' size='20' /> <input type='text' name='stepstate[" + curFieldNameId + "]' size='20' /> <input type='text' name='steppay[" + curFieldNameId + "]' size='20' /> <input type='button' onclick='return delline(this)' style='width:20px;' value='-' />";
	document.getElementById(namefield).appendChild(div);
 	Calendar.setup({
 		inputField : 'stepsrok[' + curFieldNameId + ']', 
		ifFormat : '%Y-%m-%d %H:%M:%S',
		showsTime : true
	});
}
/* **************************************************************** */
function HideObject(fid){
	document.getElementById(fid).style.display='none';	
}

function ShowObject(id){
	document.getElementById(id).style.display='block';		
}

/* выдаление элемента (дива) по его айди */
function delelem(a) {
	// Получаем доступ к ДИВу, содержащему поле
	var contDiv = document.getElementById(a);
	// Удаляем этот ДИВ из DOM-дерева
	contDiv.parentNode.removeChild(contDiv);
}

function addelem(namefield,inner){
	var div = document.createElement("div");
	div.innerHTML = inner;
	document.getElementById(namefield).appendChild(div);
}

/* ********************************************************************** */
function SpecWrite(sid,sname){
 if(document.getElementById('cb'+sid).checked==''){ 
		//document.getElementById('sb'+sid).innerHTML="";
		delelem('sb'+sid);
 }else{
	if(document.getElementById('SpecAreaSel').innerHTML==''){
		document.getElementById('SpecAreaSel').innerHTML="<span id='sb"+sid+"'>"+sname+"</span>";
	}else{
		document.getElementById('SpecAreaSel').innerHTML=document.getElementById('SpecAreaSel').innerHTML + "<span id='sb"+sid+"'>, "+sname+"</span>";
	}
 }
}

/* всплывающее окно на дивах */
function OpenPopWindow(){
	document.getElementById('PopWindow').style.display='block';
//    var docwidth=document.all? truebody().scrollLeft+truebody().clientWidth : pageXOffset+window.innerWidth - offsetfrommouse[0];
//	var docheight=document.all? Math.min(truebody().scrollHeight, truebody().clientHeight) : Math.min(window.innerHeight);
//	var docwidth=document.all? truebody().scrollLeft+truebody().clientWidth : pageXOffset+window.innerWidth-15;
//	var docheight=document.all? Math.min(truebody().scrollHeight, truebody().clientHeight) : Math.min(window.innerHeight);
//	alert(docwidth+' - '+docheight);
}

function ClosePopWindow(){
	document.getElementById('PopWindowContent').innerHTML=''; 
	document.getElementById('PopWindow').style.display='none';
}


function getElementsByClass(searchClass,node,tag) {
	var classElements = new Array();
	if ( node == null )
		node = document;
	if ( tag == null )
		tag = '*';
	var els = node.getElementsByTagName(tag);
	var elsLen = els.length;
	
	var pattern = new RegExp("(^|\\s)"+searchClass+"(\\s|$)");
	for (i = 0, j = 0; i < elsLen; i++) {
		if ( pattern.test(els[i].className) ) {
			classElements[j] = els[i];
			j++;
		}
	}
	return classElements;
}


function setall(classname){
	var obj = getElementsByClass(classname,null,'input');
	for(i=0;i<obj.length;i++){
		if(obj[i].checked == true) obj[i].checked = false;
		else obj[i].checked = true;
	}	
}

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