/*


define ('GTL_RANGE' , 1);
define ('GTL_YES_NO' , 2);
define ('GTL_STRING' , 3);
define ('GTL_RADIO' , 4);
define ('GTL_CHECKBOX' , 5);
define ('GTL_INT' , 6);

$gtype = array (
	GTL_INT => 'Single integer value',
	GTL_RANGE => 'Range integer value',
	GTL_YES_NO => 'Yes/No/All radio',
	GTL_STRING => 'Single string value',
	GTL_RADIO => 'Radio button list',
	GTL_CHECKBOX => 'Checkbox list');
	
var a = '	'+		
'types :  (range value)'+
' !0!: 		"____"  (single INTEGER value)'+
''+
' !1!: 			от "____"  до  "____"'+
''+
' !2!: (Yes/No radio)'+
'		Без разницы'+
''+
' 		Да'+
''+
' 		Нет'+
''+
' !3!: 		"____"  (single value)'+
''+
' !4!:  (radio button list)'+
'	*	 UMTS/ W-CDMA'+
''+
' 	*	CDMA 2000 1X EV-DO'+
''+
' 	*	CDMA 2000 1X'+
'  '+
' !5!:  (checkbox list) '+
'	# 850'+
''+
'	# 900'+
''+
' 	# 1800'+
''+
' 	# 1900'+
' eonf types			'+
'';
*/

function resize_div (div_id)
{
	return;
	if (document.getElementById)
	{
		var div = document.getElementById(div_id);
		div.style.display = 'none';
		div.style.height = 0;
		div.style.height = props_div.parentNode.offsetHeight;
		div.style.display = 'block';
	}
}

dTree.prototype.o = function(id) {
	var cn = this.aNodes[id];
	this.nodeStatus(!cn._io, id, cn._ls);
	cn._io = !cn._io;
	if (this.config.closeSameLevel) this.closeLevel(cn);
	if (this.config.useCookies) this.updateCookie();

	resize_div('props_div');
};

function open_tree ()
{
	wizard.ts.value = 1;
	tree.openAll();
	resize_div('props_div');
}

function close_tree ()
{
	wizard.ts.value = 0;
	tree.closeAll();
	resize_div('props_div');
}

