// ******* CALORIE CALCULATIONS START FUNCTIONS *******
function calcCals(frm){
	//weightCal(frm.calcweight);
	// Calories burned by exercise = ((METs * 3.5 * weightKg) / 200) * timeMin.
	var miles2KmFactor = 1.60934
	var metFactor = 2
	var cals = 0;
	var dist;
	var pace = frm.calcpace.value; // mph
	var mode = frm.calcmode.value; 
	var weight = (frm.calcweightunits.value.toLowerCase() == "kg")?frm.calcweight.value:frm.calcweight.value/2.2; // kg
	if (frm.calcdistunits.value == "miles"){
		dist = frm.calcdist.value*1000*miles2KmFactor;
	} else {
		dist = frm.calcdist.value*1000;
	}
	if (Number(pace) == 2) {
		metFactor = 2
	} else if (Number(pace) == 3) {
		metFactor = 4.2
	} else if (Number(pace) == 4) {
		metFactor = 8
	}
	if (mode == "cycle"){
		metFactor = metFactor * 1.2
		pace = Number(pace)*4;
	}
	cals = ((Number(metFactor) * 3.5 * Number(weight))/200)*(Number(dist)/(Number(pace)*Number(miles2KmFactor)*1000*(1/60)))	
	document.getElementById('calcresult').innerHTML = Math.round(cals) +" calories";
	document.getElementById('calcresult').style.border = 'solid 1px #f37c18';
	document.getElementById('calcresult').style.padding = '6px';
}

function weightCal(obj) {
    var weightStone = document.getElementById('weightstone').value;
    var weightIbs = document.getElementById('weightibs').value;
    var weightKg = document.getElementById('weightkg').value;
    var objWeightKg = document.getElementById('weightkg');
    if (obj.name != "weightkg") {
        objWeightKg.value = Math.round((Number(weightStone * 14) + Number(weightIbs)) / 2.2); // 2.2 Ibs per Kilo
    } else {
    }
}

function weightCal2(obj) {
    var objWeightStone = document.getElementById('weightstone');
    var objWeightIbs = document.getElementById('weightibs');
    var objWeightKg = document.getElementById('weightkg');
    if (!isNaN(objWeightKg.value)) {
        var stone = Math.floor((objWeightKg.value * 2.2) / 14);
        var Ibs = Math.round(((objWeightKg.value) * 2.2) - (stone * 14));
        sel_func(objWeightStone, stone);
        sel_func(objWeightIbs, Ibs);
        weightCal(obj);
    } else {
        weightCal(obj);
    }
}

function heightCal(obj) {
    var heightFeet = document.getElementById('heightfeet').value;
    var heightInch = document.getElementById('heightinch').value;
    var heightCm = document.getElementById('heightcm').value;
    var objHeightCm = document.getElementById('heightcm');
    if (obj.name != "heightcm") {
        objHeightCm.value = Math.round((Number(heightFeet * 12) + Number(heightInch)) * 2.5); // 2.5 cm per inch
    }
}
function heightCal2(obj) {
    var objHeightFeet = document.getElementById('heightfeet');
    var objHeightInch = document.getElementById('heightinch');
    var objHeightCm = document.getElementById('heightcm');
    if (!isNaN(objHeightCm.value)) {
        var feet = Math.floor((objHeightCm.value * (1 / 2.5)) / 12);
        var inch = Math.round(((objHeightCm.value) * (1 / 2.5)) - (feet * 12));
        sel_func(objHeightFeet, feet);
        sel_func(objHeightInch, inch);
        heightCal(obj)
    } else {
        heightCal(obj);
    }
}
// ******* CALORIE CALCULATIONS END FUNCTIONS *******

function openWindow_func(url, wname, topleft, fullscreen, appw, apph, scroll) {
	fscreen = (fullscreen == 1)?"fullscreen":"";	
	if (topleft == 1){
		screenx = 0
		screeny = 0
	} else {
		screenx = (screen.width - appw)/2
		screeny = (screen.height - apph)/2
	}
	newWin = window.open(url, wname, "toolbar=no,status=yes,"+fscreen+",scrollbars="+scroll+",resizable=yes,menubar=no,width="+appw+",height="+apph+",left="+screenx+",top="+screeny+", maximize=yes");
	//return newWin;
}

