/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Begin In Page JS
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
usrUID   = '<%=Session("uid")%>';
usrKey   = '<%=Session("ukey")%>';
usrLang  = '<%=Session("lang")%>';
usrName  = '<%=Session("uName")%>';
usrPhone = '<%=Session("uPhone")%>';

firstLoad   = 1;
showResults = 0;
mapHidden   = 0;

function writeMap(){
	// original map size: 632x413. New size 506x330
	mapDiv = document.getElementById('swfMap');
	swfCode = writeSWF('swf/usmap.swf',506,330,'loadMap','#ffffff','false','middle','Transparent','sameDomain','9,0,0,0','');
	mapDiv.innerHTML = swfCode;
}

function alertUser(){
	if(isEnglish){
		msg  = 'You must be a registered RTS Credit user\n';
		msg += 'to view our available loads.\n';
		msg += 'Please visit www.rtscredit.com\n';
		msg += 'for more information.';
	} else {
		msg  = 'Usted debe ser un usuario registrado de RTS Credit\n';
		msg += 'para visión nuestras cargas disponibles.\n';
		msg += 'Por favor visita www.rtscredit.com\n';
		msg += 'para más información.'
	}
	alert(msg);
}

function searchLoadsSel(sel){
	st = sel.options[sel.selectedIndex].value;
	if(st != '-'){
		searchLoads(st);
	}
}

function searchLoads(st){

	var goodState = false;

	for(lc = 0; lc < rtsLoadObj.loads.length; lc++){
		if(st == rtsLoadObj.loads[lc].to_state ||
		   st == rtsLoadObj.loads[lc].from_state){
		   	goodState = true;
		   	break;
		}
	}

	if(goodState){

		frmFlash = document.getElementById('blnFromFlash');
		frmFlash.value = 1;

		toSt  = document.getElementById('selOState');
		frmSt = document.getElementById('selDState');

		for(z = 0; z < toSt.options.length; z++){
			if(toSt.options[z].value == st){
				toSt.selectedIndex = z;
				break;
			}
		}
		for(z = 0; z < frmSt.options.length; z++){
			if(frmSt.options[z].value == st){
				frmSt.selectedIndex = z;
				break;
			}
		}
		showResults = 1;
		postForm();

	} else {
		if(isEnglish){
			msg = 'There is no freight available for ' + st;
		} else {
			msg = 'No hay flete disponible para ' + st;
		}
		alert(msg);
	}
}

function submitSearch(){
	frmFlash = document.getElementById('blnFromFlash');
	frmFlash.value = 0;
	if(firstLoad){
		showResults = 0;
	}
	postForm();
}

function hideMap(){
	if(rtsLoadObj.loads.length > 0){

		//swfDiv = document.getElementById('availableLoadMap');
		//swfDiv.style.overflow = 'hidden';
		//swfDiv.style.display = "none";
		$('#availableLoadMap').hide();

		//showBtn = document.getElementById('btnMapShow');
		//showBtn.style.display = 'inline';
		$('#btnMapShow').show();

		mapHidden = 1;
	}
}

function showMap(){

	frmObj = document.getElementById('frmSearch');
	frmObj.reset();

	mapHidden = 0;

	//swfDiv = document.getElementById('availableLoadMap');
	//swfDiv.style.overflow = 'visible';
	//swfDiv.style.display = "block";
	$('#availableLoadMap').show();

	//showBtn = document.getElementById('btnMapShow');
	//showBtn.style.display = 'none';
	$('#btnMapShow').hide();

	showResults = 0;

	writeMap();
	submitSearch();
}

function clearLoadDiv(){
	//loadDiv = document.getElementById(dataDiv);
	//loadDiv.innerHTML = '';
	$('#' + dataDiv).hide("fast",function(){
			loadDiv = document.getElementById(dataDiv);
			loadDiv.innerHTML = '';
		});
}

function loadsToSWF(rtsLoads){
    getMovie('loadMap').loadStates(rtsLoads);
}

function getMovie(movieName) {
    if (navigator.appName.indexOf("Microsoft") != -1) {
        return window[movieName];
    }
    else {
        return document[movieName];
    }
}
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
End In Page JS
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/

