function hide_loader(){
	document.getElementById('loader').style.display='none';
}

function getById(id) {
	return document.getElementById(id);
}

function uploader_init () {
        uploader = new clUploadData('/upl.php');
}

function validate_mail_form(ob,div,val){
	var re = /\b[-0-9a-zA-Z_.]*?\@[-0-9a-zA-Z_.]*?\.[-0-9a-zA-Z_]{2,4}\b/;
	if(val.match(re)){
		uploader_go('act=settings_send_go&file='+ob+'&ddiv='+div+'&mail='+val);
	}
	else{
		
		var wind = document.getElementById('span'+div);
		wind.style.color='#ff0000';
		wind.innerHTML='Неверный адрес e-mail';
	}
}


var elements_old = [];
var intervalID;
function uploader_go (id) {
	show_loader();
	if(intervalID!=null)
		{
		clearTimeout(intervalID);
		intervalID=setTimeout('check_upload()',60000);
		}
	check_upload_flag=true;
	var i, t, tt, ttt;
	t = id.split('&');
	for (i in t)
	{
		ttt = t[i].toString();
		tt = ttt.split('=');
		if (tt[0] == 'div') var olddivid = tt[1];
	}
	if (olddivid)
	{
		elements_old[olddivid] = document.getElementById(olddivid).innerHTML;
	}
        uploader.upload(id);
		//alert(uploader.id)
		
}

function check_upload(){
	if(intervalID!=null)
		{
		clearTimeout(intervalID);
		}
	if (check_upload_flag==true) alert('В настоящий момент загрузка информации невозможна, пожалуйста, попробуйте позже.');
	check_upload_flag=false;
}

function uploader_close(divid)
{
	document.getElementById(divid).innerHTML = elements_old[divid];
	alert(divid);
}

var uploader;


function get_by_id(id) {
	var itm = null;
	if (document.getElementById){
		itm = document.getElementById(id);
	}
	else if (document.all){
		itm = document.all[id];
	}
	else if (document.layers){
		itm = document.layers[id];
	}
	return itm;
}

function print_to_div(id, text) {
	var d = get_by_id(id);
	if (d) {d.innerHTML = text;}
}

function close_div(id) {
	var d = get_by_id(id);
	if (d) {
		d.innerHTML = '';
		d.style.top = -999;
		d.style.left = -999;
	}
}



function clUploadData ( thesrc ) {
	// устанавливаем адрес подгрузки
	this.src = thesrc;
	// подгружаться будет методом GET
	this.src += "?";
	//тип подгружаемого элемента - text/javascript
	this.type = "text/javascript";
	this.oldScript  = document.createElement("SCRIPT");
	this.oldScript.type = this.type;
	this.callId = 0;
	document.body.appendChild(this.oldScript);
	this.upload = function ( theparams ) {
		//Параметры передаются в виде par1=val1&par2=val2&...
		var tParams = theparams || "";
		var newScript = document.createElement("SCRIPT");
		newScript.type = this.type;
		this.callId += 1;
		var randnumber=Math.floor(Math.random()*100000);
		newScript.src  = this.src + "callid=" + String(this.callId) + "&randnumber=" + randnumber + "&" + tParams;
		// alert(newScript.src);
		document.body.replaceChild(newScript,this.oldScript);
		this.oldScript = newScript;		
	}
}

function ge(){
	var ea;
	for( var i = 0; i < arguments.length; i++ ){
		var e = arguments[i];
		if( typeof e == 'string' ) e = document.getElementById(e);
		if( arguments.length == 1 ) return e;
		if( !ea ) ea = new Array();
		ea[ea.length] = e;
	}
	return ea;
}

function none(){
}

var flag=true;

function showmenu(ob){
	closemenu();
	flag=false;
	while(ob.className!='combobox'){
		ob = ob.parentNode;
	}
	divs=ob.getElementsByTagName('DIV');
	for (var i=0; i<divs.length; i++) {
		if (divs[i].className=='list') {
			ab = divs[i];
		}
	}	
	ab.style.display="block";
	setTimeout('flag=true',300);
};


