function navigator_ie(){
	if(typeof _NAVIGATOR_IS_IE=='undefined'){var nav=navigator.userAgent.toLowerCase();_NAVIGATOR_IS_IE=(nav.indexOf("msie")!=-1);}
	return _NAVIGATOR_IS_IE;
}
function navigator_opera(){
	if(typeof _NAVIGATOR_IS_OPERA=='undefined'){var nav=navigator.userAgent.toLowerCase(), ind=nav.indexOf('opera');_NAVIGATOR_IS_OPERA=(ind!=-1);}
	return _NAVIGATOR_IS_OPERA;
}



if (window.ActiveXObject && !window.XMLHttpRequest) {
	window.XMLHttpRequest = function() {
		try {return new ActiveXObject("Microsoft.XMLHTTP")}
		catch (e){p('Your Browser does not support XMLHttpRequest: '+e.toString(), '__xmlhttpIE');};
		return null;
	};
}
// Gecko support
if (!window.ActiveXObject && window.XMLHttpRequest) {
	window.ActiveXObject = function(type) {
		return new XMLHttpRequest();
	};
}


// ?????????? HTML



function ajax_post(url, post, response_func, response_func_param) {
	var req = new XMLHttpRequest();
	if (req) {
		req.onreadystatechange = function() {
			if (req.readyState==4 && (req.status == 200 || req.status == 304)) {
				if(response_func_param==null) response_func(req.responseText);
				else response_func(req.responseText, response_func_param);
			}
			if (req.readyState!=4) ajax_loading_func(response_func_param);
		};
		req.open('POST', url);
		req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');
		req.send(post);
		alert(req.getAllResponseHeaders());
	}
}

function ajax_get(url, response_func, response_func_param) {
	var req = new XMLHttpRequest();
	if (req)
	{
		req.onreadystatechange = function()
		{
			if (req.readyState==4 && (req.status == 200 || req.status == 304) )
			{
				if(response_func_param==null)
				    response_func(req.responseText);
				else
				    response_func(req.responseText, response_func_param);
			}
			if (req.readyState!=4) ajax_loading_func(response_func_param);
		};
		req.open('GET', url);
		req.send(null);
	}
}


function ajax_show(txt,div)
{
	getObj(div).innerHTML=txt;
}

function isNull(smth)
{
	if ( (smth) && (smth != null) && (typeof smth != 'undefined')  )
		return false;
	else return true;
}

function checkSearch()
{
	var err = false;
	if  (isNull(getObj('properties').value))
	{
		ajax_show('At least one property type should be selected', 'search_ajax');
		err = true;
	}
	else
	{
		 var type = getObj('search_type').value;
		 switch (type)
		 {
			 case 'details':
				if (isNull(getObj('cities').value))
				{
					ajax_show('At least one city should be selected', 'search_ajax');
					err = true;
				} 
			 break;
 			 case 'schools':
				if ( (isNull(getObj('elem_schools').value))&&(isNull(getObj('jun_schools').value))&&(isNull(getObj('high_schools').value)) )
				{
					ajax_show('One school should be selected', 'search_ajax');
					err = true;
				} 
			 break;
			 case 'zip':
				
				if (isNull(getObj('zipcode').value))
				{
					ajax_show('First characters of zip code should be inputted', 'search_ajax');
					err = true;
				} 
			 break;
		 }
	}
	//alert(getObj('price_from').value + ' ' + getObj('price_to').value);
	return !err;
	
}

function checkSearch2()
{
	var err = false;

		 var type = getObj('search_type').value;
		 switch (type)
		 {
			 case 'details':
				if (isNull(getObj('cities').value))
				{
					ajax_show('At least one city should be selected', 'search_ajax');
					err = true;
				} 
			 break;
 			 case 'schools':
				if ( (isNull(getObj('elem_schools').value))&&(isNull(getObj('jun_schools').value))&&(isNull(getObj('high_schools').value)) )
				{
					ajax_show('One school should be selected', 'search_ajax');
					err = true;
				} 
			 break;
			 case 'zip':
				
				if (isNull(getObj('zipcode').value))
				{
					ajax_show('First characters of zip code should be inputted', 'search_ajax');
					err = true;
				} 
			 break;
		 }
	return !err;
	
}

