// copyright Andrew Payne
// write your own damn javascript

// vars and shit
var svar = 0;
var maxt = 0;
var checked = new Array();
var disfound = new Array();
var resultscache = new Array();
var foundcount = 0;
var wpiccount = 0;
var openedup = '';

is = new ottosniff();
function ottosniff() {
	var b = navigator.appName
	if (b=="Netscape") this.b = "ns"
	else this.b = b
	this.version = navigator.appVersion
	this.v = parseInt(this.version)
	this.ns = (this.b=="ns" && this.v>=5)
	this.op = (navigator.userAgent.indexOf('Opera')>-1)
	this.safari = (navigator.userAgent.indexOf('Safari')>-1)
	this.op7 = (navigator.userAgent.indexOf('Opera')>-1 && this.v>=7 && this.v<8)
	this.op78 = (navigator.userAgent.indexOf('Opera')>-1 && this.v>=7 || navigator.userAgent.indexOf('Opera')>-1 && this.v>=8)
	this.ie = (this.version.indexOf('MSIE')>-1)
	this.ie5 = (this.version.indexOf('MSIE 5')>-1)
	this.ie6 = (this.version.indexOf('MSIE 6')>-1)
	this.ie7 = (this.version.indexOf('MSIE 7')>-1)
	this.ie56 = (this.ie5||this.ie6)
	this.iewin = (this.ie56 && navigator.userAgent.indexOf('Windows')>-1 || this.ie7 && navigator.userAgent.indexOf('Windows')>-1)
	this.iemac = (this.ie56 && navigator.userAgent.indexOf('Mac')>-1)
	this.moz = (navigator.userAgent.indexOf('Mozilla')>-1)
	this.ff = (navigator.userAgent.indexOf('Firefox')>-1)
	this.moz13 = (navigator.userAgent.indexOf('Mozilla')>-1 && navigator.userAgent.indexOf('1.3')>-1) 
	this.oldmoz = (navigator.userAgent.indexOf('Mozilla')>-1 && navigator.userAgent.indexOf('1.4')>-1 && !this.ff ||navigator.userAgent.indexOf('Mozilla')>-1 && navigator.userAgent.indexOf('1.5')>-1 && !this.ff ||navigator.userAgent.indexOf('Mozilla')>-1 && navigator.userAgent.indexOf('1.6')>-1 && !this.ff)
	this.ns6 = (navigator.userAgent.indexOf('Netscape6')>-1)
	this.docom = (this.ie56||this.ns||this.iewin||this.op||this.iemac||this.safari||this.moz||this.oldmoz||this.ns6)
}

if (document.getElementsByTagName('html')[0]){
	if(is.op){document.getElementsByTagName('html')[0].className = "bopr";}
	else if(is.safari){document.getElementsByTagName('html')[0].className = "bsaf";}
	else if(is.ie){document.getElementsByTagName('html')[0].className = "bie";}
	else {document.getElementsByTagName('html')[0].className = "bmoz";}
}

// pop up window function
function openPopup(dashizzle) {	
	if (!is.ie56){
		document.getElementById('greybg').style.display = 'block';
	}
	document.getElementById(dashizzle).style.display = 'block';
	openedup = dashizzle;
}

