
var myWin='';
var content=0;
var idfield=0;
var leftpos=0;

function tooltip(content, idfield,leftpos)
{
	var curleft = curtop = 0;
	var anchorNode = document.getElementById(idfield);
	var obj2=document.getElementById('hintbox');
	
	obj1=document.getElementById('new_');
	obj1.innerHTML="<div id='forarrow'><img src='/images/spacer.gif' alt=''></div>"+content;
	obj2.style.visibility='visible';
	
	
	jsui.showAt(obj2,anchorNode,["rt","lt"],[12,0]);

	/*obj=document.getElementById(idfield);
	var coords = js.pos.toCoords(obj);
	obj2.style.top=coords.y+"px";

	if (obj.offsetParent)
	{
		obj2.style.left=leftpos;
		obj1=document.getElementById('new_');
		obj1.innerHTML="<div id='forarrow'><img src='../images/spacer.gif' alt=''></div>"+content;
		obj2.style.visibility='visible';
		content=content;
		idfield=idfield;
		leftpos=leftpos;
	}*/
}

function hidetip()
{
	dropmenuobj=document.getElementById("hintbox")
	dropmenuobj.style.visibility="hidden"
	dropmenuobj.style.left="-500px"
}

function onload_events(tocollapse, isModify)
{
	//if second section is to be shown collapsed, its done when JS is on.
	if(tocollapse)
	{
		document.getElementById('tabrg_all').style.display = "none";
		document.getElementById('expand_link').style.display = "block";
	}

	// to do when page is opened after 'modify search' link click on ASRP
	if(isModify)
	{
		updateLocalityOnload();
		updateSelectionMessageOnload();
	}
}

// function to manage ajax calls for localities when page is reloaded with prechecked locations on 'modify search' link click
function updateLocalityOnload()
{
	var location_scroll = document.getElementById('location_scroll');
	var location_chkbx_array = location_scroll.getElementsByTagName('input');
	var checkedLocalityList = document.mainform.locality_string;

	checkedLocalityList = checkedLocalityList.value;	// a hidden variable on page which contains a csv of localities to be shown checked

	checkedLocalityListArray = checkedLocalityList.split(',');

	for(var indx = 0; indx < location_chkbx_array.length; indx++)
	{
		if(location_chkbx_array[indx].checked)
		{
			var temp = location_chkbx_array[indx].value.split('|');
			var detail = temp[0] + '|location|' + temp[1];
			var location_id = document.getElementById(temp[1]);
			var counter = document.mainform.counter;

			if(temp[2] != '0')
			{
				checkUncheckDuplicateLocations(detail, 1);
				counter.value++;

				manage_optionlist(detail, location_id);
			}
		}
	}

}

// function to call relevent selection message updaters when page is loaded from 'modify search' link click
function updateSelectionMessageOnload()
{
	var budget = document.getElementById('budget_id');
	var bedroomMin = document.getElementById('bedroom_min_id');
	var bedroomMax = document.getElementById('bedroom_max_id');
	var bathroomMin = document.getElementById('bathroom_min_id');
	var bathroomMax = document.getElementById('bathroom_max_id');
	var areaMin = document.getElementById('area_min_id');

	manage_optionlist('|proptype');
	manage_optionlist('|feature');
	manage_optionlist('|ownership');
	manage_optionlist('|prop_age');
	onchange_event(budget);
	onchange_event(bedroomMin);
	onchange_event(bedroomMax);
	onchange_event(bathroomMin);
	onchange_event(bathroomMax);
	onblur_event(areaMin);
}

