var CatsParentWasInit = false;
var CatsParentState = 'Close';
var ChoosenParentID = -1;
var divSearchEngineConteiner;
var PName = '';

divSearchEngineConteiner = document.createElement('div'); 
divSearchEngineConteiner.setAttribute('id','divSearchEngineConteiner');
var InitTxt = document.createTextNode('בחר ...');

//Create Parent Categories
function CreateParentCategories()
{
	
	var divParentChoosenCategoryConteiner;//Contenier for divParentNameTextBox and divImgArrow
	var txt;//Text in divParentNameTextBox
	var divParentNameTextBox;//Conteiner for txt
	var divImgArrow;//Conteiner for img arrow
	
	divParentChoosenCategoryConteiner = document.createElement('div');
	divParentChoosenCategoryConteiner.setAttribute('id','divParentChoosenCategoryConteiner');
	
	divParentNameTextBox = document.createElement('div'); 
	divParentNameTextBox.setAttribute('id','divParentNameTextBox');
	
	txt = InitTxt;
	divImgArrow = document.createElement('div');
	divImgArrow.setAttribute('id','divImgArrow');
	
	divParentNameTextBox.appendChild(txt);
	divParentChoosenCategoryConteiner.appendChild(divImgArrow);
	divParentChoosenCategoryConteiner.appendChild(divParentNameTextBox);
	divParentChoosenCategoryConteiner.onclick = function(){SetParents();};
	divSearchEngineConteiner.appendChild(divParentChoosenCategoryConteiner);
	document.getElementById(ParentID).appendChild(divSearchEngineConteiner);
	document.getElementById(ChildID).className = 'ComboViewChildrenCategories';
}

//Create all Parents Categories
function SetParents()
{
	if(!CatsParentWasInit)
	{
		CatsParentWasInit = true;
		var nobr;
		var divDropDownPTable;//Conteiner for Parents Categories
		var Table;
		var TBody;
		var tr;
		var td;
		
		divDropDownPTable = document.createElement('div'); 
		divDropDownPTable.setAttribute('id','divDropDownPTable');
		Table = document.createElement('table');
		Table.setAttribute('id','tblParentsCat'); 
		Table.cellPadding = "2px";
		Table.cellSpacing = "0px";
		TBody = document.createElement('tbody'); 
		
		//Others categories
		for(i=0;i<CatPIDs.length;i++)
		{
			//If this parent category
			if(CatPIDs[i] == CatIDs[i])
			{
				tr = document.createElement('tr'); 
				tr.setAttribute("id","trParentCat_" + CatPIDs[i]);
				tr.onclick = function(){SetParentChilds(this.id);};
				
				//Set CatParentName
				td = document.createElement('td'); 
				td.setAttribute("id", "tdParentName_" + CatPIDs[i]);
				td.setAttribute('class','tdParentName');
				td.appendChild(document.createTextNode(CatNames[i]));
				tr.appendChild(td);
				
				
				//Set JobsCount Number
				td = document.createElement('td'); 
				td.setAttribute("id", "tdParentJobsCount_" + CatPIDs[i]);
				td.setAttribute('class','tdParentJobsCount');
				nobr = document.createElement('nobr');
				nobr.appendChild(document.createTextNode("(" + CatJobsCount[i] + ")"));
				td.appendChild(nobr);
				td.setAttribute('align','left');
				tr.appendChild(td);
				tr.onmouseover = function(){$(this).attr('class','RowParentCatMarked');};
				tr.onmouseout = function(){$(this).attr('class','RowParentCatUnMarked');};
				TBody.appendChild(tr);
				
			}
		}	
		Table.appendChild(TBody);
		divDropDownPTable.appendChild(Table);
		divSearchEngineConteiner.appendChild(divDropDownPTable);
		document.getElementById(ParentID).appendChild(divSearchEngineConteiner);
	}

	if(CatsParentState == 'Close')
	{
		CatsParentState = 'Open';
		$('#divDropDownPTable').show();
	}
	else
	{
		CatsParentState = 'Close';
		$('#divDropDownPTable').hide();
	}
}

