
var KWResults;


var kwresults_pager = function(table_setup) {
	var i;
	var p;
	var r;
	var oe;

	

	if(table_setup === undefined) {
		this.type                     = "page";
		this.page_links_base_id       = "kw_page_links";
		this.result_base_id           = "kwresult";
		this.drop_down_base_id        = "kwresults_pp_form";
		this.drop_down_select_base_id = "kwresults_pp_select";
		this.page_links_text_base_id  = "kw_page_links_text";
		this.page_tables_base_id      = "kwresults_page_table";
	} else {
		this.type                     = table_setup.type;
		this.page_links_base_id       = table_setup.page_links_base_id;
		this.result_base_id           = table_setup.result_base_id;
		this.drop_down_base_id        = table_setup.drop_down_base_id;
		this.drop_down_select_base_id = table_setup.drop_down_select_base_id;
		this.page_links_text_base_id  = table_setup.page_links_text_base_id;
		this.page_tables_base_id      = table_setup.page_tables_base_id;
	}

	

	
	this.init = function() {
		this.results = [];
		this.results_per_page = 0;

		this.pages = [];
		this.results_on = [];
		this.page_current = 0;
		this.page_previous = 0;
		this.pages_max = 15;

		this.prev_links = [];
		this.next_links = [];

		this.page_links = [{id: "", element: null, links: [], textid: ""}];
		this.drop_downs = [{id: "", element: null, select: null}];
		this.page_tables = [{id: "", element: null}];

		this.drop_down_pp = [	4,8,16
				    ];

		this.drop_down_current = 0;
		this.drop_down_previous = 0;
		this.drop_down_change_enabled = true;
	}
	
	
	this.init_results = function() {
		this.init();
		var r;
		var s;
		var i;

		
		for(i = 0; (r = dojo.byId(this.result_base_id + i)) && typeof(r) !== 'undefined'; i++) {
			oe = i % 2;
			r.style.display = 'none';
			var cn = r.className;
			if((cn !== null) && (cn !== undefined)){
				cn = cn.replace(/(.+)[01]$/,'$1');
			} else {
				cn = 'kwresult_normal' + oe;
			}
			this.results[i] = { element: r,
						oe:  oe,
						cn:  cn
						};
		}

		
		this.page_tables = [];
		for(i = 0; (r = dojo.byId(this.page_tables_base_id + i)) && typeof(r) !== 'undefined'; i++) {
			this.page_tables[i] = {	id: this.page_tables_base_id + i,
						element: r
						};
		}

		
		this.drop_downs = [];
		for(i = 0; (r = dojo.byId(this.drop_down_base_id + i)) && typeof(r) !== 'undefined'; i++) {
			s = dojo.byId(this.drop_down_select_base_id + i);
			this.drop_downs[i] = {	id: this.drop_down_base_id + i,
						element: r,
						select: s
						};
			this.drop_downs[i].select.onchange = function() {KWResults.on_dd_change(this.selectedIndex, this.options[this.selectedIndex].value);};	
		}

		if((this.drop_down_pp.length === 0) || (this.drop_downs.length === 0)) {
			this.results_per_page = Math.floor(Math.max(KW_PAGE_CONFIG.slot_height * KW_PAGE_CONFIG.min_slots, windowHeight() - KW_PAGE_CONFIG.unusable_height - KW_PAGE_CONFIG.table_unusable_height) / KW_PAGE_CONFIG.slot_height);
		} else {
			this.results_per_page = this.drop_down_pp[0];
		}			

		if(this.results_per_page > this.results.length || this.results_per_page === -1)
		{	this.results_per_page = this.results.length;
		}

		this.set_pages();

		if(this.drop_downs.length > 0)
		{	this.init_dropdowns();
		} 

		this.drop_down_current = 0;
		this.drop_donw_previous = 0;

		
		this.page_links = [];
		var pltid;
		for(i = 0; (r = dojo.byId(this.page_links_base_id + i)) && typeof(r) !== 'undefined'; i++) {
			pltid = dojo.byId(this.page_links_text_base_id + i);
			this.page_links[i] = {	id: this.page_links_base_id + i,
						element: r,
						links: [],
						textid: pltid
						};
		}
	}

	
	this.init_dropdowns = function()
	{	var i;
		var j;
		var o;
		this.drop_down_change_enabled = false;
		if(this.drop_down_pp.length === 0 && this.drop_downs.length !== 0)
		{	for(i=0, j=this.results_per_page; i<this.pages.length && i<4; i++, j+=this.results_per_page)
			{	this.drop_down_pp[i] = j;
			}
		}

		for(i=0; i<this.page_tables.length; i++){
			if(this.pages.length <= 1) {
				this.page_tables[i].element.style.display = 'none';
			}
		}

		for(i=0; i<this.drop_downs.length; ++i) {
			if(this.pages.length <= 1) {
				this.drop_downs[i].element.style.display = 'none';
			} else {
				this.drop_downs[i].select.options.length = 0;
				for(j=0; j<this.drop_down_pp.length; ++j)
				{	if(this.drop_down_pp[j] >= this.results.length)
					{	break;
					}
					o = document.createElement('option');
					o.innerHTML = this.drop_down_pp[j] + " per page";
					o.value = this.drop_down_pp[j];
					if(j === 0)
					{	o.selected = true;
					}
					this.drop_downs[i].select.appendChild(o);
				}
				o = document.createElement('option');
				o.innerHTML = "View all";
				o.value = -1;
				this.drop_downs[i].select.appendChild(o);
			}
		}
		this.drop_down_change_enabled = true;
	}	

	
	this.on_dd_change = function(index, pp)
	{	var i;

		if(this.drop_down_change_enabled === false) {
			return;
		}

		this.drop_down_previous = this.drop_down_current;
		this.drop_down_current = index;

		if(this.drop_downs.length > 1) {
			this.set_dropdowns();
		}

		if(pp >= this.results.length) {
			this.results_per_page = this.results.length;
		} else {
			var ipp = parseInt(pp);
			if(ipp == -1) {
				this.results_per_page = this.results.length;
			} else {
				this.results_per_page = ipp;
			}
		}

		for(i = 0; i < this.page_links.length; i++) {
			this.page_links[i].links = [];
		}

		this.set_pages();
		this.show_page(0);
	}

	
	this.set_dropdowns = function(sync)
	{	var i;
		var ddbox;

		this.drop_down_change_enabled = false;

		for(i = 0; i < this.drop_downs.length; i++) {
			ddbox = this.drop_downs[i].select;
			ddbox.options[this.drop_down_previous].selected = false;
			ddbox.options[this.drop_down_current].selected = true;
		}
		this.drop_down_change_enabled = true;
	}

	
	this.set_pages = function()
	{	var i;
		var j;
		this.pages = [];
		for(i=0, j=0; (j<this.results.length) && (i<this.pages_max); i++, j+=this.results_per_page) {
			this.pages[i] = j;
		}
	}

	
	this.set_links = function()
	{	var i;
		var j;
		var link;
		var txt;
		var sep;
		var e;
		var link_click_handler = function(p)
		{	return function()
			{	KWResults.show_page(p);
			};
		}
		for(i = 0; i < this.page_links.length; i++) {
			if(this.pages.length <= 1) {
				this.page_links[i].element.innerHTML = "";
				if(this.page_links[i].textid && typeof(this.page_links[i].textid) !== 'null') {
					this.page_links[i].textid.style.display = "none";
				}
			} else {
				if(this.page_links[i].links.length === 0) {
					this.page_links[i].element.innerHTML = "";
					if(this.page_links[i].textid && typeof(this.page_links[i].textid) !== 'null') {
						this.page_links[i].textid.style.display = "";
					}
					for(j = 0; j < this.pages.length; j++) {
						txt  = document.createTextNode((j+1) + "");
						link = document.createElement('a');
						
						link.id = "kw_page_link" + j;
						if(j === this.page_current) {
							link.className = "kw_page_link_current";
						} else {
							link.className = "kw_page_link_active";
						}
						link.onclick = link_click_handler(j);
						link.appendChild(txt);
						this.page_links[i].element.appendChild(link);
						if(j !== (this.pages.length - 1)) {
							sep = document.createTextNode(" | ");
							this.page_links[i].element.appendChild(sep);
						}
						this.page_links[i].links[j] = link;
					}
				} else {
					this.page_links[i].links[this.page_previous].className = "kw_page_link_active";
					this.page_links[i].links[this.page_current].className = "kw_page_link_current";
				}
			}
		}
	}

	
	this.show_page = function(page)
	{	var i;
		var last;

		last = this.pages[this.page_current] + this.results_per_page;
		
		for(i = 0; i < this.results_on.length; ++i) {
			this.results[this.results_on[i]].element.style.display = 'none';
		}
		this.results_on = [];

		last = this.pages[page] + this.results_per_page;
		for(i = this.pages[page]; (i < last) && (i < this.results.length); ++i) {
			this.results[i].element.className = this.results[i].cn + this.results[i].oe;
			this.results[i].element.style.display = "";
			this.results_on.push(i);
		}
		this.page_previous = this.page_current;
		this.page_current = page;

		this.set_links();
		if(this.on_state_changes){
			for(i = 0; i < this.on_state_changes.length; i++){
				this.on_state_changes[i](this);
			}
		}
	}

	
	this.next_page = function()
	{	if(this.page_current < (this.pages.length - 1))
		{	this.show_page(this.page_current + 1);
		}
	}

	
	this.prev_page = function()
	{	if(this.page_current > 0)
		{	this.show_page(this.page_current - 1);
		}
	}

	
	this.kwresult_highlight = function(c)
	{	this.results[c].element.className = this.results[c].cn + this.results[c].oe + " kwresult_highlight";
		
	}

	
	this.kwresult_highlight_off = function(c)
	{	this.results[c].element.className = this.results[c].cn + this.results[c].oe;
		
	}

	
	this.kwresult_mouseover = function(c) {
		this.kwresult_highlight(c);
		if((typeof(localmap) !== 'null') && (typeof(localmap) !== 'undefined')) {
			mouseover_action(localmap.plugins["standard_marker_layers"].marker_get_by_i("normal", c));
		} 
	}

	
	this.kwresult_mouseout = function(c) {
		this.kwresult_highlight_off(c);
		if((typeof(localmap) !== 'null') && (typeof(localmap) !== 'undefined')) {
			mouseout_action(localmap.plugins["standard_marker_layers"].marker_get_by_i("normal", c));
		}
	}

	
	this.kwresult_click = function(c) {
		if((typeof(localmap) !== 'null') && (typeof(localmap) !== 'undefined')) {
			click_action(localmap.plugins["standard_marker_layers"].marker_get_by_i("normal", c));
		}
	}

	this.add_on_state_change = function(f){
		if(!this.on_state_changes){
			this.on_state_changes = new Array();
		}
		this.on_state_changes.push(f);
	}

}

