FPOSTFIX=new Array(); // префиксы названия фреймов
FHIDDEN=new Array(); // называния полей участвующих в параметрах выборки фрейма, но не являющиеся фреймами
COLLS=new Array(); // сколькими столбцами выводить фильтр
FRAMESCOUNT=0;

VALUES=new Array(); // возможные переменные для передачи гетом, беруться из формы inst_form
TVALUES=new Array(); // Темповые значения параметров фреймов, ассоциативный массив



// добавить постфикс названия фрейма
function AddFPOSTFIX(Name, Coll) {
	FPOSTFIX[FPOSTFIX.length]=Name;
	COLLS[COLLS.length]=Coll;
}



function GetFormValue(_formname, _name) {
	var f=document.forms[_formname] ;
	var inp=eval("document."+_formname+"."+_name);
	// var inp=eval(_formname+"."+_name) ;
	var Val;
	if (!inp) { return ""; }

	
	switch (true) {
		case ( inp.type == "text" ):
		case ( inp.type == "hidden" ):
			Val = inp.value ;
		break ;
		
		case ( inp.type == "select-one" ):
			Val = inp.options[inp.selectedIndex].value ;
		break ;    
		
		case ( ( inp.length > 0 ) && ( inp[0].type == "radio" ) ): 
		case ( ( inp.length > 0 ) && ( inp[0].type == "checkbox" ) ):
			Val = new Array() ;
			for (var i=0; i<inp.length; i++ ) {
				if ( inp[i].checked ) {
					Val[Val.length] = inp[i].value ;
				} 
			}
			Val = Val.join(",") ;
		break ;
		
		case ( inp.type == "radio" ): 
		case ( inp.type == "checkbox" ):
			Val = ( inp.checked ) ? inp.value : "" ;
		break ;  
		
		default:
			Val = "";
		break ;  
	}
	
	return Val ;
}


/*
function AddValue(Name) { // то что будет передано гетом
	VALUES[VALUES.length]=Name;
}
*/



// задаём значения параметров, по имени гет-переменной
function SetTValue(Name, Value) {
	TVALUES[Name]=Value;
}


function GetTValue(Name) { // получаем значения параметров
	if (!TVALUES[Name]) { return 0; }
	else { return TVALUES[Name]; }
}


function GetQS() {
	var QS=new Array();



	// параметры формы
	for (var i=0; i<=VALUES.length-1; i++) {
		var U=GetFormValue("inst_form", VALUES[i]);
		if (U!="" && U!=0) { QS[QS.length]=VALUES[i]+"="+U; }
		
	}
	//alert("GetQS with out location");


	// параметры заданные вручную
	for (var Key in TVALUES) {
		var Flag=true;
		for (var i=0; i<=VALUES.length-1; i++) { 
			if (Key==VALUES[i]) { Flag=false; break; }
		}
		
		if (Flag==true) {
			U=TVALUES[Key];
			if (U!="" && U!=0) { QS[QS.length]=Key+"="+U; }
			
		}
	}   


	return QS;
}




// **************** новые названия старых функций ****************
// когда нибудь, мы перепишем весь яваскрипт встройки
// у нас по два названия одной и тойже функции, что бы все было в едином стиле :)

// субмит формы, отдаёт чистый "QUERY_STRING"
function inst_submit_all(URL, Mode) { 
	var QS=new Array();
	 QS=GetQS();
	 //alert(QS);
	 
	
	if (Mode=="popup") { window.opener.document.location=URL+"?"+QS.join("&"); self.close(); }
	else if (Mode=="new") { window.open(URL+"?"+QS.join("&"),""); }
	else if (Mode=="_top" || Mode=="_blank" || Mode=="_parent") { window.open(URL+"?"+QS.join("&"),Mode); }
	else { document.location=URL+"?"+QS.join("&"); }
}




// то что будет передано гетом, имена параметров
function inst_add_qs_name(Name) {
	VALUES[VALUES.length]=Name;
}


// функция вызываемая из фрейма, для смены значений
function inst_my_s(Filter, Element) {
	FRAMESCOUNT=1;
	ChValues(Filter, Element);

	//ReloadFrames(Filter);
}


// задаём значения параметров, по имени гет-переменной
// T - вроде значит TEMP :)
function inst_set_value(Name, Value) {
	SetTValue(Name, Value);
}


// добавить постфикс названия фрейма
function inst_add_frame_name(Name, Coll) {
	AddFPOSTFIX(Name, Coll);
}

