var numb;
var currentType_old;
var currentType_new;
var currentSercTypeValue = 'serch_advansed'; // serch_string
var is_reloadField = 0;


function getCheckedValue(radioObj) {
	if(!radioObj)
		return "";
	var radioLength = radioObj.length;
	if(radioLength == undefined)
		if(radioObj.checked)
			return radioObj.value;
		else
			return "";
	for(var i = 0; i < radioLength; i++) {
		if(radioObj[i].checked) {
			return radioObj[i].value;
		}
	}
	return "";
}

function re_toggle(ratioValue) {
//	var el = $(obj); // document.getElementById(obj);
//alert('re_toggle obj = ' + ratioValue.toString());
//	var ratio1 = document.getElementsByName ('serch_metod');
//	var ratioValue = getCheckedValue(ratio1);
//alert( 're_toggle ratioValue = ' + ratioValue.toString());
	if ( ratioValue == 'serch_string') {
		setRatioValue('serch_string');
		currentSercTypeValue = 'serch_string';
		hideCooseBar();
		hideDivOne('serch_fields');
		showDiv('serch_string');
	} else {
		setRatioValue('serch_advansed');
		currentSercTypeValue = 'serch_advansed';
		hideDivOne('serch_string');
		showDiv('serch_fields');
	}
}

function re_toggle1(ratioValue) {
//	var el = $(obj); // document.getElementById(obj);
//alert('re_toggle1 obj = ' + ratioValue.toString());
//	var ratio1 = document.getElementsByName ('serch_metod');
//	var ratioValue = getCheckedValue(ratio1);
//alert( 're_toggle ratioValue = ' + ratioValue.toString());
	if ( ratioValue == 'serch_string') {
		setRatioValue('serch_string');
		currentSercTypeValue = 'serch_string';
//		hideCooseBar();
		hideDivOne('serch_meny_params');
		hideDivOne('serch_fields');
		showDiv('serch_string');
	} else {
		setRatioValue('serch_advansed');
		currentSercTypeValue = 'serch_advansed';
		hideDivOne('serch_string');
		showDiv('serch_meny_params');
		showDiv('serch_fields');
	}
}

function setRatioValue(valye) {
	var radioObj = document.getElementsByName ('serch_metod');
//	ratio1.value = 'serch_string';
	var radioLength = radioObj.length;
	if(radioLength == undefined) {
		return;
	} 
	for(var i = 0; i < radioLength; i++) {
//alert( 'setRatioValue radioObj[i].value = ' + radioObj[i].value.toString());
		radioObj[i].checked = false;
		if(radioObj[i].value == valye) {
			radioObj[i].checked = true;
			currentSercTypeValue = valye;
		}
	}
	//re_toggle(valye);		
}


/**
 * remove_focus_select получить список имен свойств для подготовки данных для формы поиска  
 * 
 */
function remove_focus_select( options, servReq, serv, self, dt, hs ) {
	showLoadingIndicator();
	setRatioValue('serch_advansed');
	if($('serch_obj_type')!=null) {
		var currentType_new = $('serch_obj_type').value;
		if (currentType_new == 0){
			hideLoadingIndicator();
			alert ('Выберите пожалуйста параметр "что ищем"  ');
			return;
		}
	}
	if ((currentType_old != null) && (currentType_old != currentType_new )) {
	     for(i=1; i<=numb; i++) {
			if($('name_'+i)!=null) {
				delTableRow('serch_tables_param', 'name_',  i, $('name_'+i).value);
			}
	     }
	}
	if ((currentType_old == null) || (currentType_old != currentType_new )) {
		currentType_old = currentType_new;
	}

	if (options) {
		hideLoadingIndicator();
		if (options.error > 0) {
			alert ('Ошибка!  ' + options.error_desc);
		} else {
//alert ('make remove_focus_select!!!!  options.tableForm = ' + options.caseFieldForm );
			var top = document.body.scrollTop ;
//			$('field_bar').style.top = top + 100 + "px";
			var field_bar = $('field_bar');
			if (field_bar != null) {
				field_bar.innerHTML = options.caseFieldForm;
			}
			showCooseBar();
			showDiv('serch_fields');
			hideDivOne('serch_string');
			is_reloadField = 0;
		}
		return;
	}
//alert ('make remove_focus_select!!!!  currentType_new = ' + currentType_new);
	if ( is_reloadField == 0) {
		is_reloadField = 1;
		var requestServ = servReq+'/tools.php';
		var requestParam = 'prc=gf&cid=' + currentType_new + '&sf=' + self + '&dt=' + dt  + '&srv=' + serv + '&hs='+ hs;
	//alert ('make  ' + requestServ + '?' +  requestParam);
		SendRequestByAjax( requestServ, requestParam, remove_focus_select);
	}
}