function kwshow_detail(key)
{	var detail_div = document.getElementById('detail_page');
	var detail_html = '';

	if(KW_VARS.current_page === 'details'){
		return_sr();
	}

	
	KW_VARS.current_page = 'details';
	if(KW_VARS.mapdone !== 0)
	{	
			kwresize();

	}

	
	
		document.getElementById('search_results').className = 'kwresult_hidden';
		document.getElementById('kwresults_locations_nearest').className = 'kwresult_hidden';
	
	document.getElementById('dd_page').className = 'kwresult_hidden';

	

	

	
	detail_div.className = 'kwdetail_show';
	if(KW_PAGE_CONFIG.det_width && KW_PAGE_CONFIG.det_width != 0){
		detail_div.style.width = KW_PAGE_CONFIG.det_width + 'px';
	}
	detail_html += KW_STRING.kwresults_info_loading;
	detail_html += '<div style="margin-top: 10px;">';
	detail_html += '<img src="' + kw_hostdir + '/Icon/Common/wait_bar.gif"/>';
	detail_html += '</div>';
	detail_div.innerHTML = detail_html;	

	if(kw_design == 'iphone'){
		var disp_table = dojo.byId('kw_detail_table');
		disp_table.className = '';
	}
	if(kw_design == 'iphone' || kw_design == 'mobile'){
		document.getElementById('local_map_div').className = '';
	}
	if(kw_design == 'iphone' || kw_design == 'mobile'){
		var page_title = dojo.byId("kw_sr_page_title");
		page_title.innerHTML = 'Store Detail';
	}

	var get_content = { mapid: kw_mapid, site: key, place: kw_place, region: kw_region, option: kw_option, region_name: kw_region_name, mapon: 1, lang: kw_lang, design: kw_design, from: kw_from};

	if(kw_dom){
		get_content['dom'] = kw_dom;
	}

	
		if(KW_VARS.mapdone !== 0){
			var m = localmap.plugins["standard_marker_layers"].marker_get_by_key("normal", key);
			if(KW_VARS.current_detail !== undefined){
				kw_highlight_marker_off(KW_VARS.current_detail);
			}
/*
			
			kw_highlight_marker(m);
*/
			KW_VARS.current_detail = m;
		}
	
	
	dojo.xhrGet({
		url: kw_hostdir + '/cgi/site', 
		content: get_content,
		handleAs: "text",
		timeout: 5000,
		load: function(response) {
			detail_div.innerHTML = response;

			
			kw_update_crumbs(2);
			if(KW_VARS.mapdone !== 0){	
				kwresize();
			}
			if(kw_design == 'iphone'){

				var rt = dojo.byId('kw-result-detail-title');
				var dt = dojo.byId('kw-detail-title');
				var disp_table = dojo.byId('kw_detail_table');
				disp_table.className = '';
				rt.innerHTML = dt.innerHTML;


			}
		},
		error: function(response, ioArgs) {
			console.error("HTTP status code: ", ioArgs.xhr.status);
			return response;
		}
	});
}