function showmenureg(ob){
	closemenu();
	flag=false;
	while(ob.className!='comboboxreg'){
		ob = ob.parentNode;
	}
	divs=ob.getElementsByTagName('DIV');
	for (var i=0; i<divs.length; i++) {
		if (divs[i].className=='list') {
			ab = divs[i];
		}
	}	
	ab.style.display="block";
	setTimeout('flag=true',300);
};


function closemenu(i){
	var alldivs=document.getElementsByTagName('DIV');
//	alert(alldivs.length);
	var newArray = [];
	for (var i=0; i<alldivs.length; i++) {
		if (alldivs[i].className=='list') {
			newArray.push(alldivs[i]);
		}
	}
	for (var k=0;k<newArray.length; k++){
		if (flag) newArray[k].style.display="none";
	}
	// if (flag && document.getElementById("selmenu1")) document.getElementById("selmenu1").style.display="none";
};

function setmenu(val,nam,ob){
	var dd = ob.parentNode;
	while(dd.className!='combobox'){
		dd = dd.parentNode;
	}
	divs = dd.getElementsByTagName('DIV');
	seld = divs[0];
	inputs = seld.getElementsByTagName('INPUT');
	inputvis = inputs[0];
	inputhid = inputs[1];
	inputvis.value=nam;
	inputhid.value=val;
}
function setmenureg(val,nam,ob){
	ob.className='current';
	var dd = ob.parentNode;
	while(dd.className!='comboboxreg'){
		dd = dd.parentNode;
	}
	divs = dd.getElementsByTagName('DIV');
	seld = divs[0];
	inputs = seld.getElementsByTagName('INPUT');
	inputvis = inputs[0];
	inputhid = inputs[1];
	inputvis.value=nam;
	inputhid.value=val;
}

function buttondown(ob,n){
	if (ob.id=='button_apps'){
		if(ob.className=='box'){
			ob.className='boxactive';
			document.getElementById('button_serv').className='box';
			if(n){
				uploader_go('act=page&a=apps');
			}
			else{
				uploader_go('act=apps&var_device1='+variable_device1);
			}
		} else {
		}
	} else {
		if(ob.className=='box'){
			ob.className='boxactive';
			document.getElementById('button_apps').className='box';
			if(n){
				uploader_go('act=page&a=serv');
			}
			else{
				uploader_go('act=serv&var_device1='+variable_device1);
			}
		} else {
		}
	}
}

function comment_go(type, id2, device_id)
{
	var text = escape( document.getElementById('comment_text').value.toString() );
	
	uploader_go('act=comment_add&type=' + type + '&id2=' + id2 + '&device_id=' + device_id + '&text=' + text);
	return false;
}

function comments_quote(id)
{
	var c = document.getElementById('comment_text');
	c.value = c.value.toString() + "[quote" + id + "]\n";
}

function comments_answer(id)
{
	var c = document.getElementById('comment_text');
	c.value = c.value.toString() + "[answer" + id + "]\n";
}


function show_loader(){
	document.getElementById('loader').style.display='';
}

function comment_edit_ok(id, type, id2, device_id, page)
{
	var text = escape( $('comment_edit_text').value.toString() );
	uploader_go('act=comment_edit_ok&id=' + id + '&type=' + type + '&id2=' + id2 + '&device_id=' + device_id + '&page=' + page + '&text=' + text);
}