function txtboxInit(txtboxObj, initVal){
	if (txtboxObj.value == initVal){
		txtboxObj.value = '';		
	}
	if (txtboxObj.className.substr(txtboxObj.className.length-4,4) == "init"){
		//txtboxObj.className = txtboxObj.className.substr(0,txtboxObj.className.length-4);// Bug in IE
		txtboxObj.style.color='#003366';
	} else if (txtboxObj.className.substr(txtboxObj.className.length-4,4) == "warn"){
		txtboxObj.style.color='#003366';
	}
}

function setStyle_func(obj, stylevar, styleval){
	if (navigator.userAgent.toLowerCase().indexOf("msie") > -1){
		obj.style[stylevar]=styleval;
	} else {
		obj.style[stylevar]=styleval;
	}
}

function replaceTxt_func(txtStr,replaceSelStr,replaceWithTxt){
	return txtStr.split(replaceSelStr).join(replaceWithTxt);
}

function decPlaces(no,noDecPlaces){
	return Math.round(no*Math.pow(10,noDecPlaces))/Math.pow(10,noDecPlaces);
}


function db2frm(dbValArr,frmObjArr,frm){ // Loads database values into a specified form
	var dbArrLen = dbValArr.length;
	for(i=0;i<dbArrLen;i++){
		if (frm[frmObjArr[i]]){
			if (frm[frmObjArr[i]].type == undefined){ // radio
				radSet_func(frm[frmObjArr[i]], dbValArr[i]);
			} else if (frm[frmObjArr[i]].type == "text" || frm[frmObjArr[i]].type == "textarea" || frm[frmObjArr[i]].type == "hidden"){
				frm[frmObjArr[i]].value = dbValArr[i];
			} else if (frm[frmObjArr[i]].type.indexOf("check") != -1){
				frm[frmObjArr[i]].checked=(dbValArr[i] != 0)?true:false;
				//alert(frmObjArr[i]+" "+frm[frmObjArr[i]].checked)
			} else if (frm[frmObjArr[i]].type == "select"){
				sel_func(frm[frmObjArr[i]], dbValArr[i]);
			}
		}
	}
}

function sel_func(selObj, selVal){ // Positions the select object at given index
	selL = selObj.length;
	for(p=0;p<selL;p++){
		if (String(selObj.options[p].value)==String(selVal)){
			selObj.selectedIndex=p;
			break;
		}
	}
}

function addZero(str){
	var res = str;	
	if (str.toString().length <= 1){
		res = "0"+str;
	}
	return res;
}
function inputIsPostcode(postcodetxt){
	var isFullPostcode = true;
	if (postcodetxt.length >=5 && postcodetxt.length <= 9){
		if (!isNaN(postcodetxt.substr(0,1))){
			isFullPostcode = false;
		}
		if (postcodetxt.indexOf(" ") == -1){
			postcodetxt = postcodetxt.substr(0,postcodetxt.length-3)+" "+postcodetxt.substr(postcodetxt.length-3,3);
		}
		postcode2ndPart = postcodetxt.substr(postcodetxt.length-3,3);
		if (isNaN(postcode2ndPart.substr(0,1))){ // first number of second part of postcode has to be a number
			isFullPostcode = false;
		}
		if (!isNaN(postcode2ndPart.substr(1,1)) || !isNaN(postcode2ndPart.substr(2,1))){  // second and third numbers of second part of postcode has to be a letters
			isFullPostcode = false;
		}
	} else {
		isFullPostcode = false;
	}
	return isFullPostcode;
}

function addPostcodeSpace(postcodetxt){	
	if (postcodetxt.indexOf(" ") == -1){		
		postcodetxt = postcodetxt.substr(0,postcodetxt.length-3)+" "+postcodetxt.substr(postcodetxt.length-3,3);
	}
	return postcodetxt;
}

// ******* FORM FUNCTIONS *******
function radioListCheckedVal_func(frm,radGroupName){ // Gets radiobox selected value
	res = "";
	var radObj = frm[radGroupName];
	l = radObj.length;
	for(i=0;i<l;i++){
		if (radObj[i].checked){
			res = radObj[i].value;
		}
	}
	return res;
}

function radValidate_func(radGroup){// Checks to see if a radio group has been checked
	rL = radGroup.length;
	radChked=0;
	for(a=0;a<rL;a++){
		if (radGroup[a].checked){
			radChked=1;
		}
	}
	if (radChked==1){
		return true;
	} else {
		return false;
	}
}

function sel_func(selObj, selVal){ // Positions the select object at given index
	selL = selObj.length;
	for(p=0;p<selL;p++){
		if (String(selObj.options[p].value)==String(selVal)){
			selObj.selectedIndex=p;
			break;
		}
	}
}