function b(inp, inp2)
{
    return false;
}

function correctTerms(field, value)
{
    url='index.php?module=ajax&action=correctsearch&field=' + field + '&value=' + value;
	//alert(url);
	ajax_get(url, ajax_show, 'ajax_filter');
}

function deleteTerms(field)
{
    url='index.php?module=ajax&action=correctdelsearch&field=' + field;
	//alert(url);
	ajax_get(url, ajax_show, 'ajax_filter');
}

function checkName()
{
	//url='/register.php?sbm=1&check=name&name=' + escape(getObj('name').value);

	url='index.php?module=ajax&action=register&sbm=1&check=name&name=' + escape(getObj('name').value);

	ajax_get(url, ajax_show, 'name_ajax');
}

function checkMail()
{
	url='index.php?module=ajax&action=register&sbm=1&check=email&email=' + escape(getObj('email').value);
	ajax_get(url, ajax_show, 'email_ajax');
}

function checkPass()
{
	url='index.php?module=ajax&action=register&sbm=1&check=pass&pass1=' + escape(getObj('pass1').value) + "&pass2=" + escape(getObj('pass2').value);
	ajax_get(url, ajax_show, 'pass_ajax');
}

function checkPicture()
{
	url='index.php?module=ajax&action=register&sbm=1&check=picture&key=' + getObj('key').value + "&input_key=" + getObj('input_key').value;
	ajax_get(url, ajax_show, 'picture_ajax');
}

function checkAll()
{
    if (( (!getObj('email').value) || (!getObj('input_key').value) || (!getObj('pass1').value) || (!getObj('pass2').value)) ||((getObj('picture_ajax').innerHTML)||(getObj('name_ajax').innerHTML)||(getObj('email_ajax').innerHTML)||(getObj('pass_ajax').innerHTML)))
    {
        getObj('form_ajax').innerHTML = "<span class='error'>Form can't be submitted when it has errors or empty required fields.</span>"
        return false;
    }
   else registerForm.submit();
}


function ajax_loading_func(dv){

}


function changeYearTo()
{
	 from = getObj('year_from').value;
 	 selected = parseInt(getObj('year_to').value);
	 
	 var str="<option value='0'>no max</option>\r\n" + getYearsOptions(from, 2007, selected);
	 //alert(selected);
	 //alert(getObj('price_to').innerHTML);

	 if (navigator_opera() || navigator_ie())
	 {
		 getObj('year_to').outerHTML = '<select name="year_to" id="year_to" style="width:80px" onchange="changeYearFrom();">' + str + "</select>";
	 }
	 else
		 getObj('year_to').innerHTML = str;
}

function changeYearFrom()
{
	 to = getObj('year_to').value;
	 selected = parseInt(getObj('year_from').value);
	 var str= "<option value='0'>no min</option>\r\n" + getYearsOptions(1950, to, selected);
	 //getObj('year_from').innerHTML = str;

	  if (navigator_opera() || navigator_ie())
	 {
		 getObj('year_from').outerHTML = '<select name="year_from" id="year_from" style="width:80px" onchange="changeYearTo();">' + str + "</select>";
	 }
	 else
		 getObj('year_from').innerHTML = str;
}


function changePriceTo()
{
	 from = getObj('price_from').value;
 	 selected = parseInt(getObj('price_to').value);
	 
	 var str="<option value='0'>no max</option>\r\n" + getOptions(from, 10000000, selected);
	 //alert(selected);
	 //alert(getObj('price_to').innerHTML);

	 if (navigator_opera() || navigator_ie())
	 {
		 getObj('price_to').outerHTML = '<select name="price_to" id="price_to" style="width:80px" onchange="changePriceFrom();">' + str + "</select>";
	 }
	 else
		 getObj('price_to').innerHTML = str;
}

function changePriceFrom()
{
	 to = getObj('price_to').value;
	 selected = parseInt(getObj('price_from').value);
	 var str= "<option value='0'>no min</option>\r\n" + getOptions(0, to, selected);
	 getObj('price_from').innerHTML = str;

	  if (navigator_opera() || navigator_ie())
	 {
		 getObj('price_from').outerHTML = '<select name="price_from" id="price_from" style="width:80px" onchange="changePriceTo();">' + str + "</select>";
	 }
	 else
		 getObj('price_from').innerHTML = str;
}