function onblur_event(divobj)
{
	if(divobj.name == 'keyword')
	{
		var keyword = document.getElementById('keyword_error');
		var keywordMsg = document.getElementById('keyword_msg');
		var keyword_elem = document.mainform.keyword;
		var keyword_string = trim(keyword_elem.value);
		var pattern = new RegExp("^[a-zA-Z0-9,.' \-]+$");

		if(keyword_string.length)
		{
			if(keyword_string.length > 100)
			{
				keywordMsg.style.display = "none";
				keyword.style.display = "block";
				keyword.innerHTML = "<label>&nbsp;</label><img src=\"../images/redarrow1.gif\"> <span class=\"fl\" style=\"color:#ff3300;\">Please specify the keyword search criteria within 100 characters</span>";
			}
			else if(!pattern.test(keyword_string))
			{
				keywordMsg.style.display = "none";
				keyword.style.display = "block";
				keyword.innerHTML = "<label>&nbsp;</label><img src=\"../images/redarrow1.gif\"> <span class=\"fl\" style=\"color:#ff3300;\">Please specify words/phrases without any special characters. Example: Ansal, API, Omaxe, 110096</span>";
			}
			else
			{
				keywordMsg.style.display = "block";
			}
		}
		hidetip();
	}
	else if(divobj.name == 'bedroom_min' || divobj.name == 'bedroom_max')
	{
		hidetip();
	}
	else if(divobj.name == 'bathroom_min' || divobj.name == 'bathroom_max')
	{
		hidetip();
	}
	else if(divobj.name == 'area_min' || divobj.name == 'area_max' || divobj.name == 'area_unit')
	{
		var area_min = document.mainform.area_min;
		var area_max = document.mainform.area_max;
		var area_min_value = trim(area_min.value);
		var area_max_value = trim(area_max.value);
		var area_unit_div = document.getElementById('area_unit_id');
		var area_unit_value = area_unit_div.options[area_unit_div.selectedIndex].innerHTML;
		var area_error = document.getElementById('area_error');
		var status_msg = document.getElementById('area_msg');
		var msg = "No Preference";
		hidetip();
		if( area_min_value == '' )
		{
			area_min.value = area_min_value = 'Min';
		}

		if( area_max_value == '' )
		{
			area_max.value = area_max_value = 'Max';
		}

		//only check pattern if text in not Min/Max
		if( ( (area_min_value != 'Min') && (!isNum(area_min_value)) ) || ( (area_max_value != 'Max') && (!isNum(area_max_value)) ) )
		{
			msg = '';
			area_error.style.display = "block";
			area_error.innerHTML = "<label>&nbsp;</label><img src=\"/images/redarrow1.gif\"> <span class=\"fl\" style=\"color:#ff3300;\">Please select a valid area range. Eg: 1200 to 1600 Sq.Ft</span>";
		}
		else
		{

			if(area_min_value == 'Min')	{	area_min_value = 0;}
			if(area_max_value == 'Max')	{	area_max_value = 0;}

			area_min_value = parseFloat(area_min_value);
			area_max_value = parseFloat(area_max_value);

			if(area_min_value && !area_max_value)
			{
				msg = area_min_value+' '+area_unit_value+' and above';
			}
			else if( (area_min_value > area_max_value) || !isNum(area_min_value) || !isNum(area_max_value) || (area_min_value < 0) || (area_max_value < 0) )
			{
				msg = '';
				area_error.style.display = "block";
				area_error.innerHTML = "<label>&nbsp;</label><img src=\"/images/redarrow1.gif\"> <span class=\"fl\" style=\"color:#ff3300;\">Please select a valid area range. Eg: 1200 to 1600 Sq.Ft</span>";
			}
			else if(!area_min_value && area_max_value)
			{
				msg = 'Upto '+area_max_value+' '+area_unit_value;
			}
			else if( (area_min_value == area_max_value) && area_min_value && area_max_value)
			{
				msg = area_min_value+' '+area_unit_value;
			}
			else if(area_min_value && area_max_value)
			{
				msg = 'Between '+area_min_value+' to '+area_max_value+' '+area_unit_value;
			}

		}

		if(msg == '')
		{

			status_msg.style.display = "none";
		}
		else
		{
			area_error.style.display = "none";
			status_msg.style.display = "block";
			status_msg.innerHTML = "<label>&nbsp;</label>"+msg;
		}
	}
	else if(divobj.name == 'Budget')
	{
		hidetip();
	}
}