function open_group (group_id)
{
	var g = props_div ? groups[group_id] : null;
	if (g)
	{
		wizard.cg.value = group_id;
		tree.openTo(group_id, 1);
		resize_div('props_div');

		var type;
		var props_html = '';

		for (var i = 0; i < g['props'].length; i++)
		{
			var p = g['props'][i];
			props_html +='<a name="p' + p['prop_id'] + '"></a><p class="caption_bg">' + p['name'] + '</p>\n';

			var type;
			var f = 0;
			var t = 0;
			var vals = p['vals'];
			var r = search_rec(rules, 'prop_id', p['prop_id']);

			if (isSingle((type = p['type'])))
			{
				if (r)
				{
					f = r['vals'][0]['f'];
					t = r['vals'][0]['t'];
				}

				if ((type == 1) || (type == 3) || (type == 6))
				{
					props_html += '<p class="caption">от&nbsp;<input name="p' + p['prop_id'] + '_f" value="';

					if (f)
					{
						props_html += f;
					}

					props_html += '" type="text" size="4" onchange="change_rule(' + g['group_id'] + ', ' + p['prop_id'] + ', ' + type + ', \'' + vals[0]['val_id'] + '\');">&nbsp;до&nbsp;<input name="p' + p['prop_id'] + '_t" value="';

					if (t)
					{
						props_html += t;
					}

					props_html += '" type="text" size="4" onchange="change_rule(' + g['group_id'] + ', ' + p['prop_id'] + ', ' + type + ', \'' + vals[0]['val_id'] + '\');">';
					
					if (p['cmnt'])
					{
						props_html += '&nbsp;(' + p['cmnt'] + ')';
					}

					props_html += '</p>\n';
				} 
				
				else if (type == 2) 
				{
					props_html += '<p class="caption"><input id="p' + p['prop_id'] + '_" name="p' + p['prop_id'] + '" value="" type="radio" onclick="change_rule(' + g['group_id'] + ', ' + p['prop_id'] + ', ' + type + ', \'' + vals[0]['val_id'] + '\');">&nbsp;<label for="p' + p['prop_id'] + '_">Без разницы</label></p>\n';
					props_html += '<p class="caption"><input id="p' + p['prop_id'] + '_1" name="p' + p['prop_id'] + '" value="1" type="radio"';
					if (r && f)
					{
						props_html += ' checked';
					}
					props_html += ' onclick="change_rule(' + g['group_id'] + ', ' + p['prop_id'] + ', ' + type + ', \'' + vals[0]['val_id'] + '\');">&nbsp;<label for="p' + p['prop_id'] + '_1">Да</label></p>\n';
					props_html += '<p class="caption"><input id="p' + p['prop_id'] + '_0" name="p' + p['prop_id'] + '" value="0" type="radio"';
					if (r && !f)
					{
						props_html += ' checked';
					}
					props_html += ' onclick="change_rule(' + g['group_id'] + ', ' + p['prop_id'] + ', ' + type + ', \'' + vals[0]['val_id'] + '\');">&nbsp;<label for="p' + p['prop_id'] + '_0">Нет</label></p>\n';
				}
			} else {
			/*	
				else if ((type == 3) || (type == 6))
				{
					props_html += '<p class="caption"><input name="p' + p['prop_id'] + '_f" value="';

					if (f)
					{
						props_html += f;
					}

					props_html += '" type="text" size="4" onchange="change_rule(' + g['group_id'] + ', ' + p['prop_id'] + ', ' + type + ', \'' + vals[0]['val_id'] + '\');">&nbsp;';

					if (p['cmnt'])
					{
						props_html += '&nbsp;(' + p['cmnt'] + ')';
					}

					props_html += '</p>\n';
				}
			*/	
				var selected_vals = [];
				if (r)
				{
					selected_vals = r['vals'];
				}
				type = p['type'];
				if ((type == 4) || /*
				{
					for (var j = 0; j < vals.length; j++)
					{
						var v = vals[j];
						props_html += '<p class="caption"><input id="p' + p['prop_id'] + '_' + v['val_id'] + '" name="p' + p['prop_id'] + '" value="' + v['val_id'] + '" type="radio"';
						if (search_rec(selected_vals, 'val_id', v['val_id']))
						{
							props_html += ' checked';
						}
						props_html += ' onclick="change_rule(' + g['group_id'] + ', ' + p['prop_id'] + ', ' + type + ', 0);">&nbsp;<label for="p' + p['prop_id'] + '_' + v['val_id'] + '">' + v['name'] + '</label></p>\n';
					}
				}
				else if*/ ((type = p['type']) == 5))
				{
					var selected_vals = [];
					if (r)
					{
						selected_vals = r['vals'];
					}
	
					for (var j = 0; j < vals.length; j++)
					{
						var v = vals[j];
						props_html += '<p class="caption"><input id="p' + p['prop_id'] + '_' + v['val_id'] + '" name="p' + p['prop_id'] + '" value="' + v['val_id'] + '" type="checkbox"';
						if (search_rec(selected_vals, 'val_id', v['val_id']))
						{
							props_html += ' checked';
						}
						props_html += ' onclick="change_rule(' + g['group_id'] + ', ' + p['prop_id'] + ', ' + type + ', 0);">&nbsp;<label for="p' + p['prop_id'] + '_' + v['val_id'] + '">' + v['name'] + '</label></p>';
					}
				}
			}
			props_html +='\n<br>';
		}
//			props_html += '<br>';
		props_div.innerHTML = props_html;
	}
}

