// Sorted Product Support V1.11

// DOM Ready detect based on www.kryogenix.org/days/2007/09/26/shortloaded
(function(i) {var u =navigator.userAgent;var e=/*@cc_on!@*/false; var st =
setTimeout;if(/webkit/i.test(u)){st(function(){var dr=document.readyState;
if(dr=="loaded"||dr=="complete"){i()}else{st(arguments.callee,10);}},10);}
else if((/mozilla/i.test(u)&&!/(compati)/.test(u)) || (/opera/i.test(u))){
document.addEventListener("DOMContentLoaded",i,false); } else if(e){     (
function(){var t=document.createElement('doc:rdy');try{t.doScroll('left');
i();t=null;}catch(e){st(arguments.callee,0);}})();}})(sortinit);

// Drillpine.biz code
var prodlines = new Array();
var spanids = new Array();
var bReadyToSort = false;
var lastsorttype = 'default';
	
function showsorttype(){		// highlight the type of sort that's currently in use
	if ( document.getElementById('sortdropdown') )	// see if we're using drop-downs
		{
		var dropdowns = document.getElementsByTagName('select');	// all drop-downs		
		for ( var i=0; i<dropdowns.length; i++ )
			{
			if ( dropdowns[i].name == 'sortdropdown' )		// relevant one
				{
				var sdd = dropdowns[i];
				for ( var j=0; j<sdd.options.length; j++ )
					{
					if ( sdd.options[j].value == lastsorttype ) sdd.selectedIndex = j;
					}
				}
			}	
		}	
	else								
		{
		var buttonlinks = document.getElementsByTagName('input');	// looking for buttons
		for ( var i=0; i<buttonlinks.length; i++ )
			{
			if ( buttonlinks[i].name == 'sortlink' )
				{
				buttonlinks[i].className = ( buttonlinks[i].id == lastsorttype ) ? 'sortactive' : 'sortinactive';
				}	
			}
		var buttonlinks = document.getElementsByTagName('a');		// looking for A tags
		for ( var i=0; i<buttonlinks.length; i++ )
			{
			if ( buttonlinks[i].name == 'sortlink' )
				{
				buttonlinks[i].className = ( buttonlinks[i].id == lastsorttype ) ? 'sortactive' : 'sortinactive';
				}	
			}
		}
}

function sortinit(){				// called when DOM is loaded
	if ( ! document.getElementById('sortwidget') ) return;
	bReadyToSort = true;
	lastsorttype = getCookie('SORTTYPE');
	if ( lastsorttype == null ) lastsorttype = 'default';
	setCookie('SORTTYPE', lastsorttype);
	showsorttype();		
	if ( lastsorttype != 'default' ) 
		{
		reseq(lastsorttype);
		}
}

function onloadsortinit(){			// optionally called on onload
	if ( ! bReadyToSort ) sortinit();				// only init if it's not already run
}

function reseq(seqtype){			// resequence products
	if ( ! (bReadyToSort || bPageIsLoaded) )
		{
		alert('Please wait until the page has fully loaded');
		return false;
		}
	if (prodlines.length == 0) 					// if this is the first time we've been called
		{
		var spans = document.getElementsByTagName('span');
		for ( var i=0; i<spans.length; i++ )
			{
			if ( spans[i].id.indexOf('sortline_') == 0 )
				{
				spanids.push(spans[i].id);
				prodlines.push({	
					id: spans[i].id, 
					price: spans[i].getAttribute('price'), 
					seq: spans[i].getAttribute('seq'), 
					pname: spans[i].getAttribute('pname'),
					phtml: spans[i].innerHTML
					});
				}
			}
		}	
		
	if ( seqtype == 'lowhigh' ) prodlines.sort(function(a,b){return a.price - b.price});
	if ( seqtype == 'highlow' ) prodlines.sort(function(a,b){return b.price - a.price});
	if ( seqtype == 'default' ) prodlines.sort(function(a,b){return a.seq - b.seq});
	if ( seqtype == 'alpha' )   prodlines.sort(function(a,b){return (a.pname <= b.pname) ? -1 : 1;});
	if ( seqtype == 'reverse' ) prodlines.sort(function(a,b){return (b.pname <= a.pname) ? -1 : 1;});
	lastsorttype = seqtype;
	setCookie('SORTTYPE', lastsorttype);
	showsorttype();
	for ( var i=0; i<prodlines.length; i++ )
		{
		document.getElementById(spanids[i]).innerHTML = prodlines[i].phtml;
		}
	if ( location.hash ) location.href = location.hash;		// Firefox needs this
	return false;
}

// in case we cannot activate on DOM loaded
if (window.attachEvent) 						// IE 
	{ 
	window.attachEvent("onload", onloadsortinit); 
	} 
else 									// DOM
	{  
	window.addEventListener("load", onloadsortinit, false); 
	}

