// Set var
var is_loaded=false; // Flag to indicate if document is loaded

/************* index.php ***************/
/* Load Page into iframe */
function Search_filter()
{
	keyword = dfs.Get('keyword');
	if(keyword.length < 3) return;
	src = dfs.Get_cb('bd')[0];
	OnLoadPage(src,keyword);
}

/* Submit Filter By Criteria */
function Filter_By_Criteria()
{
	var o = dfs.of;
	o.target = "search_iframe";
	o.action = "search_iframe.php";
	o.method = "GET";
	dfs.Submit();
}

function CheckEmptySearch() {
    var ret = true;

    var search = jQuery("#search_text").val();

    if(!search) {
        jQuery("#search_warning").show();
        ret = false;
    } else {
        jQuery("#search_warning").hide();
    }
    return ret;
}

// Show selecteds criterias
function ShowSelectedCriteria()
{
	// Load Pre-Selected Values
	var _all_hv = FindAllHidden(); // Find all Fields Hidden
	
	// Set HIDDEN list_criteria with all possible Criteria,
	dfs.Set("list_criteria", _all_hv.Array2List());
	// Show Selecteds Criteria
	for(var j=0; j < _all_hv.length; j++)
	{
		if(dfs.Get(_all_hv[j])) { MountDesign(_all_hv[j]); }
	}
}

/* Find All Fields HIDDEN with Attribute BDNODE */
function FindAllHidden()
{
	try {
		var o = dfs.of;
	}
	catch(e)
	{
		return Array();
	}
	var o2;
	var _a = Array();
	var count=0;
	for(var i=0; i < o.elements.length; i++)
	{
		o2 = o.elements[i];
		if(o2.type != "hidden") continue;
		if(o2.attributes.bdnode == undefined) continue;
		if(o2.nodeName == "INPUT" && o2.getAttribute("bdnode") == "true")
		{
				_a[count] = o2.name;
				count++;
		}
	}
	return _a;
}



/*
Show only representation of boolean filter(into table), 
or parameters

tr_id: TR id
v: HTML value
*/
function TR_replace(tr_id,v)
{
	if(!tr_id) return;
	try
	{
		var TB = document.getElementById(id_table);
		if(navigator.family == "ie4") TB = TB.getElementsByTagName("TBODY")[0];
	}
	catch(e)
	{
		alert(BindVar("Table tr_id='%1' is not exist",tr_id));
		return;
	}
	if(document.getElementById(tr_id) == null)
	{
		var TR = document.createElement("TR");
		TR.setAttribute('id',tr_id);
		var TD= document.createElement("TD");
		TD.innerHTML=v;
		TR.appendChild(TD);
		TB.appendChild(TR);
	}
	else
	{
		var o = document.getElementById(tr_id);
		o.childNodes[0].innerHTML=v;
		div_param = document.getElementById("parameters_div");
		if(v == "") div_param.style.display = "none";
		else div_param.style.display = "";
	}
}


/*
On Click over Radio into parent page,
Change all values of the loaded iframe, for respective criteria
*/
function AndOr_OnClick(v)
{
	// ID iframe
	var o = search_iframe;
	// Name of loaded page into iframe
	bd_node = o.bd_node;
	// Get All values from hidden var, and change BOOLEAN value
	var hv = dfs.Get(bd_node);
	if(v == "OR")
	{
		re = new RegExp("AND", 'g');
		hv = hv.replace(re,'OR');
	}
	else
	{
		re = new RegExp("OR", 'g');
		hv = hv.replace(re,'AND');
	}
	dfs.Set(bd_node, hv);
	MountDesign(bd_node);
}

/* Get Checked value from radio box into parent(index) */
function AndOr_Get()
{
	var v = parent.dfs.Get_radio("and_or");
	if(v.length == 0) v = "AND";
	return v;
}

