$(document).ready(function() {

path="efiles/"; //путь к файлам изображений

sObj=document.getElementById("sobj"); //создали ссылку на служебную форму
folders=sObj.folders.value; //извлекли количество папок (разделов)
formId=document.getElementById(sObj.formId.value); //извлекли имя основной формы и сформировали ссылку на нее

lock=new Array();
for (var i=1; i<=folders; i++) { lock[i]=1; }

xmlHttp=createRO(); //создаем объект запроса

} );

//Создаем объект XMLHttpRequest
function createRO() {
	var xmlHttp;
	if (window.ActiveXObject) { //если под IE
		try { xmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); }
		catch(e) { xmlHttp=false; }
		
	} else { //если Mozilla или другой
		try { xmlHttp=new XMLHttpRequest(); }
		catch(e) { xmlHttp=false; }
	}
	//Перебрать возможные версии объектов...
	if (!xmlHttp) { alert("Ошибка создания объекта XMLHttpRequest"); }
	else return xmlHttp;
}

//Ф. запроса данных - путем асинхр. запроса или же простого раскрытия
function get_data(folderId) {
	if (lock[folderId]) { //раздел еще заблокирован
	
		var cDiv=document.getElementById("div"+folderId); //ссылка на DIV текущего раздела
		
		//var q1="&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp Загрузка...";
		var q2='<IMG SRC="efiles/load.gif"/>';
		//var q3='<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="130" height="20" id="load" align="middle"><param name="allowScriptAccess" value="sameDomain" /><param name="movie" value="efiles/load.swf" /><param name="quality" value="high" /><param name="bgcolor" value="#ffffff" /><embed src="efiles/load.swf" quality="high" bgcolor="#ffffff" width="130" height="20" name="load" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" /></object>';
		cDiv.innerHTML=q2;
		
		xmlHttp.open( "GET", "ajaxer.php?id="+folderId, true );
		xmlHttp.onreadystatechange=get_server_response;
		//var qStr="id="+folderId;
		xmlHttp.send(null);
		
	} else { //раздел разблокирован
		move(folderId);
	}
	
	return;
}

//Ф. отправки строки для поиска среди наименований товаров
function mySearch() {
	var str=document.getElementById("search_form"); //ссылка на форму поиска
	str=str.i_want.value; //строка
	if (str.length<2) { alert("Введите искомое слово или его часть,\n два и более символов."); return; }
	str=encodeURIComponent(str); //закодировали
	
	var contentDiv=document.getElementById("div_content"); //ссылка на основной DIV
	//var q1="Ожидайте...";
	var q2='<IMG SRC="efiles/search.gif"/>';
	//var q3='';
	contentDiv.innerHTML=q2;
	
	xmlHttp.open( "GET", "ajaxer.php?i_want="+str, true );
	xmlHttp.onreadystatechange=get_server_response;
	xmlHttp.send(null);
	
	return;
}


//Ф. вызывается автоматически по прибытии сообщения от сервера
function get_server_response() {
	if (xmlHttp.readyState==4) { //продолжаем только если транзакция с сервером завершена
		if (xmlHttp.status==200) { //т.е. транзакция прошла успешно
			var serverResp=xmlHttp.responseText; //извлекли строку, полученную с сервера
			serverResp=utf2win(serverResp); // utf->win
			print_table(serverResp);
		} else { //проблемки
			alert("При обращении к серверу возникли проблемы: "+xmlHttp.statusText);
		}
	}
	return;
}


