
var Specials = {
	data:[],
	oST:new Array(" "),
	currentView:[],
	stateMatches:[],
	stateStart:0,
	terminalStarts:[]
	}



function getData(){
if (window.XMLHttpRequest)
  {
  xhttp=new XMLHttpRequest();
  }
else // Internet Explorer 5/6
  {
  xhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xhttp.open("GET","/resources/backhaul.xml",false);
xhttp.send("");
xmlDoc=xhttp.responseXML;

Specials.data=xmlDoc.getElementsByTagName("backLane");
}

function stateChange(newState) {
	var singleTerms=[];
	var el=document.getElementById('result');
	var childCount = el.childNodes.length;
	if (el.childNodes.length>0) {
		var numKids=el.childNodes.length;
		for (i=0;i<numKids;i++) {
		//alert(numKids+' '+i);
		el.removeChild(el.childNodes[0]);
		}
	}
	
	var Matches=findMatches("oST",newState);
	singleTerms = filterMatches("oTerm",Matches);
	
	var txtP=document.createElement('p');
	txtP.innerHTML = '<br /><strong>Terminals in '+newState+' with lane specials:</strong>';
	el.appendChild(txtP);
	
	for (i=0;i<singleTerms.length;i++){
		var message = '';
		var tCnt=singleTerms[i];
		var linkAction= "showLanes('ter"+tCnt+"')";
		var newTable = document.createElement("table");
		newTable.cellPadding='0';
		newTable.cellSpacing='0';
		newTable.className='oTermList';
		newTable.id = 'ter'+tCnt;
		//newTable.width='70%';
		
		var newtd=document.createElement("td");
		var newtr=document.createElement("tr");
		var newth=document.createElement("thead");
		
		newth.colspan="4";
		newtd.colspan="4";
		newtd.className="oTerm";
		
		message = '<a href="#ter'+tCnt+'" onclick="'+linkAction+'">' + Specials.data[tCnt].getElementsByTagName("oCity")[0].childNodes[0].nodeValue + ', '+Specials.data[tCnt].getElementsByTagName("oST")[0].childNodes[0].nodeValue+ '</a>';
	newtd.innerHTML = message;
		newtr.appendChild(newtd);
		newth.appendChild(newtr);
		newTable.appendChild(newth);
	el.appendChild(newTable);
	
	var termDiv=document.createElement('div');
	termDiv.id='p'+ tCnt;
	//termDiv.innerHTML="Tetsing";
	el.appendChild(termDiv);
	
	}

}

function showLanes(startNumber) {
	var el=document.getElementById(startNumber) //el is the table
	el.childNodes[0].className="tableHeaderRow";
	el.childNodes[0].childNodes[0].childNodes[0].colspan="2";
	el.style.backgroundColor="#ffffff";   
	el.className="output-table";
	var listExist=[];
	var endNumber=parseInt(startNumber.slice(3));
	var lineNumber=parseInt(startNumber.slice(3));
	var writeMe;
	try {
	listExist=el.childNodes;
	
	}
	catch(err) {
		listExist=0;
	}
	
	if (listExist.length<=1) {
		var tBody = document.createElement('tbody');
		el.appendChild(tBody);
		var numLanes=numOlanes(lineNumber);
		
		var newRow = document.createElement("tr");
		var colhead01=document.createElement("td");
		var colhead03=document.createElement("td");
		var colhead04=document.createElement("td");
		colhead01.className="columnhead";
		colhead03.className="columnhead";
		colhead04.className="columnhead";
		
		var writeMe = 'Ship to:';
		
		colhead01.innerHTML = writeMe;
		colhead03.innerHTML = '28&prime; Trailer';
		colhead04.innerHTML = '53&prime; Trailer';
		
		newRow.appendChild(colhead01);
		newRow.appendChild(colhead03);
		newRow.appendChild(colhead04);
		tBody.appendChild(newRow);
		
		try {
				pageTracker._trackPageview('/laneSpecials/'+killSpaces(Specials.data[lineNumber].getElementsByTagName("oCity")[0].childNodes[0].nodeValue)+'_'+Specials.data[lineNumber].getElementsByTagName("oST")[0].childNodes[0].nodeValue+'.html');
		}
		catch(exep) {
		}
		
		for (i=0;i<=numLanes-1;i++) {
			var newTR = document.createElement("tr");
			var city= titleCase(Specials.data[lineNumber+i].getElementsByTagName("dCity")[0].childNodes[0].nodeValue);
			var state= Specials.data[lineNumber+i].getElementsByTagName("dST")[0].childNodes[0].nodeValue;
			var price28= Specials.data[lineNumber+i].getElementsByTagName("f28")[0].childNodes[0].nodeValue;
			var price48= Specials.data[lineNumber+i].getElementsByTagName("f48")[0].childNodes[0].nodeValue;
			var newtd=document.createElement("td");
			newtd.className="lane chart-white-bottom";
			
			//var pricetd=document.createElement("td");
			//pricetd.className="lane chart-white-bottom";
			writeMe = city+', '+state;
			//pricetd.innerHTML='&nbsp;';
			newtd.innerHTML = writeMe;
			newTR.appendChild(newtd);
			//newTR.appendChild(pricetd);
			var p28=document.createElement("td");
			var p48=document.createElement("td");
			p28.innerHTML = '$'+price28;
			p48.innerHTML = '$'+price48;
			p28.className="lane chart-white-bottom";
			p48.className="lane chart-white-bottom";
			p28.style.textAlign='right';
			p48.style.textAlign='right';
			newTR.appendChild(p28);
			newTR.appendChild(p48);

			tBody.appendChild(newTR);			
		}
		
		var newP = document.createElement("p");
		newP.id="disclaimer";
		newP.innerHTML = 'Note: Pricing shown may not be available for all zips/outlying areas served by a terminal. For specific, zip-to-zip pricing, log on to <a href="/cgi-dta/qnn100.mbr/input">My Estes</a> for a customized <a href="/WebApp/RateRequest/VTL">Volume/Truckload Rate Request</a>, or call <strong style="white-space:nowrap">1-866-378-3748 (Option 3)</strong>.<br />';
		newP.style.marginBottom='10px';

			
			var pInEl = document.getElementById('p'+startNumber.slice(3));
			pInEl.appendChild(newP);
		 
	} else {
		var rowCount=el.childNodes.length;
		//var rowCount = ridaRow.length;
		el.childNodes[0].className= "oTerm";
		el.className="oTermList";
		//alert(rowCount);
		
		for (i=1;i<rowCount;i++) {
			//y=el.getElementsByTagName("tr")[0];
			el.removeChild(el.childNodes[1]);
			//alert(i);
		}
		var pInEl = document.getElementById('p'+startNumber.slice(3));
		pInEl.parentNode.removeChild(pInEl);
		
	}
	
}

function titleCase(inString) {
	var patt1=/\s./g;
	var outString = " ";
//outString = inString.toLowerCase();
	try {
	outString= (inString.slice(0,1).toUpperCase())+(inString.slice(1).toLowerCase());
	var spaceCheck = outString.match(patt1);
	
		if (spaceCheck.length == 1 ) {
		var matchLoc=outString.indexOf(spaceCheck);
				outString= outString.slice(0,(matchLoc+1))+(outString.slice(matchLoc+1,matchLoc+2).toUpperCase())+outString.slice(matchLoc+2);
		}
		else if (spaceCheck.length > 1) {			
			for (q=0;q<spaceCheck.length;q++) {
				var matchLoc=outString.indexOf(spaceCheck[q]);
				var ofCheck=outString.slice(matchLoc+1,matchLoc+4);
				if (ofCheck == 'of ') {
					outString=outString;
				}
				else {
				outString= outString.slice(0,(matchLoc+1))+(outString.slice(matchLoc+1,matchLoc+2).toUpperCase())+outString.slice(matchLoc+2);
				}
			}
		}
	}
	catch(err) {
		//alert('err: '+err.description);
	}


	return outString;
}

function killSpaces(inStr) {
	var patt1=/\s./g;
	var outString = " ";
	var outString = inStr;
	try {
		var spaceCheck = 0;
		spaceCheck = outString.match(patt1);
		if (spaceCheck.length == 1 ) {
		var matchLoc=outString.indexOf(spaceCheck);
				outString= outString.slice(0,(matchLoc))+outString.slice(matchLoc+1);
		}
		else if (spaceCheck.length > 1) {			
			for (i=0;i<spaceCheck.length;i++) {
				var matchLoc=outString.indexOf(spaceCheck[i]);
				outString= outString.slice(0,(matchLoc))+outString.slice(matchLoc+1);
				}
			}
		
	}
	catch(err) {
		//alert('err: '+err.description);
	}
	return outString
}


function numOlanes(oTerm) {
	var numLanes=0;
	oTerm=parseInt(oTerm);
	try{}
	catch(a){}
	var oTermNumber = Specials.data[oTerm].getElementsByTagName("oTerm")[0].childNodes[0].nodeValue;
	var oTermCheck = oTermNumber;
	try{
	while(oTermCheck==oTermNumber) {
	oTermNumber = Specials.data[oTerm].getElementsByTagName("oTerm")[0].childNodes[0].nodeValue;
	numLanes++;
	oTerm++;
	}
	}
	catch(err){
		numLanes++;
	}
	return (numLanes-1);
}

function findMatches(Kind,toMatch) {
	var matches=[];
	
	for (i=0;i<Specials.data.length;i++){ 
		if (Specials.data[i].getElementsByTagName(Kind)[0].childNodes[0].nodeValue == toMatch) {
			matches.push(i);
		}
	}
	if (Kind=="oST") {
		Specials.stateMatches = matches;
		Specials.stateStart = matches[1];
	}
	return matches;
}

function filterMatches(Kind,inList) {
	var firstOfKind="";
	var outList=[];
	for (i=0;i<inList.length;i++) {
		var temp=inList[i]
		var translate = Specials.data[temp].getElementsByTagName(Kind)[0].childNodes[0].nodeValue;
		if (translate != firstOfKind) {
			outList.push(inList[i]);
			firstOfKind=translate;
		}
	}
	if (Kind == "oCity") {
		Specials.terminalStarts=outList;
	}
	return outList;
}



function initStates(){
	getData();
	var tCount=0;
	for (i=0;i<Specials.data.length;i++)  //This loop creates a list for a quickLink array: oST, a list of origin state abbreviations.
	  {  
		var oTtemp= Specials.data[i].getElementsByTagName("oST")[0].childNodes[0].nodeValue;
		if (oTtemp != Specials.oST[tCount])
		{
			Specials.oST.push(oTtemp);
			tCount++;
		}
	}
	document.write('<select name="stMenu" id="stMenu" onChange="stateChange(this.value);">');
	for (i=0;i<Specials.oST.length;i++) {
		document.write("<option value="+Specials.oST[i]+">"+Specials.oST[i]+"</option>");
		}
	document.write('</select>');
	
		//highlightElement("rate_remind");
}

function refreshBottom() {
		var el = document.getElementById("specialsForm");
		var countKids = el.childNodes.length
		var n = document.createTextNode(' ');
		el.appendChild(n);
		el.removeChild(countKids+1);
}

initStates();


