var showErrors = true;
var timer= new Array();
var cachServerAddress = new Array();
var cacheParameters = new Array();
var req=new JsHttpRequest();
//req.session_name="disses";
function displayError(message)
{
	if (showErrors)
	{
		showErrors = false;
		alert("Error encountered: \n" + message+"\n"+req);
		//setTimeout('process();', 10000);
	}
}
function process(serveradress,parametrs)
{
//	alert("serveradress : "+serveradress+"\n parametrs: "+parametrs.file_img.value);
	if (req)
	{
		if (serveradress)
		{
			cachServerAddress.push(serveradress);	cacheParameters.push(parametrs);
		}
		try
		{
			if ((req.readyState == 4 || req.readyState == 0) && cachServerAddress.length > 0)
			{
				var cacheParametr = cacheParameters.shift();
				var cacheServer = ""+cachServerAddress.shift()+"";
				req.open(null, cacheServer, true);
				req.onreadystatechange = handleRequestStateChange;
				req.send(cacheParametr);
				
			}
		}
		catch (e)
		{
			
			displayError("Невозможно соединиться с сервером:\n"+e.toString());
			//window.location.reload();
		}
	}
}

function handleRequestStateChange()
{
//alert("readyState : "+req.readyState+"\n req.status : "+req.status);
//alert("req.responseText : "+req.responseText);
	if (req.readyState == 4)
	{
//	alert(req.responseText);
		if (req.status == 200)
		{
			try
			{
				readResponse();
			}
			catch(e)
			{
				displayError("Ошибка чтения ответа:\n"+e.toString(),'');
			}
		}
		else
		{
			//displayError("Возникли проблемы во время получения данных:"+req.status+"\n"+req.statusText+"\n\n"+req.responseJS.text,"");
			displayError("Возникли проблемы во время получения данных:"+req.status+"\n"+req.statusText,"");
		}
	}
}
function readResponse()
{
	//alert(req.responseText+"\n\n "+req.responseJS.result);
/*	var str="";
	for(var i in req.responseJS)
	{
		str+="obj["+i+"] = "+req.responseJS[i]+"\n\n";
	}
	alert(str);
*/	if(req.responseJS)
	{
		switch (req.responseJS.action)
		{
			case 'filter_change':
				outtypeGetSelectCounts();
			break;
			case 'add_cart':
            $('orderContent').innerHTML='mkdvnkdfnvkdfnvkndfkvndknvkdfv';
            //alert(Order.showDetailsCart);
				//Order.showDetailsCart();
			break;
            case 'get_tree_submenu':
				outtypeTreeSubMenu();
			break;
			case 'get_tree_submenu_mini':
				outtypeTreeSubMenu();
			break;
            case 'get_order_data':
				outtypeOrderData();
			break;
//			case 'get_form_kupon':
//				outtypeFormKupon();
//			break;
//			case 'send_form_kupon':
//				outtypeFormKuponSend();
//			break;			
			case 'export':
				outtypeExport();
			break;
			case 'clear':
				outtypeClear();
			break;
			default:// alert('oops :'+req.responseJS.result);
		}
		setTimeout("process();", 500);
	}
	else alert(req.responseText);
}

function _alert_reg(obj)
{
	var tmp="";
	for(var i in obj) tmp+="obg["+i+"] = "+obj[i]+"\n";
	alert(tmp);
}

function loading_text(obj_id)
{
	var obj=document.getElementById(obj_id);
	if(obj)	obj.innerHTML="<br><span style=\"color:#FF5500;\">&nbsp;&nbsp;&nbsp;загрузка...</span><br><br>";
}
function loader_text(obj_id,s)
{
	var obj=document.getElementById(obj_id);
	if(obj)	obj.innerHTML=(s)?s:"<div>выбрано <img src='/images/ani.gif' align='top' /> моделей</div>";
}
function loader_graph(obj_id)
{
	var obj=document.getElementById(obj_id);
	if(obj)	obj.innerHTML="<div id='loading'>&nbsp;</div>";
}
function select_(el)
{
	//if(timer[1]) clearTimeout(timer[1]);
	var el_list=document.getElementById('filter').getElementsByTagName("input");
	for(var i in el_list) if(el_list[i].id) el_list[i].disabled=true;
	var el_box=document.getElementById('fil_res');
	if(!el_box==undefined || !el_box)
    {
		el_box=createNamedElement("DIV", "fil_res");
		el_box.id="fil_res";
        document.getElementById("filter").parentNode.appendChild(el_box);
	}
	loader_text('fil_res','');
	process('http://'+window.location.hostname+"/?for_mod=shop&mod=ajax",{act:'filter_change',checked:el.checked?1:0,data:el.id,target:document.getElementById("f_target").value});
	 
}
function outtypeGetSelectCounts()
{	
	var result=req.responseJS.result;
	loader_text('fil_res',result.txt);
	var list_inp=document.getElementById('filter').getElementsByTagName("input");
	if(result.list){
		var list_leg=document.getElementById('filter').getElementsByTagName("label");
		var name_leg="";
		for(var i in list_leg){
			if(list_leg[i].id){
				if(list_leg[i].id.indexOf("v_"+result.el_act.fcat+"_")==-1){
					name_leg=list_leg[i].id.replace("lb_","");
					list_leg[i].className=(result.list[name_leg]==0)?"off":"";
				}
			}
		}	
		for(var i in list_inp){
			if(list_inp[i].id){
                if(list_inp[i].parentNode.className!='off') list_inp[i].parentNode.className=(list_inp[i].checked)?"act":"";
				if(list_inp[i].id.indexOf("v_"+result.el_act.fcat+"_")==-1)
					if(list_inp[i].id) list_inp[i].disabled=(result.list.id==1)?false:true;
				if(list_inp[i].id) list_inp[i].disabled=(list_inp[i].parentNode.className=="" || list_inp[i].parentNode.className=="act")?false:true;
			}
		}	
	}
	//timer[1]=setTimeout("kill_fbox();", 6200);
}
function kill_fbox()
{
	var el_box=document.getElementById('fil_res');
	if(el_box!=undefined && el_box)
	{
		el_box.parentNode.removeChild(el_box);
				
	}
}


function v_field(obj,ev)
{	
	var field=(req.responseJS)?req.responseJS.data_f:fields;
	if(ev) if(obj.value=="") {obj.className="field";obj.value=field[obj.name];} 
	if(!ev)	if(obj.value==field[obj.name] || obj.className=="field err") {obj.value="";obj.className="field_ok";}
}
function send_data(s)
{
	var data_f=(req.responseJS)?req.responseJS.data_f:(fields)?fields:new Array();
	var tmp;
	var data_send=new Array();
	for(var el in data_f)
	{
		tmp=document.getElementById(el);
		if(tmp)	data_send[el]=(el!="act" && tmp.value==data_f[el])?'':tmp.value;
	}
	tmp=document.getElementById(s+'_sa');
	if(tmp) data_send['send_action']=tmp.value;
	process('http://'+window.location.hostname+"/ajax/",{act:'send_form',data:data_send});

}

function outtypeSendForm()
{
	var res=req.responseJS.result;
	if(res.d_err!=0){
		for(var el in res.d_err){
			tmp=document.getElementById(el);
			if(tmp){	
				tmp.value=res.d_err[el]; tmp.className="field err";
			}
		}		
	}else{
		//window.location.replace('http://'+window.location.hostname+'/kupon.html');
		var el=document.getElementById('id_'+res.id_box);
		if(el){ el.innerHTML=res.data_txt;}
	}
}