function clear_place(fn)
{	if(KW_VARS.apikey){
		return;
	}
	
	var f = (fn==undefined?document.kwform:document.forms[fn]);
	if(f && f.region)
	{	f.region.value = "";
	}
	if(f.place.value == KW_STRING.form_input_prompt || f.place.value == KW_STRING.form_input_prompt_askdir)
	{	f.place.value = "";
		
		if(f.place.className.search(/focus/)==-1)
		{	f.place.className += "_focus";
		}
	}
	return false;
}

function kwdd(site, fn)
{	var f = (fn==undefined?document.kwform:document.forms[fn]);
	var place = f.place.value;
	var dd_div = document.getElementById('dd_page');
	var dd_html = '';	

	
	KW_VARS.current_page = 'dd';
	kwresize();

	
	
		document.getElementById('detail_page').className = 'kwdetail_hidden';
	

	
	document.getElementById('kw_dd_error').style.display = 'none';

	
	
	
	dd_div.className = 'kwdetail_show';
	if(KW_PAGE_CONFIG.dd_width && KW_PAGE_CONFIG.dd_width != 0){
		dd_div.style.width = KW_PAGE_CONFIG.dd_width + 'px';
	}
	dd_html += KW_STRING.kwresults_dd_loading;
	dd_html += '<div style="margin-top: 10px;">';
	dd_html += '<img src="'+kw_hostdir+'/Icon/Common/wait_bar.gif"/>';
	dd_html += '</div>';
	dd_div.innerHTML = dd_html;

	

	dojo.xhrGet({
		url: kw_hostdir + '/cgi/directions',
		content: { mapid: kw_mapid, site: site, place: place, region: kw_region, option: kw_option, region_name: kw_region_name, lang: kw_lang, design: kw_design },
		load: function(response)
		{	if(response.search(/Error:/)!=-1)
			{	
				response = response.replace(/Error:/,'');
				KW_VARS.current_page = 'details';
				var detail_div = document.getElementById('detail_page');
				var error_div = document.getElementById('kw_dd_error');
				var error_html = '';

				
				detail_div.className = 'kwdetail_show';
				if(KW_PAGE_CONFIG.det_width && KW_PAGE_CONFIG.det_width != 0){
					detail_div.style.width = KW_PAGE_CONFIG.det_width + 'px';
				}
				document.getElementById('dd_page').className = 'kwresult_hidden';

				
				error_div.style.display = '';
				error_html += response;
				error_div.innerHTML = error_html;
				
			}
			else
			{	
				dd_div.innerHTML = response;
				var dds = dojo.byId("dd_script");
				if(dds != null)
				{	dojo.eval(dds.innerHTML);
				}
				kw_update_crumbs(3);

				
			}
			
			kwresize();
		},
		error: function(response, ioArgs) {
			console.error("HTTP status code: ", ioArgs.xhr.status);
			return response;
		}
	});
	return false;
}