var rule_idx;
function search_rec (list, key_name, key_id)
{
	
	for (var i = 0; i < list.length; i++)
	{
		rule_idx = i;
		if (list[i][key_name] == key_id)
		{
			
			return list[i];
		}
	}

	return null;
}

function display_rules ()
{
	path = 'http://i.bigmir.net/img/wizard/';
	if (rules_div)
	{
		rules_html = '';
		var spc = /\s/g;

// d:pf 	var input = wizard['pf'];
// d:pf		var pf = input.value.replace(spc, '');
// d:pf		pf = parseInt(pf);
// d:pf		if (!pf || pf < 0)
// d:pf		{
// d:pf			pf = '';
// d:pf		}
// d:pf		input.value = pf;

// d:mn		var mn = wizard.mn;

		if
		(
// d:pf			pf ||
// d:mn			mn.selectedIndex >=0 ||
			rules.length
		)
		{
			rules_html += '<table cellspacing="0" cellpadding="0" class="tbTop">';
/* d:pf			if (pf)
			{
				rules_html += '<tr class="caption_bg"><td colspan="3" id="grey">Общее</td></tr>';
				rules_html += '<tr class="caption_border"><td>Цена&nbsp;</td><td>'; 
				
				if (pf) { rules_html += ' ' + pf + ' '; }

				rules_html += currency_alias + '</td><td id="lightgrey"><a href="javascript:delete_price();"><img src="' + path + 'top_delete.gif" class="borderNo"></a></td></tr>'; 
			}
*/			

/* d:mn			if (mn.selectedIndex >= 0)
			{
				
				rules_html += '<tr class="caption_bg"><td colspan="3" id="grey">Телефон</td></tr>';
			    rules_html += '<tr class="caption"><td>Производитель</td><td>';

				if (mn.length)
				{
					if (mn.options[mn.selectedIndex])
					{
						rules_html += mn.options[mn.selectedIndex].text;
					}
				}
				else
				{
					rules_html += 'Все';
				}
					rules_html += '</td><td id="lightgrey"><a href="javascript:delete_mnfs();"><img src="' + path + 'top_delete.gif" class="borderNo"></a></td></tr>';
			}
*/			
			
//			rules[rules.length] =
//			{
//				'prop_id': prop_id,
//				'group_id': group_id,
//				'vals': vals
//			};	
			var groupRules = new Object();
//			deb(rules,' Rules');

			for (var i = 0; i < rules.length; i++)
			{	
				var gid = rules[i]['group_id'];
//				alert ('I:!'+i+'!  gid:!'+gid+'!  next gArr');
//				alert (groupRules[gid]);
				
				if (undefined == groupRules[gid]) {
					groupRules[gid] = Array();
					groupRules[gid][0] = i;
//					alert ('new gArr');
				} else {
//					alert ('exiting  gArr');
					groupRules[gid][groupRules[gid].length] = i;
				}
//				deb(groupRules[gid], 'Gid');
//				alert ('I222:!'+i+'!  next gArr');
//				alert (groupRules[gid]);
			}
//			alert (' WALKIING GI');
//			deb(groupRules,' groupRules');
			for (gid in groupRules) 
			{
//				var g = groupRules[gi];
//				alert ('gi:!'+gid+'!  next gArr');
				rules_html += '<tr class="caption_bg"><td colspan="3" id="grey">' + groups[gid]['name'] + '</td></tr>';
				var groupPointer = groupRules[gid];
//				deb(groupPointer, 'groupPointer');
//				alert(groupPointer);
				for (var pi = 0; pi < groupPointer.length; pi++) 
				{
					i = groupPointer[pi];
//					alert ('pi:!'+pi+'!   i:!'+i+'!');
//				for (var i = 0; i < rules.length; i++)
				
					var r = rules[i];
					var g = groups[r['group_id']];	// moved to top level
					var p = search_rec(g['props'], 'prop_id', r['prop_id']);
					rules_html += '<tr class="' + ((pi < (groupPointer.length - 1)) ? 'caption_border' : 'caption') +'"><td><a href="#p' + r['prop_id'] + '" onclick="open_group(' + r['group_id'] + ');">' + p['name']+ '</a></td><td>';
					
					for (var j = 0; j < r['vals'].length; j++)
					{
						var v = r['vals'][j];
						
						if ((p['type'] == 1) || (p['type'] == 6))
						{
							if (v['f'])
							{
								rules_html += 'от ' + v['f'] + ' ';
							}

							if (v['t'])
							{
								rules_html += 'до ' + v['t'] + ' ';
							}

							if (p['cmnt'])
							{
								rules_html += '(' + p['cmnt'] + ')';
							}
						} else 	if ((p['type'] == 3))
						{
							if (v['f'])
							{
								rules_html += v['f'] + ' ';
							}

							if (p['cmnt'])
							{
								rules_html += '(' + p['cmnt'] + ')';
							}
						} else if (p['type'] == 2)
						{
							if (v['f'])
							{
								rules_html += 'Да';
							}
							else
							{
								rules_html += 'Нет';
							}
						} else if ((p['type'] == 4) || (p['type'] == 5))
						{
							v = search_rec(p['vals'], 'val_id', v['val_id']);
							rules_html += v['name'] + '<br>';
						}
					}
	
					rules_html += '</td><td id="lightgrey"><a href="javascript:delete_rule(' + i + ');"><img src="' + path + 'top_delete.gif" class="borderNo"></td></tr>';
				}
			}
			rules_html += '</table>';
		}

		rules_div.innerHTML = rules_html;
	}	
}

