var my_teaser;
if (typeof(widget_display) == "undefined")
	{
	var widget_display = {
		as_ad:false,
		clicktags:{ct1:false,ct2:false,ct3:false},
		url_append:"",
		match_thumbnails:false,
		data_num_request:18,
		data_num_display_per_table: 6,
		alternate_tables:false,
		tables:[
			{id:"results"}
		],
		custom_header:"<numfound> <strong><fullname></strong> found!",
		table_cols:[
			{class_name:"photo",html:'<a href="<link>"><img src="<thumb>" alt="<fullname>" /></a>'},
			{class_name:"name",html:'<a href="<link>"><fullname></a>'},
			{class_name:"age",html:'<a href="<link>"><age></a>'},
			{class_name:"location",html:'<a href="<link>"><city>, <state></a>'}
		]
	};
	}

function loadTeaser(fn,ln)
	{
	var add_this = "searchFirstName="+fn+"&searchLastName="+ln+"&searchAge="+37;
	widget_display.url_append = widget_display.url_append ? widget_display.url_append+"&"+add_this : "?"+add_this;
	if (document.getElementById("form_page")) document.getElementById("form_page").style.display = "none";
	if (document.getElementById("loading_page")) document.getElementById("loading_page").style.display = "block";
	if (document.getElementById("hide_me")) document.getElementById("hide_me").style.display = "none";
	my_teaser = new TeaserR(fn,ln);
	my_teaser.getNumFound(doStuffWithNumFound);
	my_teaser.getResources(doStuffWithResources,widget_display.data_num_request);
	}

function doStuffWithNumFound(numFound)
	{
	var custom_header = widget_display.custom_header;
	custom_header = custom_header.replace(/<numfound>/gi,numFound);
	custom_header = custom_header.replace(/<fullname>/gi,my_teaser.fullname);
	custom_header = custom_header.replace(/<firstname>/gi,my_teaser.firstname);
	custom_header = custom_header.replace(/<lastname>/gi,my_teaser.lastname);
	if (document.getElementById("results_header")) document.getElementById("results_header").innerHTML = custom_header;
	}

function doStuffWithResources(resourceObj)
	{
	var resources = new Array();
	var thumbs = new Array();
	if (resourceObj && resourceObj.results)
		{
		for (var i=0;i<resourceObj.results.length && resources.length<widget_display.data_num_display_per_table*widget_display.tables.length;i++)
			{
			if (resourceFull(resourceObj.results[i])) resources.push(getFullResourceFrom(resourceObj.results[i]));
			}
		for (var i=0;i<resourceObj.results.length;i++)
			{
			if (resourceObj.results[i].thumb_url && resourceObj.results[i].thumb_url != "null") thumbs.push(resourceObj.results[i].thumb_url);
			}
		}
	handleData(resources,thumbs);
	}

function resourceFull(r)
	{
	var checkMultiple = function(vs)
		{
		for (var i=0;i<vs.length;i++)
			{
			if (!vs[i] || vs[i] == "null") return false;
			}
		return true;
		}
	if (checkMultiple([r.city,r.state,r.age,r.link_url])) return true;
	return false;
	}

function getFullResourceFrom(r)
	{
	return {city:r.city,state:r.state,age:r.age,thumb_url:r.thumb_url,link_url:r.link_url};
	}

function loadNoResultsPage()
	{
	if (document.getElementById("no_results_page")) document.getElementById("no_results_page").style.display = "block";
	if (document.getElementById("results_page")) document.getElementById("results_page").style.display = "none";
	}