function user_add_new(type){
	if(type=='application'){
		obj='приложение ';
		obj1='приложения';
	}
	else{
		obj='устройство ';
		obj1='устройства';
	}
	var wind = document.createElement('DIV');
	rrr=Math.floor(Math.random()*100000);
	wind.className = 'addwindow';
	wind.innerHTML = '<form><table style="width:100%;"><tr><td colspan="2" style="font-size:14px;font-weight:bold;color:#fff;padding-left:2px;">Заявка на добавление '+obj1+'</td></tr><tr><td colspan="2">Название</td></tr><tr><td colspan="2"><input type="text" name="addpleasesubj"></td></tr><tr><td colspan="2">Описание заявки</td></tr><tr><td colspan="2"><textarea name="addpleasetext"></textarea></td></tr><tr><td colspan="2"><div><div style="float:left;width:20px;"><input type="checkbox" name="mailhochu" value="da" checked /></div><div style="width:20px;float:left;"><img src="/i/mail.gif"alt="mail"></div><div style="width:200px;float:left;">Получить уведомление на почту</div></div></td></tr><tr><td><img src="/code.php?'+rrr+'"></td><td><input type="text" name="addpleasecapt"></td></tr><tr><td><input type="button" name="addpleasecanc" value="  " onClick="closethiswindow(this); return false;" style="background: url(/i/closew.gif) no-repeat center center;width: 142px; height: 27px;font-size:0px;color:#eee;border:none;"></td><td style="text-align:right;"><input type="button" name="addpleasecanc" value="  " onClick="addpleasesavef(this); return false;" style="background: url(/i/send.gif) no-repeat center center;width: 142px; height: 27px;font-size:0px;color:#eee;border:none;"></td></tr><tr><td colspan="2"><span></span></td></tr></table><input type="hidden" id="type" value="'+type+'"></form>';
	document.getElementsByTagName('body')[0].appendChild(wind);

}

function show_complaint_window(id, type){
	// type = warez|serv
	var windc = document.createElement('DIV');
	rrr=Math.floor(Math.random()*100000);
	windc.className = 'addwindow';
	windc.innerHTML = '<form><input type="hidden" name="type" value="' + type + '"><input type="hidden" name="settings_id" value="' + id + '"><table style="width:100%;"><tr><td colspan="2" style="font-size:14px;font-weight:bold;color:#fff;padding-left:2px;">Жалоба на настройку</td></tr><tr><td colspan="2">Тема</td></tr><tr><td colspan="2"><input type="text" name="subj"></td></tr><tr><td colspan="2">Сообщение</td></tr><tr><td colspan="2"><textarea name="text" style="height:45px;"></textarea></td></tr><tr><td><img src="/code.php?'+rrr+'"></td><td><input type="text" name="capt"></td></tr><tr><td><input type="button" name="canc" value="  " onClick="closethiswindow(this); return false;" style="background: url(/i/closew.gif) no-repeat center center;width: 142px; height: 27px;font-size:0px;color:#eee;border:none;"></td><td style="text-align:right;"><input type="button" name="addpleasecanc" value="  " onClick="return complaint_savef(this);"style="background: url(/i/send.gif) no-repeat center center;width: 142px; height: 27px;font-size:0px;color:#eee;border:none;"></td></tr><tr><td colspan="2"><span></span></td></tr></table></form>';
	document.getElementsByTagName('body')[0].appendChild(windc);
}

function closethiswindow(ob){
	while(ob.tagName!='DIV'){
		ob=ob.parentNode;
	}
	ob.parentNode.removeChild(ob);
}

