onscroll=function() {
	if (!$("profile_details") && $("side_right") && !$("awu") && window.XMLHttpRequest) {
		if (document.documentElement.scrollTop>130 && $("side_right").getElementsByTagName("form")[0].className=="") {
			$("side_right").style.position="fixed"; 
			$("side_right").style.top="0";
		}
		else {
			$("side_right").style.position="absolute"; 
			$("side_right").style.top="130px";
		}
	}
}
onload=function() {
	if ($("search")) {
		if ($("wrapper").className!="city_page") {
			$("n_query").blink_status=true;
			var blink_search=setInterval(function() {
				if ($("n_query").blink_status) $("n_query").className=($("n_query").className=="n_query1")?"n_query2":"n_query1";
				else $("n_query").className="";
			}, 500);
		}
		function findPos(obj) {
			var curleft=curtop=0;
			if (obj.offsetParent) {
				do {
					curleft+=obj.offsetLeft;
					curtop+=obj.offsetTop;
				}
				while (obj=obj.offsetParent);
			}
			return [curleft, curtop];
		}
		var ol_results=document.createElement("ol");
		ol_results.id="results";
		ol_results.style.left=findPos($("n_query"))[0]+"px";
		ol_results.style.top=(findPos($("n_query"))[1]+$("n_query").offsetHeight)+"px";
		$("search").getElementsByTagName("fieldset")[0].insertBefore(ol_results, $("n_query").nextSibling);
		$("n_query").value=($("n_query").value=="")?"Enter zip / city":$("n_query").value;
		$("n_query").onfocus=function() {
			this.blink_status=false;
			this.value=(this.value=="Enter zip / city")?"":this.value;
		}
		$("n_query").onblur=function() {
			this.blink_status=true;
			this.value=(this.value=="")?"Enter zip / city":this.value;
		}
		$("results").style.display="none";
		$("n_query").setAttribute("autocomplete", "off");
		$("n_query").onkeyup=function(e) {
			if (/^\d+$/.test(this.value)) $("n_query").maxLength="5";
			else {
				$("n_query").maxLength="200";
				var keyPressed=(window.event)?event.keyCode:e.keyCode;
				var results=$("results").getElementsByTagName("li");
				var results_length=results.length;
				if (keyPressed=="40" || keyPressed=="38") {
					if ($("results").getElementsByTagName("li").length>0) {
						if (!$("hover")) $("results").getElementsByTagName("li")[0].getElementsByTagName("a")[0].id="hover";
						else {
							for (var i=0; i<results_length; i++) {
								if (results[i].getElementsByTagName("a")[0].id=="hover") var current_hover=i;
							}
							results[current_hover].getElementsByTagName("a")[0].id="";
							if (keyPressed=="40") {
								if (current_hover==results_length-1) results[0].getElementsByTagName("a")[0].id="hover";
								else results[current_hover+1].getElementsByTagName("a")[0].id="hover";
							}
							if (keyPressed=="38") {
								if (current_hover==0) results[results_length-1].getElementsByTagName("a")[0].id="hover";
								else results[current_hover-1].getElementsByTagName("a")[0].id="hover";
							}
						}
						$("n_query").value=$("hover").firstChild.data;
					}
				}
				else {
					for (var i=results_length-1; i>=0; i--) {
						results[i].removeChild(results[i].getElementsByTagName("a")[0]);
						$("results").removeChild(results[i]);
					}
					ajax.perform(this.value);
				}
				/*e.preventDefault();
				e.stopPropagation();*/
			}
		}
		$("results").onkeydown=function(e) {
			var keyPressed=(window.event)?event.keyCode:e.keyCode;
			if (keyPressed=="40" || keyPressed=="38") {
				var results=$("results").getElementsByTagName("li");
				var results_len=results.length;
				for (var i=0; i<results_len; i++) {
					if ($("results").getElementsByTagName("li")[i].getElementsByTagName("a")[0].id=="hover") {
						$("results").getElementsByTagName("li")[i].getElementsByTagName("a")[0].id="";
						if (keyPressed=="38") {
							var new_hover=(i==0)?results_len-1:i-1;
						} else {
							var new_hover=(i==results_len-1)?0:i+1;
						}
					}
				}
				$("results").getElementsByTagName("li")[new_hover].getElementsByTagName("a")[0].id="hover";
				//$("hover").focus();
				e.preventDefault();
				e.stopPropagation();
				return false;
			}
		}
		document.getElementsByTagName("body")[0].onclick=function() {
			if ($("results").style.display=="block") {
				$("results").style.display="none";
			}
		}
		$("search").onsubmit=function() {
			if ($("n_query").value=="" || $("n_query").value=="Enter zip / city") {
				$("n_query").focus();
				return false;
			} else {
				return true;
			}
		}
	}
	if ($("awu")) {
		var legend_txt=$("ems_form").getElementsByTagName("legend")[0].innerHTML;
		function hide_awu_form() {
			$("ems_fname").className="";
			$("ems_lname").className="";
			$("ems_phone_1").className="";
			$("ems_phone_2").className="";
			$("ems_phone_3").className="";
			$("ems_email").className="";
			$("ems_city").className="";
			$("ems_street").className="";
			$("ems_zip").className="";
			$("opacity_overlay").style.display="none";
			$("awu_form").style.display="none";
			//$("ems_form").getElementsByTagName("legend")[0].innerHTML="Get a Free Estimate";
			$("ems_form").getElementsByTagName("legend")[0].innerHTML=legend_txt;
			$("ems_aid").value="0";
			$("emis_side_placeholder").appendChild($("ems_form"));
		}
		$("ems_cancel").onclick=function() {hide_awu_form();}
		document.onkeyup=function(e) {
			if ($("awu_form").style.display=="block") {
				var keyPressed=(window.event)?event.keyCode:e.keyCode;
				if (keyPressed=="27") {hide_awu_form();}
			}
		}
		var awu_lis=$("awu").getElementsByTagName("li");
		for (var i=0, awu_lisLength=awu_lis.length; i<awu_lisLength; i++) {
			if (awu_lis[i].className=="comp" || awu_lis[i].className=="comp last") {
				awu_lis[i].getElementsByTagName("div")[0].getElementsByTagName("a")[0].onclick=function() {
					var company_name=this.parentNode.parentNode.getElementsByTagName("p")[0];
					if (company_name.getElementsByTagName("a")[0]) company_name=company_name.getElementsByTagName("a")[0];
					$("ems_form").getElementsByTagName("legend")[0].innerHTML="Get a quote from "+company_name.innerHTML;
					var sendto=this.href.indexOf("sendto=")+7;
					$("ems_aid").value=this.href.substring(sendto), this.href.length;
					$("emis_placeholder").appendChild($("ems_form"));
					$("awu_form").style.display="block";
					$("opacity_overlay").style.display="block";
					$("ems_fname").focus();
					return false;
				}
			}
		}
		var ads_up=$("awu").getElementsByTagName("li");
		for (var i=0, l=ads_up.length; i<l; i++) {
			if ((ads_up[i].className=="comp" || ads_up[i].className=="comp last") && ads_up[i].getElementsByTagName("p")[2] && ads_up[i].getElementsByTagName("p")[2].getElementsByTagName("a")[0]) {
				ads_up[i].getElementsByTagName("p")[2].getElementsByTagName("a")[0].onmousedown=function() {
					var link_href=this.parentNode.parentNode.getElementsByTagName("a")[0].href;
					var sendto=link_href.indexOf("sendto=")+7;
					this.href="/go_to_ad_url.php?eid="+link_href.substring(sendto, link_href.length);
					return true;
				}
			}
		}
	}
	if ($("listingsfree")) {
		var phone_spans=$("listingsfree").getElementsByTagName("span");
		for (var i=0, k=phone_spans.length; i<k; i++) {
			phone_spans[i].onclick=function() {
				ajax.getPhone(this.parentNode.parentNode.id.substring(3));
			}
		}
	}
	function hideMoreShowHidden(elms, countMany, removeElm) {
		for (var i=countMany; i<elms.length; i++) {
			elms[i].className="";
		}
		removeElm.parentNode.removeChild(removeElm);
	}
	function collapseMany(elms, countMany, elmType) {
		if (elms.length>countMany) {
			var elmType2Create=(elmType=="li")?"p":"span";
			for (var i=countMany; i<elms.length; i++) elms[i].className="more";
			var more=document.createElement(elmType2Create);
			more.id="more_"+elmType;
			var elmClickOn=(elmType=="li")?document.createElement("p"):more;
			elmClickOn.appendChild(document.createTextNode("More..."));
			//elms[0].parentNode.appendChild(more); IE is stupid and hides pre-created element, so taking a different approach
			elms[0].parentNode.insertBefore(more, elms[countMany]);
			if (elmType=="li") more.appendChild(elmClickOn);
			elmClickOn.onclick=function() {hideMoreShowHidden(elms, countMany, more);}
		}
	}
	if ($("additional_requests")) {
		collapseMany($("additional_requests").getElementsByTagName("li"), 5, "li");
	}
	if ($("services_area_zipcodes")) {
		collapseMany($("services_area_zipcodes").getElementsByTagName("span"), 22, "span");
	}
	var ajax={
		request:function() {
			if (window.XMLHttpRequest) {return new XMLHttpRequest();}
			else if (window.ActiveXObject) {
				try {return new ActiveXObject("Msxml2.XMLHTTP");}
				catch (e) {
					try {return new ActiveXObject("Microsoft.XMLHTTP");}
					catch (e) {}
				}
			}
			else return false;
		},
		get:function(url, fn, ogirinal_q) {
			http_request=new this.request();
			if (http_request) {
				http_request.onreadystatechange=function() {
					if (http_request.readyState==4) {
						if (http_request.status==200) {if (fn) fn(http_request.responseXML, ogirinal_q)}
						else {/*alert("Error occurred.");*/}
					}
				};
				http_request.open("GET", url, true);
				http_request.send(null);
			}
		},
		perform:function(q) {
			if (q.length>0) {
				this.get("http://www.remodeling-companies.com/search_by_str.php?q="+q, this.handle, q);
			}
			else $("results").style.display="none";
		},
		handle:function(obj, ogirinal_q) {
			if (ogirinal_q==$("n_query").value) {
				var xml=obj.documentElement;
				if (xml.hasChildNodes()) {
					var urls=obj.getElementsByTagName("url");
					var txts=obj.getElementsByTagName("txt");
					var a="";
					var result=obj.getElementsByTagName("result");
					for (var i=0, j=result.length; i<j; i++) {
						var new_li_a=document.createElement("a");
						new_li_a.href=urls[i].firstChild.data;
						new_li_a.appendChild(document.createTextNode(txts[i].firstChild.data));
						new_li_a.onmouseover=function() {
							var results=$("results").getElementsByTagName("li");
							var results_length=results.length;
							for (var i=0; i<results_length; i++) {
								if (results[i].getElementsByTagName("a")[0].id=="hover") results[i].getElementsByTagName("a")[0].id="";
							}
							this.id="hover";
						}
						/*new_li_a.onmouseout=function() {
							this.id="";
						}*/
						var new_li=document.createElement("li");
						new_li.appendChild(new_li_a);
						$("results").appendChild(new_li);
					}
					$("results").style.display="block";
				}
			}
		},
		getPhone:function(id) {
			this.get("http://www.remodeling-companies.com/phone_by_id.php?id="+id, this.insertPhone, id);
		},
		insertPhone:function(obj, id) {
			var xml=obj.documentElement;
			if (xml.hasChildNodes()) {
				var ad_phone=document.createTextNode(obj.getElementsByTagName("phone")[0].firstChild.data);
				$("ad_"+id).getElementsByTagName("div")[0].insertBefore(ad_phone, $("ad_"+id).getElementsByTagName("span")[0]);
				$("ad_"+id).getElementsByTagName("div")[0].removeChild($("ad_"+id).getElementsByTagName("span")[0]);
			}
		},
		collectAdClick:function(ad_id) {
			this.syncget("http://www.aplumbers.com/collect_ad_click.php?ad_id="+ad_id);
		}
	}
}
function $(id) {return document.getElementById(id);}
function externalLinks() {
	for (var i=0; i<document.links.length; i++) {
		if (document.links[i].getAttribute("rel")=="external") {
			document.links[i].onclick=function() {
				window.open(this.href);
				return false;
			}
		}
	}
}