function openimg(url,name,width,height,resizable,scrollbars,menubar,toolbar,location,directories,status) {	
	popup = window.open(url, name, 'width=' + width + ',height=' + height + ',resizable=' + resizable + ',scrollbars=' + scrollbars	+ ',menubar=' + menubar + ',toolbar=' + toolbar + ',location=' + location + ',directories=' + directories + ',status=' + status);
	popup.focus();
}
// save search function
function bakecookie(temp){
	var n = 1;
	var cooked = "";
	var xtra = "";
	var cn = document.getElementById('catselector').selectedIndex - 1;
	ex = 0;
	while(document.forms[0].elements[ex]){
		if (document.forms[0].elements[ex].id.indexOf('ity_') > 0 && document.forms[0].elements[ex].checked == true){
			var cooked = cooked+'-'+document.forms[0].elements[ex].id;
		}else if(document.forms[0].elements[ex].id.indexOf('hiscat'+cn) > 0 && cn != 0){
			var cnn = document.forms[0].elements[ex].selectedIndex +'_'+cn;
		}
	ex++;
	}
	
	if (document.getElementById(cn+'minAsk')){
		xtra = xtra+'___'+cn+'minAsk='+document.getElementById(cn+'minAsk').value;
	}
	if (document.getElementById(cn+'maxAsk')){
		xtra = xtra+'___'+cn+'maxAsk='+document.getElementById(cn+'maxAsk').value;
	}
	if (document.getElementById(cn+'filterpic') && document.getElementById(cn+'filterpic').checked == true){
		xtra = xtra+'___'+cn+'filterpic=true';
	}
	if (document.getElementById(cn+'addOne') && document.getElementById(cn+'addOne').checked == true){
		xtra = xtra+'___'+cn+'addOne=true';
	}
	if (document.getElementById(cn+'addTwo') && document.getElementById(cn+'addTwo').checked == true){
		xtra = xtra+'___'+cn+'addTwo=true';
	}
	if (document.getElementById(cn+'addThree') && document.getElementById(cn+'addThree').checked == true){
		xtra = xtra+'___'+cn+'addThree=true';
	}
	if (document.getElementById(cn+'addFour') && document.getElementById(cn+'addFour').checked == true){
		xtra = xtra+'___'+cn+'addFour=true';
	}
	if (document.getElementById(cn+'addFive') && document.getElementById(cn+'addFive').checked == true){
		xtra = xtra+'___'+cn+'addFive=true';
	}
	if (cn == 4 && document.getElementById('bedroom')){
		xtra = xtra+'___bedroom='+document.getElementById('bedroom').selectedIndex;
	}
	if (document.getElementById('stringy')){
		xtra = xtra+'___stringy='+document.getElementById('stringy').value;
	}
	
	cooked = cnn+cooked+'dodododododo'+xtra;
	var now = new Date();
	now.setTime(now.getTime() + 360 * 24 * 60 * 60 * 1000);
	cooked = "crazybaby="+cooked;
	document.cookie = cooked+";expires="+now;
	alert('your search settings have been saved!');
}

// get cookie
function eatcookie(chocochip){
	var search = chocochip + "="
	if (document.cookie.length > 0) {
		offset = document.cookie.indexOf(search) 
		if (offset != -1) {
			offset += search.length 
			end = document.cookie.indexOf(";", offset) 
			if (end == -1) 
			end = document.cookie.length
			var semisweet = unescape(document.cookie.substring(offset, end));
			cutcookie(semisweet);
		} 
	}
}

// parse cookie
function cutcookie(semisweet){
	var pb = semisweet.split('dodododododo');

	var chips=pb[0].split('-');
	var warn = false;
	for (var i=0; i<chips.length; i++){
		if (chips[i].indexOf('ity_') > 0 && document.getElementById(chips[i])){
			if (chips[i].indexOf('___') > 0){
					var xxchips=chips[i].split('___');
					document.getElementById(xxchips[0]).checked = true;
			}else{
					document.getElementById(chips[i]).checked = true;
			}
		}else if(chips[i].indexOf('_') > 0 && chips[i].indexOf('ity_') < 0){
			var mNms=chips[i].split('_');
			document.getElementById('thiscat'+mNms[1]).selectedIndex = mNms[0];
			var tps = (mNms[1] * 1);
			document.getElementById('catselector').selectedIndex = tps + 1;
			if(document.getElementById('d'+tps) && tps > 0){
				document.getElementById('d'+tps).style.display = "inline";
			}
		}else{
			warn = 1;
		}
	}


	if(pb[1]){
		var xchips=pb[1].split('___');

		for (var i=1; i<xchips.length; i++){
			var xkeyval = xchips[i].split('=');
			if (xkeyval[0].indexOf('Ask') > 0 || xkeyval[0].indexOf('tringy') > 0){
				document.getElementById(xkeyval[0]).value = xkeyval[1];
			}else if (xkeyval[0].indexOf('add') > 0 || xkeyval[0].indexOf('filterpic') > 0){
				document.getElementById(xkeyval[0]).checked = true;
			}else if (xkeyval[0].indexOf('droom') > 0){
				document.getElementById(xkeyval[0]).selectedIndex = xkeyval[1];
			}
		}
	}

}

// highlight cities when checked by browser on back/forwards
function preselectamajig(){
	var inp = reg.gebtn('input');
	for (var i=1; i<inp.length; i++){
		if(inp[i].name.indexOf('city_') > -1 && inp[i].checked == true){
			reg.addClassName(inp[i].parentNode,"hili");
			inp[i].checked = true;
		}
	}		
	
	if(document.getElementById("stypemenu").selectedIndex == 1){
		reg.addClassName(document.getElementById("stypemenu").parentNode,"feedbar");
	}else{
		reg.removeClassName(document.getElementById("stypemenu").parentNode,"feedbar");
	}

	showthiscat();
}