function handleData(resources,thumbs)
	{
	if (typeof(global_attempt_num) == "undefined") global_attempt_num = 1;
	else global_attempt_num += 1;
	//document.getElementsByTagName("body")[0].innerHTML += '<input type="hidden" name="attempt_num" value="'+global_attempt_num+'" />';
	if (resources.length == 0)
		{
		if (global_attempt_num < 3) my_teaser.getResources(doStuffWithResources,widget_display.data_num_request);
		else loadNoResultsPage();
		return;
		}
		
	for (var t=0;t<widget_display.tables.length;t++)
		{
		var results_table = document.getElementById(widget_display.tables[t].id);
		if (!results_table.getElementsByTagName("td").length)
			{
			var results_table_body = results_table.getElementsByTagName("tbody")[0] ? results_table.getElementsByTagName("tbody")[0] : document.createElement("tbody");
			for (var r=0;r<widget_display.data_num_display_per_table;r++)
				{
				var row = document.createElement("tr");
				var cols = new Array();
				for (var c=0;c<widget_display.table_cols.length;c++)
					{
					cols[c] = document.createElement("td");
					cols[c].className = widget_display.table_cols[c].class_name;
					row.appendChild(cols[c]);
					}
				results_table_body.appendChild(row);
				}	
			}
		}
	
	var tables = new Array();
	for (var t=0;t<widget_display.tables.length;t++)
		{
		var trs = document.getElementById(widget_display.tables[t].id).getElementsByTagName("tr");
		var rows = new Array();
		for (var r=1;r<trs.length;r++)
			{
			var tds = trs[r].getElementsByTagName("td");
			var cells = new Array();
			for (var c=0;c<tds.length;c++) cells.push(tds[c]);
			rows.push(cells);
			}
		tables.push(rows);
		}
	
	var rows = new Array();
	if (widget_display.alternate_tables)
		{
		for (var r=0;r<widget_display.data_num_display_per_table;r++)
			{
			for (var t=0;t<tables.length;t++) rows.push(tables[t][r]);
			}
		}
	else
		{
		for (var t=0;t<tables.length;t++)
			{
			for (var r=0;r<widget_display.data_num_display_per_table;r++) rows.push(tables[t][r]);
			}
		}
	
	var getDefaultThumb = function()
		{
		return ("http://a1.reunion.com/a/landa/i/default_prof_pic-"+(Math.round(Math.random()) ? "m" : "f")+".png");
		}
	
	var inTD_outHTML = function(td,index,custom_thumb_url)
		{
		var html = "";
		for (var i=0;i<widget_display.table_cols.length;i++)
			{
			if (cutil.checkClass(td,widget_display.table_cols[i].class_name))
				{
				html = widget_display.table_cols[i].html;
				break;
				}
			}
		html = html.replace(/<fullname>/gi,my_teaser.fullname);
		html = html.replace(/<firstname>/gi,my_teaser.firstname);
		html = html.replace(/<lastname>/gi,my_teaser.lastname);
		html = html.replace(/<age>/gi,resources[index].age);
		html = html.replace(/<link>/gi,resources[index].link_url);
		html = html.replace(/<city>/gi,resources[index].city);
		html = html.replace(/<state>/gi,resources[index].state);
		var thumb = custom_thumb_url ? custom_thumb_url : ((resources[index].thumb_url && resources[index].thumb_url != "null" ? resources[index].thumb_url : false) || getDefaultThumb());
		html = html.replace(/<thumb>/gi,thumb);
		return html;
		}
		
	var separate_thumbs_index = 0;
	var separate_thumb = false;
	for (var r=0;r<rows.length;r++)
		{
		for (var c=0;c<rows[r].length;c++)
			{
			if (r < resources.length)
				{
				if (!widget_display.match_thumbnails && c%widget_display.table_cols.length == 0) separate_thumb = (Math.random() <= thumbs.length/resources.length && separate_thumbs_index<thumbs.length) ? thumbs[separate_thumbs_index++] : getDefaultThumb();
				rows[r][c].innerHTML = inTD_outHTML(rows[r][c],r,separate_thumb);
				rows[r][c].style.height = "auto";
				rows[r][c].style.visibility = "visible";
				}
			else
				{
				rows[r][c].innerHTML = "";
				rows[r][c].style.height = "0px";
				rows[r][c].style.visibility = "hidden";	
				}
			}
		}

	if (document.getElementById("results_page")) document.getElementById("results_page").style.display = "block";
	if (document.getElementById("loading_page")) document.getElementById("loading_page").style.display = "none";
	var form = document.getElementById("see_all_results");
	if (form.focus) form.focus();
	
	if (widget_display.as_ad && widget_display.clicktags.ct1)
		{
		var set_href = function(anchor_element,new_href)
			{
			anchor_element.href = new_href;
			anchor_element.target = "_blank";
			if (anchor_element.setAttribute)
				{
				anchor_element.setAttribute("href",new_href);
				anchor_element.setAttribute("target","_blank");
				}
			}
		for (var t=0;t<widget_display.tables.length;t++)
			{
			var all_anchors = document.getElementById(widget_display.tables[t].id).getElementsByTagName("a");
			for (var a=0;a<all_anchors.length;a++)
				{
				set_href(all_anchors[a],appendURLVars(widget_display.url_append,widget_display.clicktags.ct1));
				all_anchors[a].onclick = function()
					{
					if (typeof(trackClickOut) == "function") trackClickOut();
					return true;
					}
				}
			}
		}
	}