var rtsHTTP  = getXMLObject();
var rtsLoadObj = {"loads":[]};
var swfLoadObj = {"loads":[]};
var postData = '';
var dataDiv  = 'availLoads';
var frm      = 'frmSearch';
var reqURL   = 'remote-available-loads.asp';

var strToState   = '';
var strFromState = '';

function getXMLObject() {
	if (window.XMLHttpRequest) {
		return new XMLHttpRequest();
	} else if(window.ActiveXObject) {
		return new ActiveXObject("Microsoft.XMLHTTP");
	} else {
		return null;
	}
}

function postForm() {
	clearLoadDiv();
	if(!firstLoad && showResults){
		showLoading();
	}
	if(rtsHTTP != null){
		if (rtsHTTP.readyState == 4 || rtsHTTP.readyState == 0){
			rtsHTTP.open("GET", reqURL + getFormData() + cacheKill(), true);
			rtsHTTP.onreadystatechange = handleUpdate;
			rtsHTTP.send(null);
		}
	}
}

function outputHTML(strTitle,objLoad){

	trClass  = 'dark';
	w1  = 43;
	w2  = 155;
	w3  = 55;
	w4  = 40;
	w5  = 24;
	w7  = 24;
	w9  = 24;
	w11 = 18;

	s  = strTitle;
	s += '<table cellspacing="1" cellpadding="1" class="loadsTable" width="90%" style="width:90%;">';
	s += '<thead>';
	s += '<tr>';
	s += '<td style="min-width:' + w1 + 'px;">Ref No.</td>';
	s += '<td style="min-width:' + w2 + 'px;">Dispatcher</td>';
	s += '<td style="min-width:' + w3 + 'px;">Avail Date</td>';
	s += '<td style="min-width:' + w4 + 'px;">Equip.</td>';
	s += '<td style="min-width:' + w5 + 'px;">HZ</td>';
	s += '<td style="min-width:110px;">Origin City</td>';
	s += '<td style="min-width:' + w7 + 'px;">ST</td>';
	s += '<td style="min-width:110px;">Dest City</td>';
	s += '<td style="min-width:' + w9 + 'px;">ST</td>';
	s += '<td>Deliv Date</td>';
	s += '<td style="min-width:' + w11 + 'px;">Stops</td>';
	s += '</tr>';
	s += '</thead>';

	for(lc = 0; lc < objLoad.loads.length; lc++){

		s += '<tr class="' + trClass + '">';
		s += '<td class="' + trClass + '" align="right" style="text-align:right;width:' + w1 + 'px;">' + objLoad.loads[lc].order_id + '</td>';
		s += '<td class="' + trClass + '" style="width:' + w2 + 'px;">';

		//Build MailTo Tag
		if(objLoad.loads[lc].salesperson_email == '' || objLoad.loads[lc].salesperson_email == null){
			objLoad.loads[lc].salesperson_email    = 'sales@ryantrans.com';
			objLoad.loads[lc].salesperson_name     = 'Sales';
			objLoad.loads[lc].salesperson_initials = 'XXX';
		}
		strMail  = 'mailto:' + objLoad.loads[lc].salesperson_email;
		strMail += '?subject=RyanTrans.com Load ' + objLoad.loads[lc].order_id + " ";
		strMail += '(';
		strMail += objLoad.loads[lc].from_city + ', ' + objLoad.loads[lc].from_state + ' to ';
		strMail += objLoad.loads[lc].to_city   + ', ' + objLoad.loads[lc].to_state;
		strMail += ')';
		strMail += '&body=' + objLoad.loads[lc].salesperson_name + ', ';
		strMail += 'I\'m emailing about Load ' + objLoad.loads[lc].order_id + '.';

		/*
		if(usrName != ''){
			strMail += 'Please contact: ' + usrName + ' at ' + usrPhone;
		}
		*/

		//s += '<a href="jav';
		//s += 'ascript:void(0)" onclick="launchChat()">';
		//s += '<img src="imgs/chat1.gif" border="0" valign="middle" alt="Chat with a broker about this load">';
		//s += '</a>&nbsp;';

		s += '<a href="' + strMail + '" style="text-decoration:underline;">';
		s += objLoad.loads[lc].salesperson_name;
		s += '</a></td>';

		puDate = objLoad.loads[lc].pickup_date.split(' ')[0];

		s += '<td class="' + trClass + '" align="right" style="text-align:right;width:' + w3 + 'px;">' + puDate + '</td>';
		s += '<td class="' + trClass + '" align="right" style="text-align:right;width:' + w4 + 'px;">' + objLoad.loads[lc].equipment_type_id + '</td>';
		if(objLoad.loads[lc].hazmat == 'Y'){
			s += '<td align="center" style="text-align:center;width:' + w5 + 'px;">HAZ</td>';
		} else {
			s += '<td align="center" style="text-align:center;width:' + w5 + 'px;">NO</td>';
		}
		s += '<td class="' + trClass + '">' + objLoad.loads[lc].from_city    + '</td>';
		s += '<td class="' + trClass + '" style="text-align:center;width:' + w7 + 'px;">' + objLoad.loads[lc].from_state   + '</td>';
		s += '<td class="' + trClass + '">' + objLoad.loads[lc].to_city      + '</td>';
		s += '<td class="' + trClass + '" style="text-align:center;width:' + w9 + 'px;">' + objLoad.loads[lc].to_state     + '</td>';
		s += '<td class="' + trClass + '" align="right" style="text-align:right;">';
		s += formatTime(objLoad.loads[lc].deliver_date);
		s += '</td>';
		s += '<td class="' + trClass + '" align="right" style="text-align:right;width:' + w11 + 'px;">' + objLoad.loads[lc].stops + '</td>';
		s += '</tr>'

		if(trClass == 'dark'){
			trClass = 'light';
		} else {
			trClass = 'dark';
		}

	}

	s += '</table><p />';
	return s;
}