function addField(div_id, id_field, name_param, propertysType, serv, self, dt, hs) {
//alert ('addField  = ' + id_field + ' ' + propertysType );
//alert ('addField numb = ' + numb );
    var currrow;
    currow = $(div_id).rows.length; // вычислить количество строк в таблице

    if(numb==null) {
		numb = $(div_id).rows.length - 2;
	} 

    numb++;
    $(div_id).insertRow(currow); // добавляем строку в таблицу
    $(div_id).rows[currow].insertCell(0); // добавляем ячейки
    $(div_id).rows[currow].insertCell(1);
    $(div_id).rows[currow].insertCell(2);
    $(div_id).rows[currow].cells[0].innerHTML = '<input type=button name=\"btnDel'+ numb+'\" id=\"btnDel'+ numb+'\" value=\"-\" onClick=\"delTableRow(\''+div_id +'\', \'name_\', \''+ numb + '\', \''+ id_field +'\');">'; // кнопка для удаления текущей строки
    var nameParam  = '<input type=\"hidden\" id=\"type_'+ numb +'\" name=\"type_'+ numb +'\" value=\"'+ propertysType +'\"\"><input type=\"hidden\" id=\"inx'+ numb +'\" value=\"'+ numb +'\"\"><input type=\"hidden\" name=\"name_'+ numb +'\" id=\"name_'+ numb +'\" value=\"'+ id_field +'\"\">'; // вставляем в форму поля
    nameParam += '<input type=\"text\" id=\"publicName'+ numb +'\" value=\"'+ name_param +'\"\" disabled>'; // вставляем в форму поля
    $(div_id).rows[currow].cells[1].innerHTML = nameParam;
    if (propertysType == 'sense_number') {
    	var htmpStr = '<table cellspacing="0" cellpadding="0" border="0" width="100%"><tr><td align="left"> ';
    	htmpStr += ' <tr><td>от</td><td>до</td><td>+\/-</td><td align="left">Убыв</td></tr>';
    	htmpStr += '<tr><td><input type=\"text\" id=\"minValue_'+ numb+'\" name=\"minValue_'+ numb+'\" size=\"10\" maxlength=\"16\" value=\"0\"\"></td>';
    	htmpStr += '<td><input type=\"text\" id=\"maxValue_'+ numb+'\" name=\"maxValue_'+ numb+'\" size=\"10\" maxlength=\"16\" value=\"0\"\"></td>';
    	htmpStr += '<td><input type=\"text\" id=\"variable_'+ numb+'\" name=\"variable_'+ numb+'\" value=\"10\" size=\"2\" maxlength=\"5\" ></td>';
    	htmpStr += '</td><td align="right"><input type=\"checkbox\" id=\"order_'+ numb+'\" name=\"order_'+ numb+'\"></td></tr></table>'
    	$(div_id).rows[currow].cells[2].innerHTML = htmpStr;
    } else if (propertysType == 'sense_date') { // 10.09.09
    	var htmpStr = '<table cellspacing="0" cellpadding="0" border="0" width="100%"><tr><td align="left"> ';
    	var date_valueStart = new Date();
    	var dd = date_valueStart.getUTCDate();
    	date_valueStart.setDate(dd - 3);
    	var ddStart = date_valueStart.getUTCDate();
    	var mmStart = date_value.getUTCMonth()+1;
    	var yyyyStart = date_value.getUTCFullYear();
    	dateStart = '' + ddStart + '.' + yyyyStart + '.' + mmStart;

    	var date_valueEnd = new Date();
    	var dd = date_valueEnd.getUTCDate();
    	date_valueEnd.setDate(dd + 3);
    	var ddEnd = date_valueEnd.getUTCDate();
    	var mmEnd = date_valueEnd.getUTCMonth()+1;
    	var yyyyEnd = date_valueEnd.getUTCFullYear();
    	dateEnd = '' + ddEnd + '.' + mmEnd + '.' + yyyyEnd;
    	htmpStr += '<tr><td>от</td><td>до</td><td>+\/-</td><td align="left">Убыв</td></tr>';
    	htmpStr += '<tr><td><input type=\"text\" id=\"minValue_'+ numb+'\" name=\"minValue_'+ numb+'\" size=\"10\" maxlength=\"10\" value=\"'+ dateStart +'\"\"></td>';
    	htmpStr += '<td><input type=\"text\" id=\"maxValue_'+ numb+'\" name=\"maxValue_'+ numb+'\" size=\"10\" maxlength=\"10\" value=\"'+ dateEnd +'\"\"></td>';
    	htmpStr += '<td><input type=\"text\" id=\"variable_'+ numb+'\" name=\"variable_'+ numb+'\" value=\"3\" size=\"2\" maxlength=\"5\" ></td>';
    	// <span align="right" style="text-align:right">
    	htmpStr += '</td><td align="right">Убыв';
    	htmpStr += '<input type=\"checkbox\" id=\"order_'+ numb+'\" name=\"order_'+ numb+'\"></td></tr></table>'
    	$(div_id).rows[currow].cells[2].innerHTML = htmpStr;
    } else if ( propertysType== 'sense_enum') {
		var htmpStr = '<div name=\"enum_div_'+ numb+'\" id=\"enum_div_'+ numb+'\">&nbsp;';
		$(div_id).rows[currow].cells[2].innerHTML = htmpStr;
		select_enum = 'value_'+ numb;
		enum_div = 'enum_div_'+ numb;
		load_set_of_name( '', select_enum, enum_div, id_field, numb, serv, self, dt, hs );
    } else {
    	var htmpStr = '<table cellspacing="0" cellpadding="0" border="0" width="100%"><tr><td align="left"> ';
    	htmpStr += '<input type=\"text\" name=\"value_'+ numb+'\" id=\"value_'+ numb+'\" size=\"20\" maxlength=\"254\" > ';
    	htmpStr += '</td><td align="right"> или любое значение <input type=\"checkbox\" id=\"not_null_'+ numb+'\" name=\"not_null_'+ numb+'\"></td></tr></table>';
    	$(div_id).rows[currow].cells[2].innerHTML = htmpStr;
    }
    
//    а теперь делаем выбор по разным типам данных, такими и выбираем :-)
//    кстати, надо пока убрать выбор по географии... 
    delTableRow('list_proterty_names', 'delInd_',  $('list_proterty_names').rows.length, id_field);
}


