//FIREARMS FINDER SHOW/HIDE FUNCTION
function togglefirearmfinder()
{
if (document.getElementById)
{
// this is the way the standards work
var firearmstyle = document.getElementById('catalogbrowser').style;
var firearmsrc = document.getElementById('finderimg');
firearmstyle.display = firearmstyle.display? "":"block";
if (firearmsrc.src.indexOf('+') != -1){
	firearmsrc.setAttribute("src","images/layout/template/ffinder-.gif");
} else {
	firearmsrc.setAttribute("src","images/layout/template/ffinder+.gif");
}
}
else if (document.all)
{
// this is the way old msie versions work
var firearmstyle = document.all['catalogbrowser'].style;
var firearmsrc = document.all['finderimg'];
firearmstyle.display = firearmstyle.display? "":"block";
if (firearmsrc.src.indexOf('+') != -1){
	firearmsrc.setAttribute("src","images/layout/template/ffinder-.gif");
} else {
	firearmsrc.setAttribute("src","images/layout/template/ffinder+.gif");
}
}
else if (document.layers)
{
// this is the way nn4 works
var firearmstyle = document.layers['catalogbrowser'].style;
var firearmsrc = document.layers['finderimg'];
firearmstyle.display = firearmstyle.display? "":"block";
if (firearmsrc.src.indexOf('+') != -1){
	firearmsrc.setAttribute("src","images/layout/template/ffinder-.gif");
} else {
	firearmsrc.setAttribute("src","images/layout/template/ffinder+.gif");
}
}
}

//
//CREATE XMLHTTPREQUEST OPJECT
var request = null;

function createrequest() {

try {
	request = new XMLHttpRequest();
} catch (trymicrosoft) {
	try {
		request = new ActiveXObject("Msxml2.XMLHTTP");
	} catch (othermicrosoft) {
		try {
			request = new ActiveXObject("Microsoft.XMLHTTP");
		} catch (failed) {
			request = null;
	}
}
}
if (request == null)
   alert("Error creating request object!");
}

//
//FIREARMS FINDER AJAX FUNCTIONS
function sendRequest(url){
	createrequest();
	request.onreadystatechange = updateSelect;
	request.open("GET", url, true);
	request.send(null);
}

function updateSelect() 
{ 
	if (request.readyState == 4) 
	{ 
	  if (request.status == 200) 
		{ 
			var response = request.responseText;
								
			var splitselect = new Array();
			splitselect = response.split('~');
							
			for (var i=0; i<splitselect.length; i++){				
		
				var divsplit = new Array()
				divsplit = splitselect[i].split('^');
					var a = divsplit[0];
					var c = divsplit[1];
					var k = divsplit[2];
					if (a == 0){
						setFinderSelect("Header1_mfghidden", c, 'mfgdiv', k)
					} else if (a == 1){
						setFinderSelect("Header1_familyhidden", c, 'familydiv', k)
					} else if (a == 2){
						setFinderSelect("Header1_modelhidden", c, 'modeldiv', k)
					} else if (a == 3){
						setFinderSelect("Header1_typehidden", c, 'firearmtypediv', k)
					} else if (a == 4){
						setFinderSelect("Header1_caliberhidden", c, 'caliberdiv', k)
					} else if (a == 5){
						setFinderSelect("Header1_actionhidden", c, 'actiondiv', k)
					} else if (a == 6){
						setFinderSelect("Header1_finishhidden", c, 'finishdiv', k)
					} else if (a == 7){
						setFinderSelect("Header1_stockhidden", c, 'stockdiv', k)
					} else if (a == 8){
						setFinderSelect("Header1_specialhidden", c, 'specialdiv', k)			
					} else {
						setFinderSelect("Header1_totalhidden", c, 'totalitems', k)
					}
			}
			createrequest();
			splitselect = [];
			divsplit = [];
		}
	}
}

function setFinderSelect(x, c, selectToChange, k) {
	document.getElementById(x).value = encodeURIComponent(c);
	document.getElementById(selectToChange).innerHTML = k;
}