function onfocus_event(divobj)
{
	if(divobj.name == 'keyword')
	{
		var keyword = document.getElementById('keyword_error');
		var keywordMsg = document.getElementById('keyword_msg');

		if(keyword.style.display == "block")
		{
			keyword.style.display = "none";
			keywordMsg.style.display = "block";
		}

		tooltip('You can search for Builders, Brokers, specific projects by name or even by pin codes. Enter words/phrases separated by comma. Example:<br>Ansal, Omaxe,<br>Highland Greens etc', 'keyword_id','400px');
	}
	else if(divobj.name == 'bedroom_min' || divobj.name == 'bedroom_max')
	{
		tooltip('You can also set bedroom preference. Example:<br>Upto 5 or<br>2 to 5 or<br>2 and above', 'bedroom_max_id','300px');
	}
	else if(divobj.name == 'bathroom_min' || divobj.name == 'bathroom_max')
	{
		tooltip('You can also set bathroom preference. Example:<br>Upto 5 or<br>2 to 5 or<br>2 and above', 'bathroom_max_id','300px');
	}
	else if(divobj.name == 'area_min' || divobj.name == 'area_max' || divobj.name == 'area_unit')
	{
		tooltip('Set Area preference by specifying a Min & Max value.<br>Example: 1200 to 1600 Sq.Ft.<br>Or Upto 120 Sq.Mts.<br>Or 16000 Sq ft and above', 'area_unit_id','385px');

		if( ( (divobj.name == 'area_min') && (divobj.value == 'Min') ) || ( (divobj.name == 'area_max') && (divobj.value == 'Max') ) )
		{
			divobj.value = '';
		}
	}
	else if(divobj.name == 'Budget')
	{
		tooltip('You can also set budget preference. Example:<br>60 to 80 Lacs or<br>Upto 60 Lacs or<br>60 Lacs and above', 'budget_id','300px');
	}
}

function onchange_event(elemobj)
{

	if(elemobj.name == 'bedroom_min' || elemobj.name == 'bedroom_max')
	{
		var bedroom_min = document.mainform.bedroom_min;
		var bedroom_max = document.mainform.bedroom_max;
		var bedroom_min_value = parseInt(bedroom_min.value);
		var bedroom_max_value = parseInt(bedroom_max.value);
		var bedroom_error = document.getElementById('bedroom_error');
		var status_msg = document.getElementById('bedroom_msg');
		var msg = "No Preference";

		if(bedroom_min_value > bedroom_max_value)
		{
			msg = '';
			bedroom_error.style.display = "block";
			bedroom_error.innerHTML = "<label>&nbsp;</label><img src=\"/images/redarrow1.gif\"> <span class=\"fl\" style=\"color:#ff3300;\">Please select a valid range. Eg: 2 to 5</span>";
		}
		else if(bedroom_min_value && bedroom_max_value == 10)
		{
			msg = bedroom_min_value+' bedroom(s) and above';
			bedroom_error.style.display = "none";
		}
		else if(!bedroom_min_value && bedroom_max_value != 10)
		{
			msg = 'Upto '+bedroom_max_value+' bedroom(s)';
			bedroom_error.style.display = "none";
		}
		else if(bedroom_min_value == bedroom_max_value)
		{
			msg = bedroom_min_value+' bedroom(s)';
			bedroom_error.style.display = "none";
		}
		else if(bedroom_min_value && bedroom_max_value != 10)
		{
			msg = 'Between '+bedroom_min_value+' to '+bedroom_max_value+' bedroom(s)';
			bedroom_error.style.display = "none";
		}

		if(msg == '')
		{
			status_msg.style.display = "none";
		}
		else
		{
			status_msg.style.display = "block";
			status_msg.innerHTML = "<label>&nbsp;</label>"+msg;
		}
	}
	else if(elemobj.name == 'bathroom_min' || elemobj.name == 'bathroom_max')
	{
		var bathroom_min = document.mainform.bathroom_min;
		var bathroom_max = document.mainform.bathroom_max;
		var bathroom_min_value = parseInt(bathroom_min.value);
		var bathroom_max_value = parseInt(bathroom_max.value);
		var bathroom_error = document.getElementById('bathroom_error');
		var status_msg = document.getElementById('bathroom_msg');
		var msg = "No Preference";

		if(bathroom_min_value > bathroom_max_value)
		{
			msg = '';
			bathroom_error.style.display = "block";
			bathroom_error.innerHTML = "<label>&nbsp;</label><img src=\"../images/redarrow1.gif\"> <span class=\"fl\" style=\"color:#ff3300;\">Please select a valid range. Eg: 2 to 5</span>";
		}
		else if(bathroom_min_value && bathroom_max_value == 10)
		{
			msg = bathroom_min_value+' bathroom(s) and above';
			bathroom_error.style.display = "none";
		}
		else if(!bathroom_min_value && bathroom_max_value != 10)
		{
			msg = 'Upto '+bathroom_max_value+' bathroom(s)';
			bathroom_error.style.display = "none";
		}
		else if(bathroom_min_value == bathroom_max_value)
		{
			msg = bathroom_min_value+' bathroom(s)';
			bathroom_error.style.display = "none";
		}
		else if(bathroom_min_value && bathroom_max_value != 10)
		{
			msg = 'Between '+bathroom_min_value+' to '+bathroom_max_value+' bathroom(s)';
			bathroom_error.style.display = "none";
		}

		if(msg == '')
		{
			status_msg.style.display = "none";
		}
		else
		{
			status_msg.style.display = "block";
			status_msg.innerHTML = "<label>&nbsp;</label>"+msg;
		}
	}
	else if(elemobj.name == 'Budget')
	{
		var budget = document.mainform.Budget;

		var budget_value = budget.options[budget.selectedIndex].innerHTML;
		var status_msg = document.getElementById('budget_msg');

		if(budget_value == "Any Budget")
		{
			status_msg.innerHTML = "No Preference";
		}
		else
		{
			status_msg.innerHTML = budget_value;
		}

	}

}