/*
Mount Boolean Design with Param, loaded with iframe values
node: BD_node(industry, subject...)
*/
function MountDesign(node)
{
	var boo=''; // Boolean (AND,OR,NOT);
	var ol=''; // Obj from item list
	var sel_id=''; // ID from item list
	var sel_text, content=''; // Content Text
	var _v2; // tmp var

	// Get Hidden values
	var v = dfs.Get(node); 
	v = v.replace(/^,/i,'');
	if(v.length == 0) 
	{
		TR_replace("tr_"+node, "");
		return;
	}
	// Mount Design
	var _v = v.split(',');
	for(var i=0; i < _v.length; i++)
	{
		_v2 = _v[i].split('¦');
		sel_id = _v2[0]; sel_text = _v2[1]; boo = _v2[2];
		ol = window.frames['search_iframe'].document.getElementById(node +"_"+ sel_id); // ol = object of list
		if(ol != null)
		{ 
			if(boo == "OR")	{ ol.className="item_search_OR"; if(i) content += ' <b>' +__('OR')+ '</b> '; }
			if(boo == "AND")	{ ol.className="item_search_AND"; if(i) content += ' <b>' +__('AND')+ '</b> '; }
			if(boo == "NOT")	{ ol.className="item_search_NOT"; content += ' <b>' +__('NOT')+ '</b> '; }
		}
		else
		{
			if(boo == "OR")	{ if(i) content += ' <b>' +__('OR')+ '</b> '; }
			if(boo == "AND")	{ if(i) content += ' <b>' +__('AND')+ '</b> '; }
			if(boo == "NOT")	{ content += ' <b>' +__('NOT')+ '</b> '; }
		}
		content += "<a onMouseOver='this.title=__(\"click2del\")' href='javascript:void(0)' onClick='RemoveCriteria(\""+node+"\",\""+sel_id+"\")'>"+sel_text+"</a>";
	}
	try
	{
		// Translate Node Name
		var node_t = __(node);
		content = BindVar('<b>%1</b> (%2)', node_t.toUpperCase(), content);
	}
	catch(e) { content = BindVar('<b>::: %1</b> (%2)', node.toUpperCase(), content); }
	// Show boolean parameters into HTML table
	TR_replace("tr_"+node, content);
}

/* Delete Row with Parameters */
function TR_delete(id_table)
{
	var tbl = document.getElementById(id_table);
	var lastRow = tbl.rows.length;
	if (lastRow > 0)
		tbl.deleteRow(lastRow - 1);
	else
		alert("No more rows left to delete!");
}

function RemoveCriteria(node, id)
{
	var osi = search_iframe; // Object Iframe
	// Get content of hidden field
	var v = dfs.Get(node);
	var _v2, v2=""; var c=0;
	var _v = v.split(',');
	var ol;
	for(var i=0; i < _v.length; i++)
	{
		_v2 = _v[i].split('¦');		
		if(id == _v2[0])
		{
			try
			{
				ol = osi.document.getElementById(node +"_"+ id); // ol = object of list
				ol.className='list_item';
			} catch (e) {}
			continue;
		}
		if(c) v2 += ",";
		v2 += _v[i];
		c++;
	}
	dfs.Set(node,v2);
	MountDesign(node);
}

/* On Change combo box DateRange */
function OnChange_DateRange(o)
{
	if(o.value == "other") ShowDiv('fields_calendar');
	else HideDiv('fields_calendar');
}

// Common OnSubmit
function OnSubmitSearchAll()
{
    if(!CheckEmptySearch()) {
        return false;
    }
	// Verify if combo data is "other date"
	var dt_range = dfs.Get_cb('cb_DateRange');
	if(dt_range == 'other') 
	{
		// Verify ((Date1 <= Today) and (Date2 <= Today and >= Date1))
		var ds = dfs.Get('date_start'); var de = dfs.Get('date_end');
	}
    document.search.submit();
}

// OnClick Button Save Search
inc("proto.array.js");
function SaveSearch_Criteria()
{
	var o = dfs.of;
	var _all = FindAllHidden();
	// Set Hidden Field [list_criteria]
	dfs.Set("list_criteria",_all.Array2List());
	var type = dfs.Get("type");
	o.target = "save_search";
	o.action = "search_save.php?type=" + type;
	o.method = "GET";	
	
	OpnWin("",360,230,"save_search");
	//wo = WinPopup(350,200,'save_search','about:blank');
	dfs.Submit();
}
/* Perform Search */
function DoSearch()
{
	var o = dfs.of;	
	o.action='result.php?q=' + jQuery("#search_text").val();
	o.target='';
	o.method='POST';
	
	Show_oBL();
}
/* Perform Clean All Criterias */
function DoCleanSearch()
{
	document.location.href='index.php?clean=1'
}