function delTableRow(div_id, nn,  rowInd, id_field) {
// вот тут надо получить реальный номер строки... как? :-((
//alert ('delField :: div_id = ' + div_id + '; rowInd = ' + rowInd );
//     for(i=1; i<=$(div_id).rows.length; i++) {
//	if (id_field == 'undefined') return;	
	if (id_field == null) return;	
	var delRowInd = 1;
     for(i=1; i<=rowInd; i++) {
//а вот здеся я и даамм некий параметр удаления.
     	var hFieldName = nn + i;
		if($(hFieldName)!=null) {
			var nameId = $(hFieldName).value;
			if (nameId>0) delRowInd++;
	//alert ('delField :: rowInd = ' + rowInd + '; id_field = ' + id_field + '; hFieldName = ' + hFieldName + '; nameId = ' + nameId + '; i = ' + i+ '; delRowInd = ' + delRowInd );
	     	if (nameId == id_field) {
	//alert ('delField :: delRowInd = ' + delRowInd );
				$(div_id).deleteRow(delRowInd);
				break;
	        }
     	}
     }
} // function delTableRow(div_id, nn,  rowInd, id_field)


/**
 * load_set_of_name - загрузка списка возможных значений поля - для вормы подготовки поиска.
 *  
 * @param  string options  результат 
 * @param  string fnn  имя поля (select), где и происходит выбор..
 * @param  string divName_name  divName_name = имя дива, куда мы будем загружать результат.
 * @param  string id_field - ИД имени свойства - по этому значению выбираем все значения.
 * @param  string sid  ИД сессии 
 * @param  string ind номер строки - нужен для правильного именования всех дивов и значений.
 * @param  string serv сервер.
 * @param  string hs хеш (токен).
 * 
 */
function load_set_of_name( options, fnn, divName_name, id_field, ind, serv, self, dt, hs ) {
//alert ('make load_set_of_name!!!!  id_field = ' + id_field);
//alert ('start  div = ' + div );
//alert ('start  load_set_div = ' + load_set_div );
	
	showLoadingIndicator();
	if (options) {
		hideLoadingIndicator();
		if (options.error > 0) {
			alert ('Ошибка!  ' + options.error_desc);
		} else {
			$(options.divName).innerHTML = options.caseFieldForm;
		}
		return;
	}
//	$('div_zone_1_'+ind).innerHTML = div;
//	load_set_div = div;
	var requestServ = 'http://' + serv+'/tools.php';
	var requestParam = 'prc=lhsn&fnn=' +  fnn + '&divn=' + divName_name +  '&nid=' + id_field + '&sf=' + self + '&dt=' + dt  + '&srv=' + serv + '&ind=' + ind + '&hs='+ hs;
//alert ('make load_set_of_name!!!!  requestParam = ' + requestParam);
	SendRequestByAjax( requestServ, requestParam, load_set_of_name);
}

