/***************************** Category Popup (Begin)********************************/
var default_keywords="Type keywords here";
var default_business="Type business name here";
var default_location="Specify location";
var lang=0;
var search_fullform=true;
var keyword_focus_status='Type keywords that best describe<br> the Business Category you want to browse';

var lastcat_parentidupdate='';

function open_cats(){
 //open popup at x,y and write form
 var popup_obj=getobj('popup_cats');
 var pos=findpos(getobj(obj_name));
 var minusobj = getobj(obj_name);
 var minus=minusobj.offsetHeight;
 var x=pos[0];
 var y=pos[1]+minus;
 showobj(popup_obj);
 moveit(popup_obj,x,y);
 setopacity(popup_obj,99);
 return false;
}
function updatecats_sub(response){
 var resp=ajx_getresponsevars(response);
 if (resp[0]===false){
  return;
 }
 var data=resp[1];
 if (mt(data)){
  updatecats_setstatus();
  return false;
 }
 var cats=data.split(ajx_delim1);
 var cathtml='';
	if (last_dokeyword_field=='business'){
 	cathtml='<div id=popup_buscap>(Popular Searches)</div>';
	}
 for (var i=0;i<cats.length;i++){
  var nvp=cats[i].split(ajx_delim2);
  var title=nvp[1];
  var titleshow=title;
  var js='return addcat('+i+');';
  var alreadythere=false;
  cathtml+='<input type=hidden id="catsel_id'+i+'" name="catsel_id'+i+'" value="'+nvp[0]+'"><input type=hidden id="catsel_t'+i+'" name="catsel_t'+i+'" value="'+title+'"><div id="catsel_v'+i+'" class=item><a href="#" onclick="'+js+'"> '+titleshow+'</a></div>';
  if (blnMore=="0" && last_dokeyword_field!='business') {
   if (i==12 && cats.length>13) {
    cathtml+='<div id=popup_more onclick="ignoreoutsideclickhandle=true; return dokeyword(1);"> ...more</div>';
    break;
   }
  }
 }
 cathtml+='<input type=hidden id="catsel_count" name="catsel_count" value="'+cats.length+'">';
 changetext(getobj('catlist'),cathtml);
}

function get_obj_name_friendlyname(){
 switch(obj_name){
  case 'keyword': return 'Category you are looking for';
  case 'business': return 'Business you are looking for';
  case 'location': return '';
 }
 return obj_name;
}

var status_texttopass='';

function updatecats_setstatus(statustypeid){
 var msg='';
 if (statustypeid==null) statustypeid=0;
 if (statustypeid>=1){
  if (statustypeid==2){
   var msg='Loading. Please wait...'
   changetext(getobj('catlist'),'<div style="color:#000;padding:5px 8px;text-align:center">'+msg+'</div>');
  }
  open_cats();
  if (!mt(obj_value)) return;
 }
 if (mt(status_texttopass)){
  switch(obj_name){
   case 'keyword':
    msg=keyword_focus_status;
    break;
   case 'business':
    msg='Type part of the Business Name<br>that you are looking for';
    break;
   case 'location':
    msg='Type the location you want to find businesses in.<br>Enter a zip code, city / state or county / state.';
  }
 } else {
  msg='no results found for "'+status_texttopass+'"';
 }
 changetext(getobj('catlist'),'<div style="color:#000;padding:5px 8px;text-align:center">'+msg+'</div>');
}

function addcat(rowid){
	var id=getobj('catsel_id'+rowid).value;
	var t=removetags(getobj('catsel_t'+rowid).value);
	var setobj=getobj(obj_name);
	var IDobj=getobj(obj_name + '_actual');
	setobj.value=t;
	IDobj.value=id;

	if (obj_name=="keyword") {
  if (search_fullform){
 		document.searchform.business.value="";
 		document.searchform.business_actual.value="";
 		document.searchform.keyorbus.value="keyword";
 		setTimeout("document.searchform.location.focus()",250);
  }
	}
	if (obj_name=="business") {
		document.searchform.keyword.value="";
		document.searchform.keyword_actual.value="";
		document.searchform.keyorbus.value="business";
		setTimeout("document.searchform.location.focus()",250);
	}
	hideobj('popup_cats');
	hideobj('catsel_v'+rowid);
	return false;
}

/***************************** Category Popup (End)********************************/


/***************************** Keyword Scripts (Begin)********************************/
var last_key_sid=0;
var last_ajax_sid=0;
var ajax_waitsecs=.25;
var awaitingresult=false;
var needtorunquery=false;
var blnMore=0;
var bypass=0;
var ignorefirstfocus=0;

var last_dokeyword_value='';
var last_dokeyword_field='';
var last_dokeyword_response='';
var zxc=0;