function return_sr() {
	
	DD_remove_markers();
	KW_VARS.current_page = 'results';

	
		kw_highlight_marker_off(KW_VARS.current_detail);
		KW_VARS.current_detail = undefined;
	
	
	
	document.getElementById('detail_page').className = 'kwdetail_hidden';
	document.getElementById('dd_page').className = 'kwdetail_hidden';

	var dddiv = dojo.byId('kw_dd_error');
	if(dddiv){
		dddiv.style.display = 'none';
	}

	if(kw_design == 'iphone'){
		var disp_table = dojo.byId('kw_detail_table');
		disp_table.className = 'kwdetail_hidden';
	}
	if(kw_design == 'iphone' || kw_design == 'mobile'){
		var page_title = dojo.byId("kw_sr_page_title");
		page_title.innerHTML = 'Search Results';
	}
	if(kw_design == 'iphone' || kw_design == 'mobile'){
		document.getElementById('local_map_div').className = 'kwdetail_hidden';
	}
	
	
		document.getElementById('search_results').className = 'kwresult_show';
		document.getElementById('kwresults_locations_nearest').className = 'kwresult_show';
	

	

	localmap.zoomToExtent(map_bounds);
	if(KW_VARS.DZL !== 0) {
		KWMap_zoom(KW_VARS.clat, KW_VARS.clon, KW_VARS.DZL);
	}
	kw_update_crumbs(1);
	if(kw_design !== 'iphone' || kw_design == 'mobile'){
		kwresize();
	}
	return false;
}