function updateSelectionMessage(details, element)
{

	var det_array = details.split('|');
	var startindx = 1;

	if(det_array[1] == 'proptype')
	{
		var status_msg = document.getElementById('ptype_msg');
	}
	else if(det_array[1] == 'location')
	{
		var status_msg = document.getElementById('location_msg');
		startindx = 0;
	}
	else if(det_array[1] == 'locality')
	{
		var status_msg = document.getElementById('locality_msg');
	}
	else if(det_array[1] == 'feature')
	{
		var status_msg = document.getElementById('feature_msg');
	}
	else if(det_array[1] == 'ownership')
	{
		var status_msg = document.getElementById('ownership_msg');
	}
	else if(det_array[1] == 'prop_age')
	{
		var status_msg = document.getElementById('age_msg');
	}

	var msg = '';
	if(det_array[1] == 'location')
	document.getElementById('location_msg').innerHTML = '';
	
	for(var indx = startindx; indx < element.length; indx++)
	{
		var showmsg = 1;
		if(det_array[1] == 'location')
		{
			val_array = element[indx].value.split('|');
			if(val_array[2] == '0')
			{
				showmsg = 0;
			}
		}
		if(element[indx].checked && showmsg)
		{
			if(msg == '')
			{
				msg = element[indx].id;
			}
			else
			{
				msg += ', '+element[indx].id;
			}
		}
	}
    //Komal:Code to get unique labels for cities starts
	var msg_array = new Array();
	var msg_array = msg.split(',');  
    var uniqueArray=new Array();
    label:for(var i=0; i<msg_array.length;i++ )
    {  
        for(var j=0; j<uniqueArray.length;j++ )
        {
            if(uniqueArray[j]==msg_array[i]) 
                continue label;
        }
        uniqueArray[uniqueArray.length] = msg_array[i];
    }
    msg=uniqueArray.join();
    
    //Code to get unique labels for cities ends
    if(msg == '')
	{
		if(det_array[1] == 'proptype')
		{
			var res_com = document.mainform.res_com;
			if(res_com[0].checked)
			{
				msg = "All Residential Properties";
			}
			else
			{
				msg = "All Commercial Properties";
			}

		}
		else if(det_array[1] == 'location')
		{
			document.getElementById('location_head_msg').innerHTML = '';
			msg = "Please Select Location";
		}
	}
	else
	{
		if(det_array[1] == 'location')
		{
			document.getElementById('location_head_msg').innerHTML = 'You Have Selected :';
		}
	}

	status_msg.innerHTML = msg

}

function trim(str)
{
	return str.replace(/^\s\s*/, '').replace(/\s\s*$/, '');
}

