// main content area
var parent="content";
// top of the page element id
var page_top="head";
// items per page options
var ar_options=new Array(5,10,20,50,100,150,200);
// maximum number of pages to display
var max_pages=25;

function dl_pagination(total,page,page_size) {
// purpose: creates the dealer search results recordset pagination

	// current page
	if (!page) page=get_cookie("dlr_page");
	if (!page) page=1;
	page=parseInt(page);
	// set this cookie to pre-select the page when visitors come back to the search results
	set_cookie("dlr_page",page);

	total=parseInt(total);
	// number of items per page
	// default number of items per page
	if (!page_size) {
		for (var i=0; i<ar_options.length; i++) {
			if (total<ar_options[i] || total/max_pages<=ar_options[i]) {
				page_size=ar_options[i];
				break;
			}
		}
		if (get_cookie("dlr_page_size")) {
			var page_size_cookie=parseInt(get_cookie("dlr_page_size"));
			if (page_size_cookie > page_size) page_size=page_size_cookie;
		}
	}
	page_size=parseInt(page_size);
	set_cookie("dlr_page_size",page_size);

	if (total>0) {
		// dealer results range boundaries
		var dl_start=page*page_size-(page_size-1);
		var dl_stop;
		if (total<page*page_size) {
			dl_stop=total;
		} else {
			dl_stop=page*page_size;
		}

		// total number of pages
		var num_pages=total/page_size;
		if (num_pages-parseInt(num_pages)>0) num_pages=parseInt(num_pages)+1;

		if (num_pages>1) {
			var dl_pagination="";
			if (page>1) dl_pagination+='<a class="first" href="#'+page_top+'" onclick="dl_pagination('+total+',1,'+page_size+');"></a>';
			dl_pagination+='<span>Page</span>';
			for (var j=1; j<=num_pages; j++) {
				if (j>1) dl_pagination+='<span>-</span>';
				if (j==page) {
					dl_pagination+='<span class="strong">'+j+'</span>';
				} else {
					dl_pagination+='<a href="#'+page_top+'" onclick="dl_pagination('+total+','+j+','+page_size+');">'+j+'</a>';
				}
			}
			if (page<num_pages) dl_pagination+='<a href="#'+page_top+'" onclick="dl_pagination('+total+','+num_pages+','+page_size+');" class="last"></a>';
			document.getElementById("dl-pagination").innerHTML="<div>"+dl_pagination+"</div>&nbsp;";
			// generate page size select box
			dl_page_size_options(total,page_size);
		}

		// tagline
		document.getElementById("dl-range").innerHTML=' Displaying <strong>'+dl_start+' - '+dl_stop+'</strong>';
	}

	var dl_root=document.getElementById(parent);
	var dl_node;
	var cur_dl;
	for (i=0; i<dl_root.childNodes.length; i++) {
		dl_node=dl_root.childNodes[i];
		if (dl_node.nodeName.toLowerCase()=="div") {
			for (var x=0; x<dl_node.attributes.length; x++) {
				if (dl_node.attributes[x].nodeName.toLowerCase()=="class" && dl_node.attributes[x].nodeValue=="dealer-list") {
					for (var y=0; y<dl_node.attributes.length; y++) {
						if (dl_node.attributes[y].nodeName.toLowerCase()=="id") {
							cur_dl=parseInt(dl_node.attributes[y].nodeValue.substring(3,dl_node.attributes[y].nodeValue.length));
							if (cur_dl>page*page_size-page_size && cur_dl<=page*page_size) {
								// display dealers within the current page range
								document.getElementById(dl_node.attributes[y].nodeValue).style.display="block";
							} else {
								// hide dealers outside of the current page range
								document.getElementById(dl_node.attributes[y].nodeValue).style.display="none";
							}
						}
					}
				}
			}
		}
	}
	init_all_layers();
}

function dl_page_size_options(total,page_size) {
// purpose: creates a dynamic page size select box
	var box_value='&Eacute;l&eacute;ments par page :';
	box_value+='<select onchange="javascript:dl_pagination('+total+',1,this.options[this.selectedIndex].value);">';
	for (var i=0; i<=ar_options.length; i++) {
		if (ar_options[i]<total && total/ar_options[i]<=max_pages) {
			box_value+='<option value="'+ar_options[i]+'"';
			if (ar_options[i]==page_size) box_value+=' selected="selected"';
			box_value+='>'+ar_options[i]+'</option>';
		}
	}
	box_value+='</select>';
	document.getElementById("page-size").innerHTML=box_value;
}

function build_map_nav(width,scale) {
// purpose: builds the map scale options navigation bar
	var el_id		= "scale-nav";
	var options 	= new Array(40000000,8000000,5000000,1500000,380000,48000,28000,20000,4800);
	var empty_cell	= "&#160;";
	var labels		= new Array(empty_cell,"national",empty_cell,"regional",empty_cell,"city",empty_cell,"street",empty_cell);
	var row1		= document.getElementById(el_id).rows[0];
	var row2		= document.getElementById(el_id).rows[1];
	width			= parseInt(width/options.length);
	for(var i=0; i<options.length; i++) {
		var row1_txt = '<div onclick="changeMap('+options[i]+')"';
		if(parseInt(scale)==parseInt(options[i])) row1_txt += ' class="sel"';
		row1_txt += '></div>';
		var c=row1.insertCell(i);
		c.innerHTML=row1_txt;
		var row2_txt = '<div class="sel-' + i + '" onclick="changeMap('+options[i]+')"></div>';
		c=row2.insertCell(i);
		c.innerHTML=row2_txt;
	}
}

function print_all_dealers() {
// purpose: allows visitors to print out the entire list of dealers
	var divs=document.getElementsByTagName("div");
	var divs_none="";
	var y=0;
	for (var i=0; i<divs.length; i++) {
		dl_node=divs[i];
		for (var x=0; x<dl_node.attributes.length; x++) {
			if (dl_node.attributes[x].nodeName.toLowerCase()=="class" && dl_node.attributes[x].nodeValue=="dealer-list") {
				if(dl_node.style.display=="none") {
					// show hidden divs for printing and memorize their ids to hide them again
					dl_node.style.display="block";
					divs_none += ","+dl_node.getAttribute("id");
				}
				y++;
			}
		}
	}
	var ok_print=confirm("You are about to print "+Math.ceil(y/5)+" pages. Would you like to proceed?");
	if (ok_print) {
		if(window.print) {
	    	window.print() ;
		} else {
	    	var WebBrowser='<object id="WebBrowser1" width="0" height="0" classid="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"></object>';
			document.body.insertAdjacentHTML('beforeEnd',WebBrowser);
	    	WebBrowser1.ExecWB(6,2);
	    	WebBrowser1.outerHTML="";
		}
	}else{
		show_hide("",divs_none.substring(1));
		return;
	}
}