function dokeyword(DisplayMore){
 if (obj_name=='business'){
  updatecats_setstatus();
  return false;
 }
	if (DisplayMore==1) {
		blnMore=1;
	} else {
		blnMore=0;
	}
	//later - check js cached results
	if ((obj_value.length>=2) || (lang>=1 && obj_name=='keyword')) {
		if ((getsecondid()>=last_ajax_sid + ajax_waitsecs) && !awaitingresult) {//don't run queries more than once every x seconds, and make sure we aren't still waiting for the last query
			needtorunquery=false;
   if (obj_value==last_dokeyword_value && obj_name==last_dokeyword_field && blnMore==0){
    status_texttopass=obj_value;
    updatecats_sub(last_dokeyword_response);
    status_texttopass='';
   } else {
				window.status='searching...'+(zxc++);
				last_ajax_sid=getsecondid();
				awaitingresult=true;
				var xmlurl=g_ur+obj_ajx + '?Keyword=' + escape(obj_value) +'&rnd='+(Math.random()*1000)+'&more='+blnMore+'&lang='+lang;
//document.searchform.dbg.value=xmlurl;
				loadXMLurl(xmlurl, null, dokeyword_sub, obj_name+':'+obj_value, true);
//document.searchform.dbg.value=xmlurl+' sent';
   }
		} else {//too soon to run, but make sure we don't miss the query completely
			needtorunquery=true;
		}
	} else {//keyword length is 1 or 0
		updatecats_setstatus();
	}
}

function dokeyword_sub(response,nvp_source){
 window.status='';
 var nvp=nvp_source.split(':');
 last_dokeyword_value=nvp[1];
 last_dokeyword_field=nvp[0];
 last_dokeyword_response=response;
 awaitingresult=false;
 last_ajax_sid=getsecondid();
 status_texttopass=nvp[1];
 updatecats_sub(response);
 status_texttopass='';
}

function dokeyword_poller(){
 if (needtorunquery) {
  dokeyword(0);
 }
 setTimeout('dokeyword_poller()',200);
}

addloadcommand("dokeyword_poller()");
/***************************** Keyword Scripts (End)********************************/

/***************************** Misc Scripts (Begin)********************************/
function set_vars(obj) {
	obj_name = obj.name;
	obj_value= obj.value;
 obj_value=trim(obj_value.replace(/[^a-zA-Z0-9_\-\s.\,]/g,''));//clean user input. Alpha/numeric only (include spaces commas, periods and dashes)
	if (obj.name=="cat_parentid") {
		obj_ajx = "ajx_get_fields_from_keyword_translate.asp"
	} else {
		obj_ajx = "ajx_get_fields_from_" + obj_name + ".asp"
	}
}

function checkSubmit(){
	if (document.searchform.keyword.value=="" || (document.searchform.keyword.value==default_keywords && default_keywords.indexOf('[')>=0)){
  if (document.searchform.business.value=="" || (document.searchform.business.value==default_business && default_business.indexOf('[')>=0)){
 		document.searchform.keyword.focus();
 		msgbox_dialog_alert('Please type a category or business name that you want to find.');
 		return false;
  }
	}
	if (document.searchform.location.value=="" || (document.searchform.location.value==default_location && default_location.indexOf('[')>=0)) {
		document.searchform.location.focus();
		msgbox_dialog_alert('Please specify a location by typing a zip code, city / state combination or county / state combination.');
		return false;
	}
	if (lang>1) {
		var QSBuilder='http://www.planetbuzz.com/search_results.asp?flat=1'
		if (document.searchform.keyword.value!="") {
			QSBuilder=QSBuilder+'&xcategory='+document.searchform.keyword.value
		}
		if (document.searchform.business.value!="") {
			QSBuilder=QSBuilder+'&xbusname='+document.searchform.business.value
		}
		if (document.searchform.location.value!="") {
			QSBuilder=QSBuilder+'&xlocation='+document.searchform.location.value
		}
		top.location.href='http://www.planetbuzz.com/vt_pbtlink.asp?tid='+lang+'&u='+escape(QSBuilder)
		return false;
	}
	return true;
}

/***************************** Misc Scripts (End)********************************/

function getdefaulttext() {
	switch (obj_name){
	case 'keyword': return default_keywords;
	case 'business': return default_business;
	case 'location': return default_location;
	}
	return '';
}

function common_onfocus(obj) {
//	alert(ignorefirstfocus);
	HideAllObjs();
	set_vars(obj);
	if (obj.value==getdefaulttext() && obj.value.indexOf('[')>=0) {
		obj.value='';
	}
	if (ignorefirstfocus==1) {
		ignorefirstfocus=0;
	} else {
  changetext(getobj('catlist'),'');
		updatecats_setstatus(2);
		dokeyword(0);
	}
	//alert(obj.value);
}

function common_onkeyup(obj) {
	HideAllObjs();
	set_vars(obj);
	if (obj_name=="keyword" && document.searchform.keyword.value != "") {
		document.searchform.keyword_actual.value="";
		document.searchform.business.value="";
		document.searchform.business_actual.value="";
		document.searchform.keyorbus.value="keyword";
	}
	if (obj_name=="business" && document.searchform.business.value != "") {
		document.searchform.business_actual.value="";
		document.searchform.keyword.value="";
		document.searchform.keyword_actual.value="";
		document.searchform.keyorbus.value="business";
	}
	if (obj_name=="location" && document.searchform.location.value != "") {
		document.searchform.location_actual.value="";
	}
	updatecats_setstatus(1);
	dokeyword(0);
}