function onWidgetFormSubmit(formElm)
	{
	var ok = true;
	if (!formElm.searchFirstName.value)
		{
		formElm.searchFirstName.style.backgroundColor = "#ffff00";
		ok = false;
		}
	else formElm.searchFirstName.style.backgroundColor = "#ffffff";
	if (!formElm.searchLastName.value)
		{
		formElm.searchLastName.style.backgroundColor = "#ffff00";
		ok = false;
		}
	else formElm.searchLastName.style.backgroundColor = "#ffffff";
	if (ok)
		{
		loadTeaser(formElm.searchFirstName.value,formElm.searchLastName.value);
		var tform = document.getElementById("see_all_results");
		tform.searchFirstName.value = formElm.searchFirstName.value;
		tform.searchLastName.value = formElm.searchLastName.value;
		tform.searchAge.value = "37";
		}
	return false;
	}

function ClassUtil()
	{
	this.getClass = function(element)
		{
		return element.className || (element.getAttribute ? element.getAttribute("class") : false) || "";
		}
	this.setClass = function(element,class_name,overwrite)
		{
		// without overwrite set, its just like adding a class to the element
		var new_class = overwrite ? class_name : (this.getClass(element) ? this.getClass(element)+" "+class_name : class_name);
		element.className = new_class;
		if (element.setAttribute) element.setAttribute("class",new_class);
		}
	this.removeClass = function(element,class_name)
		{
		var elm_class = this.getClass(element);
		var classes_to_check = elm_class.split(" ");
		var new_class = new Array();
		for (var i=0;i<classes_to_check.length;i++)
			{
			if (class_name != classes_to_check[i]) new_class.push(classes_to_check[i]);
			}
		this.setClass(element,new_class.join(" "),true);
		}
	this.checkClass = function(element,class_name)
		{
		var elm_class = this.getClass(element);
		var classes_to_check = elm_class.split(" ");
		for (var i=0;i<classes_to_check.length;i++)
			{
			if (class_name == classes_to_check[i]) return true;
			}
		return false;
		}
	this.getElementsByClassName = function(class_name,opt_root)
		{
		var root = opt_root || document;
		var all = root.getElementsByTagName("*");
		var class_names = class_name.split(" ");
		var sp = new Array();
		for (var i=0;i<all.length;i++)
			{
			var chk = 0;
			for (var c=0;c<class_names.length;c++)
				{
				if (this.checkClass(all[i],class_names[c])) chk++;
				}
			if (chk == class_names.length) sp.push(all[i]);
			}
		return sp;
		}
	}
var cutil = new ClassUtil();

function searchAgain()
	{
	if (document.getElementById("hide_me")) document.getElementById("hide_me").style.display = "block";
	if (document.getElementById("form_page")) document.getElementById("form_page").style.display = "block";
	if (document.getElementById("results_page")) document.getElementById("results_page").style.display = "none";
	var wform = document.getElementById("wform");
	wform.searchFirstName.value = "";
	wform.searchLastName.value = "";
	if (wform.searchFirstName.focus) wform.searchFirstName.focus();
	return false;
	}

function appendURLVars(the_vars,current_url)
	{
	if (!the_vars) return current_url;
	the_vars = (the_vars.charAt(0)=="&" || the_vars.charAt(0)=="?") ? the_vars.substr(1) : the_vars;
	return current_url.indexOf("?")==-1 ? current_url+"?"+the_vars : current_url+"&"+the_vars;
	}

function onJumpFormSubmit(form_element)
	{
	if (typeof(trackClickOut) == "function") trackClickOut();
	return true;
	}