//Ф. обработки строки, переданной с сервера ( извлечение данных, оформление кода, вывод... )
function print_table(arg) {
	if (arg=='.......') { alert("403 Forbidden"); return; }
	var arg=arg.split("__");
	var folderId=arg.shift(); //извлекли 1 й эл-т ( № раздела ИЛИ "search"  ИЛИ "noData")
	
	var isSearch=( folderId.match("search") || folderId.match("noData") ) ? true : false ;
	
	if ( !folderId.match("noData") ) { //если данные есть
		var tovarList=new Array(); //сюда сольем перечень ID-ов загруженных товаров
		var code="<TABLE CLASS='data' BORDER=0>\n"; //сюда сливаем код таблицы
		var type=1; //тип поля: 1 - идентификатор товара, 2 - его наименование, 3 - цена
		for (var i=0; i<arg.length; i++) { //для каждого товара из текущего раздела
			var el=arg[i];
			if (type==1) { //id
				id=el; //запомнил id товара
				tovarList.push(id);
				bgcolor=(tovarList.length%2)? "" : ' BGCOLOR="#C8CEDB"'; //здесь управляем чередованием цвета строк
				code+="<TR"+bgcolor+">\n";
				code+="<TD><INPUT TYPE='checkbox' NAME='f"+id+"' ID='c"+id+"' onClick='mo("+id+")'/></TD>\n";
			} else if (type==2) { //name
				code+="<TD><LABEL for='c"+id+"'>"+el+"</LABEL></TD>\n";
				
			} else if (type==3) { //price
				code+="<TD>"+el+"</TD>\n";
				code+='<TD><INPUT TYPE="text" NAME="q'+id+'" SIZE=2 MAXLENGTH=2 VALUE="1"/></TD>\n';
				code+="</TR>\n";
			}
			type=(++type>3)?1:type;
		}
		code+="</TABLE>\n";
	} else { //данных нет:-Р
		code='';
	}
	
	if (!isSearch) { //если НЕ поиск
		var cDiv=document.getElementById("div"+folderId); //ссылка на DIV текущего раздела
		cDiv.innerHTML=code; //вписываем код
		var cImg=document.getElementById("img"+folderId); //ссылка на IMG раздела
		cImg.src=path+"folder_open.png"; //меняем IMG
		//Для каждого товара В ДАННОМ разделе скрываем поле кол-ва:
		for (var i in tovarList) { mo(tovarList[i]); }
		lock[folderId]=0; //говорим, что раздел разблокирован
		
	} else { //все-таки, ПО-О-О-О-ИСК... :)
		code=(code.length>8)? "<B CLASS='msg'>По Вашему запросу найдено товаров: "+tovarList.length+"</B></P>"+code : '<P CLASS="msg">По Вашему запросу ничего не найдено.</P>' ;
		var contentDiv=document.getElementById("div_content"); //ссылка на основной DIV
		
		//вписываем код найденных товаров
		contentDiv.innerHTML=code;
		if (tovarList.length>0) {
			contentDiv.innerHTML+="<P><INPUT TYPE='submit' CLASS='but' VALUE='Я отметил(а)'> ";
			contentDiv.innerHTML+="<INPUT TYPE='hidden' NAME='act' VALUE='regform'></P>";
		}
		var fSearch=document.getElementById("for_search");
		fSearch.style.display="inline"; //отобразала специально заготовленную для этого форму с кн. "К перечню отваров"
		
		for (var i in tovarList) { mo( tovarList[i] ); } //скрыли поля ввода
	}
	
delete tovarList;	
	return;
}

//Ф. скрытия/отображения конкретной разблокированной папки
function move(folderN) {
	var folderObj=document.getElementById("div"+folderN);
	var osd=folderObj.style.display;
	folderObj.style.display=(osd=="") ? ("none") : ("");
	var formObj=document.getElementById("img"+folderN);
	formObj.src= (osd=="") ? (path+"folder_closed.png") : (path+"folder_open.png") ;
	return;
}

//Ф. скрытия/отображения конкретного поля ввода
function mo(arg) {
	var cq="q"+arg;
	var poleObj=document.getElementById(cq); //ссылка на поле ввода кол-ва товара
	var vidimost=formId[cq].style.visibility;
	formId[cq].style.visibility=(vidimost=="hidden")?("visible"):("hidden"); //установили видимость/невидимость
	if (vidimost=="hidden") formId[cq].focus();
	// - если ДО изменения видимости поля она была hidden (а сейчас, соотв-но, visible), отдали фокус
	return;	
}


//перекодировка UTF8 -> WIN-1251
function utf2win(arg) {
	var rez = "";
	for (i=0; i<arg.length; i++) {
		if ( arg.charCodeAt(i)>127 ) {
			rez += "&#" + arg.charCodeAt(i) + ";";
		} else {
			rez += arg.charAt(i);
		}
	}
  return rez;
}


/*
//Ф. скрытия всех полей ввода
function hidden_fields(arg) {
	for (i=1; i<=elems; i++) {
		formId["q"+i].style.visibility="hidden";
		move(i);
		if (arg) { formId["q"+i].value="1"; } //сброс в единицу
	}
	return;
}
*/

/* Что-то не ладится с этим счетчиком символов:( Дописать на досуге:)
function counter() {
	ost=200-formo.prim.value.length;
	alert(ost);
	//formo.count.innerHtml=ost;
	return;	
}
*/