//Create Children of Parent category
function SetParentChilds(parentId)
{
	var parentFullID = parentId;
	parentId = parentId.split('_')[1];

	//Unmark all Parents categories
	$('#tblParentsCat tr').attr('class', 'RowChildCatUnMarked');
	
	//Replace 'Choose...' with Current Parent Name
	PName = $('#tblParentsCat tr[@id="'+ parentFullID +'"] td[@id^="tdParentName_"]').get(0).innerHTML;
	$('#divParentNameTextBox').html(PName);
	
	CatsParentState = 'Close';
	$('#divDropDownPTable').hide();
	
	//Market  divParentChoosenCategoryConteiner
	$('#divParentChoosenCategoryConteiner').attr('class','RowParentCatMarked')
	
	//Save parentId
	ChoosenParentID = parentId;
	
	InnerCategoryChildern(parentId);
	
}
function InnerCategoryChildern(parentId)
{
	//Conteiner for Children Categories
	var nobr;
	var divChildCatConteiner;
	var checkbox;
	var Table;
	var TBody;
	var tr;
	var td;
	
	divChildCatConteiner = document.createElement('div'); 
	divChildCatConteiner.setAttribute('id','divChildCatConteiner');
	Table = document.createElement('table');
	Table.setAttribute('id','tblChildCat'); 
	Table.cellPadding = "0px";
	Table.cellSpacing = "0px";
	TBody = document.createElement('tbody'); 
	document.getElementById(ChildID).innerHTML = '';
	
	for(i=0;i<CatPIDs.length;i++)
	{
		if(CatPIDs[i]==parentId && CatIDs[i] != parentId)
		{
			tr = document.createElement('tr'); 
			tr.setAttribute("id","trChildCat_" + CatIDs[i]);
			tr.onclick = function(){SetCategoryMarkedRow(this.id);};
			
			//Set checkbox
			td = document.createElement('td'); 
			td.setAttribute("id", "tdChildChk_" + CatIDs[i]);
			checkbox = document.createElement('input'); 
			checkbox.type = "checkbox";
			checkbox.setAttribute('id','chkChildCat_' + CatIDs[i]);
			checkbox.onclick = function(){SetCategoryMarkedRow(this.id);};
			checkbox.setAttribute('value',CatIDs[i]);
			td.appendChild(checkbox);
			tr.appendChild(td);
			
			//Set CatChildName
			td = document.createElement('td'); 
			td.setAttribute("id", "tdChildName_" + CatIDs[i]);
			td.setAttribute("class","tdChildName");
			td.appendChild(document.createTextNode(CatNames[i]));
			tr.appendChild(td);
			
			//Set JobsCount Number
			td = document.createElement('td'); 
			td.setAttribute("id", "tdChildJobsCount_" + CatIDs[i]);
			td.setAttribute("class","tdChildJobsCount");
			nobr = document.createElement('nobr');
			nobr.appendChild(document.createTextNode("(" + CatJobsCount[i] + ")"))
			td.appendChild(nobr);
			td.setAttribute('align','left');
			tr.appendChild(td); 
			TBody.appendChild(tr);
		}
	}
	Table.appendChild(TBody);
	divChildCatConteiner.appendChild(Table);
	document.getElementById(ChildID).appendChild(divChildCatConteiner);
	document.getElementById(ChildID).className = 'ComboViewChildrenCategories';
}

