    var imagePath = "/route_search/";
    var cgiName = "./nexco.cgi";
    var initMapPrefix = "japan";
    var traceData = [];
    traceData["japan"] = [];
    traceData["tokyo"] = [];

    var zoomImg1 = null;
    var zoomImg2 = null;
    var zoomImg3 = null;
    var zoomImg4 = null;
    var app = null;
    var navi = null;
    var focusElement = "";
    var radioValue = 0;
    var theDate = new Date();

	var startMarkColor = 6;
	var arriveMarkColor = 3;
	var keiyuMarkColor = 3;
	var kmMarkColor = 2;

    function right(ustrString, uintLength){
        var intLength,intStartPos,intEndPos;
        var strGetString;
        intLength = ustrString.length;
        intStartPos = intLength - uintLength;
        intEndPos = intStartPos + uintLength;
        strGetString = ustrString.substring(intStartPos,intEndPos);
        return strGetString;
    }

    function dispResult(){
         document.forms[0].submit();
    }

    function showIcList(text){
        if (text.name == "startPlace"){
             document.forms[0].startPlaceCode.value = "";
        } else {
             document.forms[0].arrivePlaceCode.value = "";
        }
        document.getElementById("if").src = baseURL + cgiName + "?val_word=" + escape(text.value) + "&val_focus=" + focusElement + "&val_screen=3";
        showRightArea("list");
        hideRightArea("map");
    }

    function showRightArea(id){
        var targetObj = document.getElementById(id);
        targetObj.style.visibility = "visible";
        targetObj.style.display = "block";
    }

    function hideRightArea(id){
        var targetObj = document.getElementById(id);
        targetObj.style.visibility = "hidden";
        targetObj.style.display = "none";
    }

    function setIc(elementName, icName, icCode) {
        document.getElementById("if").src = baseURL + "dummy.html";
        if (elementName == "startPlace"){
             document.forms[0].startPlace.value = icName;
             document.forms[0].startPlaceCode.value = icCode;
        } else {
             document.forms[0].arrivePlace.value = icName;
             document.forms[0].arrivePlaceCode.value = icCode;
        }
        showRightArea("map");
        hideRightArea("list");
    }

    function initial() {
    	
        app = new CMapApp(baseURL, document.getElementById("map"));
        //word = document.cookie.split(",");
        //if (word.length < 3){
        	if(initCenterIc==""){
        		initCenterIc="1010001";
        	}
		    var txtposx = document.routesearchForm.posx.value;
		    var txtposy = document.routesearchForm.posy.value;
	    	if ( txtposx != "" && txtposy != "" )
	    	{
        		initCenterIc=document.routesearchForm.arrivePlaceCode.value;
	    		//app.dispMap(parseInt(txtposx), parseInt(txtposy), app.getMapPrefix());
	    	}
	    	document.routesearchForm.posx.value = "";
	    	document.routesearchForm.posy.value = "";
            
            app.dispMapIC(initCenterIc, initMapPrefix, onDispMapIC, onICClick);

        //} else {
        //    var mapPt = new CMapPoint(parseInt(word[0]), parseInt(word[1]), word[2]);
        //    app.dispMapCenterPoint(mapPt, onICClick);
        //    createControl(mapPt.getMapPrefix());
        //    createNavi(mapPt.getMapPrefix());
        //    app.dispMapCenterPoint(mapPt, onICClick);
        //    createZoomBtn();
        //}
        focusElement = "startPlace";
		//出発/到着IC選択確認

//		img_start = app.createImage("/jsp/portal/route/img/icon_start.gif", "startIC", "出発IC");
//		img_arrive = app.createImage("/jsp/portal/route/img/icon_arrive.gif", "arriveIC", "到着IC");

//		if(document.forms[0].startPlaceCode.value != ""){
//	            img_start.showOnIC(document.forms[0].startPlaceCode.value, -40, -50);
//		}
//		if(document.forms[0].arrivePlaceCode.value != ""){
//	            img_arrive.showOnIC(document.forms[0].arrivePlaceCode.value, -40, -50);
//		}

		if(document.routesearchForm.selectickindflg.value=="1"){
			focusElement = "arrivePlace";
			setFocus("arrivePlace");
			arrivefocus('arrivePlace');
		}else{
			startfocus('startPlace');
		}
    }

    function reproduction(mapPrefix){
        if (mapPrefix == "tokyo"){
            app.dispMapIC("1010001", "japan", onDispMapIC, onICClick);
        }else if (mapPrefix == "osaka"){
            app.dispMapIC("1073046", "japan", onDispMapIC, onICClick);
        }else if (mapPrefix == "nagoya"){
            app.dispMapIC("1070066", "japan", onDispMapIC, onICClick);
        }else if (mapPrefix == "kitakyusyu"){
            app.dispMapIC("1030026", "japan", onDispMapIC, onICClick);
        }

        //word = document.cookie.split(",");
        //if (word.length < 3 || word[2] != "japan"){
        //    app.dispMapIC("1010001", "japan", onDispMapIC, onICClick);
        //} else {
        //    var mapPt = new CMapPoint(parseInt(word[0]), parseInt(word[1]), word[2]);
        //    app.dispMapCenterPoint(mapPt, onICClick);
        //    createControl(mapPt.getMapPrefix());
        //    createNavi(mapPt.getMapPrefix());
        //    app.dispMapCenterPoint(mapPt, onICClick);
        //    createZoomBtn();
        //    setTraceData();
        //}
    }

    function onICClick(icName, icCode, icFlag, icType, lati, longi) {
	// 川口JCTクリック時にポップアップ表示
	//if (icCode == "1040001"){
	//	window.open('/route/etc_attention.html','川口JCTからのETC割引対象IC一覧','scrollbars=no,width=380,height=320');
	//}

        if (icFlag != 0){
        	//alert("icCode:"+icCode);
            if (focusElement == "startPlace"){
				
				hideFromMark();
				hideFromBalloon();

				if(document.forms[0].startPlaceCode.value == document.forms[0].arrivePlaceCode.value && document.forms[0].startPlaceCode.value != icCode){
					showToMark();
					showToBalloon()
				
				}
                document.forms[0].startPlace.value = icName;
                document.forms[0].startPlaceCode.value = icCode;

                focusElement = "arrivePlace";

				//バルーン表示
//				img_start.hide()
//				img_start = app.createImage("/jsp/portal/route/img/icon_start.gif", "startIC", "出発IC");
//	            img_start.showOnIC(icCode, -40, -50);
				showFromMark();
				showFromBalloon();

            } else if (focusElement == "arrivePlace"){

				hideToMark();
				hideToBalloon();

				if(document.forms[0].startPlaceCode.value == document.forms[0].arrivePlaceCode.value && document.forms[0].arrivePlaceCode.value != icCode){
					showFromMark();
					showFromBalloon();
				}

                 document.forms[0].arrivePlace.value = icName;
                 document.forms[0].arrivePlaceCode.value = icCode;
                 focusElement = "startPlace";
				//バルーン表示
//				img_arrive.hide()
//				img_arrive = app.createImage("/jsp/portal/route/img/icon_arrive.gif", "arriveIC", "到着IC");
//	            img_arrive.showOnIC(icCode, -40, -50);

				focusElement = "keiyuPlace";

				showToMark();
				showToBalloon()

            } else {

				hideKeiyuMark();
				hideKeiyuBalloon();
			
				document.forms[0].keiyuPlace.value = icName;
				document.forms[0].keiyuPlaceCode.value = icCode;

				focusElement = "startPlace";

				showKeiyuMark();
				showKeiyuBalloon();
			}

            //if (app.isMarked(icCode)){
            //    alert("マークされています");
            //}
            setFocus(focusElement);

            if (focusElement == "startPlace"){
				startfocus('startPlace');
            } else if (focusElement == "arrivePlace"){
				arrivefocus('arrivePlace');
            }else {
				keiyufocus('keiyuPlace');
			}

        }
    }

    function setFocus(elementName) {
        if (elementName == "startPlace"){
            //document.getElementById("StartPlace_img").src = imagePath + "images/ya_01.gif";
            //document.getElementById("ArrivePlace_img").src = imagePath + "images/spacer.gif";
			document.routesearchForm.selectickindflg.value = "0";
        } else {
            //document.getElementById("StartPlace_img").src = imagePath + "images/spacer.gif";
            //document.getElementById("ArrivePlace_img").src = imagePath + "images/ya_01.gif";
			document.routesearchForm.selectickindflg.value = "1";
        }
        focusElement = elementName;
    }

    function changeMap(mapPrefix, mapName, icCode) {
        //document.getElementById("title").innerHTML = mapName;
        app.dispMapIC(icCode, mapPrefix, onDispMapIC, onICClick);
    }

    function onDispMapIC(isSuccess, icCode) {
        if (isSuccess){
            createControl(app.getMapPrefix());
            createNavi(app.getMapPrefix());
            app.userInterface.mapReload();
            createZoomBtn();
            setTraceData();            
			//バルーン表示
			if(document.forms[0].startPlaceCode.value != ""){
//alert('kokoda');
//					img_start.hide()
//					img_start = app.createImage("/jsp/portal/route/img/icon_start.gif", "startIC", "出発IC");
//		            img_start.showOnIC(document.forms[0].startPlaceCode.value, -40, -50);
				hideFromMark();
				hideFromBalloon();
				showFromMark();
				showFromBalloon();
			}
			if(document.forms[0].arrivePlaceCode.value != ""){
//					img_arrive.hide()
//					img_arrive = app.createImage("/jsp/portal/route/img/icon_arrive.gif", "arriveIC", "到着IC");
//		            img_arrive.showOnIC(document.forms[0].arrivePlaceCode.value, -40, -50);
				hideToMark();
				hideToBalloon();
				showToMark();
				showToBalloon();
			}
			if(document.forms[0].keiyuPlaceCode.value != ""){
				hideKeiyuMark();
				hideKeiyuBalloon();
				showKeiyuMark();
				showKeiyuBalloon();
	    	}
        }
    }

    function createZoomBtn(){
        if (app.getMapPrefix() == "japan"){
            //var mapPoint = app.getMapConvertPoint(6465,3717);
            //if (zoomImg){
                //var parent = zoomImg.parentNode;
                //parent.removeChild(zoomImg);
            //}
            //zoomImg = createImgElement(imagePath + "images/zoom.gif", mapPoint.x, mapPoint.y, 116, 66, "東京近郊の路線図を表示します");
            //zoomImg.onclick = function(e) { setCookie(); changeMap("tokyo", "東京近郊", "6001061"); };
            //app.getMapDiv().appendChild(zoomImg);
            if (zoomImg1){
                var parent = zoomImg1.parentNode;
                parent.removeChild(zoomImg1);
            }
            if (zoomImg2){
                var parent = zoomImg2.parentNode;
                parent.removeChild(zoomImg2);
            }
            if (zoomImg3){
                var parent = zoomImg3.parentNode;
                parent.removeChild(zoomImg3);
            }
            if (zoomImg4){
                var parent = zoomImg4.parentNode;
                parent.removeChild(zoomImg4);
            }
            var mapPoint = app.getMapConvertPoint(6465,3717);
            zoomImg1 = createImgElement(imagePath + "images/zoom.gif", mapPoint.x, mapPoint.y, 116, 66, "東京近郊の路線図を表示します");
            zoomImg1.onclick = function(e) { setCookie(); changeMap("tokyo", "東京近郊", "6001061"); };
            app.getMapDiv().appendChild(zoomImg1);
            mapPoint = app.getMapConvertPoint(4072,3389);
            zoomImg2 = createImgElement(imagePath + "images/zoom.gif", mapPoint.x, mapPoint.y, 90, 68, "大阪近郊の路線図を表示します");
            zoomImg2.onclick = function(e) { setCookie(); changeMap("osaka", "大阪近郊", "7002006"); };
            app.getMapDiv().appendChild(zoomImg2);
            mapPoint = app.getMapConvertPoint(4952,3423);
            zoomImg3 = createImgElement(imagePath + "images/zoom.gif", mapPoint.x, mapPoint.y, 35, 20, "名古屋近郊の路線図を表示します");
            zoomImg3.onclick = function(e) { setCookie(); changeMap("nagoya", "名古屋近郊", "1010256"); };
            app.getMapDiv().appendChild(zoomImg3);
            mapPoint = app.getMapConvertPoint(1586,2790);
            zoomImg4 = createImgElement(imagePath + "images/zoom.gif", mapPoint.x, mapPoint.y, 87, 50, "北九州近郊の路線図を表示します");
            zoomImg4.onclick = function(e) { setCookie(); changeMap("kitakyusyu", "北九州近郊", "1030001"); };
            app.getMapDiv().appendChild(zoomImg4);
        }
    }

    function createControl(mapPrefix) {
        var control = document.getElementById("control")
        if (control) {
            while (control.hasChildNodes()) {
                control.removeChild(control.lastChild);
            }
        } else {
            control = document.createElement("DIV");
            control.id = "control";
            control.style.position = "absolute";
            control.style.left = "0px";
            control.style.top = "0px";
            control.style.zIndex = 5000;
            document.getElementById("map").appendChild(control);
        }
//        var img = createImgElement(imagePath + "images/upleft.gif",0,0,20,20,"左上へ");
//        img.onclick = function(e) { app.userInterface.mapMoveUpLeft(); };
//        control.appendChild(img);
//        img = createImgElement(imagePath + "images/up.gif",20,0,20,20,"上へ");
//        img.onclick = function(e) { app.userInterface.mapMoveUp(); };
//        control.appendChild(img);
//        img = createImgElement(imagePath + "images/upright.gif",40,0,20,20,"右上へ");
//        img.onclick = function(e) { app.userInterface.mapMoveUpRight(); };
//        control.appendChild(img);
//        img = createImgElement(imagePath + "images/left.gif",0,20,20,20,"左へ");
//        img.onclick = function(e) { app.userInterface.mapMoveLeft(); };
//        control.appendChild(img);
//        img = createImgElement(imagePath + "images/reload.gif",20,20,20,20,"再読み込み");
//        img.onclick = function(e) { app.userInterface.mapReload(); createZoomBtn(); setTraceData(); };
//        control.appendChild(img);
//        img = createImgElement(imagePath + "images/right.gif",40,20,20,20,"右へ");
//        img.onclick = function(e) { app.userInterface.mapMoveRight(); };
//        control.appendChild(img);
//        img = createImgElement(imagePath + "images/lowleft.gif",0,40,20,20,"左へ");
//        img.onclick = function(e) { app.userInterface.mapMoveDownLeft(); };
//        control.appendChild(img);
//        img = createImgElement(imagePath + "images/low.gif",20,40,20,20,"下へ");
//        img.onclick = function(e) { app.userInterface.mapMoveDown(); };
//        control.appendChild(img);
//        img = createImgElement(imagePath + "images/lowright.gif",40,40,20,20,"右下へ");
//        img.onclick = function(e) { app.userInterface.mapMoveDownRight(); };
//        control.appendChild(img);
        if (mapPrefix != "japan"){
            img = createImgElement(imagePath + "images/title_roundmap.gif",12,10,90,51,"日本全国へ戻ります");
            img.onclick = function(e) { reproduction(mapPrefix); };
            control.appendChild(img);
//			alert('hyouzi');
			if(document.all){
				document.all('section-area').style.display = 'none';
			}else if(document.getElementById){
				document.getElementById('section-area').style.display = 'none';
			}
        }else{
//			alert('nashi');
			if(document.all){
				document.all('section-area').style.display = 'block';
			}else if(document.getElementById){
				document.getElementById('section-area').style.display = 'block';
			}
		}
    }

    function createImgElement(src, left, top, width, height, title) {
        var img = document.createElement("IMG");
        img.src = src;
        img.style.position = "absolute";
        img.style.left = left + "px";
        img.style.top = top + "px";
        img.style.width = width + "px";
        img.style.height = height + "px";
        img.width = width;
        img.height = height;
        img.style.cursor = "pointer";
        img.title = title;
        var agent = navigator.userAgent.toLowerCase();
        if (agent.indexOf("msie") != -1 && document.all){ // IE
            img.unselectable = "on";
            img.onselectstart = new Function("return false;");
        } else {
            img.style.MozUserSelect = "none";
        }
        img.style.border = "0";
        img.oncontextmenu = new Function("return false;");
        return img;
    }

    function createNavi(mapPrefix) {
        navi = new CNavi();
        navi.setNavigationStatus(mapPrefix, "クリックした箇所へ移動します", document.getElementById("navi"), "relative");
        navi.setClickHandler(clickNavigation);
        navi.show();
        app.setNaviListener(marking);
    }

    function marking(mapPrefix, viewX, viewY, viewW, viewH, mapW, mapH, eventType) {
        switch (eventType) {
            case 1: // ドラッグ終了


            case 4: // スクロール終了


            case 5: // ウィンドウサイズ変更時


            case 6: // 表示位置変更時


                if (navi) {
                    if (navi.marking(viewX, viewY, viewW, viewH, mapW, mapH)) {
                        navi.showMark();
                    } else {
                        navi.hideMark();
                    }
                }
                break;
        }
    }

    function clickNavigation(clickX, clickY, naviWidth, naviHeight) {
        app.clearRoute();
        var mapSize = app.getMapSize(app.getMapPrefix());
        var scaleW = naviWidth  / mapSize.width;
        var scaleH = naviHeight / mapSize.height;
        var centerX = Math.round(clickX / scaleW);
        var centerY = Math.round(clickY / scaleH);
        app.dispMap(centerX, centerY, app.getMapPrefix());
        createZoomBtn();
			//バルーン表示
			if(document.forms[0].startPlaceCode.value != ""){
//					img_start.hide()
//					img_start = app.createImage("/jsp/portal/route/img/icon_start.gif", "startIC", "出発IC");
//		            img_start.showOnIC(document.forms[0].startPlaceCode.value, -40, -50);
				hideFromMark();
				hideFromBalloon();
				showFromMark();
				showFromBalloon();
			}
			if(document.forms[0].arrivePlaceCode.value != ""){
//					img_arrive.hide()
//					img_arrive = app.createImage("/jsp/portal/route/img/icon_arrive.gif", "arriveIC", "到着IC");
//		            img_arrive.showOnIC(document.forms[0].arrivePlaceCode.value, -40, -50);
				hideToMark();
				hideToBalloon();
				showToMark();
				showToBalloon();
			}
			if(document.forms[0].keiyuPlaceCode.value != ""){
				hideKeiyuMark();
				hideKeiyuBalloon();
				showKeiyuMark();
				showKeiyuBalloon();
			}
    }

    function setCookie(){
        //var mapPt = app.getMapCenterPoint();
        //var cookieVal = mapPt.getX() + "," + mapPt.getY() + "," + mapPt.getMapPrefix();
        //document.cookie = cookieVal;
    }

    function Turning(){
        var startPlace =  document.forms[0].startPlace.value;
        var startPlaceCode =  document.forms[0].startPlaceCode.value;
         document.forms[0].startPlace.value =  document.forms[0].arrivePlace.value;
         document.forms[0].startPlaceCode.value =  document.forms[0].arrivePlaceCode.value;
         document.forms[0].arrivePlace.value = startPlace;
         document.forms[0].arrivePlaceCode.value = startPlaceCode;
    }

    function Clear(){
         document.forms[0].startPlace.value = "";
         document.forms[0].startPlaceCode.value = "";
         document.forms[0].arrivePlace.value = "";
         document.forms[0].arrivePlaceCode.value = "";
		document.forms[0].keiyuPlace.value = "";
        document.forms[0].keiyuPlaceCode.value = "";
        setFocus("startPlace");
		startfocus('startPlace');
    }

    function createXMLHttpRequest(func){
        var xmlHttpObject= null;
        if (window.XMLHttpRequest){ // Safari,Firefox...
            xmlHttpObject = new XMLHttpRequest();
        } else if (window.ActiveXObject){ // IE
            try{
                xmlHttpObject = new ActiveXObject("Msxml2.XMLHTTP"); // IE6
            } catch(e){
                try{
                    xmlHttpObject = new ActiveXObject("Microsoft.XMLHTTP"); // IE5
                } catch(e){
                    return null;
                }
            }
        }
        if (xmlHttpObject){
            xmlHttpObject.onreadystatechange = func;
        }
        return xmlHttpObject;
    }

    function requestTraceData(){
        if ( document.forms[0].startPlace.value.length <= 0){
            alert("出発地が指定されていません");
            return;
        }
        if ( document.forms[0].arrivePlace.value.length <= 0){
            alert("到着地が指定されていません");
            return;
        }
        var requestURL = baseURL + cgiName + "?val_apiid=routesearch&startPlace=" +  document.forms[0].startPlaceCode.value + "&arrivePlace=" +  document.forms[0].arrivePlaceCode.value;
        httpObj = createXMLHttpRequest(getTraceData);
        if (httpObj){
            httpObj.open("GET", requestURL, true);
            httpObj.send(null);
        }
    }

    function getTraceData(){
        if ((httpObj.readyState == 4) && (httpObj.status == 200)){
            var routeItem = httpObj.responseXML.getElementsByTagName("RouteItem");
            if (routeItem.length <= 0){
                return;
            }
            var trace = routeItem[0].getElementsByTagName("Trace");
            for (var i = 0; i < trace.length; i++){
                if (trace[i].getAttribute("map") == "japan"){
                    var point = trace[i].getElementsByTagName("Point");
                    traceData["japan"] = [];
                    for (var j = 0; j < point.length; j++){
                        traceData["japan"][j] = point[j].firstChild.nodeValue;
                    }
                } else if (trace[i].getAttribute("map") == "tokyo"){
                    var point = trace[i].getElementsByTagName("Point");
                    traceData["tokyo"] = [];
                    for (var j = 0; j < point.length; j++){
                        traceData["tokyo"][j] = point[j].firstChild.nodeValue;
                    }
                }
            }
            setTraceData();
        }
    }

    function setTraceData(){
        app.clearRoute();
        for (var i = 0; i < traceData[app.getMapPrefix()].length; i++){
            app.traceRoute(traceData[app.getMapPrefix()][i]);
        }
    }

    function clearTrace(){
        app.clearRoute();
        for (var mapPrefix in traceData){
            traceData[mapPrefix] = [];
        }
    }

	//地図中心


	function fMap(id) {
		app.dispMapIC(id, "japan", onDispMapIC, onICClick);
	}
	
	//リセット
	function fReset() {
		document.routesearchForm.reset();
	}
	
	//ルート検索
	function fSubmit() {
        if ( document.forms[0].startPlace.value.length <= 0){
            alert("出発ICが指定されていません");
            return;
        }
        if ( document.forms[0].arrivePlace.value.length <= 0){
            alert("到着ICが指定されていません");
            return;
        }
		pos = app.getMapCenterPoint();
        document.routesearchForm.posx.value = pos.x;
		document.routesearchForm.posy.value = pos.y;
		
		document.routesearchForm.submit();
	}
	
	//フォームクリア
	function fClear(){
		// 出発IC名称リセット
		document.routesearchForm.startPlace.value="";
		// 到着IC名称リセット
		document.routesearchForm.arrivePlace.value="";
		// 経由IC名称リセット
		document.routesearchForm.keiyuPlace.value="";
		// 出発ICコードリセット
		document.routesearchForm.startPlaceCode.value="";
		// 到着ICコードリセット
		document.routesearchForm.arrivePlaceCode.value="";
		// 経由ICコードリセット
		document.routesearchForm.keiyuPlaceCode.value="";
		// 出発・到着フラグリセット
        setFocus("startPlace");
		startfocus('startPlace');
		//document.routesearchForm.startArrive.value="";
		now=new Date();
		// 検索年リセット
		var sYear=now.getYear();
		// firefoxでは1900年からの経過数が返却される為、

		// 現在年数が2000年以下なら1900をプラスする
		if (sYear < 2000) sYear+=1900;
		document.routesearchForm.searchYear.value=sYear.toString();
		// 検索月リセット
		month=now.getMonth()+1;
		document.routesearchForm.searchMonth.value=month.toString();
		// 検索日リセット
		document.routesearchForm.searchDay.value=now.getDate().toString();
		// 検索時間リセット
		document.routesearchForm.searchHour.value=now.getHours().toString();
		// 検索分リセット
		// 現在分から10分単位で繰上げ
		minute=now.getMinutes();
		minute=Math.floor(minute/10)*10+10;
		document.routesearchForm.searchMinute.value=minute;	
		// 車種リセット
		// '1'( 普通車 )を設定する。


		document.routesearchForm.carType.value=1;
		// 優先順位リセット
		document.routesearchForm.priority.value="1";
		// ルート表示数リセット
		document.routesearchForm.routeNum.value=3;
		//距離にチェックをリセット
		document.routesearchForm.priority[0].checked=true;
		// SAPA表示・非表示リセット
		document.routesearchForm.viwsapa.value="";
		// チェックをはずす
		document.routesearchForm.viwsapa.checked=false;
	}
	