function deb(gid, n) {
	return;
	var s="STARTING  DEBUG OF +_ "+n+" _+\n";
	for(k in gid ) {
		s += ' '+n+'['+k+'] = ' + gid[k] + "\n";
	}
//	alert(s);
}

function clear_rules ()
{
	if (window.confirm('Очистить список выбранных свойств?'))
	{
// d:pf		wizard.pf.value = '';
// d:mn		wizard.mn.selectedIndex = -1;

		rules = [];
		display_rules();

		if (wizard.cg.value)
		{
			open_group(wizard.cg.value);
		}
	}
}

function delete_rule (idx)
{
	var r = rules[idx];
	var g = groups[r['group_id']];
	var p = search_rec(g['props'], 'prop_id', r['prop_id']);

	if (window.confirm('Удалить свойство "' + g['name'] + ' / ' + p['name'] + '"?'))
	{
		rules.splice(idx, 1);
		display_rules();

		if (r['group_id'] == wizard.cg.value)
		{
			open_group(r['group_id']);
		}
	}
}

function delete_price ()
{
	if (window.confirm('Удалить цену?'))
	{
// d:pf		wizard.pf.value = '';
		display_rules();
	}
}

function delete_mnfs ()
{
	if (window.confirm('Удалить список разделов?'))
	{
// d:mn		wizard.mn.selectedIndex = -1;
		display_rules();
	}
}