function return_det(key) {
	
	DD_remove_markers();
	KW_VARS.current_page = 'details';

	
	document.getElementById('detail_page').className = 'kwdetail_show';

	

	
	document.getElementById('dd_page').className = 'kwdetail_hidden';
	document.getElementById('kw_dd_error').style.display = 'none';
	if(kw_design == 'iphone' || kw_design == 'mobile'){
		var page_title = dojo.byId("kw_sr_page_title");
		page_title.innerHTML = 'Store Detail';
	}

	kw_update_crumbs(2);
	kwresize();
	return false;
}

function kw_set_crumb_state(crumb, state) {
		var crumb_li;
		var crumb_text;
		var crumb_class;
		var crumb_display = 'inline';
		
		if(state === -1)
		{	crumb_class = 'kw_crumb_current';
		}
		else if(state === 1)
		{	crumb_class = 'kw_crumb_past';
		}
		else if(state === 2)
		{	crumb_class = 'kw_crumb_future';
			crumb_display = 'none';
		}

		if(crumb === "kw_crumb_results")
		{	if(state === -1)
			{	crumb_text = KW_STRING.breadcrumbs_results;
			}
			else
			{	crumb_text = '<a href="' + kw_hostdir + '" onclick="return return_sr();" style="cursor:pointer;">' + KW_STRING.breadcrumbs_results + '</a>';
				crumb_text += KW_STRING.breadcrumbs_separator;
			}
		}
		else if(crumb === "kw_crumb_detail")
		{	if(state === -1)
			{	crumb_text = KW_STRING.breadcrumbs_detail;
			}
			else
			{	crumb_text = '<a href="' + kw_hostdir + '" onclick="return return_det();" style="cursor:pointer;">' + KW_STRING.breadcrumbs_detail + '</a>';
				crumb_text += KW_STRING.breadcrumbs_separator;
			}
		}
		else if(crumb === "kw_crumb_dd")
		{	crumb_text = KW_STRING.breadcrumbs_dd;
		}
		else
		{	alert(crumb + " crumb not found");
			return;
		}

		crumb_li = dojo.byId(crumb);
		if(crumb_li !== null && (typeof(crumb_li) !== 'undefined') && (typeof(crumb_li) !== 'null'))
		{	crumb_li.innerHTML = crumb_text;
			crumb_li.className = crumb_class;
			crumb_li.style.display = crumb_display;
		}
}

function kw_update_crumbs(state)
{	crumb_ul = dojo.byId('kw_breadcrumbs_list');
	if(typeof(crumb_ul) === 'undefined')
	{	return;
	}

	

	
	if(state == 1)
	{	kw_set_crumb_state("kw_crumb_results", -1);
		kw_set_crumb_state("kw_crumb_detail", 2);
		kw_set_crumb_state("kw_crumb_dd", 2);
	}

	
	else if(state == 2)
	{	kw_set_crumb_state("kw_crumb_results", 1);
		kw_set_crumb_state("kw_crumb_detail", -1);
		kw_set_crumb_state("kw_crumb_dd", 2);
	}

	
	else if(state == 3)
	{	kw_set_crumb_state("kw_crumb_results", 1);
		kw_set_crumb_state("kw_crumb_detail",  1);
		kw_set_crumb_state("kw_crumb_dd", -1);
	}
}



