// global vaiables
var box;
var selArr = new Array();
var qsParm = new Array();
var store = new Array();
var preserve = new Array();

function Populate2()
{
	box = document.getElementById('ClientGroups');

	window.onload = fxnCaller;

	selArr = getSelected(box);
	var sl = selArr.length;
										
	if(selArr.length==0)
	{
		return;
	}
					
	var box2 = document.CompanySearch.SpecialismGroups;
	clearcombo();
	for(var j=0;j<sl;j++)
	{
		var k = selArr[j].index - 1;
		if(k==-1)
		{
			clearcombo();
			continue;
		}
		
		var list = new Array();
		list = store[k];
											
		var b2l = box2.options.length;
		for(var i=0; i<list.length; i+=2)
		{
			box2.options[b2l + (i/2)] = new Option(list[i],list[i+1]);
			if(list[i+1].indexOf(',') > 0)
			{
				box2.options[b2l + (i/2)].selected = true;
			}
		}
	}

	for(var p=0;p<preserve.length;p++)
	{
		for(q=0;q<box2.length;q++)
		{
			if(box2.options[q].value==preserve[p].value)
			{
				box2.options[q].selected=true;
			}
		}
	}
}

function getSelected(opt) 
{
	var selected = new Array();
	var index = 0;
	for (var intLoop=0; intLoop < opt.length; intLoop++) 
	{
		if (opt[intLoop].selected) 
		{
			index = selected.length;
			selected[index] = new Object;
			selected[index].value = opt[intLoop].value;
			selected[index].index = intLoop;
		}
	}
	return selected;
}

function clearcombo()
{
	for(var i=document.CompanySearch.SpecialismGroups.options.length-1;i>=0;i--)
	{
		document.CompanySearch.SpecialismGroups.options[i] = null;
	}
	document.CompanySearch.SpecialismGroups.selectedIndex = -1;
}

function removeFromBox1()
{	
	var box1 = document.getElementById('ClientGroups');
	var box2 = document.getElementById('SpecialismGroups');
	
	for(var x = 0; x<= box2.options.length-1; x++)
	{
		if(box2.options[x].value.indexOf(',')>0)
		{							
			for(var y = 0; y<=box1.options.length-1; y++)
			{
				if(box1.options[y].value==box2.options[x].value)
				{
					box1.options[y].selected = box2.options[x].selected;
				}
			}
		}
	}
}
			
function qs() 
{
	var query = window.location.search.substring(1);
	var parms = query.split('&');
	for (var i=0; i<parms.length; i++) 
	{
		var pos = parms[i].indexOf('=');
		if (pos > 0) 
		{
			var key = parms[i].substring(0,pos);
			var val = parms[i].substring(pos+1);
			qsParm[key] = val;
		}
	}
}

function fxnCaller()
{
	qs();
	ReviseSearchPopulate();
}