function validateForm(skip_validation)
{
	var error = 0;
	if(skip_validation!='Y')
	{
		var location = document.getElementsByName('city[]');
		var location_checked = getCheckedCount(location);

		if(!location_checked)
		{
			var location_error = document.getElementById('location_error');
			error++;
			location_error.style.display = "block";
			location_error.innerHTML = "<label>&nbsp;</label><img src=\"/images/redarrow1.gif\"> <span class=\"fl\" style=\"color:#ff3300;\">Please select atleast one location. You can select upto 5 Locations</span>";
		}
	}

	var area_min = document.mainform.area_min;
	var area_max = document.mainform.area_max;
	var area_min_value = trim(area_min.value);
	var area_max_value = trim(area_max.value);
	var area_error = document.getElementById('area_error');
	var status_msg = document.getElementById('area_msg');

	//only check pattern if text in not Min/Max
	if( ( (area_min.value != 'Min' && area_min.value != '') && (!isNum(area_min_value)) ) || ( (area_max.value != 'Max' && area_max.value != '') && (!isNum(area_max_value)) ) )
	{
		error++;
		status_msg.style.display = "none";
		area_error.style.display = "block";
		area_error.innerHTML = "<label>&nbsp;</label><img src=\"/images/redarrow1.gif\"> <span class=\"fl\" style=\"color:#ff3300;\">Please select a valid area range. Eg: 1200 to 1600 Sq.Ft</span>";
	}
	else
	{
		if(area_min_value == 'Min' || area_min_value == '')	{	area_min_value = 0;}
		if(area_max_value == 'Max' || area_max_value == '')	{	area_max_value = 0;}

		area_min_value = parseFloat(area_min_value);
		area_max_value = parseFloat(area_max_value);

		if( !(area_min_value && !area_max_value) && ( (area_min_value > area_max_value) || !isNum(area_min_value) || !isNum(area_max_value) || (area_min_value < 0) || (area_max_value < 0) ) )
		{
			error++;
			area_error.style.display = "block";
			area_error.innerHTML = "<label>&nbsp;</label><img src=\"/images/redarrow1.gif\"> <span class=\"fl\" style=\"color:#ff3300;\">Please select a valid area range. Eg: 1200 to 1600 Sq.Ft</span>";
		}
	}
	if(document.mainform.keyword)
	{
		var keyword = document.getElementById('keyword_error');
		var keywordMsg = document.getElementById('keyword_msg');
		var keyword_elem = document.mainform.keyword;
		var keyword_string = trim(keyword_elem.value);
		var pattern = new RegExp("^[a-zA-Z0-9,.' \-]+$");

		if(keyword_string.length)
		{
			if(keyword_string.length > 100)
			{
				error++;
				keywordMsg.style.display = "none";
				keyword.style.display = "block";
				keyword.innerHTML = "<label>&nbsp;</label><img src=\"/images/redarrow1.gif\"> <span class=\"fl\" style=\"color:#ff3300;\">Please specify the keyword search criteria within 100 characters</span>";
			}
			else if(!pattern.test(keyword_string))
			{
				error++;
				keywordMsg.style.display = "none";
				keyword.style.display = "block";
				keyword.innerHTML = "<label>&nbsp;</label><img src=\"/images/redarrow1.gif\"> <span class=\"fl\" style=\"color:#ff3300;\">Please specify words/phrases without any special characters. Example: Ansal, API, Omaxe, 110096</span>";
			}
		}
	}

	if(document.mainform.bedroom_min)
	{
		var bedroom_min = document.mainform.bedroom_min;

		var bedroom_max = document.mainform.bedroom_max;
		var bedroom_min_value = parseInt(bedroom_min.options[bedroom_min.selectedIndex].value);
		var bedroom_max_value = parseInt(bedroom_max.options[bedroom_max.selectedIndex].value);
		var bedroom_error = document.getElementById('bedroom_error');

		if(bedroom_min_value > bedroom_max_value)
		{
			error++;
			bedroom_error.style.display = "block";
			bedroom_error.innerHTML = "<label>&nbsp;</label><img src=\"/images/redarrow1.gif\"> <span class=\"fl\" style=\"color:#ff3300;\">Please select a valid range. Eg: 2 to 5</span>";
		}
	}
	if(document.mainform.bathroom_min)
	{
		var bathroom_min = document.mainform.bathroom_min;

		var bathroom_max = document.mainform.bathroom_max;
		var bathroom_min_value = parseInt(bathroom_min.options[bathroom_min.selectedIndex].value);
		var bathroom_max_value = parseInt(bathroom_max.options[bathroom_max.selectedIndex].value);
		var bathroom_error = document.getElementById('bathroom_error');

		if(bathroom_min_value > bathroom_max_value)
		{
			error++;
			bathroom_error.style.display = "block";
			bathroom_error.innerHTML = "<label>&nbsp;</label><img src=\"../images/redarrow1.gif\"> <span class=\"fl\" style=\"color:#ff3300;\">Please select a valid range. Eg: 2 to 5</span>";
		}
	}
	if(error)
	{
		if(document.getElementById('alertbox'))
		{
			var alertbox = document.getElementById('alertbox');

			var errornum = document.getElementById('errornum');

			alertbox.style.display = "block";
			errornum.innerHTML = error;
		}
		window.scroll(0,0);

		return false;
	}
	else
	{
		return true;
	}
}