//Click on salesperson name to inquire about or book the load, or call 800-383-5231.
//Haga clic en el nombre vendedor para solicitar información sobre el libro o carga, o llame al 800-383-5231.

function handleUpdate() {

	//clear the div
	var outHTML = '';

	if (rtsHTTP.readyState == 4 && rtsHTTP.status == 200) {
		rtsLoadObj = eval('(' + rtsHTTP.responseText + ')');

		loadsToSWF(rtsLoadObj);

		// clear the div, load everything to the SWF
		if(!firstLoad && showResults){
			hideMap();
		}

		if(rtsLoadObj.loads.length <= 0){

			outHTML  = '<div id="noLoads">'
			outHTML += 'No loads found matching your query.<br />';
			outHTML += 'Please try broadening your search.';
			outHTML += '</noLoads>';
			loadDiv = document.getElementById(dataDiv);
			loadDiv.innerHTML = outHTML;
			$('#' + dataDiv).show();

		} else {

			/*
			styTable = 'border-color: #555555; background-color : #555555;'
			styLight = 'font-size : 8pt; background-color : #FFFFFF; padding: 3px;'
			styDark  = 'font-size : 8pt; background-color : #FFFFFF; padding: 3px;'
			styHdr   = 'font-size : 9pt; background-color : #3D75C9; color : #FFFFFF; padding: 3px;'
			trClass = styDark;
			*/

			fromCount = 0;
			fromLoads = {"loads":[]};
			toCount   = 0;
			toLoads   = {"loads":[]};

			for(lc = 0; lc < rtsLoadObj.loads.length; lc++){
				if(strFromState == rtsLoadObj.loads[lc].from_state){
					fromCount ++;
					fromLoads.loads.push(rtsLoadObj.loads[lc]);
				}
				if(strToState == rtsLoadObj.loads[lc].to_state){
					toCount ++;
					toLoads.loads.push(rtsLoadObj.loads[lc]);
				}
			}

			if(fromCount > 0 && toCount > 0){

				strTitle = '<div id="loadsIn">Loads inbound to ' + strToState + '</div>';
				outHTML  = outputHTML(strTitle,toLoads);

				strTitle = '<div id="loadsOut">Loads outbound from ' + strFromState + '</div>';
				outHTML += outputHTML(strTitle,fromLoads);

			} else {
				strTitle = '<div id="loadsFor">Available Loads for ' + strToState + '</div>';
				outHTML = outputHTML(strTitle,rtsLoadObj);
			}

		}
		// added control for not showing results on first load.
		if(!firstLoad && showResults){
			loadDiv = document.getElementById(dataDiv);
			loadDiv.innerHTML = outHTML;
			$('#' + dataDiv).show();
		} else {
			clearLoadDiv();
		}
		firstLoad = 0;
	}

}

