var focusOnIn = false;
var formattedLine = "";
function setField(name, value){
    if(document.geoform.elements[name] != null)
	    document.geoform.elements[name].value = value;
}
function forceField(name, value){
    document.geoform.elements[name].value = value;
}

function movepic(img_name, img_src) {
	document[img_name].src=img_src;
}

function mapPrint(target)
{
    alert("i am in mapprint");
    alert(document.geoform.width.value);
    alert(document.geoform.height.value);
    alert(document.geoform.latitude.value);
    alert(document.geoform.longitude.value);
    alert(document.geoform.mapscale.value);
}
function formatLine(line1){
    formattedLine = line1;
    if (line1 != "")
    {
	var splitArr = line1.split("-");
	if (splitArr.length > 1)
	{
	    var secSplitArr = splitArr[1].split(" ");
	    if (parseInt(splitArr[0]) != 0 &&
		parseInt(secSplitArr[0]) != 0)
	    {
		formattedLine = splitArr[1].substring(1, (splitArr[1].length));
	    }
	}
    }
	
}

function nav(target){
    if(target == 'mapresults.jsp' || target == 'mapresultsbig.jsp'
      ||  target == 'directoryresults.jsp' )
    {
        if((document.geoform.line2.value == "") && 
	   (document.geoform.airport.value == ""))
	{
	    alert('Please enter a valid Address');
	    return false;
	}
    }
    if(target=='mapresultstraffic.jsp')
    {
        if((document.geoform.line2.value == "") && 
	   (document.geoform.airport.value == ""))
	{
	    alert('Please enter a valid Address');
	    return false;
	}
    }
    if(target == 'drivingresults.jsp' || target == 'drivingresultstraffic.jsp')
    {
        if(document.geoform.line2.value == "" && document.geoform.airport.value == "")
	{
	    alert('Please enter a valid start Address');
	    return false;
	}
        if(document.geoform.destline2.value == "" && document.geoform.destairport.value == "")
	{
	    alert('Please enter a valid end Address');
	    return false;
	}
    }
    if(target) {
        document.geoform.action = target;
    }

    if( document.geoform.line1.value != "") {
	formatLine(document.geoform.line1.value);
	document.geoform.line1.value = formattedLine;
    }
    if(target == 'drivingresults.jsp' || target == 'drivingresultstraffic.jsp' || target == 'drivingresultsprint.jsp' || target == 'drivingresultstrafficprint.jsp') {
	if( document.geoform.destline1.value != null){
		formatLine(document.geoform.destline1.value);
		document.geoform.destline1.value = formattedLine;
	}
    }

    document.geoform.submit();
}
function routePrintOff(page){
	setField('print', 'false');
	nav(page);
}
function routePrintOn(page){
	setField('print', 'true');
	nav(page);
}
function directoryPrintOff(page){
	setField('print', 'false');
	nav(page);
}
function directoryPrintOn(page) {
	setField('print', 'true');
	nav(page);
}

function directionsFrom(page){
    setField('destination','false');
    nav(page);
}
function directionsTo(page){
    setField('destination','true');
    nav(page);
}
function showPois(category){
    setField('catname',category);
    nav('directoryresults.jsp');
}
function clearL1L2(directions){
    if(directions){
        setField("destline1","");
        setField("destline2","");
    }
    else{
        setField("line1","");
        setField("line2","");

    }
}
function clearAirport(directions){
    if(directions){
        setField("destairport","");
    }
    else{
        setField("airport","");
    }
}
function showPoi(index){
    setField('poiindex', index);
    nav('directoryresults.jsp');
}
function fullResults(){
    showPoi("");
}
function directions(destline1, destline2, destcountry){
    setField('destline1',destline1);
    setField('destline2',destline2);
    setField('destcountry',destcountry);
    nav('drivingresults.jsp');
}
function reverseDirectionsTraffic(line1, line2, country, destline1, destline2, destcountry){
    forceField('destline1',line1);
    forceField('destline2',line2);
    forceField('destcountry',country);
    forceField('line1',destline1);
    forceField('line2',destline2);
    forceField('country',destcountry);
    nav('drivingresultstraffic.jsp');
}
function reverseDirections(line1, line2, country, destline1, destline2, destcountry){
    forceField('destline1',line1);
    forceField('destline2',line2);
    forceField('destcountry',country);
    forceField('line1',destline1);
    forceField('line2',destline2);
    forceField('country',destcountry);
    nav('drivingresults.jsp');
}
function setGoptions(){
    var val = document.geoform.ncity.checked 
        ? document.geoform.phonetic.checked
            ? "all"
            : "ncity"
        : document.geoform.phonetic.checked
            ? "phonetic"
            : "standard";
    setField('goptions', val);
    nav('index.jsp');
}
function reRoute(bool){
    setField('considerTraffic', bool);
    nav('drivingresultstraffic.jsp');
}
function indirectOpenNoteWindow(index, event){
    var area = document.getElementsByTagName("MAP")[0].areas[index];
    if(area == null)
        return;
    
    //pull the body of the onclick event handler:
    var click = new String(area.onclick);
    
    //pull the openNoteWindow function:
    click = click.substring(click.indexOf("openNoteWindow"), click.length - 2);

    //position the window relative to the area tag in IE:
    if(document.all != null){
        //replace event.screenX with the calculated screenX of the area tag:
        click = click.replace(/event.screenX+/, new String(window.screenLeft + totalOffsetX(area, 0) - 20))

        //replace event.screenY with the calculated screenY of the area tag:
        click = click.replace(/event.screenY+/, new String(window.screenTop + totalOffsetY(area, 0) - 100));
    }
    
    //call the openNoteWindow function:
    (new Function("event", click))(event);
}
function totalOffsetX(element, current){
    var latest = current + element.offsetLeft;
    return element.parentNode.tagName.toLowerCase() == "body" ? latest : totalOffsetX(element.parentNode, latest);
}
function totalOffsetY(element, current){
    var latest = current + element.offsetTop;
    return element.parentNode.tagName.toLowerCase() == "body" ? latest : totalOffsetY(element.parentNode, latest);
}