function radSet_func(radObj, radVal){ // Sets the radiobox group based on a radiobox value
	radL = radObj.length;
	for(p=0;p<radL;p++){
		if (String(radObj[p].value)==String(radVal)){
			radObj[p].checked=true;
			break;
		}
	}
}

function radHasVal_func(radObj, radVal){ // Checks whether the radiobox group has is checked on the given value
	var res=false;
	radL = radObj.length;
	for(p=0;p<radL;p++){
		if (String(radObj[p].value)==String(radVal) && radObj[p].checked){
			res=true;
		}
	}
	return res;
}

function radioListChecked_func(radGroupName){ // Checks if a radiobox group is checked
	radChecked=false;
	radObj = document.forms[0][radGroupName];
	l = radObj.length;
	for(i=0;i<l;i++){
		if (radObj[i].checked){
			radChecked=true;
		}
	}
	return radChecked;
}

function radSelIndex_func(radObj){ // Checks whether the radiobox group has is checked on the given value
	var radIndex=-1;
	radL = radObj.length;
	for(p=0;p<radL;p++){
		if (radObj[p].checked){
			radIndex=p;
		}
	}
	return radIndex;
}


function appendOptionLast(selectObj, optTxt, optVal) {
	var elOptNew = document.createElement('option');
	elOptNew.text = optTxt;
	elOptNew.value = optVal;
	try {
		selectObj.add(elOptNew, null); // standards compliant; doesn't work in IE
	} catch(ex) {
		selectObj.add(elOptNew); // IE only
	}
}
// *************************** //






function sendXmlHttpRequestPost(url,callback,postdata) {	
	var xmlhttp=false;
	try  {
		xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); /* for IE < 5 */
	} catch (e) {
		try {
			xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
		} catch (E) {
			xmlhttp = false;
		}
	}

	/* mozilla & opera */
	if (!xmlhttp && typeof XMLHttpRequest!='undefined') { xmlhttp = new XMLHttpRequest();
	}	

	xmlhttp.open("POST",url,true);
	xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded")
	xmlhttp.onreadystatechange=function() {
		//alert(xmlhttp.readyState)
		if(xmlhttp.readyState == 4){ 
			if (xmlhttp.status == 200) {
				callback(xmlhttp.responseText);
				//alert(xmlhttp.responseText);
			}
		} else if(xmlhttp.readyState == 4 && xmlhttp.status != 200) {
			alert("Error:\n"+xmlhttp.error);
		}
	}
	xmlhttp.send(postdata); /* are sending null because we dont have any data to post */
}

function sendXmlHttpRequestGet(url,callback,callbackParam,getdata) {	// callbackParam is an array
	var xmlhttp=false;
	try  {
		xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); /* for IE < 5 */
	} catch (e) {
		try {
			xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
		} catch (E) {
			xmlhttp = false;
		}
	}

	/* mozilla & opera */
	if (!xmlhttp && typeof XMLHttpRequest!='undefined') { 
		xmlhttp = new XMLHttpRequest();
	}
	xmlhttp.open("GET",url,true);
	xmlhttp.onreadystatechange=function() {
		if(xmlhttp.readyState == 4 && xmlhttp.status == 200) {
			callback(xmlhttp.responseText, callbackParam);
			//alert(xmlhttp.responseText);
		} else if(xmlhttp.readyState == 4 && xmlhttp.status != 200) {
			//alert("Error:\n"+xmlhttp.error);			
			window.status = 'http request aborted/error.';
		//} else if (xmlhttp.status == 500){
			//alert("There was an error retrieving live departure information for this station - it may not be available.")
		}
	}
	xmlhttp.send(getdata); /* are sending null because we dont have any data to post */
}

function sendXmlHttpRequestPostUpload(url,callback,postdata) {	
	var xmlhttp=false;
	try  {
		xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); /* for IE < 5 */
	} catch (e) {
		try {
			xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
		} catch (E) {
			xmlhttp = false;
		}
	}

	/* mozilla & opera */
	if (!xmlhttp && typeof XMLHttpRequest!='undefined') { xmlhttp = new XMLHttpRequest();
	}

	xmlhttp.open("POST",url,true);
	//xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded")
	xmlhttp.setRequestHeader("Content-type", "multipart/form-data")
	xmlhttp.onreadystatechange=function() {
		if(xmlhttp.readyState == 4 && xmlhttp.status == 200) {
			callback(xmlhttp.responseText);
			//alert(xmlhttp.responseText);
		} else if(xmlhttp.readyState == 4 && xmlhttp.status != 200) {
			alert("Error:\n"+xmlhttp.error);
		}
	}
	xmlhttp.send(postdata); /* are sending null because we dont have any data to post */
}