function pageWidth() {
    return window.innerWidth != null ? window.innerWidth: document.documentElement && document.documentElement.clientWidth ? document.documentElement.clientWidth: document.body != null ? document.body.clientWidth: null;
}
function pageHeight() {
    return window.innerHeight != null ? window.innerHeight: document.documentElement && document.documentElement.clientHeight ? document.documentElement.clientHeight: document.body != null ? document.body.clientHeight: null;
}
function posLeft() {
    return typeof window.pageXOffset != 'undefined' ? window.pageXOffset: document.documentElement && document.documentElement.scrollLeft ? document.documentElement.scrollLeft: document.body.scrollLeft ? document.body.scrollLeft: 0;
}
function posTop() {
    return typeof window.pageYOffset != 'undefined' ? window.pageYOffset: document.documentElement && document.documentElement.scrollTop ? document.documentElement.scrollTop: document.body.scrollTop ? document.body.scrollTop: 0;
}
function scrollFix() {
    var obol = dojo.byId('ol');
    obol.style.top = posTop() + 'px';
    obol.style.left = posLeft() + 'px'
}
function sizeFix() {
    var obol = dojo.byId('ol');
    obol.style.height = pageHeight() + 'px';
    obol.style.width = pageWidth() + 'px';
}
function kp(e) {
    ky = e ? e.which: event.keyCode;
    if (ky == 88 || ky == 120) hm();
    return false
}
function inf(h) {
    tag = document.getElementsByTagName('select');
    for (i = tag.length - 1; i >= 0; i--) tag[i].style.visibility = h;
    tag = document.getElementsByTagName('iframe');
    for (i = tag.length - 1; i >= 0; i--) tag[i].style.visibility = h;
    tag = document.getElementsByTagName('object');
    for (i = tag.length - 1; i >= 0; i--) tag[i].style.visibility = h;
}
function sm(obl, wd, ht) {
    var h = 'hidden';
    var b = 'block';
    var p = 'px';
    var obol = dojo.byId('ol');
    var obbxd = dojo.byId('mbd');
    obbxd.innerHTML = dojo.byId(obl).innerHTML;
    obol.style.height = pageHeight() + p;
    obol.style.width = pageWidth() + p;
    obol.style.top = posTop() + p;
    obol.style.left = posLeft() + p;
    obol.style.display = b;
    var tp = posTop() + ((pageHeight() - ht) / 2) - 12;
    var lt = posLeft() + ((pageWidth() - wd) / 2) - 12;
    var obbx = dojo.byId('mbox');
    obbx.style.top = (tp < 0 ? 0 : tp) + p;
    obbx.style.left = (lt < 0 ? 0 : lt) + p;
    obbx.style.minWidth = wd + p;
    obbx.style.minHeight = ht + p;
    inf(h);
    obbx.style.display = b;
    return false;
}

function sm_repos(){
	var obbx = dojo.byId('mbox');
	var ht = obbx.offsetHeight;
	var wd = obbx.offsetWidth;
	var p  = 'px';
	var tp = posTop() + ((pageHeight() - ht) / 2) - 12;
    var lt = posLeft() + ((pageWidth() - wd) / 2) - 12;
	obbx.style.top = (tp < 0 ? 0 : tp) + p;
    obbx.style.left = (lt < 0 ? 0 : lt) + p;
	
}

function hm() {
    var v = 'visible';
    var n = 'none';
    dojo.byId('ol').style.display = n;
    dojo.byId('mbox').style.display = n;
    inf(v);
    document.onkeypress = ''
}
function initmb() {
    var ab = 'absolute';
    var n = 'none';
    var obody = document.getElementsByTagName('body')[0];
    var frag = document.createDocumentFragment();
    var obol = document.createElement('div');
    obol.setAttribute('id', 'ol');
    obol.style.display = n;
    obol.style.position = ab;
    obol.style.top = 0;
    obol.style.left = 0;
    obol.style.zIndex = 1998;
    obol.style.width = '100%';
    frag.appendChild(obol);
    var obbx = document.createElement('div');
    obbx.setAttribute('id', 'mbox');
    obbx.style.display = n;
    obbx.style.position = ab;
    obbx.style.zIndex = 1999;
    var obl = document.createElement('span');
    obbx.appendChild(obl);
    var obbxd = document.createElement('div');
    obbxd.setAttribute('id', 'mbd');
    obl.appendChild(obbxd);
    frag.insertBefore(obbx, obol.nextSibling);
    obody.insertBefore(frag, obody.firstChild);
    window.onscroll = scrollFix;
    window.onresize = sizeFix;
}

function custom_pager(r){
	var n = dojo.byId('kwcustom_next');
	var p = dojo.byId('kwcustom_prev');
	var nt = dojo.byId('kwcustom_next_text');
	var pt = dojo.byId('kwcustom_prev_text');

	if(r.page_current > 0){
		p.style.display = '';
		pt.innerHTML = "Previous " + r.results_per_page;
	} else {
		p.style.display = 'none';
	}

	if(r.page_current < (r.pages.length - 1)){
		n.style.display = '';
		var left = r.results.length - r.pages[r.page_current + 1];
		if(left > r.results_per_page){
			left = r.results_per_page;
		}
		nt.innerHTML = "Next " + left;
	} else {
		n.style.display = 'none';
	}
}