function narrowSelection (x) {

if (document.getElementById && document.createElement){

	var selectboxes = document.getElementById('catalogbrowser').getElementsByTagName('select');
	var selectdivs = document.getElementById('catalogbrowser').getElementsByTagName('div');
	var url = '?';

	for (var i=0; i<selectboxes.length; i++){
		var criteria = new Array();
		var refreshselection = new Array();
		var setselectid;
		criteria[i] = selectboxes[i].options[selectboxes[i].selectedIndex].value;
		setselectid = selectboxes[i].id
		if (x == i){
			selectdivs[i].innerHTML = '<select class="boldselect" name="'+setselectid+'" id="'+setselectid+'"><option value="'+criteria[i]+'">'+criteria[i]+'</option></select>';
			if (x == 0){
				setFinderValue("Header1_mfghidden", criteria[i])
			} else if (x == 1){
				setFinderValue("Header1_familyhidden", criteria[i])				
			} else if (x == 2){
				setFinderValue("Header1_modelhidden", criteria[i])				
			} else if (x == 3){
				setFinderValue("Header1_typehidden", criteria[i])				
			} else if (x == 4){
				setFinderValue("Header1_caliberhidden", criteria[i])				
			} else if (x == 5){
				setFinderValue("Header1_actionhidden", criteria[i])				
			} else if (x == 6){
				setFinderValue("Header1_finishhidden", criteria[i])				
			} else if (x == 7){
				setFinderValue("Header1_stockhidden", criteria[i])
			} else if (x == 8){
				setFinderValue("Header1_specialhidden", criteria[i])
			}	
		}
		refreshselection[i] = (selectboxes[i].length !=1) ? 1 : 0;			
		if (refreshselection[i] == 1){
			selectdivs[i].innerHTML = '<select class="grayselect" id="updating"><option>Updating...</option></select>';	
		}
		url = url+'s'+i+'='+encodeURIComponent(criteria[i])+'&r'+i+'='+refreshselection[i]+'&';
	}
	document.getElementById('firearmreset').disabled=false;
	document.getElementById('Header1_firearmsubmit').disabled=false;
	var passurl = 'script/changeSelects.aspx'+url.substring(0,url.length-1)+'&ms=' + new Date().getTime();
	sendRequest(passurl);
	
	criteria = [];
	refreshselection = [];

}else{
return false;
}

}

function setFinderValue(divName, value) {
	document.getElementById(divName).value = encodeURIComponent(value);
}

function resetSelection () {
	var selectdivs = document.getElementById('catalogbrowser').getElementsByTagName('div');
	for (var i=0; i<=8; i++){
			selectdivs[i].innerHTML = '<select id="resetting"><option>Resetting...</option></select>';
	}
	document.getElementById('firearmreset').disabled=true;
	document.getElementById('Header1_firearmsubmit').disabled=true;
	var passurl = 'script/changeSelects.aspx?refresh=all&ms=' + new Date().getTime();
	sendRequest(passurl);
}

function loadingFinder() {
	document.getElementById('Header1_firearmsubmit').value="Loading Search...";
	document.getElementById('Header1_firearmsubmit').style.color="#F00";
}

//
//SHOPPING CART AJAX FUNCTIONS
function cartRequest(url){
	createrequest();
	request.onreadystatechange = updateitemline;
	request.open("GET", url, true);
	request.send(null);
}

function updateitemline() 
{ 
	if (request.readyState == 4) 
	{ 
	  if (request.status == 200) 
		{ 
			var response = request.responseXML.documentElement;
			document.getElementById('Header1_totalItems').innerHTML = response.getElementsByTagName('totalitems')[0].firstChild.data;
			document.getElementById('Header1_totalDollars').innerHTML = response.getElementsByTagName('totaldollars')[0].firstChild.data;
			var itemno = response.getElementsByTagName('itemno')[0].firstChild.data;
			document.getElementById(itemno).innerHTML = response.getElementsByTagName('message')[0].firstChild.data;
			createrequest();			
		}
	}
}