/* **** INVITE MATES FUNCTIONS START **** */
function ajaxSearchMates(txtbox, selObjID, listObjID, callbackFunc) {
    //document.getElementById(listObjID).style.height = '60px';
    sendXmlHttpRequestGet('ajax_searchmates.aspx?matestr=' + txtbox.value + "&selmatesid=" + selObjID + "&listid=" + listObjID, callbackFunc, listObjID, null);
}

var matesListArr = [];
function selectMate(mateUname, mateUID, resObjID, listObjID) {
    matesListArr.push({ id: mateUID, uname: mateUname });    
    //document.getElementById(resObjID).innerHTML += "<div><span>" + mateUname + "</span><a href='" + mateUID + "'>x</a></div>"
    document.getElementById(listObjID).innerHTML = "";
    document.getElementById(listObjID).style.height = '0px';
    document.getElementById(listObjID).style.borderWidth = '0px';
    document.getElementById(listObjID).style.visible = 'hidden';
    popMateList(resObjID, listObjID);
}

function popMateList(resObjID, listObjID) {
    document.getElementById(resObjID).innerHTML = ""
    var arrL = matesListArr.length;
    var hiddenIDvals = ""
    var hiddenNamevals = ""
    for (i = 0; i < arrL; i++) {
        document.getElementById(resObjID).innerHTML += "<div><span>" + matesListArr[i].uname + "</span><a href=\"javascript:removeMateFromList(" + matesListArr[i].id + ",'" + resObjID + "','" + listObjID + "')\">x</a></div>";
        hiddenIDvals += (i == 0) ? matesListArr[i].id : "," + matesListArr[i].id;
        hiddenNamevals += (i == 0) ? matesListArr[i].uname : "," + matesListArr[i].uname;
    }
    document.getElementById('HiddenFieldSelectMatesIDs').value = hiddenIDvals;
    document.getElementById('HiddenFieldSelectMatesNames').value = hiddenNamevals;
    //document.getElementById('HiddenFieldSelectMatesHTML').value = escape(document.getElementById(resObjID).innerHTML);
}

function removeMateFromList(mateID, resObjID, listObjID) {
    var newArr = [];
    var arrL = matesListArr.length;
    for (i = 0; i < arrL; i++) {
        if (String(matesListArr[i].id) != String(mateID)) {
            newArr.push(matesListArr[i]);
        }
    }
    matesListArr = newArr;
    popMateList(resObjID, listObjID);
}
/* **** INVITE MATES FUNCTIONS END **** */


function validateForm(frm,inputsArr){
	var inputObjsL = inputsArr.length;
	var frmValid = true;
	for(i=0;i<inputObjsL;i++){
		frm[inputsArr[i]].className = 'required';
		if (frm[inputsArr[i]].type == "text" || frm[inputsArr[i]].type.indexOf("select") != -1 || frm[inputsArr[i]].type == "password"){
			if (frm[inputsArr[i]].value == ""){
				frm[inputsArr[i]].className = 'isrequired';
				frmValid = false;
			}
		}		
	}	
	return frmValid;
}


// ***** JOURNEY PLANNER FUNCTIONS ******

function gotoRAC(from,to){
	window.open("http://www.rac.co.uk/route-planner/results/?qs_1="+from+"&qs_3=&qs_2=&qs_4="+to+"&countryCode_4=UK&countryCode_1=UK&countryCode_3=UK&countryCode_2=UK&rpref=true&optimizeIntermediates=true&mapType=interactive&rtype=true&jsOption=1", "winRAC")
}

function jpStartAgain(){	
	location.href="jplanner1.asp";
}

function gotoJPlanner(fromtxt,totxt){
	frm = document.getElementById('minijplanner');
	frm.addrfrom.value = fromtxt;
	frm.addrto.value = totxt;
	frm.submit();
}

function jpTimesEarlier(dt){
	showloader_func();
	location.href="jplanner3.asp?planjourney=1&earlier=1&dt="+dt;
}

function jpTimesLater(dt){
	showloader_func();
	location.href="jplanner3.asp?planjourney=1&later=1&dt="+dt;
}