function changeAcresTo()
{
	 from = getObj('sa_acres_from').value;
 	 selected = parseInt(getObj('sa_acres_to').value);
	 
	 var str="<option value='0'>no max</option>\r\n" + getAcresOptions(from, 10000, selected);
	 
	 if (navigator_opera() || navigator_ie())
	 {
		 getObj('sa_acres_to').outerHTML = '<select name="sa_acres_to" id="sa_acres_to" style="width:80px" onchange="changeAcresFrom();">' + str + "</select>";
	 }
	 else
		 getObj('sa_acres_to').innerHTML = str;
}

function changeAcresFrom()
{
	 to = getObj('sa_acres_to').value;
	 selected = parseInt(getObj('sa_acres_from').value);
	 var str= "<option value='0'>no min</option>\r\n" + getAcresOptions(0, to, selected);
	 
	  if (navigator_opera() || navigator_ie())
	 {
		 getObj('sa_acres_from').outerHTML = '<select name="sa_acres_from" id="sa_acres_from" style="width:80px" onchange="changeAcresTo();">' + str + "</select>";
	 }
	 else
		 getObj('sa_acres_from').innerHTML = str;
}



function addCommas(nStr)
{
	nStr += '';
	x = nStr.split('.');
	x1 = x[0];
	x2 = x.length > 1 ? '.' + x[1] : '';
	var rgx = /(\d+)(\d{3})/;
	while (rgx.test(x1)) {
		x1 = x1.replace(rgx, '$1' + ',' + '$2');
	}
	return x1 + x2;
}

function addBksp(nStr)
{
	nStr += '';
	x = nStr.split('.');
	x1 = x[0];
	x2 = x.length > 1 ? '.' + x[1] : '';
	var rgx = /(\d+)(\d{3})/;
	while (rgx.test(x1)) {
		x1 = x1.replace(rgx, '$1' + ' ' + '$2');
	}
	return x1 + x2;
}

function getOptions(from, to, selected)
{
	
	var str = '';
	if (from<10000000) fromi=from; 	
	else fromi=10000; 
	
	
	if (to == 0)
	{
		toi = 10000000;
	}
	else
	toi=to;  
	
	var i= parseInt(fromi);
	while (i<toi)
	{

		if (i<1000000)
		{
			i=i+10000;
		}
		else
		{
			i=i+500000;
		}

		var v = String(i);
		var vf = addCommas(v);
		
		var s="";
		
		if (i == selected)
		{
			s = "selected='selected' ";
		}
		
		str += "<option value='" + i + "' " + s + ">$"+ vf +"</option>\r\n";

	}
	
	return str;
	
}


function getAcresOptions(from, to, selected)
{
	
	
	var str = '';
	if (from<10000) fromi=from; else fromi=1; 
	toi=to;  
	
	var i= parseInt(fromi);
	while (i<toi)
	{

		if (i<50)
		{
			i=i+1;
		}
		else if (i<1000)
		{
			i=i+50;
		}
		else
		{
			i=i+100;
		}

		var v = String(i);
		var vf = addBksp(v);
		
		var s="";
		
		if (i == selected)
		{
			s = " selected='selected' ";
		}
		
		str += "<option value='" + i + "' " + s + ">"+ vf +" acres</option>\r\n";

	}
	
	return str;
	
}

function getYearsOptions(from, to, selected)
{
	
	
	var str = '';
	if (from>=1950) fromi=from; else fromi=1950; 
	if (to >1950 ) toi=to; else toi = 2007
	
	var i= parseInt(fromi);
	while (i<toi)
	{

		//i++;

		var v = String(i);
		//var vf = addBksp(v);
		var vf = i;
		
		var s="";
		
		if (i == selected)
		{
			s = " selected='selected' ";
		}
		
		str += "<option value='" + i + "' " + s + ">"+ vf +"</option>\r\n";
		i++;

	}
	
	return str;
	
}

