// JavaScript Document// Javasacript for the AJAX driven Directory Searchfunction setwidth(){	if (parseInt(navigator.appVersion)>3) {	 if (navigator.appName=="Netscape") {	  winW = window.innerWidth-16;	  document.body.winwidthform.winwidth.value = winW;	 }	 if (navigator.appName.indexOf("Microsoft")!=-1) {	  winW = document.body.offsetWidth-20;	  document.body.winwidthform.winwidth.value = winW;	 }	}}// Here's the AJAX part of this web app. function showsearch(){	element = $('overlay');	element2 = $('Search');	Element.cleanWhitespace(element);	Element.cleanWhitespace(element2);	//element.style.height = 'auto';	element.style.visibility = 'visible';	element.style.height = document.documentElement.scrollHeight;	element2.style.visibility = 'visible';	document.directorysearch.locparams.focus();}function hidesearch(){	element = $('overlay');	element2 = $('Search');	Element.cleanWhitespace(element);	Element.cleanWhitespace(element2);		//element.style.height = 'auto';	element.style.visibility = 'hidden';	element2.style.visibility = 'hidden';}function memberSearch(e){	var evtobj=window.event? event : e	if (evtobj.altKey || evtobj.ctrlKey || evtobj.shiftKey)	{		//alert("you pressed one of the 'Alt', 'Ctrl', or 'Shift' keys");	} else {		locsearch=document.directorysearch.locparams.value;		catsearch=document.directorysearch.catparams.value;		keysearch=document.directorysearch.keyparams.value;			if ((locsearch=="" || locsearch==",") && (catsearch=="" || catsearch==",") && (keysearch=="" || keysearch==",")) {			elem("Alphabetical").innerHTML = "<h3 style='color:#cc0000;'>Business Listing Results</h3>"; //reset this area			elem("Categorical").innerHTML = "<h3 style='color:#77aa00;'>Business Category Results</h3>"; //reset this area		} else {			//show the searching graphic for UI feedback			//searching = $('searching');			//Element.cleanWhitespace(searching);			//searching.style.visibility = 'visible';			// Run the search			var editurl = "http://www.myprintedcoupons.com/php/ajaxsearch.php?param="; // The server-side script			parameter = locsearch + "---" + catsearch + "---" + keysearch			//alert("Parameter: " + parameter); //show me what record you want to send to get the info for			http.open("GET", editurl + escape(parameter), true);			http.onreadystatechange = handleHttpResponse;			http.send(null);		}	}}function handleHttpResponse() {	if (http.readyState == 4) 	{		// Split the comma delimited response into an array    	results = http.responseText;		//alert (results);		data = http.responseText.split('/f/');		//alert (data[0]); alert (data[1]);		results = data[0].split('/r');		//alert("Query Result: " + results[0]); // The result of the search query		if (results[0]=="alphabetical") {			if (results[1]=="None") {				elem("Alphabetical").innerHTML = "<h3 style='color:#cc0000;'>Business Listing Results</h3><b>Business(es) not found! Please broaden your search.</b>"; //reset this area			} else {				elem("Alphabetical").innerHTML = "<h3 style='color:#cc0000;'>Business Listing Results</h3>"; //reset this area				i=1;				letter = '';				while (results[i]!="") {					if (results[i+1].charAt(0)!=letter) { 						letter=results[i+1].charAt(0);						elem("Alphabetical").innerHTML += "<big>"+letter+"</big><br />"; 					}					elem("Alphabetical").innerHTML += "<a href='/businesses/business.php?couponsbusinessid="+results[i]+"'><b>"+results[i+1]+"</b></a><br />";					i++; i++;					if (i>100) { 						elem("Alphabetical").innerHTML += "<b>Too many results, please narrow your search.</b><br />";						results[i]=""; 					}				}			}		}		results = data[1].split('/r');				if (results[0]=="categorical") {			if (results[1]=="None") {				elem("Categorical").innerHTML = "<h3 style='color:#77aa00;'>Business Category Results</h3><b>Categories not found! Please broaden your search.</b>"; //reset this area			} else {				elem("Categorical").innerHTML = "<h3 style='color:#77aa00;'>Business Category Results</h3>"; //reset this area				i=1;				cat = '';				while (results[i]!="") {					if (results[i+2]!=cat) { 						cat=results[i+2];						elem("Categorical").innerHTML += "<label>"+cat+"</label><br />"; 					}					elem("Categorical").innerHTML += "<a href='/businesses/business.php?couponsbusinessid="+results[i]+"'><b>"+results[i+1]+"</b></a><br />";					i++; i++; i++;					if (i>100) { 						elem("Categorical").innerHTML += "<b>Too many results, please narrow your search.</b><br />";						results[i]=""; 					}				}			}		}		//hide the searching graphic for UI feedback		//searching = $('searching');		//Element.cleanWhitespace(searching);		//searching.style.visibility = 'hidden';  	}}function getHTTPObject() {  var xmlhttp;  try {    xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");  } catch (e) {    try {      xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");    } catch (E) {      xmlhttp = false;    }  }  if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {    try {      xmlhttp = new XMLHttpRequest();    } catch (e) {      xmlhttp = false;    }  }  return xmlhttp;}var http = getHTTPObject(); // We create the HTTP Objectfunction elem(id){ // compat element grabber        if(document.all) { return document.all(id); }        else if (document.getElementById) { return document.getElementById(id); }        return new Array(); // hides angry errors in buggy situations}function switchDiv(div_id){		var style_sheet = getStyleObject(div_id);	if (style_sheet)	{   		hideAll();		//shiftOpacity(div_id, 1000);   		changeObjectVisibility(div_id, "visible");	}	else 	{   		alert("sorry, this only works in browsers that do Dynamic HTML");	}}	// function hideAll()//  hides a bunch of divs//function hideAll(){		//changeObjectVisibility("NewCustomer","hidden");   	changeObjectVisibility("MainSearch","hidden");	//changeObjectVisibility("Report","hidden");	//changeObjectVisibility("New","hidden");	//elem("NoteHistory").innerHTML = ""     // changeObjectVisibility("assignee","hidden");}// function getStyleObject(string) -> returns style object//  given a string containing the id of an object//  the function returns the stylesheet of that object//  or false if it can't find a stylesheet.  Handles//  cross-browser compatibility issues.//function getStyleObject(objectId) {  // checkW3C DOM, then MSIE 4, then NN 4.  //  if(document.getElementById && document.getElementById(objectId)) {        return document.getElementById(objectId).style;   }   else if (document.all && document.all(objectId)) {          return document.all(objectId).style;   }    else if (document.layers && document.layers[objectId]) {         return document.layers[objectId];   } else {        return false;   }}	function changeObjectVisibility(objectId, newVisibility) {	// first get a reference to the cross-browser style object 	// and make sure the object exists	if (newVisibility=="visible") { 		var styleObject = getStyleObject(objectId);		if(styleObject) {			styleObject.visibility = "visible";			//opacity(objectId, 0, 100, 10);			return true;		} else {			// we couldn't find the object, so we can't change its visibility			return false;		}	}	if (newVisibility=="hidden") { 		var styleObject = getStyleObject(objectId);		if(styleObject) {			//opacity(objectId, 100, 0, 1000);			styleObject.visibility = "hidden";			return true;		} else {			// we couldn't find the object, so we can't change its visibility			return false;		}	}}//*****************************************************************************// Do not remove this notice.//// Copyright 2001 by Mike Hall.// See http://www.brainjar.com for terms of use.//*****************************************************************************// Determine browser and version.function Browser() {  var ua, s, i;  this.isIE    = false;  this.isNS    = false;  this.version = null;  ua = navigator.userAgent;  s = "MSIE";  if ((i = ua.indexOf(s)) >= 0) {    this.isIE = true;    this.version = parseFloat(ua.substr(i + s.length));    return;  }  s = "Netscape6/";  if ((i = ua.indexOf(s)) >= 0) {    this.isNS = true;    this.version = parseFloat(ua.substr(i + s.length));    return;  }  // Treat any other "Gecko" browser as NS 6.1.  s = "Gecko";  if ((i = ua.indexOf(s)) >= 0) {    this.isNS = true;    this.version = 6.1;    return;  }}var browser = new Browser();// Global object to hold drag information.var dragObj = new Object();dragObj.zIndex = 0;function dragStart(event, id) {  var el;  var x, y;  // If an element id was given, find it. Otherwise use the element being  // clicked on.  if (id)    dragObj.elNode = document.getElementById(id);  else {    if (browser.isIE)      dragObj.elNode = window.event.srcElement;    if (browser.isNS)      dragObj.elNode = event.target;    // If this is a text node, use its parent element.    if (dragObj.elNode.nodeType == 3)      dragObj.elNode = dragObj.elNode.parentNode;  }  // Get cursor position with respect to the page.  if (browser.isIE) {    x = window.event.clientX + document.documentElement.scrollLeft      + document.body.scrollLeft;    y = window.event.clientY + document.documentElement.scrollTop      + document.body.scrollTop;  }  if (browser.isNS) {    x = event.clientX + window.scrollX;    y = event.clientY + window.scrollY;  }  // Save starting positions of cursor and element.  dragObj.cursorStartX = x;  dragObj.cursorStartY = y;  dragObj.elStartLeft  = parseInt(dragObj.elNode.style.left, 10);  dragObj.elStartTop   = parseInt(dragObj.elNode.style.top,  10);  if (isNaN(dragObj.elStartLeft)) dragObj.elStartLeft = 0;  if (isNaN(dragObj.elStartTop))  dragObj.elStartTop  = 0;  // Update element's z-index.  dragObj.elNode.style.zIndex = ++dragObj.zIndex;  // Capture mousemove and mouseup events on the page.  if (browser.isIE) {    document.attachEvent("onmousemove", dragGo);    document.attachEvent("onmouseup",   dragStop);    window.event.cancelBubble = true;    window.event.returnValue = false;  }  if (browser.isNS) {    document.addEventListener("mousemove", dragGo,   true);    document.addEventListener("mouseup",   dragStop, true);    event.preventDefault();  }}function dragGo(event) {  var x, y;  // Get cursor position with respect to the page.  if (browser.isIE) {    x = window.event.clientX + document.documentElement.scrollLeft      + document.body.scrollLeft;    y = window.event.clientY + document.documentElement.scrollTop      + document.body.scrollTop;  }  if (browser.isNS) {    x = event.clientX + window.scrollX;    y = event.clientY + window.scrollY;  }  // Move drag element by the same amount the cursor has moved.  dragObj.elNode.style.left = (dragObj.elStartLeft + x - dragObj.cursorStartX) + "px";  dragObj.elNode.style.top  = (dragObj.elStartTop  + y - dragObj.cursorStartY) + "px";  if (browser.isIE) {    window.event.cancelBubble = true;    window.event.returnValue = false;  }  if (browser.isNS)    event.preventDefault();}function dragStop(event) {  // Stop capturing mousemove and mouseup events.  if (browser.isIE) {    document.detachEvent("onmousemove", dragGo);    document.detachEvent("onmouseup",   dragStop);  }  if (browser.isNS) {    document.removeEventListener("mousemove", dragGo,   true);    document.removeEventListener("mouseup",   dragStop, true);  }}//*****************************************************************************// End of the Drag Window Function Definitions//// Copyright 2001 by Mike Hall.// See http://www.brainjar.com for terms of use.//*****************************************************************************