function showOnMap(mode,markerID,fromOSX,fromOSY,toOSX,toOSY,txt,naptanid){
	var ptFrom = OS2LatLonWGS84_func(fromOSX,fromOSY);
	ptFrom = new GLatLng(ptFrom.lat, ptFrom.lng);
	var ptTo = OS2LatLonWGS84_func(toOSX,toOSY);
	ptTo = new GLatLng(ptTo.lat, ptTo.lng);
	if (mode == "walk"){
		imageUrl = "images/mapicon_walk.png";
		lineColor = "#817bb9";
	} else if (mode == "rail"){
		imageUrl = "images/mapicon_rail.png";
		lineColor = "#67bc77";
	} else if (mode == "bus" || mode == "coach"){
		imageUrl = "images/mapicon_bus.png";
		lineColor = "#f17278";
	}
	
	map.addOverlay(new GPolyline([ptFrom, ptTo], lineColor, 6, 0.6, {geodesic:true}));
	
	// Create our marker icon
	var icon = new GIcon();
	icon.image = imageUrl
	icon.shadow = "images/mapicon_sqshad.png";
	icon.iconSize = new GSize(41, 41);
	icon.shadowSize = new GSize(60, 41);
	icon.iconAnchor = new GPoint(1, 41);
	icon.infoWindowAnchor = new GPoint(21, 35);	
	
	
	addJMarker2Map(ptFrom,16,icon,markerID,imageUrl,txt,naptanid);
}
function showOnMapVE(mode,markerID,fromOSX,fromOSY,toOSX,toOSY,txt,naptanid){
	var ptFrom = OS2LatLonWGS84_func(fromOSX,fromOSY);
	ptFrom = new VELatLong(ptFrom.lat, ptFrom.lng);
	var ptTo = OS2LatLonWGS84_func(toOSX,toOSY);
	ptTo = new VELatLong(ptTo.lat, ptTo.lng);
	if (mode == "walk"){
		imageUrl = "images/mapicon_walk.png";
		lineColor = new VEColor(129,123,185,0.9);
	} else if (mode == "rail"){
		imageUrl = "images/mapicon_rail.png";
		lineColor = new VEColor(103,188,119,0.9);
	} else if (mode == "bus" || mode == "coach"){
		imageUrl = "images/mapicon_bus.png";
		lineColor = new VEColor(241,114,120,0.9);
	}
	
	//map.addOverlay(new GPolyline([ptFrom, ptTo], lineColor, 6, 0.6, {geodesic:true}));
	
	var polyline = new VEShape(VEShapeType.Polyline, [ptFrom, ptTo]);
	polyline.HideIcon();
	polyline.SetLineColor(lineColor);
	polyline.SetLineWidth(5);	
	map.AddShape(polyline);
	//alert(ptFrom+" "+ptTo);
	//alert(polyline);
	//polyline.SetPoints(points);	
	
	
	addJMarker2Map(ptFrom,16,"",markerID,imageUrl,txt,naptanid);
}

function getPropsOfObj(obj){
	var txt = "";
	for (prop in obj){
		txt += prop+"\n";
	}
	return txt;
}

function gotoMarker_func(pt){
	map.setCenter(pt, 16);
}

function showloader_funcOLD(){
	document.getElementById('ajaxloading').style.display='inline-block';
	/*var windowHeight = window.innerHeight ? window.innerHeight : document.documentElement.clientHeight ? document.documentElement.clientHeight : document.body.clientHeight;
	scroll(0, 0);
	loaderObj = document.getElementById('loader');
	loaderObj.style.visibility='visible';
	loaderObj.style.position='fixed';
	loaderObj.style.width=document.body.clientWidth+'px';
	loaderObj.style.height=windowHeight+'px';

	loaderObj = document.getElementById('loaderbg');
	loaderObj.style.width=document.body.clientWidth+'px';
	loaderObj.style.height=windowHeight+'px';
	loaderObj.style.visibility='visible';
	loaderObj.style.position='fixed';*/
	//writehtml_func();
}



function showloader_func(){
	var windowHeight = window.innerHeight ? window.innerHeight : document.documentElement.clientHeight ? document.documentElement.clientHeight : document.body.clientHeight;
	scroll(0, 0);
	loaderObj = document.getElementById('loader');
	loaderObj.style.display='block';
	loaderObj.style.position=(detectIsIE6())?'absolute':'fixed';
	loaderObj.style.width=document.body.clientWidth+'px';
	loaderObj.style.height=windowHeight+'px';

	loaderObj = document.getElementById('loaderbg');
	loaderObj.style.width=document.body.clientWidth+'px';
	loaderObj.style.height=windowHeight+'px';
	loaderObj.style.display='block';
	loaderObj.style.position=(detectIsIE6())?'absolute':'fixed';
}