function kwdd(site, fn)
{	var f = (fn==undefined?document.kwform:document.forms[fn]);
	var place = f.place.value;
	var dd_div = document.getElementById('dd_page');
	var dd_html = '';	

	
	KW_VARS.current_page = 'dd';
	kwresize();

	
	document.getElementById('detail_page').className = 'kwdetail_hidden';

	
	document.getElementById('kw_dd_error').style.display = 'none';

	
	dd_div.className = 'kwdetail_show';
	if(KW_PAGE_CONFIG.dd_width && KW_PAGE_CONFIG.dd_width != 0){
		dd_div.style.width = KW_PAGE_CONFIG.dd_width + 'px';
	}


	if(kw_design == 'iphone' || kw_design == 'mobile'){
		var page_title = dojo.byId("kw_sr_page_title");
		page_title.innerHTML = 'Driving Directions';
	}

	dd_html += '<b style="font-size: larger;">Calculating driving directions...</b>';
	dd_html += '<div style="margin-top: 10px;">';
	dd_html += '<img src="'+kw_hostdir+'/Icon/Common/wait_bar.gif"/>';
	dd_html += '</div>';
	dd_div.innerHTML = dd_html;

	dojo.xhrGet({
		url: kw_hostdir + '/cgi/directions',
		content: { mapid: kw_mapid, site: site, place: place, region: kw_region, option: kw_option, region_name: kw_region_name, design: kw_design },
		load: function(response)
		{	if(response.search(/Error:/)!=-1)	
			{	response = response.replace(/Error:/,'');
				KW_VARS.current_page = 'details';
				var detail_div = document.getElementById('detail_page');
				var error_div = document.getElementById('kw_dd_error');
				var error_html = '';

				
				detail_div.className = 'kwdetail_show';
				 if(KW_PAGE_CONFIG.det_width && KW_PAGE_CONFIG.det_width != 0){
					detail_div.style.width = KW_PAGE_CONFIG.det_width + 'px';
				}
				document.getElementById('dd_page').className = 'kwresult_hidden';

				
				error_div.style.display = '';
				error_html += response;
				error_div.innerHTML = error_html;

			}
			else	
			{	dd_div.innerHTML = response;
				var dds = dojo.byId("dd_script");
				if(dds != null)
				{	dojo.eval(dds.innerHTML);
				}
				kw_update_crumbs(3);
			}
			
			kwresize();

			return false;
		},
		error: function(response, ioArgs) {
			console.error("HTTP status code: ", ioArgs.xhr.status);
			return response;
		}
	});
	return false;
}

function kwShowHide(d){
	var div = dojo.byId(d);
	if(div.className === 'kwdetail_show'){
		dojo.byId("state_image").src = "images/icon_plus.gif";
		div.className = 'kwdetail_hidden';
	} else {
		dojo.byId("state_image").src = "images/icon_minus.gif";
		div.className = 'kwdetail_show';
	}
	return false;
}

function kw_send_email(){
	if(KW_VARS.mail === 1){
		return;
	}
	var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
	var to   = dojo.byId("to").value;
	var from = dojo.byId("from").value;
	dojo.byId("drivingDirectionsXML").value = dojo.byId("kw_dd_xml").value;

	var dderr = '';
	
	if(to.length == 0){
		dderr += 'You must provide a to E-mail address<br/>';
	} else {
		var emarray = to.split(",");
		var i;
		for(i = 0; i < emarray.length; i++){
			emarray[i] = emarray[i].replace(/^\s*|\s*$/g,'');
			if(reg.test(emarray[i]) === false){
				dderr += 'Invalid to E-mail address "' + emarray[i] + '"<br/>';	
			}
		}
	}

	from.replace(/^s*|s*$/g,'');

	if(from.length == 0){
		dderr += 'You must provide a from E-mail address<br/>';
	} else if(reg.test(from) == false){
		dderr += 'Invalid from E-mail address "' + from + '"<br/>';
	}

	if((KW_VARS.mail_sent !== undefined) && (KW_VARS.mail_sent > 2)){
		dderr = "You have reached the maximum number of E-mails that can be sent this session."
	}
	var sp = dojo.byId('email_error');
	if(dderr.length !== 0){
		sp.innerHTML = dderr;
		sp.className = 'kw_error';
	} else {
		sp.className = 'kwdetail_hidden';
		KW_VARS.mail = 1;
		if(KW_VARS.mail_sent === undefined){
			KW_VARS.mail_sent = 1;
		} else {
			KW_VARS.mail_sent++;
		}
		dojo.xhrPost({
			form: dojo.byId("SL-EmailDirectionsForm"),
			load: function(response)
			{	
				KW_VARS.mail = 0;
				dojo.byId('SL-SuccessfulMessage').className = '';
				setTimeout ( function(){hm('modal');}, 2000 );
				return false;
			},
			error: function(response, ioArgs) {
				KW_VARS.email_mail = 0;
				dderr = "An error occured sending your E-mail.  Please try back later."
				sp.innerHTML = dderr;
				sp.className = 'kw_error';
				console.error("Cannot post email: ", resopnse, ioArgs.xhr.status);
				return false;
			}
		});
	}

	return false;
}


	
 	function kw_webview_search(search_object){
 		search_object.stype = 'place';
 		search_object.webView = true;
 		kwsearch(search_object);
		return 1;
 	}

	function kw_webview_get_results(){
		var res = dojo.byId("kw_api_results");
		if(res){
			return res.innerHTML;
		} else {
			return "";
		}
	}

 	