function additem(x,prodcat,price){
	var getaddvalue = document.getElementById(x).getElementsByTagName('input');
	var addvalue = getaddvalue[0].value;
	if (isNaN(addvalue) || addvalue <= 0){
		addvalue = 1
	}
	document.getElementById(x).innerHTML = '<div id="progressbar">Adding<br />To Cart</div>';
	var carturl = 'script/cartProcess.aspx?itemno='+x+'&quantity='+addvalue+'&prodcat='+prodcat+'&price='+price+'&ms=' + new Date().getTime();
	cartRequest(carturl);
}

//
//WISH LIST AJAX FUNCTIONS
function wishRequest(url){
	createrequest();
	request.onreadystatechange = updatewishline;
	request.open("GET", url, true);
	request.send(null);
}

function updatewishline() 
{ 
	if (request.readyState == 4) 
	{ 
	  if (request.status == 200) 
		{ 
			var response = request.responseXML.documentElement;
			var itemno = response.getElementsByTagName('itemno')[0].firstChild.data;
			document.getElementById(itemno).innerHTML = response.getElementsByTagName('message')[0].firstChild.data;
			createrequest();			
		}
	}
}

function addWish(x){
	document.getElementById(x).innerHTML = '<div id="progressbar">Adding To<br />Wish List</div>';
	var wishurl = 'script/addListItem.aspx?type=wishlist&itemno='+ x +'&ms=' + new Date().getTime();
	wishRequest(wishurl);
}

//
//FAVORITES AJAX FUNCTION
function favoriteRequest(url){
	createrequest();
	request.onreadystatechange = updateFavoriteLink;
	request.open("GET", url, true);
	request.send(null);
}

function addFavorite(x){
	var divItemNo = 'favorite' + x;
	document.getElementById(divItemNo).innerHTML = '<span class="favoriteWorking">Adding to Favorites!</span>';
	var favurl = 'script/addListItem.aspx?type=favorite&itemno='+ x +'&ms=' + new Date().getTime();
	favoriteRequest(favurl)
}

function updateFavoriteLink() 
{ 
	if (request.readyState == 4) 
	{ 
	  if (request.status == 200) 
		{ 
			var response = request.responseXML.documentElement;
			var itemid = 'favorite' + response.getElementsByTagName('itemno')[0].firstChild.data;
			document.getElementById(itemid).innerHTML = response.getElementsByTagName('message')[0].firstChild.data;
			createrequest();	
		}
	}
}

//
//POPUP WINDOW FUNCTION
function lipseypop(url)
{
	var newwindow;
	newwindow=window.open(url,'name','height=400,width=500,scrollbars=yes');
	if (window.focus) {newwindow.focus()}
}

//
//SHOW-HIDE FUNCTION
function toggle(obj) {
	var el = document.getElementById(obj);
	el.style.display = (el.style.display != 'none' ? 'none' : '' );
}

//
//EXTERNAL LINKS SCRIPT
function externalLinks() { 
 if (!document.getElementsByTagName) return; 
 var anchors = document.getElementsByTagName("a"); 
 for (var i=0; i<anchors.length; i++) { 
   var anchor = anchors[i]; 
   if (anchor.getAttribute("href") && 
       anchor.getAttribute("rel") == "external") 
     anchor.target = "_blank"; 
 } 
}
if (window.attachEvent) window.attachEvent("onload", externalLinks);

//
//CONTENT SLIDER
var enabletransition=0

var enablepersist=false
var slidernodes=new Object() 

function ContentSlider(sliderid, autorun, customPaginateText, customNextText){
	var slider=document.getElementById(sliderid)
	if (typeof customPaginateText!="undefined" && customPaginateText!="") 
		slider.paginateText=customPaginateText
	if (typeof customNextText!="undefined" && customNextText!="")
		slider.nextText=customNextText
	slidernodes[sliderid]=[] 
	var alldivs=slider.getElementsByTagName("div")
	for (var i=0; i<alldivs.length; i++){
		if (alldivs[i].className=="opacitylayer")
			slider.opacitylayer=alldivs[i]
		else if (alldivs[i].className=="contentdiv"){
			slidernodes[sliderid].push(alldivs[i]) 
			if (typeof alldivs[i].getAttribute("rel")=="string") 
				ContentSlider.ajaxpage(alldivs[i].getAttribute("rel"), alldivs[i])
		}
	}
	ContentSlider.buildpagination(sliderid)
	ContentSlider.turnpage(sliderid, 0)
	if (typeof autorun=="number" && autorun>0)
		window[sliderid+"timer"]=setTimeout(function(){ContentSlider.autoturnpage(sliderid, autorun)}, autorun)
}