function serchForm( options, table_sourse, serchResultDiv, page, serv, dt, hs){
	hideCooseBar();
	showLoadingIndicator();
	if (options) {
		if (options.error > 0) {
   			hideLoadingIndicator();
			alert ('Ошибка!  ' + options.error_desc);
		} else {
   			hideLoadingIndicator();
//alert ( 'options == ' + options.tableResult.toString()); 
//			$(serchResultDiv).innerHTML = options.tableResult;
   			if (options.tableResult != '') {
				$('dataSou').innerHTML = options.tableResult;
   			}
		}
		return;
	}

// <INPUT TYPE="radio" NAME="serch_metod" id="erch_metod" VALUE="serch_string" onchange="re_toggle('serch_fields')"> <!--{#serch_string#}-->:<BR>
//alert ( 'currentSercTypeValue == ' + currentSercTypeValue);
//	var ratio1 = document.getElementsByName ('serch_metod');
//	var ratioValue = getCheckedValue(ratio1);
// 	if (ratioValue == 'serch_advansed') {
	
	if (currentSercTypeValue == 'serch_advansed') {
		if(numb==null) {
			var sSnt = $(table_sourse).rows.length - 2;
		} else {	
	   		var sSnt = numb;
		}
		var dataArray = new Array();
		if (sSnt >0) {
			var i=0;
			do {
	//var namId = 'name_'+(i);			
	//var test = $(namId).value;			
				if($('name_'+(i))!=null) {
//alert (' serchForm name_ = ' + $('name_'+(i)).value);
					if ($('name_'+(i)).value > 0) {
						dataArray[i] = new Array();
				
						dataArray[i][0] = i;
						if($('publicName'+(i))!=null) {
							dataArray[i][1] = $('publicName'+(i)).value;
						} else {
							dataArray[i][1] = '';
						}
//alert (' serchForm serch_obj_type = ' + $('serch_obj_type').value);
						if($('serch_obj_type')!=null) {
							dataArray[i][2] = $('serch_obj_type').value; 
						} else {
							dataArray[i][2] = '';
						}
						if($('name_'+(i))!=null) {
							dataArray[i][3] = $('name_'+(i)).value;
						} else {
							dataArray[i][3] = '';
						}
						if($('type_'+(i))!=null) {
							dataArray[i][4] = $('type_'+(i)).value;
						} else {
							dataArray[i][4] = '';
						}
						if($('not_null_'+(i))!=null) {
							dataArray[i][5] = $('not_null_'+(i)).checked;
						} else {
							dataArray[i][5] = '';
						}
						if($('value_'+(i))!=null) {
							dataArray[i][6] = $('value_'+(i)).value;
						} else {
							dataArray[i][6] = '';
						}
						if($('minValue_'+(i))!=null) {
							dataArray[i][7] = $('minValue_'+(i)).value;
						} else {
							dataArray[i][7] = '';
						}
						if($('maxValue_'+(i))!=null) {
							dataArray[i][8] = $('maxValue_'+(i)).value;
						} else {
							dataArray[i][8] = '';
						}
						if($('order_'+(i))!=null) {
							dataArray[i][9] = $('order_'+(i)).checked;
						} else {
							dataArray[i][9] = '';
						}
						if($('variable_'+(i))!=null) {
							dataArray[i][10] = $('variable_'+(i)).value;
						} else {
							dataArray[i][10] = '';
						}
					}
				}
	//alert (' serchForm dataArray = ' + dataArray.toString());
				i++;
			} while (i <= sSnt)
		}
		if (dataArray.length == 0) {
   			hideLoadingIndicator();
			alert ('Вы не определили параметры поиска! искать нечего :-( ');
			return;
		}
		var dataJson = Json.toString(dataArray);
	} else {
		var dataJson = $('keyword2Serch').value;
		if (dataJson.length == 0) {
   			hideLoadingIndicator();
			alert ('Вы не определили параметры поиска! искать нечего :-( ');
			return;
		}
		
	}
//alert ('make load_set_of_name!!!!  dataArray = ' + dataArray.toString());
//alert ('make load_set_of_name!!!!  dataJson = ' + dataJson.toString());
//alert (' stuffInvoice2 work Now serv = ' + serv + ' ' + sid +  ' ' + hs + ' ' + dataJson.toString());
//    SendRequestByAjax( serv+'tools.php', 'prc=invoice2&sid=' + sid + '&hs=' + hs + '&srv=' + serv + '&cnt='+sSnt+ '&dta=' + dataJson , stuffInvoice2);
	var requestServ = 'http://' + serv+'/tools.php';
	var requestParam = 'prc=ssf&dt=' + dt  + '&pg=' + page + '&st=' + currentSercTypeValue + '&srv=' + serv + '&hs='+ hs + '&dta=' + dataJson;
//alert ('make load_set_of_name!!!!  requestParam = ' + requestParam);
	SendRequestByAjax( requestServ, requestParam, serchForm);
}