function getElementsById(sId)
{
	var outArray = new Array();
	if(document.getElementsByTagName)
	{
		var allElem = document.getElementsByTagName( '*' );
		for(var i=0,j=allElem.length;i<j;i+=1)
		{

			if(allElem[i].id == sId )
			{
				outArray.push(allElem[i]);
			}
		}
	}

	return outArray;
}

//function is used to resolve the anomaly with locations of multiple checkboxes having the same value. the function gets the complete array of all checkboxes with the same id and then marks the 1st chkbx as master by apending to it '|1' and all other as slave by appending '|0' to it. it also checks and unchecks all the duplicate elements
function checkUncheckDuplicateLocations(details, ischecked)
{
	var details_array = details.split('|');

	var options = getElementsById(details_array[2]);

	if(options.length > 1)
	{
		if(ischecked)
		{
			for(var indx1 = 0; indx1 < options.length; indx1++)
			{
				options[indx1].checked = true;	// check all duplicate elem

				if(indx1)
				{
					options[indx1].value = details_array[0] + '|' + details_array[2] + '|0';	//Setting flag as 0 for all other similar options
				}
			}
		}
		else
		{
			for(var indx1 = 0; indx1 < options.length; indx1++)
			{
				options[indx1].checked = false;	// uncheck all duplicate elem
			}
		}
	}
}

// this checks if their is any visible content in the locality section irrespective of no. of checked in the location section. useful when a checked location does not have any locality
function checkContentVisibility(parentDivId)
{
	var ChildDivId = parentDivId.getElementsByTagName('div');
	var flag = 0;

	for(var indx = 0; indx < ChildDivId.length; indx++)
	{
		if( ChildDivId[indx].style.display == "block" && ChildDivId[indx].innerHTML != '')
		{
			flag = 1;
			break;
		}
	}
	return flag;
}

//used for a select drop down of location:- for propadmin module search & download in excel
function manage_dropdown_locality()
{
	var location_list=document.getElementById('location');
	var selected_index=location_list.options[location_list.selectedIndex];
	ajax_create_locality_optionlist(selected_index.value,'');
	var opt_locality = document.getElementsByName('locality_array[]');
	manage_checked(opt_locality, 5);
}
function manage_optionlist(details, objoption,source,MajorCity)
{

	var details_array = details.split('|');
	var option_val = details_array[0];
	var div_id = details_array[1];
	var needStatusMsg = 1;
	if( div_id == 'location')
	{
		var options = document.getElementsByName('city[]');

		var opt_locality = document.getElementsByName('locality_array[]');
		var locality = document.getElementById('locality');
		var location_error = document.getElementById('location_error');
		if(objoption.checked)
		{
			var ischecked = 1;
		}
		else
		{
			var ischecked = 0;
		}

		checkUncheckDuplicateLocations(details, ischecked);
		var count = manage_location_checked(source);
		var temp = objoption.value;
		var opt_arr = temp.split('|');
		if(count)
		{
			if( objoption.checked && (opt_arr[2] != '0') )	// if the calling element was checked and was not a slave element
			{
				if( document.getElementById(opt_arr[0]+'|location|'+opt_arr[1])==null )//if div does not exist
				{
					var ischecked_string = recordCheckedOptions();	// store the already checked options
					var counter = document.mainform.counter;
					if(source == 'buyer_page' )
					{
						if(MajorCity == 'N')
						pg.create_locality_dropdown(details,ischecked_string);
					}
					else
					ajax_create_locality_optionlist(details,ischecked_string); // call the ajax function
				}
				else
				{
					if(!(MajorCity) || MajorCity == 'N')
					{
						document.getElementById(opt_arr[0]+'|location|'+opt_arr[1]).style.display = "block";
					    locality.style.display = "block";
					}
					location_error.style.display = "none";
				}
                   manage_checked(opt_locality,5,source);
			}
			else if( !objoption.checked )
			{
				if(!(MajorCity) || MajorCity == 'N')
				{
					if(document.getElementById(opt_arr[0]+'|location|'+opt_arr[1]))
					{
						div_locality = document.getElementById(opt_arr[0]+'|location|'+opt_arr[1]);
						uncheck_all(div_locality);
						enable_all(div_locality);
						div_locality.style.display = "none";
					}
				}
				updateSelectionMessage('|locality|', opt_locality);
            }
			var locality_scroll = document.getElementById('locality_scroll');
             if(!checkContentVisibility(locality_scroll))
			{
				locality.style.display = "none";
				uncheck_all(locality_scroll);
				enable_all(locality_scroll);
			}
		}
		else if(!count)
	    {
          if(!(MajorCity) || MajorCity == 'N')
         {
			div_locality = document.getElementById(opt_arr[0]+'|location|'+opt_arr[1]);
			uncheck_all(div_locality);
			enable_all(div_locality);
			div_locality.style.display = "none";
			updateSelectionMessage('|locality|', opt_locality);

			locality.style.display = "none";
			location_error.style.display = "block";
			location_error.innerHTML = "<label>&nbsp;</label><img src=\"/images/redarrow1.gif\"> <span class=\"fl\" style=\"color:#ff3300;\">Please select atleast one location. You can select upto 5 Locations</span>";
		}
	}
	}else if( div_id == 'proptype')
	{
		var options = document.getElementsByName('property_type[]');

		manage_checked(options,5,source);

	}
	else if( div_id == 'locality')
	{
		var options = document.getElementsByName('locality_array[]');

		manage_checked(options,5,source);
	}
	else if( div_id == 'feature')
	{
		var options = document.getElementsByName('features[]');
		manage_checked(options, 0);
	}
	else if( div_id == 'ownership')
	{
		var options = document.getElementsByName('ownership[]');
		manage_checked(options, 0);
	}
	else if( div_id == 'prop_age')
	{
		var options = document.getElementsByName('age[]');
		manage_checked(options, 0);
	}
	else if( div_id == 'owntype')
	{
		var options = document.getElementsByName('class[]');
		needStatusMsg = 0;
		manage_checked(options, 0);
	}
	else if( div_id == 'pref')
	{
		var options = document.getElementsByName('pref[]');
		needStatusMsg = 0;
		manage_checked(options, 0);
	}
	if(needStatusMsg)
	{
		updateSelectionMessage(details, options);
	}
}