function addpleasesavef(ob){
	while(ob.tagName!='DIV'){
		ob=ob.parentNode;
	}
	//имеем необходимый див... надо бы получить значения всякие
	var span=ob.getElementsByTagName('span')[0];
	var inputsr = ob.getElementsByTagName('input');
	var subj = inputsr[0].value;
	var capt = inputsr[2].value;
	if(inputsr[1].checked){
		var mail = 'da';
	}
	else{
		var mail = 'net';
	}
	var type = inputsr[5].value;
	var textareas = ob.getElementsByTagName('textarea');
	var text=textareas[0].value;


	if(text==""){
		span.style.color='red';
		span.innerHTML='Поле описание заявки не должно быть пустым.';
		textareas[0].style.border='1px solid red';
	}
	else{
		textareas[0].style.border='1px solid #ddd';
	}
	if(subj==""){
		span.style.color='red';
		span.innerHTML='Поле название не должно быть пустым.';
		inputsr[0].style.border='1px solid red';
	}
	else{
		inputsr[0].style.border='1px solid #ddd';
	}
	if(capt==""){
		span.style.color='red';
		span.innerHTML='Необходимо ввести проверочную комбинацию.';
		inputsr[2].style.border='1px solid red';
	}
	else{
		inputsr[2].style.border='1px solid #ddd';
	}
	
	if((subj!="")&&(text!="")&&(capt!="")){
		var ipv='';
		var bb = document.getElementById('device1').getElementsByTagName('div');
		var t="";
		for(var i=0;i<bb.length;i++){
		    if((bb[i].className=='combobox')&&(t=="")){
		        t=bb[i];
		    }
		}
		if(t.className=='combobox'){
		    var ins = t.getElementsByTagName('INPUT');
		    for(var i=0;i<ins.length;i++){
		        if(ins[i].name=='selval'){
		            ipv=ins[i].value;
		        }
		    }
		}
		span.style.color='blue';
		span.innerHTML='Отправка заявки.';
		rand=Math.floor(Math.random()*100000);
		ob.id='win'+rand;
		uploader_go('act=pleaseadd&subj='+subj+'&text='+text+'&capt='+capt+'&divid=win'+rand+'&type='+type+'&mail='+mail+'&ipv='+ipv);
	}
}

function complaint_savef(obj)
{
	while (obj.tagName != 'FORM')
		obj = obj.parentNode;
	// теперь obj - это форма и очень легко обращаться к параметрам
	var errorspan = obj.getElementsByTagName('span')[0];
	errorspan.innerHTML = '';
	errorspan.style.color = 'red';
	
	obj.text.style.border = '1px solid #ddd';
	obj.subj.style.border = '1px solid #ddd';
	obj.capt.style.border = '1px solid #ddd';
	
	if (obj.subj.value == '')
	{
		obj.subj.style.border = '1px solid red';
		errorspan.innerHTML += 'Поле название не должно быть пустым<br>';
	}
	
	if (obj.text.value == '')
	{
		obj.text.style.border = '1px solid red';
		errorspan.innerHTML += 'Поле описание заявки не должно быть пустым<br>';
	}

	if (obj.capt.value == '')
	{
		obj.capt.style.border = '1px solid red';
		errorspan.innerHTML += 'Необходимо ввести проверочную комбинацию<br>';
	}

	if(errorspan.innerHTML == ''){
		errorspan.style.color='blue';
		errorspan.innerHTML='Отправка заявки.';
		rand=Math.floor(Math.random()*100000);
		obj.parentNode.id='win'+rand;
		var subj = escape( obj.subj.value );
		var text = escape( obj.text.value );
		var capt = escape( obj.capt.value );
		uploader_go('act=complaint_save&settings_id='+obj.settings_id.value+'&subj='+subj+'&type='+obj.type.value+'&text='+text+'&capt='+capt+'&divid=win'+rand);
		var closethiswindow_par = function() { closethiswindow(obj); };
		setTimeout(closethiswindow_par, 6000);
		
		
	}

	return false;
}

function showinfo(type,obj){
	links = '/getinfo.php?type='+type+'&obj_id='+obj;
	popupC=window.open(links, '', 'location=no,resizable=yes,scrollbars=yes,width=600,height=400,top=0');
	popupC.focus();
}


function check_for_allow(str){
	var ok=false;
	for(var i=0;i<allowed_domens.length;i++){
		if ((str.indexOf(allowed_domens[i])==7)||(str.indexOf(allowed_domens[i])==8)){
			ok=true;
		}
	}
	return ok;
}