function formatTime(t){
	if(t.indexOf(':') > 0){
		t   = t.split(' ')
		td  = t[0];
		tt  = t[1].split(':');
		tap = t[2];
		if(tap == 'PM'){
			tt[0] = Number(tt[0]) + 12;
		}
		return td + ' ' + tt[0] + ':' + tt[1];
	} else {
		return t;
	}
}

function cacheKill(){
	tmpTime = new Date().getTime();
	if(postData.indexOf('?') != -1){
		return '&rtsCK=' + tmpTime;
	} else {
		return '?rtsCK=' + tmpTime;
	}
}

function getFormData(){
	frmObj = document.getElementById(frm);
	postData = '?';
	for(elCount = 0; elCount < frmObj.elements.length; elCount++){
		if(elCount > 0){
			postData += '&';
		}

		if(frmObj.elements[elCount].name == 'selOState'){
			strFromState = getValue(frmObj.elements[elCount]);
			if(strFromState == '-'){
				strFromState = '';
			}
		}
		if(frmObj.elements[elCount].name == 'selDState'){
			strToState = getValue(frmObj.elements[elCount]);
			if(strToState == '-'){
				strToState = '';
			}
		}

		postData += frmObj.elements[elCount].name + '=';
		postData += escape(getValue(frmObj.elements[elCount]));
	}
	return postData;
}

function showLoading(){
/*
	loadTxt  = '<table border=0 cellpadding=2 cellspacing=2>';
	loadTxt += '<tr>';
	loadTxt += '<td valign=middle align=left>';
	loadTxt += '<div id="loadingSWF"></div>';
	loadTxt += '</td>';
	loadTxt += '<td valign="middle" align="left">';
	if(isEnglish){
		loadTxt += '<strong><em>Loading...</em></strong>';
	} else {
		loadTxt += '<strong><em>Cargamento...</em></strong>';
	}
	loadTxt += '</td>';
	loadTxt += '</tr>';
	loadTxt += '</table>';

	loadDiv  = document.getElementById(dataDiv);
	loadDiv.innerHTML = loadTxt;
	$('#' + dataDiv).show();

	loadSwf = writeSWF('swf/loading.swf','41','41','loading','#ffffff','false','middle','transparent','sameDomain','9,0,0,0','');
	swfDiv  = document.getElementById("loadingSWF");
	swfDiv.innerHTML = loadSwf;
*/
}

function getValue(frmEl){
	elVal = '';

	// special case for detecting radio objects
	if(typeof(frmEl) == 'object' && typeof(frmEl.type) == 'undefined'){
		for(j = 0; j < frmEl.length; j ++){
			if(frmEl[j].checked){
				elVal = frmEl[j].value;
			}
		}
	// normal case form element detection
	} else if(typeof frmEl != 'undefined'){
		switch (frmEl.type){
		case 'text':
			elVal = frmEl.value;
		break
		case 'hidden':
			elVal = frmEl.value;
		break
		case 'textarea':
			elVal = frmEl.value;
		break
		case 'checkbox':
			if(frmEl.checked){
				elVal = frmEl.value;
			}
		break
		case 'radio':
			if(frmEl.checked){
				elVal = frmEl.value;
			}
		break
		case 'select-one':
			elVal = frmEl.options[frmEl.selectedIndex].value;
			if(elVal == ''){
				elVal = frmEl.options[frmEl.selectedIndex].text;
			}
		break
		case 'select-multiple':
			for(j = 0; j < frmEl.length; j ++){

				if(frmEl.options[j].selected){
					currVal = frmEl[j].value;
					if(currVal == ''){
						currVal = frmEl[j].text;
					}
					if(elVal == ''){
						elVal = currVal;
					} else {
						elVal = elVal + ', ' + currVal;
					}
				}
			}
		break
		}
	}
	return elVal;
}

$(document).ready(function(){
	$('#' + dataDiv).hide();
});