function recordCheckedOptions()
{

	var locality = document.getElementsByName('locality_array[]');
	var ischecked_array = new Array();

	for(var indx = 0; indx < locality.length; indx++)
	{

		if(locality[indx].checked)
		{
			ischecked_array[indx] = indx;
		}
	}
	var ischecked_string = ischecked_array.join(',');

	return ischecked_string;
}

function applyCheckedOptions(ischecked_string)
{

	var checkedLocalityList = document.mainform.locality_string;
	var ischecked_array = ischecked_string.split(',');
	var locality = document.getElementsByName('locality_array[]');

	checkedLocalityList = checkedLocalityList.value;

	if(parseInt(checkedLocalityList))
	{
		checkedLocalityListArray = checkedLocalityList.split(',');

		for(indx = 0; indx < checkedLocalityListArray.length; indx++)
		{
			var localityDivId = checkedLocalityListArray[indx] + '|locality';
			localityDivId = document.getElementById(localityDivId);
			if(localityDivId )
			{
				localityChkbx = localityDivId.getElementsByTagName('input');
				localityChkbx[0].checked = true;
			}
		}

		manage_checked(locality,0);
		updateSelectionMessage('|locality|', locality);
	}
	else
	{
		var locality = document.getElementsByName('locality_array[]');

		for(var indx = 0; indx < ischecked_array.length; indx++)
		{
			if(ischecked_array[indx] != '')
			{
				locality[ischecked_array[indx]].checked = true;
			}
		}
	}
}

function manageOnloadCounter()
{
	var counter = document.mainform.counter;
	var checkedLocalityList = document.mainform.locality_string;

	counter.value--;

	if(counter.value == '0')
	{
		checkedLocalityList.value = 0;
	}
}


function manage_location_checked(source)
{
	var location = document.getElementsByName('city[]');

	var count = getCheckedCount(location);
	if(source != 'buyer_page'){
		if(count < 5)
		{
			for(var indx = 0; indx < location.length; indx++)
			{
				location[indx].disabled=false;
			}
		}
		else if(count >= 5)
		{
			for(var indx = 0; indx < location.length; indx++)
			{
				if(!location[indx].checked)
				{
					location[indx].disabled=true;
				}
			}
		}}
		return count;
}