function linkochecker(){
//	var text="";
		
	var bod = document.getElementsByTagName('body')[0];
	var dd = document.domain;
	var links = document.getElementsByTagName('a');
	for(var i=0;i<links.length;i++){
		if(links[i].href.indexOf('mailto:')!=0){
			if((links[i].href.indexOf(dd)==7)||(check_for_allow(links[i].href))){
			}
			else{
				if(!links[i].firstChild) continue;
				var value = links[i].firstChild.nodeValue;
				th=links[i].href
				links[i].href="http://"+dd+"/cc.php?url="+th.replace(/&/gi,"%26amp;");
				links[i].firstChild.nodeValue = value;
			}
		}
	}
//	text+='domain: '+
//	alert(text); 
}




function init(){
	var input=document.getElementById("login_region");
	if(input){
		var list =document.getElementById('login_region_list');
		var links=list.getElementsByTagName('A');
		linkscount=links.length;

		input.onkeydown = function(e) {
			e = e || window.event;
			if(e.keyCode==40 || e.keyCode==38){
				if(list.style.display=="none"){
					showmenureg(input.parentNode);
				}
				else{
					if(e.keyCode==40){
						var activlink=0;
						for(var i=0;i<linkscount;i++){
							if(links[i].className=='current'){
								activlink=i;
								links[i].className='';
							}
						}
						if(activlink==(linkscount-1)){
							activlink=0;
						}
						else{
							activlink++;
						}
						links[activlink].className='current';
					}
					if(e.keyCode==38){
						var activlink=0;
						for(var i=0;i<linkscount;i++){
							if(links[i].className=='current'){
								activlink=i;
								links[i].className='';
							}
						}
						if(activlink==0){
							activlink=linkscount-1;
						}
						else{
							activlink--;
						}
						links[activlink].className='current';
					}
				}
//				alert(e.keyCode);
			}
		}
		input.onkeypress = function(e){
			e = e || window.event;
			if(e.keyCode==13){
//				alert(1);
				if(list.style.display=="none"){
					showmenureg(input.parentNode);
				}
				else{
//					alert(2);
					for(var i=0;i<linkscount;i++){
						if(links[i].className=='current'){
							activlink=i;
						}
					}
					links[activlink].onclick();
					list.style.display="none";
				}
				if (e.preventDefault) { e.preventDefault(); }
				e.returnValue = false;
				return false;
			}
		}
	}
//search

var input_search=document.getElementById("searchbox");
	if(input_search){
		var list_search =document.getElementById('searchbox_list');
		var links_search=list_search.getElementsByTagName('A');
		links_searchcount=links_search.length;

		input_search.onkeydown = function(e) {
			e = e || window.event;
			if(e.keyCode==40 || e.keyCode==38){
				if(list_search.style.display=="none"){
					showmenu(input_search.parentNode);
				}
				else{
					if(e.keyCode==40){
						var activlink_search=0;
						for(var i=0;i<links_searchcount;i++){
							if(links_search[i].className=='current'){
								activlink_search=i;
								links_search[i].className='';
							}
						}
						if(activlink_search==(links_searchcount-1)){
							activlink_search=0;
						}
						else{
							activlink_search++;
						}
						links_search[activlink_search].className='current';
					}
					if(e.keyCode==38){
						var activlink_search=0;
						for(var i=0;i<links_searchcount;i++){
							if(links_search[i].className=='current'){
								activlink_search=i;
								links_search[i].className='';
							}
						}
						if(activlink_search==0){
							activlink_search=links_searchcount-1;
						}
						else{
							activlink_search--;
						}
						links_search[activlink_search].className='current';
					}
				}
//				alert(e.keyCode);
			}
		}
		input_search.onkeypress = function(e){
			e = e || window.event;
			if(e.keyCode==13){
//				alert(1);
				if(list_search.style.display=="none"){
					showmenu(input_search.parentNode);
				}
				else{
//					alert(2);
					for(var i=0;i<links_searchcount;i++){
						if(links_search[i].className=='current'){
							activlink_search=i;
						}
					}
					links_search[activlink_search].onclick();
					list_search.style.display="none";
				}
				if (e.preventDefault) { e.preventDefault(); }
				e.returnValue = false;
				return false;
			}
		}
	}
}