//ルート検索(道路から検索)
function fRoad() {
	document.routesearchForm.action = "/dp/RouteSearch";
	document.routesearchForm.submit();
}

//ルート検索(住所から検索)
function fAddr() {
	document.routesearchForm.action = "/dp/AddrSearch";
	document.routesearchForm.submit();
}
//IC入れ替え
function fReplace() {
	var stcode = "";
	var st = "";
	st = document.routesearchForm.startPlace.value;
	stcode = document.routesearchForm.startPlaceCode.value;
	document.routesearchForm.startPlace.value = document.routesearchForm.arrivePlace.value;
	document.routesearchForm.startPlaceCode.value = document.routesearchForm.arrivePlaceCode.value;
	document.routesearchForm.arrivePlace.value = st;
	document.routesearchForm.arrivePlaceCode.value = stcode;
}

    function showFromBalloon(){
//        var innerHTML = "<b>出発地</b>";
        var innerHTML = "<b>出発IC</b><br><a href='javascript:reqRangeData(\"startPlace\")'>100km表示</a>";
        innerHTML = innerHTML + "/<a href='javascript:hideTrace()'>消去</a>";
        app.showBalloon(document.forms[0].startPlaceCode.value, 120, 72, innerHTML, 90);
    }

    function showToBalloon(){
//        var innerHTML = "<b>到着地</b>";
        var innerHTML = "<b>到着IC</b><br><a href='javascript:reqRangeData(\"arrivePlace\")'>100km表示</a>";
        innerHTML = innerHTML + "/<a href='javascript:hideTrace()'>消去</a>";
        app.showBalloon(document.forms[0].arrivePlaceCode.value, 120, 72, innerHTML, 90);
    }

	function showKeiyuBalloon(){
        var innerHTML = "<b>経由IC</b><br><a href='javascript:reqRangeData(\"keiyuPlace\")'>100km表示</a>";
        innerHTML = innerHTML + "/<a href='javascript:hideTrace()'>消去</a>";
        app.showBalloon(document.forms[0].keiyuPlaceCode.value, 120, 72, innerHTML, 90);
    }

    function hideFromBalloon(){
        app.destroyBalloon(document.forms[0].startPlaceCode.value);
    }

    function hideToBalloon(){
        app.destroyBalloon(document.forms[0].arrivePlaceCode.value);
    }

	function hideKeiyuBalloon(){
        app.destroyBalloon(document.forms[0].keiyuPlaceCode.value);
    }

    function showFromMark(){
        var markStyle = CMark.STYLE_STATION_POINT | CMark.STYLE_STATION_NAME;
        var isBlink = 0;
        var markColor = startMarkColor;
        app.showMark(document.forms[0].startPlaceCode.value, markStyle, isBlink, markColor);
    }

    function hideFromMark(){
        app.destroyMark(document.forms[0].startPlaceCode.value);
    }

    function showToMark(){
        var markStyle = CMark.STYLE_STATION_POINT | CMark.STYLE_STATION_NAME;
        var isBlink = 0;
        var markColor = arriveMarkColor;
        app.showMark(document.forms[0].arrivePlaceCode.value, markStyle, isBlink, markColor);
    }

    function hideToMark(){
        app.destroyMark(document.forms[0].arrivePlaceCode.value);
    }

	function showKeiyuMark(){
        var markStyle = CMark.STYLE_STATION_POINT | CMark.STYLE_STATION_NAME;
        var isBlink = 0;
        var markColor = keiyuMarkColor;
        app.showMark(document.forms[0].keiyuPlaceCode.value, markStyle, isBlink, markColor);
    }

    function hideKeiyuMark(){
        app.destroyMark(document.forms[0].keiyuPlaceCode.value);
    }

    function reqRangeData(id){
//        var icCode = document.getElementById(id + "Code").value;
	var icCode = document.getElementsByName(id + "Code").item(0).value ;
        var reqURL = baseURL + cgiName + "?val_apiid=get100km&val_from=" + icCode + "&val_cartype=" + (parseInt(document.routesearchForm.carType.selectedIndex) + parseInt(1));
        var serverURL = "/jsp/portal/route/RequestURL.jsp?req_url=" + encodeURIComponent(reqURL);
        httpObj = createXMLHttpRequest(getRangeData);
        if (httpObj){
//            httpObj.open("GET", reqURL, true);
            httpObj.open("GET", serverURL, true);
            httpObj.send(null);
        }
    }

    function getRangeData(){
        if ((httpObj.readyState == 4) && (httpObj.status == 404)){
            alert("データが存在しません。");
        } else if ((httpObj.readyState == 4) && (httpObj.status == 200)){
            var rangeIC = httpObj.responseXML.getElementsByTagName("NexcoRange");
            if (rangeIC.length <= 0){
                return;
            }
            var trace = rangeIC[0].getElementsByTagName("Trace");
            for (var i = 0; i < trace.length; i++){
                if (trace[i].getAttribute("map") == "japan"){
                    var point = trace[i].getElementsByTagName("Point");
                    traceData["japan"] = [];
                    for (var j = 0, k = 0; j < point.length; j++){
                        var icCode = point[j].getAttribute("icCode");
                        if (!isMarked(icCode)){
                            traceData["japan"][k++] = point[j].firstChild.nodeValue;
                        }
                    }
                } else if (trace[i].getAttribute("map") == "tokyo"){
                    var point = trace[i].getElementsByTagName("Point");
                    traceData["tokyo"] = [];
                    for (var j = 0, k = 0; j < point.length; j++){
                        var icCode = point[j].getAttribute("icCode");
                        if (!isMarked(icCode)){
                            traceData["tokyo"][k++] = point[j].firstChild.nodeValue;
                        }
                    }
                } else if (trace[i].getAttribute("map") == "osaka"){
                    var point = trace[i].getElementsByTagName("Point");
                    traceData["osaka"] = [];
                    for (var j = 0, k = 0; j < point.length; j++){
                        var icCode = point[j].getAttribute("icCode");
                        if (!isMarked(icCode)){
                            traceData["osaka"][k++] = point[j].firstChild.nodeValue;
                        }
                    }
                } else if (trace[i].getAttribute("map") == "nagoya"){
                    var point = trace[i].getElementsByTagName("Point");
                    traceData["nagoya"] = [];
                    for (var j = 0, k = 0; j < point.length; j++){
                        var icCode = point[j].getAttribute("icCode");
                        if (!isMarked(icCode)){
                            traceData["nagoya"][k++] = point[j].firstChild.nodeValue;
                        }
                    }
                } else if (trace[i].getAttribute("map") == "kitakyusyu"){
                    var point = trace[i].getElementsByTagName("Point");
                    traceData["kitakyusyu"] = [];
                    for (var j = 0, k = 0; j < point.length; j++){
                        var icCode = point[j].getAttribute("icCode");
                        if (!isMarked(icCode)){
                            traceData["kitakyusyu"][k++] = point[j].firstChild.nodeValue;
                        }
                    }
                }
            }
            showTrace();
        }
    }

    function showTrace(){
        app.clearRoute();
        var mapPrefix = app.getMapPrefix();
        for (var i = 0; i < traceData[mapPrefix].length; i++){
            app.traceRoute(traceData[mapPrefix][i], CMark.STYLE_STATION_ALL, true, kmMarkColor);
        }
		showFromMark();
		showToMark();
		showKeiyuMark();
    }

    function hideTrace(){
        app.clearRoute();
        for (var mapPrefix in traceData){
            traceData[mapPrefix] = [];
        }
		showFromMark();
		showToMark();
		showKeiyuMark();
     }

    function isMarked(icCode){
//        if (icCode == document.getElementById("startPlaceCode").value || 
//            icCode == document.getElementById("arrivePlaceCode").value){
//            return true;
//        }
	if (icCode == document.getElementsByName("startPlaceCode").item(0).value || 
    	    icCode == document.getElementsByName("arrivePlaceCode").item(0).value ||
			icCode == document.getElementsByName("keiyuPlaceCode").item(0).value ){
            return true;
        }
        return false;
    }

	function ClearIC() {
        hideFromMark();
        hideToMark();
        hideKeiyuMark();
        hideFromBalloon();
        hideToBalloon();
        hideKeiyuBalloon();
        document.routesearchForm.startPlace.value = "";
        document.routesearchForm.startPlaceCode.value = "";
        document.routesearchForm.arrivePlace.value = "";
        document.routesearchForm.arrivePlaceCode.value = "";
        document.routesearchForm.keiyuPlace.value = "";
        document.routesearchForm.keiyuPlaceCode.value = "";
        setFocus("startPlace");
        startfocus('startPlace');
	}

	function setMarkingColor(color) {
		if(color=="DEFAULT"){
			document.getElementById("startMarkColor").style.borderColor = "ORANGE";
			document.getElementById("arriveMarkColor").style.borderColor = "BLUE";
			document.getElementById("keiyuMarkColor").style.borderColor = "BLUE";
			document.getElementById("100kmMarkColor").style.borderColor = "GREEN";
			startMarkColor = 6;
			arriveMarkColor = 3;
			keiyuMarkColor = 3;
			kmMarkColor = 2;
		}else{
			var temp;
			for(var i = 0; i < document.forms[0].mark.length; i++){
				if(document.forms[0].mark[i].checked == true){
					temp = document.forms[0].mark[i].value;
				}
			}

			var targetObj = document.getElementById(temp);
        	targetObj.style.borderColor = color;
			
			var colorNumber=1;
			switch(color){
				case "RED":
					colorNumber=1;
					break;
				case "GREEN":
					colorNumber=2;
					break;
				case "BLUE":
					colorNumber=3;
					break;
				case "YELLOW":
					colorNumber=4;
					break;
				case "PURPLE":
					colorNumber=5;
					break;
				case "ORANGE":
					colorNumber=6;
					break;
				case "LIGHTGREEN":
					colorNumber=7;
					break;
				case "LIGHTBLUE":
					colorNumber=8;
					break;
				case "PINK":
					colorNumber=9;
					break;
				case "BROWN":
					colorNumber=10;
					break;
				default:
					break;
			}
			if(temp=="startMarkColor"){
				startMarkColor = colorNumber;
			}else if(temp=="arriveMarkColor"){
				arriveMarkColor = colorNumber;
			}else if(temp=="keiyuMarkColor"){
				keiyuMarkColor = colorNumber;
			}else if(temp=="100kmMarkColor"){
				kmMarkColor = colorNumber;
			}
		}
	}