function common_onblur(obj) {
 if (obj==null) return;
	set_vars(obj);
	if (obj.value=='') {
		obj.value=getdefaulttext();

	}
}

var ignoreoutsideclickhandle=false;

function common_onclick(obj) {
	ignoreoutsideclickhandle=true;
 common_onfocus(obj);
}

document.onclick=search_handleoutsideclick;

function search_handleoutsideclick() {
	if (ignoreoutsideclickhandle) {
		ignoreoutsideclickhandle=false;
		return false;
	}
	HideAllObjs();
	hideobj('popup_cats');
}

addloadcommand("common_onblur(getobj('keyword'))");
addloadcommand("common_onblur(getobj('business'))");
addloadcommand("common_onblur(getobj('location'))");

/***************************** Translation Detection (Begin)********************************/
function GetTranslation() {
	var source=gettext('buzzlogo');
	var searchfor='tl=';
	var langpos=source.indexOf(searchfor);
	//alert(langpos);
	if (langpos>=0) {
		langpos+=searchfor.length;
		lang=source.substring(langpos,langpos+2);
		//alert(lang);
		switch (lang) {
		  case 'en': lang='1'; break; // ENGLISH
		  case 'es': lang='2'; break; // SPANISH
		  case 'ru': lang='4'; break; // RUSSIAN
		  case 'it': lang='5'; break; // ITALIAN
		  case 'fr': lang='6'; break; // FRENCH
		  case 'de': lang='7'; break; // GERMAN
		  case 'pt': lang='8'; break; // PORTUGUESE
		  case 'ja': lang='9'; break; // JAPAN
		  case 'zh': lang='9'; break; // CHINESE
		  case 'el': lang='10';break; // GREEK
		  case 'nl': lang='11';break; // NETHERLANDS
		  default: lang = '0';
		}
	}
	//alert(lang);
}

function generateandpopupalpha(obj){
 var html='';
 html+='<a href="#" onClick="return paginate(\'reset\',\'0\');">All</a>';
 for (var i=0;i<=25;i++){
  filtervalue=String.fromCharCode(i+65);
  filtertext=String.fromCharCode(i+65);
  html+='<a href="#" onClick="return paginate(\'filter_alpha\',\''+filtervalue+'\');">'+filtertext+'</a>';
 }
 html+='<a href="#" onClick="return paginate(\'filter_alpha\',\'9\');">0-9</a>';
 pu(obj,'popup_alpha');
 changetext('alphalist',html);
}

function removetags(x){
 return x.replace(/<\/?[^>]*>/gi, "");
}

function switchsearch(paramname,paramvalue){
 document.modsearchform.paramname.value=paramname;
 document.modsearchform.paramvalue.value=paramvalue;
 document.modsearchform.submit();
	return false;
}
/***************************** Translation (End)********************************/


function expand_search_more(divsuffix,minheight){
 if (mt(minheight)) minheight=61;
 var objA=getobj('search_more_'+divsuffix);
 var objmore=getobj('more_search_more_'+divsuffix);
 if (objmore==null) return;
 if (objmore.innerHTML.indexOf('hide')>=0){
  if (objA!=null) dozipclose('search_more_'+divsuffix,minheight);
  objmore.innerHTML = objmore.innerHTML.replace('hide','more');		
 } else {
  if (objA!=null) dozipopen('search_more_'+divsuffix);
  objmore.innerHTML = objmore.innerHTML.replace('more','hide');
 }
 return false;
}

var catonly_ignorefirst=true;
function catonly_onkeyup(obj) {
	HideAllObjs();
	set_vars(obj);
	if (!mt(obj.value)) {
  if (!catonly_ignorefirst)	document.searchform.keyword_actual.value="";
  catonly_ignorefirst=false;   
	}
	updatecats_setstatus(1);
	dokeyword(0);
}

function trysearchsubmit(){
 if (checkSubmit()){
  document.searchform.submit();
 }
 return false;
}

function expand_listing(divsuffix,minheight){
 if (mt(minheight)) minheight=30;
 var objA=getobj('expandA_'+divsuffix);
 var objB=getobj('expandB_'+divsuffix);
 var objmore=getobj('more_'+divsuffix);
 if (objmore==null) return;
 if (objmore.innerHTML.indexOf('>hide')>=0){
  if (objA!=null) dozipclose('expandA_'+divsuffix,0);
  if (objB!=null) dozipclose('expandB_'+divsuffix,minheight);
  objmore.innerHTML = objmore.innerHTML.replace('hide','more');		
 } else {
  if (objA!=null) dozipopen('expandA_'+divsuffix);
  if (objB!=null) dozipopen('expandB_'+divsuffix);
  objmore.innerHTML = objmore.innerHTML.replace('more','hide');
 }
 return false;
}