var regions = new Array();
regions['wc'] = ",OR,WA,CA,NV,";
regions['nw'] = ",ID,92,OR,WA,";
regions['cn'] = ",CO,UT,WY,MY,ID,MT,";
regions['mw'] = ",IL,MO,OH,KS,IA,NE,MI,WI,OK,IN,KY,";
regions['ma'] = ",DE,MD,DC,VA,NC,SC,WV,";
regions['gl'] = ",WI,MN,MI,IL,IN,OH,";
regions['st'] = ",AL,AR,FL,GA,LA,NC,MS,SC,TN,";
regions['sw'] = ",AZ,NM,26,TX,";
regions['ne'] = ",CT,DC,DE,MA,MD,ME,NH,NJ,NY,PA,RI,";
regions['en'] = ",NH,ME,MA,CT,RI,VT,";
regions['mc'] = ",51,18,57,43,7,103,12,8,1,13,44,10,20,39,37,14,52,11,45,58,31,4,34,22,19,30,29,41,36,55,26,59,40,3,35,27,42,54,9,17,33,46,32,15,21,23,53,56,60,2,47,";
regions['no'] = "no";
regions['al'] = "al";


function selectUSA(regID){	
	if(regID == "al"){
		alert('Searching ALL sites at once is NOT recommended!\n\nSearching so many sites at once will most likely cause your browser to crash and/or craigslist to block your IP. This option is only here for use with the "Get RSS Feeds" feature.\n\nYOU\'VE BEEN WARNED!')
	}
	var inp = reg.gebtn('input');
	for (var i=1; i<inp.length; i++){
		if(inp[i].name.indexOf('city_') > -1){
			var thisstate = inp[i].name.split('_')[1];
			var thiscity = inp[i].name.split('_')[2];
			if (regions[regID].indexOf(','+thiscity+',') > -1 || regions[regID].indexOf(','+thisstate+',') > -1 || regID == "al"){
				inp[i].checked = true;
				reg.addClassName(inp[i].parentNode,"hili");
			}else{
				inp[i].checked = false;
				reg.removeClassName(inp[i].parentNode,"hili");
			}
		}
	}		
}

// highlighting all
var selState = new Array();
reg.click('div.col div a',function(){
	//var stt = this.innerHTML;
	var stt = this.href.split('%20')[2];
	var inp = reg.gebtn('input');
	selState[stt] = (!selState[stt])?true:false;
	for (var i=1; i<inp.length; i++){
		if(inp[i].name.indexOf('city_'+stt+'_') > -1 && selState[stt] == true){
			selState[stt] = true;
			reg.addClassName(inp[i].parentNode,"hili");
			inp[i].checked = true;
		}else if(inp[i].name.indexOf('city_'+stt+'_') > -1 && selState[stt] == false){
			selState[stt] = false;
			reg.removeClassName(inp[i].parentNode,"hili");
			inp[i].checked = false;
		}
	}		
	return false;
});

// highlighting function
function highlight(hdiv,tt,terf){
	if (tt == 1){
		if (terf == true){
			checked[hdiv] = false;
		}else{
			checked[hdiv] = true;
		}
	}
	if (!checked[hdiv]){
		reg.addClassName(hdiv.parentNode,"hili");
		checked[hdiv] = true;
	}else{
		reg.removeClassName(hdiv.parentNode,"hili");
		checked[hdiv] = false;
	}
}



// highlighting input
reg.click('div.col div input',function(){
	if(this.checked == true){
		reg.addClassName(this.parentNode,"hili");
	}else{
		reg.removeClassName(this.parentNode,"hili");
	}
});

// highlighting input
reg.click('a.closelink,a.inlineclose',function(){
	closepop();
});

function closepop(){
	if (openedup != ''){
		if (!is.ie56){
			document.getElementById('greybg').style.display = 'none';
		}
		document.getElementById(openedup).style.display = 'none';
	}
}

reg.change('select#stypemenu',function(){
	if(this.selectedIndex == 1){
		reg.addClassName(this.parentNode,"feedbar");
	}else{
		reg.removeClassName(this.parentNode,"feedbar");
	}
});

// show/hide cat extras
function showthiscat(){
	var meowcat = document.getElementById('catselector').selectedIndex - 1;
	document.getElementById('d1').style.display = "none";
	document.getElementById('d2').style.display = "none";
	document.getElementById('d3').style.display = "none";
	document.getElementById('d4').style.display = "none";
	document.getElementById('d5').style.display = "none";
	document.getElementById('d6').style.display = "none";
	document.getElementById('d7').style.display = "none";
	document.getElementById('d8').style.display = "none";
	document.getElementById('d9').style.display = "none";
	if(document.getElementById('d'+meowcat) && meowcat > 0){
		document.getElementById('d'+meowcat).style.display = "inline";
	}
}	

