var _retailerFilterArray=new Array();
/*
inclusiveOr = anywhere in filter
inclusiveAND = must match entire filter
exclusiveOr = exclude if matches anywhere in filter

*/
var _retailerFilterType="inclusiveOR";//exclusiveOR , inclusiveAND
var _retailsListObjId="retList";

function getRetailerByStateProduct(stateID, productID)
{
	var submitPage	= "/retailers/bin/getretailers.jsp";
	var ele			= document.getElementById(_retailsListObjId);
	var qs			= "?";
	qs += "states=" + stateID + "&";
	qs += "productID=" + productID;
	submitPage += qs;
	
	return ajaxsubmit(submitPage, ele);
}

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

function getRetailerByState(stateID)
{
	var submitPage	= "/retailers/bin/getretailersbystate.jsp";
	var ele			= document.getElementById(_retailsListObjId);
	var qs			= "?";
	qs += "states=" + stateID;
	submitPage += qs;
	
	return ajaxsubmit(submitPage, ele);
}

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
function _ajs_preloadImg(image) {
	var img = new Image();
	img.src = image;
}
_ajs_preloadImg('/img/working.gif');
function ajaxsubmit(submitURL, outputEle)
{
	var xmlHttp;

	outputEle.innerHTML="<ul><li><img alt='...' src='/img/working.gif'>&nbsp;&nbsp;&nbsp;Searching...</li></ul>";

	if(!getHTTPRequest())
	{
		return true;//let the form handle the submission
	}
	else
	{	
		/*
		0 =	uninitialized
		1 =	loading
		2 =	loaded
		3 =	interactive
		4 =	complete
		*/
		
		if(submitURL.indexOf("?")==-1)submitURL+="?";
		submitURL += "&unq="+new Date().getTime();
		
		xmlHttp = getHTTPRequest();
		xmlHttp.open("GET",submitURL,true);
		xmlHttp.send(null);
		xmlHttp.onreadystatechange=function()
		{
			switch(xmlHttp.readyState)
			{
			case 0:
				break;
			case 1:
				break;
			case 2:
				break;	
			case 3:
				break;
			case 4:
				outputEle.innerHTML = xmlHttp.responseText;
				
				//Call webtrends tracking function
				dcsMultiTrack('DCS.dcsuri','/retailersCompletion/','WT.ti','Find a Retailer Completion','DCSext.SW_u','1','DCSext.SW_e','retail','WT.tx_e','p','WT.pn_sku','Find a Retailer Completion','WT.tx_u','1','WT.tx_s','40.00');
        
				// wire external links to open in a new tab/window
				var ret = document.getElementById(_retailsListObjId);
				if (ret)
				{
					var anchors = ret.getElementsByTagName("a");
					for (var i = 0; i < anchors.length; i++)
					{
						var anchor = anchors[i];
						if (anchor.getAttribute("href")) anchor.target = "_blank";
					} 
					retListFilterList(ret);
					_cleanList();
				}
			}
		}
		return false;
	}
}

function retListFilterList(){
	if(_retailerFilterArray==null || _retailerFilterArray.length == 0 ) return;
	
	var ret = document.getElementById(_retailsListObjId);
	var lis = ret.getElementsByTagName("li");
	var ull = ret.getElementsByTagName("ul")[0];

	for (var i = 0; i < lis.length; i++)
	{
		var elm = lis[i];
		
		var removeMe=true;
		if(_retailerFilterType=='exclusiveOR'){
			//the default is removeMe false
			removeMe=false;
		}
		var terminatingloop = !removeMe;
		
		//alert(elm.innerHTML + " " + elm.tagName);
		for(var xx=0;xx<_retailerFilterArray.length;xx++){
			if(removeMe==terminatingloop) continue;
			
			if(_retailerFilterType=='inclusiveOR'){
				//if does have it, keep it
				if(elm.innerHTML.toLowerCase().indexOf(_retailerFilterArray[xx])!=-1){
					removeMe=false;
				}
			}else if(_retailerFilterType=='exclusiveOR'){
				//if does have it, remove it
				if(elm.innerHTML.toLowerCase().indexOf(_retailerFilterArray[xx])!=-1){
					removeMe=true;
				}
			}else{
				alert("not handing filter type of " + _retailerFilterType + " at the moment");
			}
			//if(removeMe) alert("remove " + elm.innerHTML + " " + _retailerFilterType + " " + _retailerFilterArray[xx] + " " + elm.innerHTML.toLowerCase().indexOf(_retailerFilterArray[xx]));
		}
		if(removeMe){			
			//decrement i because the array just got smaller due to the remove
			i--;
			ull.removeChild(elm);
		}
	} 
}
function _cleanList(){
	var ret = document.getElementById(_retailsListObjId);
	var lis = ret.getElementsByTagName("li");
	var ull = ret.getElementsByTagName("ul")[0];

	for (var i = 0; i < lis.length; i++)
	{
		var elm = lis[i];
		
		//also going to clean the - null values
		if(elm.innerHTML.toLowerCase().indexOf("- null")!=-1){
			//clean the inner html
			//elm.innerHTML = elm.innerHTML.replace("- null","");
		}
	} 
}

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

function getHTTPRequest()
{
	var xmlHttp;
	try
    {// Firefox, Opera 8.0+, Safari
		xmlHttp=new XMLHttpRequest();
		return xmlHttp;
    }
	catch (e)
    {// Internet Explorer
    	try
		{
			xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
			return xmlHttp;
		}
		catch (e)
		{
			try
			{
				xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
				return xmlHttp;
			}
			catch (e)
			{
				return false;
        	}
      	}
	}
}