function detectIsIE6() {
	var browser = navigator.appName;
	var b_version = navigator.appVersion;
	var version = parseFloat(b_version);
	if (browser.indexOf("Microsoft") != -1 && (version <= 6) ){
		// IE 6-
		return true;
	} else {
		// other browsers or IE 7+
		return false;
	}
}

function setAddressFav(selObj, txtbox){
	txtbox.value = selObj.value;	
	selObj.selectedIndex = 0;
}


function saveJPAddrToFav(addrtxt,lat,lng,htmlResObj){	
	htmlResObj.innerHTML += " <img src='images/ajax-loader-facebook.gif' />";
	sendXmlHttpRequestGet("ajax_mtimanagefavs.asp?servact=saveaddress&xpos="+lat+"&ypos="+lng+"&address="+addrtxt,saveJPAddrToFavRes,htmlResObj,null);
}

function saveJPAddrToFavRes(res,htmlResObj){
	//alert(htmlResObj.parentNode.innerHTML)
	htmlResObj.parentNode.innerHTML = "<div class='success'>Address saved to favourites!</div>"
}

function showHideEmailResults(elId){
	var obj = document.getElementById(elId);
	if (obj.style.display == "" || obj.style.display == "none"){
		obj.style.display = 'block';
	} else {
		obj.style.display = 'none';
	}
}

function refreshCaptchaImage(valImageId) {
	var objImage = document.images[valImageId];
	if (objImage == undefined) {
		return;
	}
	var now = new Date();
	objImage.src = objImage.src.split('?')[0] + '?x=' + now.toUTCString();
}

function appendToSelectObj(selectObj, optTxt, optVal) {
	var elOptNew = document.createElement('option');
	elOptNew.text = optTxt;
	elOptNew.value = optVal;
	try {
		selectObj.add(elOptNew, null); // standards compliant; doesn't work in IE
	} catch(ex) {
		selectObj.add(elOptNew); // IE only
	}
}

function printPage(timemsecs){
	setTimeout(function(){window.print();},timemsecs);
}

function detectIE6(){
	return (navigator.userAgent.toLowerCase().indexOf('msie 6') != -1) && (navigator.userAgent.toLowerCase().indexOf('msie 7') == -1)
	// http://msdn.microsoft.com/en-us/library/ms537509(VS.85).aspx
}


function initLinks(colid){
	var obj = document.getElementById(colid);
	var divObjs = obj.getElementsByTagName('div');
	for (i=0;i<divObjs.length;i++){
		if (divObjs[i].className == 'modesummary' || divObjs[i].className == 'modesummarypublic'){
			divObjs[i].onmouseover = modeLinkOver;
			divObjs[i].onmouseout = modeLinkOut;
			divObjs[i].onclick = modeLinkClick;
		}
	}
}

function modeLinkOver(){
	this.style.borderWidth='4px';
	/*this.style.borderColor='#0096cc';
	this.style.backgroundColor='#6bbd9d';*/
}
function modeLinkOut(){
	this.style.borderWidth='1px';
	/*this.style.borderColor='#6bbd9d';
	this.style.backgroundColor='#ffffff';*/
}
function modeLinkClick(){
	if (this.id.indexOf("public") != -1){
		location.href="jplanner4.asp?jno="+this.id.split("_")[1];
	} else {
		location.href="jplanner4road.asp?type="+this.id.substr(11,this.id.toString().length-11);
	}
}

function initLinksNew(colid){
	var obj = document.getElementById(colid);
	var divObjs = obj.getElementsByTagName('div');
	for (i=0;i<divObjs.length;i++){
		if (divObjs[i].className == 'modesummary' || divObjs[i].className == 'modesummarypublic'){
			divObjs[i].onmouseover = modeLinkOver;
			divObjs[i].onmouseout = modeLinkOut;
			divObjs[i].onclick = modeLinkClickNew;
		}
	}
}

function modeLinkClickNew(){
	if (this.id.indexOf("public") != -1){
		location.href="jplanner4.asp?jno="+this.id.split("_")[1];
	} else {
		location.href="jplanner4roadcm.asp?type="+this.id.substr(11,this.id.toString().length-11);
	}
}