ContentSlider.buildpagination=function(sliderid){
	var slider=document.getElementById(sliderid)
	var paginatediv=document.getElementById("paginate-"+sliderid)
	var pcontent=""
	for (var i=0; i<slidernodes[sliderid].length; i++)
		pcontent+='<a href="#" onClick=\"ContentSlider.turnpage(\''+sliderid+'\', '+i+'); return false\">'+(slider.paginateText? slider.paginateText[i] : i+1)+'</a> '
	pcontent+='<a href="#" style="font-weight: bold;" onClick=\"ContentSlider.turnpage(\''+sliderid+'\', parseInt(this.getAttribute(\'rel\'))); return false\">'+(slider.nextText || "<i>Next</i>")+'</a>'
	paginatediv.innerHTML=pcontent
	paginatediv.onclick=function(){ 
	if (typeof window[sliderid+"timer"]!="undefined")
		clearTimeout(window[sliderid+"timer"])
	}
}

ContentSlider.turnpage=function(sliderid, thepage){
	var paginatelinks=document.getElementById("paginate-"+sliderid).getElementsByTagName("a")
	for (var i=0; i<slidernodes[sliderid].length; i++){
		paginatelinks[i].className=""
		slidernodes[sliderid][i].style.display="none"
	}
	paginatelinks[thepage].className="selected"
	if (enabletransition){
		if (window[sliderid+"fadetimer"])
			clearTimeout(window[sliderid+"fadetimer"])
		this.setopacity(sliderid, 0.1)
	}
	slidernodes[sliderid][thepage].style.display="block"
	if (enabletransition)
		this.fadeup(sliderid, thepage)
	paginatelinks[paginatelinks.length-1].setAttribute("rel", thenextpage=(thepage<paginatelinks.length-2)? thepage+1 : 0)
	if (enablepersist)
		setCookie(sliderid, sliderid+":"+thepage)
}

ContentSlider.autoturnpage=function(sliderid, autorunperiod){
	var paginatelinks=document.getElementById("paginate-"+sliderid).getElementsByTagName("a")
	var nextpagenumber=parseInt(paginatelinks[paginatelinks.length-1].getAttribute("rel"))
	ContentSlider.turnpage(sliderid, nextpagenumber)
	window[sliderid+"timer"]=setTimeout(function(){ContentSlider.autoturnpage(sliderid, autorunperiod)}, autorunperiod)
}

ContentSlider.setopacity=function(sliderid, value){
	var targetobject=document.getElementById(sliderid).opacitylayer || null
	if (targetobject && targetobject.filters && targetobject.filters[0]){
		if (typeof targetobject.filters[0].opacity=="number")
			targetobject.filters[0].opacity=value*100
		else //IE 5.5
			targetobject.style.filter="alpha(opacity="+value*100+")"
		}
	else if (targetobject && typeof targetobject.style.MozOpacity!="undefined")
		targetobject.style.MozOpacity=value
	else if (targetobject && typeof targetobject.style.opacity!="undefined")
		targetobject.style.opacity=value
	targetobject.currentopacity=value
}

ContentSlider.fadeup=function(sliderid){
	var targetobject=document.getElementById(sliderid).opacitylayer || null
	if (targetobject && targetobject.currentopacity<1){
		this.setopacity(sliderid, targetobject.currentopacity+0.1)
		window[sliderid+"fadetimer"]=setTimeout(function(){ContentSlider.fadeup(sliderid)}, 100)
	}
}