function ReviseSearchPopulate()
{
	if(qsParm['REVISESEARCH']==1)
	{
		document.CompanySearch.ClientGroups.options[0].selected=false;
		var tmpArr = new Array();
		var strQuery = window.location.search.substring(1);
		var strParams = strQuery.split('&');
		var strCG='';
		var strRegion = '';
			
		for(var i = 0; i<strParams.length; i++)
		{
			var pos = strParams[i].indexOf('=');
			if(pos > 0)
			{
				var theParam = strParams[i].substring(0,pos);
				var theValue = strParams[i].substring(pos+1);
							

				switch(theParam)
				{
					case 'Keywords':
						document.CompanySearch.Keywords.value = theValue;
						break;
									
					case 'Local Authority Regions':					
						var box1 = document.getElementById('LocalAuthority');
						for(var m = 0; m<box1.options.length-1; m++)
						{
							if(box1.options[m].value==theValue)		
							{
								box1.options[m].selected = true;
							}
						}				
						break;

					case 'Client Groups':
						strCG += ',' + theValue;
						break;

					case 'Region':
						if(TrimString(theValue) != '')
						{
							strRegion += ',' + theValue;
						}
						break;		
				}
			}
		}

		if(TrimString(strRegion) != '')
		{
			var box4 = document.CompanySearch.Region;
			for(var q=0; q<= box4.options.length-1; q++)
			{
				if(strRegion.indexOf(box4.options[q].value) >= 0 && box4.options[q].value != '')
				{
					box4.options[q].selected=true;
					strRegion = strRegion.replace(box4.options[q].value,'');
				}
			}
		}

		var box2 = document.CompanySearch.ClientGroups;								
		for(var intCG=0; intCG <= box2.options.length-1; intCG++)
		{
			if(strCG.indexOf(box2.options[intCG].value) >= 0)
			{				
				box2.options[intCG].selected = true;
				strCG = strCG.replace(box2.options[intCG].value,'');
			}
		}
		strCG = TrimString(strCG);
		
		var remArr = new Array();
		remArr = strCG.split(',');
		
		var box3 = document.CompanySearch.SpecialismGroups;
		var intTempSel = '';

		for(var intRem=0; intRem<=remArr.length-1; intRem++)
		{
			for(var intCG=0; intCG<=box2.options.length-1; intCG++)
			{
				if(box2.options[intCG].selected!=true && box2.options[intCG].value.indexOf(remArr[intRem])>=0 && TrimString(remArr[intRem]) != '' && TrimString(remArr[intRem]) != ',')
				{
					box2.options[intCG].selected = true;
					intTempSel = intTempSel + intCG + ',';
				}
			}
		}
					
		box2.onchange();

		var tempsel = new Array();
		intTempSel = TrimString(intTempSel);
				
		if(TrimString(intTempSel.substring(0,intTempSel.length-1))=='')
		{
			return;
		}

		tempsel = TrimString(intTempSel.substring(0,intTempSel.length-1)).split(',');
				
		for(var y=0; y<=tempsel.length-1; y++)
		{
			box2.options[tempsel[y]].selected = false;
		}

					

		for(var intRem=0; intRem<=remArr.length-1; intRem++)
		{
			if(TrimString(remArr[intRem]) != '' && TrimString(remArr[intRem]) != ',')
			{

				for(var intSG=0; intSG<=box3.options.length-1; intSG++)
				{
					var bIsSupposedToBeSelected = 0;
					
					if(box3.options[intSG].value.indexOf(remArr[intRem])>=0 && box3.options[intSG].value.length > remArr[intRem].length )
					{																				
						//Find out if this parent item is selected in CG box.  If it is NOT selected, then deselect this.														
						for(yy=0;yy <= box2.options.length-1; yy++)
						{
							if(box2.options[yy].value==box3.options[intSG].value && box2.options[yy].selected==true)
							{ 
								bIsSupposedToBeSelected = 1;
							}
						}

						if(bIsSupposedToBeSelected!=1)
						{
							box3.options[intSG].selected=false;
						}
					}
												
					if(box3.options[intSG].value==remArr[intRem])
					{
						box3.options[intSG].selected=true;
					}
				}
			}																																																	
		}
	}		
}		

function TrimString(sInString) 
{
	sInString = sInString.replace( /^\s+/g, '' );// strip leading
	return sInString.replace( /\s+$/g, '' );// strip trailing
}

function ValidateCompanySearch()
{
	if(document.CompanySearch.location.value != '') 
	{
		if(document.CompanySearch.distance.value == -1) 
		{
			alert('If using a location, distance must be selected');
			return false;
		}
	}
	return true;
}

function ChangeSearchScreenMessage()
{
/*    var objHide = document.getElementById('SearchNotUnderway');
    objHide.style.visibility = "hidden"; */

    var objShow = document.getElementById('SearchUnderway');
    objShow.style.visibility = "visible";
    objShow.style.display = "inline";

    scroll(0,0);
}