function kwsms_box(i,k,t){
	KW_VARS.smsi = i;
	KW_VARS.smsk = k;
	KW_VARS.smst = t;
	
	sm('smsbox', 250, 190);
	if((KW_VARS.sms_sent !== undefined) && (KW_VARS.sms_sent > 5))
	{	var sp = dojo.byId('kwsms_error');	// error div
		var ct = dojo.byId('kwsms_content_table');
		ct.className = 'kwdetail_hidden';
		sp.innerHTML =  KW_STRING.sms_error_max_messages;
		sp.className = 'kw_error';
	}
	else if(t === 'dd')
	{	dojo.byId('kwsms_message').innerHTML = dojo.byId('dd_sms_message').innerHTML; 
		dojo.byId('kwsms_ddcount').innerHTML = dojo.byId('kwddcount').innerHTML;
		dojo.byId('kwsms_ddcount').className = '';
	}
	else
	{	dojo.byId('kwsms_message').innerHTML = dojo.byId('sms_message'+KW_VARS.smsi).innerHTML;
	}
	sm_repos();
}

function kwsms_send(){
	if(KW_VARS.sms === 1)
	{	return;
	}

	dojo.byId('kwsms_status_bg').className = 'kwdetail_hidden';

	var reg = /^1{0,1}\d{10}$/;
	var phone = dojo.byId('kwsms_number').value;
	var save_phone = phone;
	var smserr = '';

	phone = phone.replace(/D/g,'');

	if(phone.length == 0){
		smserr += KW_STRING.sms_error_no_phone;
	} else {
		if(reg.test(phone) === false){
			smserr += KW_STRING.sms_error_invalid_phone + ' ' + phone;	
		}
	}

	if((KW_VARS.sms_sent !== undefined) && (KW_VARS.sms_sent > 5))
	{	smserr = KW_STRING.sms_error_max_messages;
	}

	var lg = dojo.byId('kwloading_gif');	// loading gif
	var sb = dojo.byId('kwsms_send');	// send button
	var sp = dojo.byId('kwsms_error');	// error div
	var ct = dojo.byId('kwsms_content_table');
	var getdataf = dojo.xhrGet;
	if(smserr.length !== 0){
		//ct.className = 'kwdetail_hidden';
		sp.innerHTML = smserr;
		sp.className = 'kw_error';
	} else {
		sb.disabled = true;
		lg.className = '';
		sp.className = 'kwdetail_hidden';
		ct.className = '';
		KW_VARS.sms = 1;
		if(KW_VARS.sms_sent === undefined){
			KW_VARS.sms_sent = 1;
		} else {
			KW_VARS.sms_sent++;
		}

		var qcontent = {phone: phone, key: KW_VARS.smsk};
	
		if(KW_VARS.smst === 'dd'){
			
			var kwhdd = dojo.byId('kwhdd');
			if(kwhdd){
				qcontent.hdd = kwhdd.innerHTML;
				
				getdataf = dojo.xhrGet;
			} else {
				
				qcontent.dd = dojo.byId('dd_sms_message').innerHTML;
				getdataf = dojo.xhrPost;
			}
		}

		getdataf({
			handleAs: 'text',
			url: kw_hostdir + '/cgi/sms', 
			content: qcontent,
			load: function(response)
			{	
				var status_array = response.split("	");
				var nstatus = parseInt(status_array[0]);

				var sp = dojo.byId('kwsms_error');

				if((nstatus > 0) && (nstatus < 6)){
					sp.innerHTML = status_array[1];
					sp.className = 'kw_error';
				} else if(nstatus > 5){
					sp.innerHTML = KW_STRING.sms_service_unavailable;
					sp.className = 'kw_error';
				} else {
					dojo.byId('kwsms_status_bg').className = '';
					dojo.byId('kwsms_status').innerHTML = KW_STRING.sms_message_sent;
					//setTimeout ( function(){hm('smsbox');}, 3000 );
				}

				lg.className = 'kwdetail_hidden';
				sb.disabled = false;
				KW_VARS.sms = 0;
				return false;
			},
			error: function(response, ioArgs) {
				var sp = dojo.byId('kwsms_error')
				var dderr = KW_STRING.sms_dd_error;
				KW_VARS.sms = 0;
				sp.innerHTML = smserr;
				sp.className = 'kw_error';
				
				lg.className = 'kwdetail_hidden';
				sb.disabled = false;
				return false;
			}
		});
	}
	return false;
}
initmb();