function change_rule (group_id, prop_id, type, val_id)
{
	var r = search_rec(rules, 'prop_id', prop_id);
	var add_rule = 0;
	var vals;

	
	if ((type == 1) || (type == 6)) {
		var spc = /\s/g;

		var input = wizard['p' + prop_id + '_f'];
		var f = input.value.replace(spc, '');
		f = parseFloat(f);
		if (!f || f < 0)
		{
			f = '';
		}
		input.value = f;

		input = wizard['p' + prop_id + '_t'];
		var t = input.value.replace(spc, '');
		t = parseFloat(t);
		if (!t || t < 0)
		{
			t = '';
		}
		input.value = t;


		if (f || t)
		{
			add_rule = 1;

			vals =
			[
				{
					'val_id': val_id,
					'f' : f || 0,
					't': t || 0
				}
			];
		}
	} else if ((type == 3)) {
		var spc = /\s/g;

		var input = wizard['p' + prop_id + '_f'];
		var f = input.value.replace(spc, '');
		
		f = f + '';
		
		if (!f)
		{
			f = '';
		}
		input.value = f;

		if (f)
		{
			add_rule = 1;

			vals =
			[
				{
					'val_id': val_id,
					'f' : f || 0
				}
			];
		}
	} else if (type == 2) {
		var radiobuttons = wizard['p' + prop_id];
		
		
		if (!radiobuttons[0].checked)
		{
			var f = 0;
			if (radiobuttons[1].checked)
			{
				f = 1;
			}

			add_rule = 1;

			vals =
			[
				{
					'val_id': val_id,
					'f' : f,
					't': 0
				}
			];
		}
	} else if ((type == 5) || (type == 4)) {
		var checkboxes = wizard['p' + prop_id];

		if (checkboxes.length)
		{
			vals = [];
			for (i = 0; i < checkboxes.length; i++)
			{
				if (checkboxes[i].checked)
				{
					vals[vals.length] =
					{
						'val_id': checkboxes[i].value,
						'f' : 0,
						't': 0
					};
				}
			}

			if (vals.length)
			{
				add_rule = 1;
			}
		}
		else
		{
			if (checkboxes.checked)
			{
				add_rule = 1;

				vals =
				[
					{
						'val_id': checkboxes.value,
						'f' : 0,
						't': 0
					}
				];
			}
		}
	}


	if (add_rule)
	{
		if (r)
		{
			r['vals'] = vals;
		}
		else
		{
			rules[rules.length] =
			{
				'prop_id': prop_id,
				'group_id': group_id,
				'vals': vals
			};
		}
	}
	else
	{
		if (r)
		{
			rules.splice(rule_idx, 1);
		}
	}


	display_rules();
}

function show_help ()
{
	if (props_div)
	{
		wizard.cg.value = 0;
		if (tree.selectedNode)
		{
			var node_id = 's' + tree.obj + tree.selectedNode;
			document.getElementById(node_id).className = 'node';
		}

		resize_div('props_div');
		props_div.innerHTML = help_html;
	}
}

function show_page (v)
{
	wizard.pg.value = v;
	if (props_div) { props_div.innerHTML = ''; }

	wizard.submit();
}

function order_by (v)
{
	wizard.pg.value = 1;
	wizard.ob.value = v;
	if (props_div) { props_div.innerHTML = ''; }

	wizard.submit();
}

function iHidden(name, value) 
{
	return '<input type="hidden" name="'+name+'" value="'+value+'">'+"\n";
}

function submit_form ()
{
	wizard.pg.value = 1;
	wizard.ob.value = 'n';
	if (props_div) { props_div.innerHTML = ''; }

	
	var i = 0;
	var max_i = rules.length;
	var out = '';
	while (i < max_i)
	{
		var r = rules[i];
		var g = groups[r['group_id']];
		var p = search_rec(g['props'], 'prop_id', r['prop_id']);

		if (isSingle(p['type']))
		{
			if ((p['type'] == 1)  || (p['type'] == 6)) // 1 , 6 
			{		
				out += iHidden('Vf['+r['vals'][0]['val_id']+']', r['vals'][0]['f']);
				out += iHidden('Vt['+r['vals'][0]['val_id']+']', r['vals'][0]['t']);
			}
			else // 2 , 3
			{
				out += iHidden('V['+r['vals'][0]['val_id']+']', r['vals'][0]['f']);
			}
		}
		else // 4 , 5
		{
			var j = 0;
			var max_j = r['vals'].length;

			while (j < max_j)
			{
				out += iHidden('Vb['+r['vals'][j]['val_id']+']', 1);
				j++;
			}
		}
		i++;
	}
//	alert(out);
	props_div.innerHTML = out;
	return true;
}