//Marked or Unmarked Row
function SetCategoryMarkedRow(CatID)
{
	CatID = CatID.split('_')[1];
	
	//Check if checkbox checked
	if($('#chkChildCat_'+CatID).attr('checked'))
		$('#chkChildCat_'+CatID).attr('checked',false);
	else
		$('#chkChildCat_'+CatID).attr('checked',true);
		
	//Unmarked all rows
	$('#tblChildCat tr input[@type="checkbox"]').parent().parent().attr('class', 'RowChildCatUnMarked');
	
	//Marked rows where checkbox is cheked
	$('#tblChildCat tr input[@type="checkbox"][@checked]').parent().parent().attr('class', 'RowChildCatMarked');
}
//Return Values to Parent JS file
function GetSearchResultsCategories()
{
	var positionParent = ChoosenParentID;
	var categoriesIDs = '';

	//User doesn't choose category
	if(positionParent == '-1')
		return positionParent;
		
	//Create ChildernIDs // -> ChildID 
	$('#' + ChildID +' input[@type="checkbox"][@checked]').each(
		function()
		{
			//Create categories string IDs
			categoriesIDs += this.value + ',';
		}
	);
	
	if(categoriesIDs != '')
		categoriesIDs =   categoriesIDs.substring(0, categoriesIDs.length - 1);
	else
	{
		for(i=0;i<CatIDs.length;i++)
		{
			if(CatPIDs[i] == positionParent && CatPIDs[i] != CatIDs[i])
				categoriesIDs += CatIDs[i] + ',';
		}
		//There is no children were choosen. Create Agent for Parent
		//categoriesIDs = positionParent;
		categoriesIDs =   categoriesIDs.substring(0, categoriesIDs.length - 1);
	}
	return categoriesIDs;
}
//Get ParentID
function GetSearchEngineParentCategory()
{	
	return ChoosenParentID;
}
//Set ParentID and Name
function SetSearchEngineParentCategoryValues(ParentId,ParentName)
{	
	ChoosenParentID = ParentId;
	$('#divParentNameTextBox').html(ParentName);
	$('#divParentChoosenCategoryConteiner').attr('class','RowParentCatMarked');
	document.getElementById(ChildID).innerHTML = '';
}
//Set Parent category ID and Name
function SetSearchEngineParentID(ParentId)
{	
	if(ParentId != '')
	{
		ChoosenParentID = ParentId;
		for(i=0;i<CatPIDs.length;i++)
		{
			if((CatPIDs[i] == CatIDs[i] && ParentId == CatIDs[i]))
			{
				$('#divParentNameTextBox').html(CatNames[i]);
				$('#divParentChoosenCategoryConteiner').attr('class','RowParentCatMarked');
				break;
			}
		}
		
	}
}
//Set Children categories
function SetSearchEngineChildrenCategoryValues(ParentID,ChildrenIDs)
{
	var i; 
	var arrChildrenIDs = new Array();
	InnerCategoryChildern(ParentID);	
	
	if(ChildrenIDs != '')
	{	
		if(ChildrenIDs.indexOf(',') == -1)
			arrChildrenIDs[0] = ChildrenIDs;
		else
			arrChildrenIDs = ChildrenIDs.split(',');
			
		for(i=0;i<arrChildrenIDs.length;i++)
		{
			$('#' + ChildID +' input[@type="checkbox"]').each(
					function()
					{
						if(this.value == arrChildrenIDs[i])
							$(this).attr('checked',true);
						
					}
			);
		}	
		$('#tblChildCat tr input[@type="checkbox"][@checked]').parent().parent().attr('class', 'RowChildCatMarked');
		SetSearchEngineParentID(ParentID);
	}
	
}

//Get Categories Parent Name
function GetCategoryParentName()
{
	if (ChoosenParentID == '-1')
		return 'הכל';
	else
		return $('#divParentNameTextBox').html();
}

//Get Children Name
function GetCategoryChildrenName()
{
	var categoriesNames = '';
	
	//Get Children Names
	$('#' + ChildID +' input[@type="checkbox"][@checked]').each(
		function()
		{
			//Create categories string Names
			categoriesNames += $('#tdChildName_' + this.value).html() + '<br/>';
		}
	);
	
	if(categoriesNames == '')
		return 'הכל';
		
	return categoriesNames;
}