// form check
function checkyerself(){
// 	if (document.getElementById('stringy').value == "" || document.getElementById('stringy').value == " "){
// 		alert('sorry this search currently does not support browsing of categories accross multiple sites, you must enter some text to search.')
// 		return false;
// 	}
	if (document.getElementById('catselector').selectedIndex < 2){
		alert('you must pic a category to search!')
		return false;
	}
	var sok = false;
	ex = 0;
	while(document.forms[0].elements[ex]){
		if (document.forms[0].elements[ex].id.indexOf('ity_') > 0){
			if (document.forms[0].elements[ex].checked == true){
				var sok = true;
			}
		}
	ex++;
	}
	if (!sok){
		alert('you must select at least one city to search!')
		return false;
	}
}


var iframez = new Array();
// iframe resizer
function framesizer(upRdown,frameid){
	if (upRdown != 0){
		if (iframez[frameid] != 0 && !iframez[frameid]){
			iframez[frameid] = 400;
		}
		var thigh = (iframez[frameid] * 1) + (upRdown * 400);
		if(thigh != -400){
			document.getElementById('iframez'+frameid).style.height = thigh+"px";
			iframez[frameid] = thigh;
		}
	}else{
		document.getElementById('cityblock'+frameid).style.display = "none";
	}
}


// BUBBLE -> LINK AJAXER
var hijaxCache = {};
function hijaxLink(ev){
	var link = this;
	try{
		var hijaxEl = link;
		while (hijaxEl && !matchClassName(hijaxEl,/^hijax-/)) { hijaxEl = hijaxEl.parentNode; }
		var id = matchClassName(hijaxEl,/^hijax-(\S*)/)[1];
		var targetDIV = gebi(id);
	} catch (ex) {
		return;
	}

	var hstring = link.href+' ';
	if (!hijaxCache[hstring]){
		xhr(link.href, function(rdata,obj){
			// succeed
			var el = getElementByIdFromString(rdata, id);
			if (!el) { window.location=link.href; }
			rdata = el.innerHTML;
			hijaxCache[hstring] = rdata;
			targetDIV.innerHTML = rdata;
			if(document.getElementById('linkToPage')){
				document.getElementById('linkToPage').href = link.href;
			}
		},function(){
			// fail
			window.location=link.href;
		});
		cancelDefault(ev);
	}else{
		targetDIV.innerHTML = hijaxCache[hstring];
		if(document.getElementById('linkToPage')){
			document.getElementById('linkToPage').href = link.href;
		}
		cancelDefault(ev);
	}
};


// GENERIC HTTP REQUEST
function getfile(filepath,ftodo,fvar,ferr){
	var http_request = false;
	if (window.XMLHttpRequest) {
		http_request = new XMLHttpRequest();
		if (http_request.overrideMimeType && filepath.indexOf('.xml') > -1){
			http_request.overrideMimeType('text/xml');
		}
	}else if (window.ActiveXObject) { // IE
		try { http_request = new ActiveXObject("Msxml2.XMLHTTP");
		}catch(ex1){
			try{
				http_request = new ActiveXObject("Microsoft.XMLHTTP");
			}catch(ex2){}
		}
	}
	if (!http_request) {
		return false;
	}
	http_request.onreadystatechange = function() {
		if (http_request.readyState == 4) {
			if (http_request.status == 200) {
				if (filepath.indexOf('.xml') > -1){
					var rdata = http_request.responseXML.documentElement;
				}else{
					var rdata = http_request.responseText;
				}
				ftodo(rdata,fvar); // SUCCESS
			}else{
				if (ferr) { ferr(fvar,filepath,http_request.status,http_request.statusText); } // FAIL
			}
		}
	};
	http_request.open('GET', filepath, true);
	http_request.send(null);
}

// RETURN OBJECT FROM STRING
function getRequestObject(elementID,rdata,elementTag) {
	if (!elementTag){ elementTag = 'div'; } // elementTag optional, defaults to DIV
	var sudocont = document.createElement(elementTag);
	sudocont.innerHTML = rdata;
	var x = sudocont.getElementsByTagName(elementTag);
	var chunk;
	for (var i=0;i<x.length;i++) {
		if (x[i].id == elementID) {
			chunk = x[i];
			break;
		}
	}
	return chunk;
}

// BUILD AN ELEMENT FROM TEXT PULLED FROM XHR
function getElementByIdFromString(textBlob, id) {
	var container = document.createElement('div');
	container.innerHTML = textBlob;
	var tags = container.getElementsByTagName("*");
	for (var a=0; a<tags.length; a++){
		if (tags[a].id == id) { return tags[a]; }
	}
	return null;
}