function manage_checked(chkbx_array,max_checked,source)
{
	var count = getCheckedCount(chkbx_array);
	var total_count = chkbx_array.length;


	if (!count)
	{
		chkbx_array[0].checked = true;

		if(chkbx_array[0].parentNode.id == 'feature')
		{
			var status_msg_div = document.getElementById('feature_msg_div');
			status_msg_div.style.display = "none";
		}
		else if(chkbx_array[0].parentNode.id == 'ownership')
		{
			var status_msg_div = document.getElementById('ownership_msg_div');
			status_msg_div.style.display = "none";
		}
		else if(chkbx_array[0].parentNode.id == 'prop_age')
		{
			var status_msg_div = document.getElementById('age_msg_div');
			status_msg_div.style.display = "none";
		}
		else if(chkbx_array[0].parentNode.id == 'locality' || chkbx_array[0].parentNode.id == 'locality_inner')
		{
			var status_msg_div = document.getElementById('locality_msg_div');
			status_msg_div.style.display = "none";
		}

	}
	else
	{

		chkbx_array[0].checked = false;
		if(chkbx_array[0].parentNode.id == 'feature')
		{
			var status_msg_div = document.getElementById('feature_msg_div');
			status_msg_div.style.display = "block";
		}
		else if(chkbx_array[0].parentNode.id == 'ownership')
		{
			var status_msg_div = document.getElementById('ownership_msg_div');
			status_msg_div.style.display = "block";
		}
		else if(chkbx_array[0].parentNode.id == 'prop_age')
		{
			var status_msg_div = document.getElementById('age_msg_div');
			status_msg_div.style.display = "block";
		}
		else if(chkbx_array[0].parentNode.id == 'locality' || chkbx_array[0].parentNode.id == 'locality_inner')
		{
			var status_msg_div = document.getElementById('locality_msg_div');
			status_msg_div.style.display = "block";
		}


		if( (count == (total_count-1)) && (chkbx_array[1].value != "I") )
		{
			if(chkbx_array[1].value == "\'B\'")
			{

				var parent_divid = chkbx_array[0].parentNode.parentNode.id;
			}
			else
			{

				var parent_divid = chkbx_array[0].parentNode.id;
				status_msg_div.style.display = "none";
			}

			uncheck_all(document.getElementById(parent_divid));
			chkbx_array[0].checked = true;
		}
	}

if(source != 'buyer_page' ){
	if(max_checked)
	{
		if(count < max_checked)
		{
			for(var indx = 1; indx < total_count; indx++)
			{
				chkbx_array[indx].disabled=false;
			}
		}
		else if(count >= max_checked)
		{
			for(var indx = 1; indx < total_count; indx++)
			{
				if(!chkbx_array[indx].checked)
				{
					chkbx_array[indx].disabled=true;
				}
			}
		}
	}

	}
	

	return count;
}

function uncheck_all(div_id)
{

	var div_elem = div_id.getElementsByTagName('input');
	for(var indx=0; indx<div_elem.length; indx++)
	{
		div_elem[indx].checked = false;
	}
}

function enable_all(div_id)
{
	var div_elem = div_id.getElementsByTagName('input');

	for(var indx=0; indx<div_elem.length; indx++)
	{
		div_elem[indx].disabled = false;
	}
}

function getCheckedCount(chkbx_array)
{
	var count = 0;
	var startindx = 0;
	var tocount = 1;
	var parentNodeId = chkbx_array[0].parentNode.id;

	if ( (parentNodeId == "locality") || (parentNodeId == "proptype") )
	{
		startindx = 1;
	}

	for(var indx = startindx; indx < chkbx_array.length; indx++)
	{
		if (parentNodeId == "location_scroll")
		{
			if(chkbx_array[indx].checked)
			{
				val_array = chkbx_array[indx].value.split('|');
				if(val_array[2] == "0")
				{
					tocount = 0;
				}
			}
		}

		if( tocount && chkbx_array[indx].checked )
		{
			count++;
		}
		tocount = 1;
	}

	return count;
}

function expand(show, hide)
{
	document.getElementById(hide).style.display = "none";
	document.getElementById(show).style.display = "block";

	var feature = document.getElementById('feature');
	var ownership = document.getElementById('ownership');
	var prop_age = document.getElementById('prop_age');

	uncheck_all(feature);
	uncheck_all(ownership);
	uncheck_all(prop_age);

	feature.getElementsByTagName('input')[0].checked = true;
	ownership.getElementsByTagName('input')[0].checked = true;
	prop_age.getElementsByTagName('input')[0].checked = true;
}
