// JS for the store locator results page ; c.f. 0002/0001/9009/StoreLocator.php
/* usage:
var tabView = new YAHOO.widget.TabView('tabs'); // initialize the tabs
doPagination(); // create the pagination links
*/
/* 
depends on:
<script type="text/javascript" src="http://yui.yahooapis.com/2.5.2/build/yahoo-dom-event/yahoo-dom-event.js"></script>
<script type="text/javascript" src="http://yui.yahooapis.com/2.5.2/build/element/element-beta-min.js"></script>
<script type="text/javascript" src="http://yui.yahooapis.com/2.5.2/build/tabview/tabview-min.js"></script>
combo: 
<link rel="stylesheet" type="text/css" href="http://yui.yahooapis.com/combo?2.8.0r4/build/tabview/assets/skins/sam/tabview.css">
<script type="text/javascript" src="http://yui.yahooapis.com/combo?2.8.0r4/build/yahoo-dom-event/yahoo-dom-event.js&2.8.0r4/build/element/element-min.js&2.8.0r4/build/tabview/tabview-min.js"></script>

*/

function doPagination(){
	var pages = new Array();
	var containers = new Array();
	var SLR = document.getElementById('store_locator_results')
	if(SLR){
		var groups = SLR.getElementsByTagName('ol')
		for(var i=0;i<groups.length;i++){
			var lis = groups[i].getElementsByTagName('li')
			if( lis.length>10 ){
				//_sliceList(groups[i],10)
				pages.push(groups[i])
				containers.push(groups[i].parentNode.id)
			}
		}
		var slices = 0;
		for(var i=0;i<pages.length;i++){
			slices = _sliceList(pages[i],10)
			createPaginationLinks(slices,containers,i)
		}
	}

}

function createPaginationLinks(slices,containers,i){
	var c = document.getElementById(containers[i])
	if(c){
		var div = document.createElement('div')
		div.id = 'pagination_'+i
		div.className = 'pagination'
		div.appendChild( document.createTextNode('Page: '))
		var ul = document.createElement('ul')
		for(var j=1;j<slices;j++){
			var li = document.createElement('li')
			var a = __genPageLink(j,c.id)
			li.appendChild(a)
			ul.appendChild(li)
		}
		div.appendChild(ul)
		x = div.cloneNode(true)
		c.appendChild(div)
		c.insertBefore(x,c.childNodes[0])
	}
}

function __genPageLink(n,cid){
	var a = document.createElement('a')
	a.appendChild(document.createTextNode(n))
	a.href = 'javascript: void (0); showPage("'+cid+'",'+(n-1)+',true)'
	return a
}

function _sliceList(ol,n){
//	alert('slicing')
	var pgs = new Array();
	var slices = 1
	var tmp = document.createElement('ol')
	tmp.className = 'page'
	tmp.id = 'page_'+slices
	var lis = ol.getElementsByTagName('li')
	// last page
	var last_page_size = lis.length - (lis.length % n)
	for(var i=lis.length;i>last_page_size;i--){
		var target = ( tmp.childNodes.length>0 ) ? tmp.childNodes[0] : null; 
		tmp.insertBefore(lis[i-1],target)
		tmp.setAttribute('start',last_page_size+1)
	}
	slices += 1
	pgs.push(tmp)
	tmp = document.createElement('ol')
	tmp.className = 'page'
	tmp.id = 'page_'+slices
	tmp.setAttribute('start',last_page_size-n+1)
	for(var i=lis.length-1;i>=0;i--){
		var target = ( tmp.childNodes.length>0 ) ? tmp.childNodes[0] : null; 
		tmp.insertBefore(lis[i],target)
		if(i%n==0.0){
			ol.parentNode.insertBefore(tmp,ol.parentNode.childNodes[0])
			pgs.unshift(tmp)
			tmp = document.createElement('ol')
			tmp.id = 'page_'+slices
			tmp.className='page'
			tmp.setAttribute('start',i-n+1)
			slices += 1
		}
	}
	if( tmp.childNodes.length>0){
		pgs.unshift(tmp)
	}
	//pgs[0].className += ' show'
	showPage(ol.parentNode.id,getRequestedPage(),false); // show the right page
	for(i=0;i<pgs.length;i++){
		ol.parentNode.appendChild(pgs[i])
	}
	ol.parentNode.removeChild(ol)
	return slices
}

function getRequestedPage(){
	var pg = 0
	var z = window.location.hash;
	if(z.length>0){
		var a = z.match(/\d/)
		if(a){ pg = parseInt(a)-1
		}
	}
	return pg
}

function showPage(id,n,highlight){
	var c = document.getElementById(id)
	if(c){
		var ols = c.getElementsByTagName('ol')
		for(var i=0;i<ols.length;i++){
			YAHOO.util.Dom.removeClass(ols[i],'show')
			if(i==n){ 
				YAHOO.util.Dom.addClass(ols[i],'show')
				window.location.hash = 'page'+(i+1)
				//alert('showing page '+n)
			}
		}
		if(highlight){highlightPageLink(c,n)}
	}
}

function highlightPageLink(c,n){
	var pp = YAHOO.util.Dom.getElementsByClassName('pagination', 'div',c); 
	for(var j=0;j<pp.length;j++){
		var p = pp[j]
		var lis = p.getElementsByTagName('LI')
		// reset the pagination bar to link all pages
		for(var i=0;i<lis.length;i++){
			var a = __genPageLink(i+1,c.id)
			lis[i].innerHTML = ''
			lis[i].appendChild(a)
			YAHOO.util.Dom.removeClass(lis[i],'selected')
		}
		// highlight the indicated page 
		if(lis.length>=n){
			var li = lis[n]
			if(li){
				var as = li.getElementsByTagName('A')
				if(as.length>0){
					var text = as[0].innerHTML
					li.innerHTML = text
					YAHOO.util.Dom.addClass(li,'selected')
				}
			}
		}
	}
}

//YAHOO.util.Event.onDOMReady(doPagination); 


function show_adr(a,className){
	var c = document.getElementById(a)
	if(c){
		var vh_from = 'View';
		var vh_to = 'Hide';
		var divs = c.getElementsByTagName('div')
		for(var i=0;i<divs.length;i++){
			if( divs[i].className==className ){
				if( divs[i].style.display!='block' ){
					x = 'block'
					vh_from = 'View'
					vh_to = 'Hide'
				} else {
					x = 'none'
					vh_from = 'Hide'
					vh_to = 'View'
				}
				divs[i].style.display = x
				break;
			}
		}
		var ps = c.getElementsByTagName('p')
		for(var i=0;i<ps.length;i++){
			if(ps[i].className=='toggle'){ ps[i].innerHTML = ps[i].innerHTML.replace(vh_from,vh_to)
			}
		}
	}
}

