﻿/*
Copyright (C) 2008 JTB Travel Network Company. All rights reserved.
Plugin Common
file : JTNPlugin.js
version: 1.0.0
*/

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////

//JTNWebServerのURLを設定
//var JTN_DOMAIN = "http://localhost:2909/";
//var JTN_DOMAIN = "http://192.168.1.200:8001/";
//var JTN_DOMAIN = "http://localhost/lars2c/";
//var JTN_DOMAIN = "http://demo.looktrip.com/";
//var JTN_DOMAIN = "http://test.looktour.net/";
var JTN_DOMAIN = "http://www.looktour.net/";

//JTN検索サイトURLを設定
var JTN_B2C_URL_HOTEL = JTN_DOMAIN + "HotelPriceList.aspx"; //"http://192.168.1.143/PluginHotelTest.aspx";
var JTN_B2C_URL_TOUR  = JTN_DOMAIN + "TourSearchResult.aspx"; //"http://192.168.1.143/PluginTourTest.aspx";
var JTN_B2C_URL_MUSICAL  = JTN_DOMAIN + "MusicalSearchResult.aspx"; //"http://192.168.1.143/PluginMusicalTest.aspx";  //add for musical
var JTN_B2C_URL_TOP   = JTN_DOMAIN + "TourSearchResult.aspx";

/////////////////////////////JTN Namespace///////////////////////////////////////////////////////////////////////

if (typeof JTN == "undefined") {
    var JTN = {};
}

JTN.namespace = function() {
    var a=arguments, o=null, i, j, d;
    for (i=0; i<a.length; i=i+1) {
        d=a[i].split(".");
        o=JTN;

        // JTN is implied, so it is ignored if it is included
        for (j=(d[0] == "JTN") ? 1 : 0; j<d.length; j=j+1) {
            o[d[j]]=o[d[j]] || {};
            o=o[d[j]];
        }
    }

    return o;
};

// Number of max hotel room (no use)
var JTNhotelMaxRoom=2;

// Log display flag (no use)
var JTNlogoFlag='N';

// Musical Search flag (same value as Tour Search Flag) add for musical
var JTNmusicalSearch=JTNtourSearch;

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Number of max number of children
var JTN_MAX_CHILD=4;

// Tag name to insert plugin
var JTN_TARGET_DEV = 'JTNPluginText';
var JTN_TARGET_DEV_MAP = 'JTNPluginMap';

// Search categories
var JTN_HOTEL = 'HOTEL';
var JTN_TOUR = 'TOUR';
var JTN_MUSICAL = 'MUSICAL'; //add for musical
var JTN_CURR_CAT = 'TOUR';

// Base colors
var JTN_BLUE = 'BLUE';
var JTN_RED = 'RED';
var JTN_NEUTRAL = 'NEUTRAL';

// Flag values
var JTN_YES = 'Y';
var JTN_NO = 'N';

// Browser name
var JTN_OPERA = "Opera";
var JTN_IE = "Microsoft";

// Sub categories tag list
var JTN_SUBCATEGORY_ELMS = [["","JTNddlSearchSubCatBlank"],["アメリカ東部","JTNddlSearchSubCatEast"],["アメリカ西部","JTNddlSearchSubCatWest"],
                         ["カナダ","JTNddlSearchSubCatCanada"],["ハワイ","JTNddlSearchSubCatHawaii"],["カンクン・カリブ海","JTNddlSearchSubCatResort"],
                         ["メキシコ・中米","JTNddlSearchSubCatMexico"],["ペルー・南米・南極","JTNddlSearchSubCatSouthAmerica"],
                         ["ヨーロッパ","JTNddlSearchSubCatEurope"],["エジプト・中東・アフリカ","JTNddlSearchSubCatAfrica"],
                         ["アジア・東南アジア","JTNddlSearchSubCatAsia"],["オセアニア・オーストラリア","JTNddlSearchSubCatOceania"]];
// Plugin Elements
var JTN_PLUGINT_FORM_ELM="JTNform";
var JTN_PLUGINM_MAP_ELM="JTNPluginMap";//add for Map by B3.Tanisaka 6/12
var JTN_PLUGINM_HIDDEN_DEV_ELM="JTNPluginMapForm";//add for Map by Tanisaka
var JTN_AGENTCODE_ELM="JTNhdnAgentCode";
var JTN_TOURDATE_ELM="JTNtxtTourDate";
var JTN_TOURDATE_DEV_ELM="JTNdevTourDate";
var JTN_TOURDATE_CAL_ELM ="JTNimgCal";
var JTN_TOURPAXCONT_ELM ="JTNddlPaxCnt"; //add for Map
var JTN_CHECKIN_ELM="JTNtxtCheckIn";
var JTN_CHECKIN_DEV_ELM="JTNdevCheckIn";
var JTN_CHECKIN_CAL_ELM ="JTNimgCalIn";
var JTN_CHECKOUT_ELM="JTNtxtCheckOut";
var JTN_CHECKOUT_DEV_ELM="JTNdevCheckOut";
var JTN_CHECKOUT_CAL_ELM ="JTNimgCalOut";
var JTN_SEARCH_ELM ="JTNtxtSearchTextTemp";
var JTN_SEARCH_HDN_ELM ="JTNtxtSearchText";
var JTN_SEARCH_DEV_ELM ="JTNdevSearchContainer";
var JTN_TOUR_CAT_ELM="JTNddlSearchCat";
var JTN_TOUR_SUBCAT_ELM="JTNddlSearchSubCat";
var JTN_TOUR_SUBCAT_BLANK_ELM="JTNddlSearchSubCatBlank";
var JTN_TOUR_SUBCAT_DEV_ELM="JTNdevSubcategory";
var JTN_CITYLIST_ELM="JTNddlCityList";
var JTN_CITYCODE_ELM="JTNtxtCityCodeTemp";
var JTN_CITYCODE_HDN_ELM="JTNtxtCityCode";
var JTN_CITY_DEV_ELM="JTNdevCityContainer";
var JTN_ROOM_LBL_ELM = "JTNLabelRoom_";
var JTN_ROOMNUM_ELM="JTNddlRoomNum";
var JTN_HOTELNAME_ELM="JTNtxtHotelNameTemp";
var JTN_HOTELNAME_HDN_ELM="JTNtxtHotelName";
var JTN_HOTELRANK_ELM="JTNddlHotelRank"; //add for Map
var JTN_ADULT_LBL_ELM = "JTNLabelAdult_";
var JTN_ADULTNUM_ELM = "JTNddlAdult_";
var JTN_CHILD_LBL_ELM = "JTNLabelChild_";
var JTN_CHILDNUM_ELM="JTNddlChild_";
var JTN_CHILDAGE_ELM="JTNtxtChildAge_";
var JTN_CHILDAGE_LBL_ELM = "JTNLabelChildAge_";
var JTN_CITY_DIV_INPUT_ELM = "JTNdivInputCity";
var JTN_MUSICAL_CITY_ELM = "JTNddlSearchCity"; //add for musical
var JTN_MUSICALDATE_ELM = "JTNtxtMusicalDate"; //add for musical
var JTN_MUSICALDATE_DEV_ELM="JTNdevMusicalDate"; //add for musical
var JTN_MUSICALDATE_CAL_ELM ="JTNimgCal"; //add for musical
var JTN_MUSICAL_CNT_ELM = "JTNddlPaxCnt"; //add for musical

//added by B3 H.Mizuno 9/8/2008
var JTN_DEFAULT_TOUR_DATE = 20
var JTN_DEFAULT_CHECKIN_DATE = 20
var JTN_DEFAULT_CHECKOUT_DATE = 22
var JTN_DEFAULT_MUSICAL_DATE = 7
var JTN_MIN_MUSICAL_DATE = 3
var JTN_MAX_MUSICAL_MONTH = 8
var JTN_DEFAULT_MUSICAL_CITY = "ニューヨーク"

// Elements JP Name
var JTN_TOURDATE_JP="参加日";
var JTN_CHECKIN_JP="チェックイン日";
var JTN_CHECKOUT_JP="チェックアウト日";
var JTN_SEARCH_JP ="エリアまたはキーワード";
var JTN_TOUR_CAT_JP="エリアまたはキーワード";
var JTN_CITYLIST_JP="滞在都市";
var JTN_CITYCODE_JP="滞在都市";
var JTN_ROOMNUM_JP="部屋数";
var JTN_HOTELNAME_JP="ホテル名";
var JTN_CHILDAGE_JP="子供年齢";
var JTN_MUSICALDATE_JP="演目日"; //add for musical

var JTN_STD_MODE="CSS1Compat";

// Validation Variables
var JTN_VALIDATION_ERRORS;
var JTN_DTCH= "/";

// Validation Error Message
var JTN_MSG_REQUIRED = "が入力されていません。";
var JTN_MSG_CHILDAGE = "子供年齢を0～19で入力してください。";
var JTN_MSG_DATEFORMAT = "をご確認下さい。";
var JTN_MSG_TOURDATE =  "参加日は本日より１年の間で入力してください。";
var JTN_MSG_CHECKIN =  "チェックイン日時を明日～1年の間で選択してください。";
var JTN_MSG_CHECKOUT =  "チェックアウト日をチェックイン翌日から30日以内で入力してください。";
var JTN_MSG_MUSICALDATE =  "演目日は3日後より8ヶ月の間で入力してください。"; //add for musical

var JTNMapTourHtml;
var JTNMapHotelHtml;
var JTNMapMusicalHtml; //add for musical
﻿/*
Copyright (C) 2008 JTB Travel Network Company. All rights reserved.
Plugin Common
file: JTNPluginCommon.js
version: 1.0.0
*/

// Plugin Common Functions
if (!JTN.PluginCommon) {
    JTN.PluginCommon = {
    
        //////////Validation///////////////////////////////////////////////////////
        ///////////////////////////////////////////////////////////////////////////
        
	    ValidateOnsubmit : function(category){
	        JTN_VALIDATION_ERRORS="";
		    if(!JTN.PluginCommon.DoValidation(category)){
			    JTN.PluginCommon.AlertValidationError(JTN_VALIDATION_ERRORS);
			    return false;
		    }
		    else {
		    
		        JTN.PluginCommon.DoSanitizing(category);

		        if(navigator.appName.toUpperCase()=="MICROSOFT INTERNET EXPLORER"){
		            JTN.PluginCommon.SubmitForm();
		            return false;
		        }
		        else{
		            return true;
		        }
   	        }
   	        
   	    },
   	    ///////////////////////////////////////////////////////////////////////////
        SubmitForm : function(){
            var elm = document.getElementById(JTN_PLUGINT_FORM_ELM);
            
            try{

                  var org_chr=document.charset; 
                  document.charset='utf-8';                 
                  elm.submit();
                  document.charset=org_chr; 
            }
            catch(e){
            }
		
	    },
        ///////////////////////////////////////////////////////////////////////////
        DoValidation : function(category){

		    var valid = JTN.PluginCommon.ValidateAllElements(category);
		    return valid;
		
	    },
	
        ///////////////////////////////////////////////////////////////////////////

	    ValidateAllElements : function(category){

		    var valid = true;
            var validattion_elm = new Array();
            var one_elm;
               			    
		    validattion_elm =JTN.PluginCommon.GetValidationElement(category);

		    for(var i=0; i<validattion_elm.length; i++ ) {
			         one_elm = validattion_elm[i];
			        if(!JTN.PluginCommon.ValidateElement(document.getElementById(one_elm))){
				        valid = false;
			        }
		    }
		    return valid;
	    },
	    
        ///////////////////////////////////////////////////////////////////////////

	    GetValidationElement : function(category){
    	
	        var target_elements= new Array();

		    if(category==JTN_TOUR){
    		
		        target_elements.push(JTN_TOURDATE_ELM);
		        if(document.getElementById(JTN_TOUR_CAT_ELM).value.length==0 && document.getElementById(JTN_SEARCH_ELM).value.length==0){
		            target_elements.push(JTN_TOUR_CAT_ELM);
		            target_elements.push(JTN_SEARCH_ELM);
		        }
		    }
		    else if(category==JTN_HOTEL){
                target_elements.push(JTN_CHECKIN_ELM);
                target_elements.push(JTN_CHECKOUT_ELM);
                
               if(document.getElementById(JTN_CITYLIST_ELM).value=="0"){
		            target_elements.push(JTN_CITYCODE_ELM);
		        }
    		    
		        var room_num = Number(document.getElementById(JTN_ROOMNUM_ELM).value);
		        var child_num;
    		    
		        for(var i=1; i<=room_num; i++){
    		    		   	    
		   	        child_num = Number(document.getElementById(JTN_CHILDNUM_ELM + i).value);

		   	        for(var n=1; n<=child_num; n++){
		   	            target_elements.push(JTN_CHILDAGE_ELM + String(i) + String(n));
		   	        }
		        }
		    }
		    else if(category==JTN_MUSICAL){ //add for musical
		        target_elements.push(JTN_MUSICALDATE_ELM);
		    }

		    return target_elements;

	    },

        ///////////////////////////////////////////////////////////////////////////

	    GetElementJP : function(name){

		    switch(name){
		    case JTN_TOURDATE_ELM:
			    return JTN_TOURDATE_JP;
		    case JTN_CHECKIN_ELM:
			    return JTN_CHECKIN_JP;
		    case JTN_CHECKOUT_ELM:
			    return JTN_CHECKOUT_JP;
		    case JTN_TOUR_CAT_ELM:
		        return JTN_TOUR_CAT_JP;
		    case JTN_SEARCH_ELM:
			    return JTN_SEARCH_JP;
		    case JTN_CITYCODE_ELM:
			    return JTN_CITYCODE_JP;
		    case JTN_HOTELNAME_ELM:
			    return JTN_HOTELNAME_JP;			
			case JTN_MUSICALDATE_ELM: //add for musical
			    return JTN_MUSICALDATE_JP;
		    default:
			    return JTN_CHILDAGE_JP;
		    }
	    },

        ///////////////////////////////////////////////////////////////////////////
    	
	    ValidateElement : function (elm){

		    var pattern		= elm.getAttribute("pattern");
		    var value		= elm.value;
		    var is_required		= elm.getAttribute("required") != null;
		    var valid		= true;

	        //elm.onchange = ValidateOnchange;

	        JTN.PluginCommon.ClearClassname(elm);

            if(is_required && value.length==0){
                      
                elm.className += " invalid";
                
                if(!JTN_VALIDATION_ERRORS.match(JTN.PluginCommon.GetElementJP(elm.id) +  JTN_MSG_REQUIRED)){
 
		            JTN_VALIDATION_ERRORS=JTN_VALIDATION_ERRORS + "\n-" + JTN.PluginCommon.GetElementJP(elm.id) + JTN_MSG_REQUIRED;

		        }
    		   
             }
             else{

	            if(elm.getAttribute("pattern")=="number") {

		            if(!JTN.PluginCommon.ValidateChildAge(value)){

		                elm.className += " invalid";
    		            
		                if(!JTN_VALIDATION_ERRORS.match(JTN_MSG_CHILDAGE)){
		                    JTN_VALIDATION_ERRORS=JTN_VALIDATION_ERRORS + "\n-" + JTN_MSG_CHILDAGE;
                        }
		             }
		            else{
		                elm.className += " valid";
		             }
	            }
	            else if(elm.getAttribute("pattern")=="date") {

	                if(!JTN.PluginCommon.IsDate(value)){
		                elm.className += " invalid";
		                JTN_VALIDATION_ERRORS=JTN_VALIDATION_ERRORS + "\n-" + JTN.PluginCommon.GetElementJP(elm.id) + JTN_MSG_DATEFORMAT;
		             }
		            else{
		                if (elm.id==JTN_TOURDATE_ELM && !JTN.PluginCommon.ValidateTourDate(value)){
		                    elm.className += " invalid";
		                    JTN_VALIDATION_ERRORS=JTN_VALIDATION_ERRORS + "\n-" + JTN_MSG_TOURDATE;
		                }
		                else if (elm.id==JTN_MUSICALDATE_ELM && !JTN.PluginCommon.ValidateMusicalDate(value)){ //add for musical
		                    elm.className += " invalid";
		                    JTN_VALIDATION_ERRORS=JTN_VALIDATION_ERRORS + "\n-" + JTN_MSG_MUSICALDATE;
		                }
		                else if(elm.id==JTN_CHECKIN_ELM && !JTN.PluginCommon.ValidateCheckInDate(value)){	            
		            	    elm.className += " invalid";
		                    JTN_VALIDATION_ERRORS=JTN_VALIDATION_ERRORS + "\n-" + JTN_MSG_CHECKIN;
		                }
		                else{
		            	    if(elm.id==JTN_CHECKOUT_ELM && !JTN.PluginCommon.ValidateCheckOutDate(value)){	            
		            	        elm.className += " invalid";
		                      JTN_VALIDATION_ERRORS=JTN_VALIDATION_ERRORS + "\n-" + JTN_MSG_CHECKOUT;
		                    }
		                    else{
		                        elm.className += " valid";
		                    }
		                }
		             }
	            }
	            else if(elm.getAttribute("pattern")=="text") {
	                elm.className += " valid";
	            }
	            else{
	                elm.className += " valid";
	            }
	        }

	        if(elm.className.search(/\bvalid\b/) != -1){
		        return true;
	        }
	        else {
		        return false;
	        }

	    },
    	
    	
        ///////////////////////////////////////////////////////////////////////////

	    AlertValidationError : function(errors) {
		    alert("入力内容をもう一度ご確認ください。\n" + errors);
	    },
    	
        ///////////////////////////////////////////////////////////////////////////

	    ClearClassname : function(elm){
		    if(elm && elm.className){
			    elm.className = elm.className.replace(/\bvalid\b/gi,'');
			    elm.className = elm.className.replace(/\binvalid\b/gi,'');	
		    }
	    },

        ///////////////////////////////////////////////////////////////////////////
    	
        ValidateChildAge : function(val){
            if (JTN.PluginCommon.IsInteger(val)){
                if(Number(val)<20 && Number(val)>=0){
                    return true;
                }
                else{
                    return false;
                }
	        }
	        else{
	            return false;
	        }
	    },
  
        ///////////////////////////////////////////////////////////////////////////
    	
        IsInteger : function(val) {
	        var digits="1234567890";
	        for (var i=0; i < val.length; i++) {
		        if (digits.indexOf(val.charAt(i))==-1) { return false; }
		        }
	        return true;
	    },
    	   
        ///////////////////////////////////////////////////////////////////////////    	    
        StripCharsInBag : function(s, bag){
	        var i;
            var returnString = "";
            // Search through string's characters one by one.
            // If character is not in bag, append to returnString.
            for (i = 0; i < s.length; i++){   
                var c = s.charAt(i);
                if (bag.indexOf(c) == -1) returnString += c;
            }
            return returnString;
        },
        ///////////////////////////////////////////////////////////////////////////
        
        DaysInFebruary : function(year){
	        // February has 29 days in any year evenly divisible by four,
            // EXCEPT for centurial years which are not also divisible by 400.
            return (((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28 );
        },
        ///////////////////////////////////////////////////////////////////////////
        DaysArray : function(n) {
	        for (var i = 1; i <= n; i++) {
		        this[i] = 31
		        if (i==4 || i==6 || i==9 || i==11) {this[i] = 30}
		        if (i==2) {this[i] = 29}
           } 
           return this
        },
        
        ///////////////////////////////////////////////////////////////////////////
        IsDate : function(dtStr){
	        var daysInMonth = JTN.PluginCommon.DaysArray(12);
	        var pos1=dtStr.indexOf(JTN_DTCH);
	        var pos2=dtStr.indexOf(JTN_DTCH,pos1+1);
	        var strMonth=dtStr.substring(0,pos1);
	        var strDay=dtStr.substring(pos1+1,pos2);
	        var strYear=dtStr.substring(pos2+1);
	        strYr=strYear;
	        if (strDay.charAt(0)=="0" && strDay.length>1) strDay=strDay.substring(1);
	        if (strMonth.charAt(0)=="0" && strMonth.length>1) strMonth=strMonth.substring(1);
	        for (var i = 1; i <= 3; i++) {
		        if (strYr.charAt(0)=="0" && strYr.length>1) strYr=strYr.substring(1);
	        }
	        month=parseInt(strMonth);
	        day=parseInt(strDay);
	        year=parseInt(strYr);
	        if (pos1==-1 || pos2==-1){
		        return false;
	        }
	        if (strMonth.length<1 || month<1 || month>12){
	            return false;
	        }
	        if (strDay.length<1 || day<1 || day>31 || (month==2 && day>JTN.PluginCommon.DaysInFebruary(year)) || day > daysInMonth[month]){
		        return false;
	        }
	        if (strYear.length!=4){
	            return false;
	        }
	        if (dtStr.indexOf(JTN_DTCH,pos2+1)!=-1 || JTN.PluginCommon.IsInteger(JTN.PluginCommon.StripCharsInBag(dtStr, JTN_DTCH))==false){
		        return false;
	        }
         return true;
        },

        ///////////////////////////////////////////////////////////////////////////
        ValidateTourDate : function(value){

            var minDate = new Date(); 
            var maxDate = new Date(); 
              
            maxDate.setFullYear(Number(maxDate.getFullYear())+1);
                           
            return JTN.PluginCommon.ValidateDateRange(value,minDate,maxDate);

        },
        ///////////////////////////////////////////////////////////////////////////
        ValidateMusicalDate : function(value){ //add for musical

            var minDate = new Date(); 
            var maxDate = new Date(); 
              
            minDate.setDate(Number(minDate.getDate()) + JTN_MIN_MUSICAL_DATE);              
            maxDate.setMonth(Number(maxDate.getMonth()) + JTN_MAX_MUSICAL_MONTH);
                           
            return JTN.PluginCommon.ValidateDateRange(value,minDate,maxDate);

        },
        ///////////////////////////////////////////////////////////////////////////
        ValidateCheckInDate : function(value){

            var minDate = new Date();
            var maxDate = new Date();

            minDate.setDate(Number(minDate.getDate()) + 1);              
            maxDate.setMonth(Number(maxDate.getMonth()) + 12);
            
            return JTN.PluginCommon.ValidateDateRange(value,minDate,maxDate);

        },
        ///////////////////////////////////////////////////////////////////////////
        ValidateCheckOutDate : function(value){
        
            var valueCheckin = document.getElementById(JTN_CHECKIN_ELM).value;
            var dateValue=valueCheckin.split(JTN_DTCH);
            var minDate = new Date(dateValue[2],Number(dateValue[0])-1,dateValue[1]);
            var maxDate = new Date(dateValue[2],Number(dateValue[0])-1,dateValue[1]);
            
            minDate.setDate(Number(minDate.getDate())+ 1);
            maxDate.setDate(Number(maxDate.getDate())+ 30);
  
            return JTN.PluginCommon.ValidateDateRange(value,minDate,maxDate);
    	   
        },
        ///////////////////////////////////////////////////////////////////////////
        ValidateDateRange : function(value,minDate,maxDate){
        
            var date_value=value.split(JTN_DTCH);

            var target = JTN.PluginCommon.FormatStringNumber(date_value[2])+JTN.PluginCommon.FormatStringNumber(date_value[0])+JTN.PluginCommon.FormatStringNumber(date_value[1]);
            var min = JTN.PluginCommon.FormatStringNumber(minDate.getFullYear()) + JTN.PluginCommon.FormatStringNumber(minDate.getMonth()+1) + JTN.PluginCommon.FormatStringNumber(minDate.getDate());
            var max = JTN.PluginCommon.FormatStringNumber(maxDate.getFullYear()) + JTN.PluginCommon.FormatStringNumber(maxDate.getMonth()+1) + JTN.PluginCommon.FormatStringNumber(maxDate.getDate());
            
            //alert(value + ':' + target  +'\n' + minDate + ':' + min +  '\n' + maxDate + ':' + max);
                  
            if( target< min|| target> max){
            
                return false;
            }
            else{
                return true;
            }
        },
        ///////////////////////////////////////////////////////////////////////////
        FormatStringNumber :function(num){
        
            value = String(Number(num));
            
            if (value.length==1){
                return "0" + value;
            }
            else{
                return String(value);
            }
        },
        ///////////////////////////////////////////////////////////////////////////
        DoSanitizing : function(category){
        
            var validattion_elm=new Array(JTN_HOTELNAME_ELM,JTN_SEARCH_ELM,JTN_CITYCODE_ELM);
            var one_elm;
            var validattion_hdn_elm=new Array(JTN_HOTELNAME_HDN_ELM,JTN_SEARCH_HDN_ELM,JTN_CITYCODE_HDN_ELM);
            var one_hdn_elm;

		    for(var i=0; i<validattion_elm.length; i++ ) {
			    one_elm = validattion_elm[i];
			    one_hdn_elm = validattion_hdn_elm[i];
                if(document.getElementById(one_elm) && document.getElementById(one_hdn_elm)){		     
			        if((document.getElementById(one_elm).getAttribute('pattern')=='text')){
				        document.getElementById(one_hdn_elm).value = document.getElementById(one_elm).value;
			        }
		        }
		    }
        },

        ////////// function for map called by text and map ///////////////////////
        ///////////////////////////////////////////////////////////////////////////

        ChangeMapCat : function(category){
            var errorHtml = "<table style='text-align: left; vertical-align: middle' border='0' width='450px' height='280px'>";
            errorHtml += "<tr>";
            errorHtml += "<td style='font-size: 8pt; text-align: center; vertical-align: middle' >";
            errorHtml += "<img src='" + JTN_DOMAIN +  "Plugin/Common/images/loading.gif'>";
            errorHtml += "</td>";
            errorHtml += "</tr>";
            errorHtml += "<tr>";
            errorHtml += "<td style='font-size: 8pt; text-align: center; vertical-align: bottom' >";
            errorHtml += "<font face='メイリオ,Meiryo,ＭＳ Ｐゴシック,MS P Gothic,Osaka' color='464646'>";
            errorHtml += "お急ぎの方は<a href='mailto:look@jtbtn.com'>look@jtbtn.com</a>へ<br />お問い合わせください。<br />";
            errorHtml += "</font>";
            errorHtml += "</td>";
            errorHtml += "</tr>";
            errorHtml += "</table>";
            document.getElementById(JTN_TARGET_DEV_MAP).innerHTML = errorHtml;
            JTN.PluginM.SetPluginPage(document.getElementById(JTN_TARGET_DEV_MAP), category);
        },
        
        ////////// function for text called by text and map ///////////////////////
        ///////////////////////////////////////////////////////////////////////////

        GetHotelPage : function(){
            JTN.PluginT.SetPluginPage(JTNiconColor, JTN_HOTEL, JTNhotelMaxRoom, JTNlogoFlag, JTNagentCode, JTNtourSearch, JTNhotelSearch, JTNmusicalSearch, document.getElementById(JTN_TARGET_DEV)); //add parameter for musical
        },
        
        ///////////////////////////////////////////////////////////////////////////

        GetTourPage : function(){
            JTN.PluginT.SetPluginPage(JTNiconColor, JTN_TOUR, JTNhotelMaxRoom, JTNlogoFlag, JTNagentCode, JTNtourSearch, JTNhotelSearch, JTNmusicalSearch, document.getElementById(JTN_TARGET_DEV)); //add parameter for musical
        },
        
        ///////////////////////////////////////////////////////////////////////////

        GetMusicalPage : function(){ //add for musical
            JTN.PluginT.SetPluginPage(JTNiconColor, JTN_MUSICAL, JTNhotelMaxRoom, JTNlogoFlag, JTNagentCode, JTNtourSearch, JTNhotelSearch, JTNmusicalSearch, document.getElementById(JTN_TARGET_DEV)); //add parameter for musical
        },
        
        ///////////////////////////////////////////////////////////////////////////

        SetTourSubCategory : function() {
           var sCatValue = document.getElementById(JTN_TOUR_CAT_ELM).options[document.getElementById(JTN_TOUR_CAT_ELM).selectedIndex].value;
           var i;
           for (i = 0; i < JTN_SUBCATEGORY_ELMS.length; i++) 
           {
              if (sCatValue == JTN_SUBCATEGORY_ELMS[i][0]) 
              {
                 break;
              }
           }
           if (document.getElementById(JTN_SUBCATEGORY_ELMS[i][1]))
           {
              document.getElementById(JTN_TOUR_SUBCAT_DEV_ELM).innerHTML = document.getElementById(JTN_SUBCATEGORY_ELMS[i][1]).getAttribute("subcategory");
           }
        },
        
        ///////////////////////////////////////////////////////////////////////////
        // change display of city code input box
        SetHotelCityBox : function () 
        { 
            var sCityCode = document.getElementById(JTN_CITYLIST_ELM).options[document.getElementById(JTN_CITYLIST_ELM).selectedIndex].value;
        	
            if (sCityCode == 0)
            {
                document.getElementById(JTN_CITY_DIV_INPUT_ELM).style.display = "block"; 
                
                //Initialize Auto Complete
                JTN.PluginT.SetAutoComplete(JTN_CITYCODE_ELM,JTN_CITY_DEV_ELM,JTN_HOTEL);
            }
            else
            {
                document.getElementById(JTN_CITY_DIV_INPUT_ELM).style.display = "none"; 
                document.getElementById(JTN_CITYCODE_ELM).value = "";
            }
        },
        ///////////////////////////////////////////////////////////////////////////
        // change display of rooms
        SetHotelNumBox : function() 
        { 
            var roomNum = document.getElementById(JTN_ROOMNUM_ELM).options[document.getElementById(JTN_ROOMNUM_ELM).selectedIndex].value;
            var cnt;

            for(cnt=2; cnt <= JTNhotelMaxRoom; cnt++)
            {
                if ( cnt <= roomNum )
                {   // visible
                    document.getElementById(JTN_ADULT_LBL_ELM + cnt ).style.display = "block"; 
                    document.getElementById(JTN_CHILD_LBL_ELM + cnt ).style.display = "block"; 
                    document.getElementById(JTN_CHILDAGE_LBL_ELM + cnt ).style.display = "block"; 
                    document.getElementById(JTN_ADULTNUM_ELM + cnt ).style.display = "block"; 
                    document.getElementById(JTN_CHILDNUM_ELM + cnt ).style.display = "block"; 
                    JTN.PluginCommon.SetHotelChildAgeBox(cnt);
                }
                else
                {	// invisible
                    document.getElementById(JTN_ADULT_LBL_ELM + cnt ).style.display = "none"; 
                    document.getElementById(JTN_CHILD_LBL_ELM + cnt ).style.display = "none"; 
                    document.getElementById(JTN_CHILDAGE_LBL_ELM + cnt ).style.display = "none"; 
                    document.getElementById(JTN_ADULTNUM_ELM + cnt ).style.display = "none"; 
                    document.getElementById(JTN_CHILDNUM_ELM + cnt ).style.display = "none"; 
                    JTN.PluginCommon.SetHotelChildAgeBox(cnt);
                }
            }
        } ,
         
        ///////////////////////////////////////////////////////////////////////////
        // change display of child age input box
        SetHotelChildAgeBox : function(roomId) 
        { 
            var childNum = document.getElementById(JTN_CHILDNUM_ELM + roomId).options[document.getElementById(JTN_CHILDNUM_ELM + roomId).selectedIndex].value;
            var roomNum = document.getElementById(JTN_ROOMNUM_ELM).options[document.getElementById(JTN_ROOMNUM_ELM).selectedIndex].value;
            var cnt;
            var maxChild = JTN_MAX_CHILD;

            if (roomId > roomNum)
            {
                childNum = 0;
            }

            if (childNum == 0)
            {
                document.getElementById(JTN_CHILDAGE_LBL_ELM + roomId ).style.display = "none"; 
            }
            else
            {
                document.getElementById(JTN_CHILDAGE_LBL_ELM + roomId ).style.display = "block"; 
            }

            for(cnt=1; cnt <= maxChild; cnt++)
            {
                if ( cnt <= childNum )
                {
                    document.getElementById((JTN_CHILDAGE_ELM + roomId) + cnt ).style.display = "inline"; 
                }
                else
                {	
                    document.getElementById((JTN_CHILDAGE_ELM + roomId) + cnt ).style.display = "none"; 

                }
            }
        },
        
        ///////////////////////////////////////////////////////////////////////////
        //Add by B3.Tanisaka 6/12
        ChangeIcom :function(type,btn_name){
            var elm;
            var path;
            
            elm=document.getElementById(btn_name);    
            path=elm.getAttribute("src");
                      
            if (type=="over"){
                elm.setAttribute("src",path.replace("_off.gif","_on.gif"));
            }
            else{
                elm.setAttribute("src",path.replace("_on.gif","_off.gif"));
           }
        },
        //Add by B3.Tanisaka 7/8
         ///////////////////////////////////////////////////////////////////////////
         GetSubCatHTML : function(id,array){
            var sb = new String.builder();
            sb.append("<input id=" + id + " type=hidden subcategory='<select name=JTNddlSearchSubCat class=jtn_select_normal><option value= >さらに、絞り込めます</option>");
            
            var i=0;
            if(array.length>0){
                for(i=0;i<array.length;i++){
                    sb.append("<option value=" + array[i] + ">" + array[i] + "</option>");
                }
            }
            
            sb.append("</select>'>");
            
            return sb.toString();
          },
          //////////EventControl/////////////////////////////////////////////////////
        ///////////////////////////////////////////////////////////////////////////

        AddEvent :function(obj, eventType, fn, useCapture) {
          
            var theObj = JTN.PluginCommon.GetRawObject(obj);

            if (!theObj) {

                return;

            }
            if (theObj.addEventListener) {
                theObj.addEventListener(eventType, fn, useCapture);
            }
            else if (theObj.attachEvent) {
                theObj.attachEvent('on' + eventType, fn);
            }
            else {
                theObj['on'+eventType] = fn;
            }
        },

        ///////////////////////////////////////////////////////////////////////////

        GetRawObject : function(obj) {
            var theObj;
            if(typeof obj == "string" ) {
                if(isW3C) {
                    theObj = document.getElementById(obj);
                }
                else if (isIE4) {
                    theObj = document.all(obj);
                }
                else if (isNN4) {
                    theObj = seekLayer(document, obj);
                }
            }
            else {
                theObj = obj;
            }
            return theObj;
        }
       ///////////////////////////////////////////////////////////////////////////                                            
    }
};

// Common Functions
if(!String.builder)
{
	String.builder = function()
	{
		var buffer = [];

		this.append = function(str)
		{
			buffer.push(str);
		}
		this.clear = function()
		{
			buffer = null;
			buffer = [];
		}
		this.insert = function(index, str)
		{
			if(buffer[index]){buffer[index] = str;}
			else{return false;}
		}
		this.replace = function(find, replace)
		{
			for(var i=0;i<buffer.length;i++)
			{
				var exp = new RegExp(find,'gm');
				buffer[i] = buffer[i].replace(exp,replace);
			}
		}
		this.remove = function()
		{
			if(typeof arguments[0] == "string")
			{
				for(var i=0;i<buffer.length;i++)
				{
					if(arguments[0] == buffer[i]){buffer.splice(i, 1);}
				}
			}
			else
			{
				var index = arguments[0];
				var length = (arguments.length > 1) ? arguments[1] : 1;
				buffer.splice(index,length);
			}
		}
		this.toString = function()
		{
			var str = "";
			for(var i=0;i<buffer.length;i++)
			{
				str += buffer[i];
			}
			return str;
		}
	}
};﻿/*
Copyright (C) 2008 JTB Travel Network Company. All rights reserved.
Plugin Map Version
file: JTNPluginMMain.js
version: 1.0.0
*/


// Plugin Text Functions
if (!JTN.PluginM) {
    JTN.PluginM = {
        ///////////////////////////////////////////////////////////////////////////
        Init : function(evt) {
            
            // Get HTML
            JTNMapTourHtml = JTN.PluginM.GetHTML(JTN_TOUR);
            JTNMapHotelHtml = JTN.PluginM.GetHTML(JTN_HOTEL);
            JTNMapMusicalHtml = JTN.PluginM.GetHTML(JTN_MUSICAL); //add for musical
            
            if (navigator.appName.toUpperCase() == JTN_OPERA.toUpperCase()) {
                JTN.PluginM.ShowErrorPageBrowser(1);
            } else if (navigator.appName.toUpperCase().indexOf(JTN_IE.toUpperCase()) < 0) { // add by B3 H.Mizuno 9/16/2008
                var flashVersion = JTN.PluginM.CheckFlashVersion();
                var sVersionNum = flashVersion.substring(0, flashVersion.indexOf("."));
                if (sVersionNum != "" && sVersionNum < 9) {
                    JTN.PluginM.ShowErrorPageBrowser(2);
                } else {
                    // Load JTN Text Plagin	
                    JTN.PluginM.SetPluginPage(document.getElementById(JTN_TARGET_DEV_MAP),JTN.PluginM.GetTopPage(JTNtourSearch,JTNhotelSearch,JTNmusicalSearch)); //add parameter for musical
                }
            } else {
                // Load JTN Text Plagin	
                JTN.PluginM.SetPluginPage(document.getElementById(JTN_TARGET_DEV_MAP),JTN.PluginM.GetTopPage(JTNtourSearch,JTNhotelSearch,JTNmusicalSearch)); //add parameter for musical
            }
            
         },
        ///////////////////////////////////////////////////////////////////////////
         SetPluginPage : function(element,category) {

            //Insert Page
            element.innerHTML = JTN.PluginM.GetMapHTML(category);
            
            //Initialize Page
            JTN.PluginM.InitializeElements(category);
        },
        
        ///////////////////////////////////////////////////////////////////////////

        GetTopPage : function(tour, hotel, musical){ //add parameter for musical
            if (tour == JTN_YES) {
                return JTN_TOUR;
            }
            else if (hotel == JTN_YES) {
                return JTN_HOTEL;
            }
            else if (musical == JTN_YES) { //add for musical
                return JTN_MUSICAL;
            }
        },
        
        ///////////////////////////////////////////////////////////////////////////

        ShowErrorPage : function() {

            var errorHtml = "<form><table style='text-align: left; vertical-align: middle' border='1' width='448px' height='278px'>";
            errorHtml += "<tr>";
            errorHtml += "<td style='font-size: 8pt; text-align: center; vertical-align: middle' >";
            errorHtml += "<font face='メイリオ,Meiryo,ＭＳ Ｐゴシック,MS P Gothic,Osaka'>";
            errorHtml += "ご迷惑をお掛けして申し訳ありません。<br /><br />";
            errorHtml += "只今システムメンテナンス中の為、ご利用いただけません。<br /><br />";
            errorHtml += "誠に恐れ入りますが、しばらく時間をおいてから再度ご利用ください。<br /><br />";
            errorHtml += "お急ぎの方は<a href='mailto:look@jtbtn.com'>look@jtbtn.com</a>へお問い合わせください。<br />";
            errorHtml += "</font>";
            errorHtml += "</td>";
            errorHtml += "</tr>";
            errorHtml += "</table></form>";
            document.getElementById(JTN_TARGET_DEV_MAP).innerHTML = errorHtml;
           
        },
        
        ///////////////////////////////////////////////////////////////////////////

        ShowErrorPageBrowser : function(iMsgCode) {// add parameter by B3 H.Mizuno 9/16/2008

            var errorHtml = "<form><table style='text-align: left; vertical-align: middle' border='1' width='448px' height='278px'>";
            errorHtml += "<tr>";
            errorHtml += "<td style='font-size: 8pt; text-align: center; vertical-align: middle' >";
            errorHtml += "<font face='メイリオ,Meiryo,ＭＳ Ｐゴシック,MS P Gothic,Osaka'>";
    
            if (iMsgCode == 1) {
                errorHtml += "このブラウザでは、マップ検索をご利用いただけません。<br /><br />";
                if (JTNMapOnlyFlag == JTN_NO) {
                    errorHtml += "誠に恐れ入りますが、テキスト検索、または、<br />Internet Explorer、Firefox、Safariをご利用ください。<br /><br />";
                } else {
                    errorHtml += "誠に恐れ入りますが、Internet Explorer、Firefox、Safariでご利用ください。<br /><br />";
                }
            } else if (iMsgCode == 2) { // add by B3 H.Mizuno 9/16/2008
                errorHtml += "Flash Player 9以上をご利用ください。<br /><br />";
                errorHtml += "<a href='http://www.macromedia.com/go/getflashplayer' target='_blank'>最新のFlash Playerのインストールはこちら</a><br /><br /><br />";
            }
            
            errorHtml += "お急ぎの方は<a href='mailto:look@jtbtn.com'>look@jtbtn.com</a>へお問い合わせください。<br />";
            errorHtml += "</font>";
            errorHtml += "</td>";
            errorHtml += "</tr>";
            errorHtml += "</table></form>";
            document.getElementById(JTN_TARGET_DEV_MAP).innerHTML = errorHtml;
           
        },
        
        ///////////////////////////////////////////////////////////////////////////      
        
        SetPluginValue : function(tag, value) {
           var e = document.getElementById(tag);
           if (e == null) {
              var etemp = document.getElementsByName(tag);
              e = etemp[0];
           }

           if (e.tagName == 'INPUT')
           {
              e.value = value;
           }
           else if (e.tagName == 'SELECT')
           {      
              for (var i=0; i<e.options.length; i++)
              {
                 if (e.options[i].value == value)
                 {
                    e.options[i].selected = true;
                    break;
                 }
              }
           }
        },
        
        ///////////////////////////////////////////////////////////////////////////
        
        InitializeElements: function(category){
     
            if(JTNMapOnlyFlag){
                if(JTNMapOnlyFlag==JTN_YES){
                
                    var hiddenHtml; 
                    var target_url;
                    var target;
                    
                    if(JTNnewWindowFlag==JTN_YES){
                        target="JTNSearch"; // open in the same window from 2nd time added by B3 H.Mizuno 9/8/2008
                    }
                    else{
                        target="_self";
                    }
                    
                    if(category==JTN_HOTEL){
                        target_url=JTN_B2C_URL_HOTEL;
                        hiddenHtml=JTN.PluginM.GetHotelHidden(target_url,target);
                    }
                    else if(category==JTN_TOUR){
                        target_url=JTN_B2C_URL_TOUR;
                        hiddenHtml=JTN.PluginM.GetTourHidden(target_url,target);
                    }
                    else if(category==JTN_MUSICAL){ //add for musical
                        target_url=JTN_B2C_URL_MUSICAL;
                        hiddenHtml=JTN.PluginM.GetMusicalHidden(target_url,target);
                    }
            
                   document.getElementById("JTNhdnsectionMap").innerHTML =hiddenHtml;
                   
                   //alert(document.getElementById(JTN_SEARCH_ELM).value);
                }
            }
                        
        },
        
        ///////////////////////////////////////////////////////////////////////////
        GetHotelHidden : function(target_url,target){
                        
                    var hiddenHtml;

                    hiddenHtml="<form id='"+ JTN_PLUGINT_FORM_ELM +"' method='post' Accept-charset='utf-8' target='" + target + "' action='" + target_url + "'>";
                    hiddenHtml += "<input type='hidden' id='"+ JTN_AGENTCODE_ELM +"' name='"+ JTN_AGENTCODE_ELM+"' value='" + JTNagentCode + "'>";                
                    hiddenHtml +="<input type='hidden' id='" + JTN_CITYLIST_ELM + "' name='" + JTN_CITYLIST_ELM + "' value='0' pattern='text' required>";
                    hiddenHtml +="<input type='hidden' id='" + JTN_CITYCODE_ELM + "' name='" + JTN_CITYCODE_ELM + "' value='' pattern='text' required>";
                    hiddenHtml +="<input type='hidden' id='" + JTN_CITYCODE_HDN_ELM + "' name='" + JTN_CITYCODE_HDN_ELM + "' value='test0'>";
                    hiddenHtml +="<input type='hidden' id='" + JTN_CHECKIN_ELM + "' name='" + JTN_CHECKIN_ELM + "' value='' pattern='date' required>";
                    hiddenHtml +="<input type='hidden' id='" + JTN_CHECKOUT_ELM + "' name='" + JTN_CHECKOUT_ELM + "' value='' pattern='date' required>";
                    hiddenHtml +="<input type='hidden' id='" + JTN_ROOMNUM_ELM + "' name='" + JTN_ROOMNUM_ELM + "' value=''>";
                    hiddenHtml +="<input type='hidden' id='" + JTN_ADULTNUM_ELM + "1' name='" + JTN_ADULTNUM_ELM + "1' value=''>";
                    hiddenHtml +="<input type='hidden' id='" + JTN_CHILDNUM_ELM + "1' name='" + JTN_CHILDNUM_ELM + "1' value=''>";
                    hiddenHtml +="<input type='hidden' id='" + JTN_CHILDAGE_ELM + "11' name='" + JTN_CHILDAGE_ELM + "11' value='' pattern='number' required>";
                    hiddenHtml +="<input type='hidden' id='" + JTN_CHILDAGE_ELM + "12' name='" + JTN_CHILDAGE_ELM + "12' value='' pattern='number' required>";
                    hiddenHtml +="<input type='hidden' id='" + JTN_CHILDAGE_ELM + "13' name='" + JTN_CHILDAGE_ELM + "13' value='' pattern='number' required>";
                    hiddenHtml +="<input type='hidden' id='" + JTN_CHILDAGE_ELM + "14' name='" + JTN_CHILDAGE_ELM + "14' value='' pattern='number' required>";
                    hiddenHtml +="<input type='hidden' id='" + JTN_ADULTNUM_ELM + "2' name='" + JTN_ADULTNUM_ELM + "2' value=''>";
                    hiddenHtml +="<input type='hidden' id='" + JTN_CHILDNUM_ELM + "2' name='" + JTN_CHILDNUM_ELM + "2' value=''>";
                    hiddenHtml +="<input type='hidden' id='" + JTN_CHILDAGE_ELM + "21' name='" + JTN_CHILDAGE_ELM + "21' value='' pattern='number' required>";
                    hiddenHtml +="<input type='hidden' id='" + JTN_CHILDAGE_ELM + "22' name='" + JTN_CHILDAGE_ELM + "22' value='' pattern='number' required>";
                    hiddenHtml +="<input type='hidden' id='" + JTN_CHILDAGE_ELM + "23' name='" + JTN_CHILDAGE_ELM + "23' value='' pattern='number' required>";
                    hiddenHtml +="<input type='hidden' id='" + JTN_CHILDAGE_ELM + "24' name='" + JTN_CHILDAGE_ELM + "24' value='' pattern='number' required>";
                    hiddenHtml +="<input type='hidden' id='" + JTN_HOTELRANK_ELM + "' name='" + JTN_HOTELRANK_ELM + "' value=''>";
                    hiddenHtml +="<input type='hidden' id='" + JTN_HOTELNAME_ELM + "' name='" + JTN_HOTELNAME_ELM + "' value='' pattern='text'>";
                    hiddenHtml +="<input type='hidden' id='" + JTN_HOTELNAME_HDN_ELM + "' name='" + JTN_HOTELNAME_HDN_ELM + "' value=''>";
                    hiddenHtml +="<input name='JTNtourSearch' type='hidden' id='JTNtourSearch' value='"+ JTNtourSearch + "' />";
                    hiddenHtml += "<input name='JTNhotelSearch' type='hidden' id='JTNhotelSearch' value='"+ JTNhotelSearch + "' />";
                    hiddenHtml += "</form>"
                    
                    return hiddenHtml;
        },
        ///////////////////////////////////////////////////////////////////////////
        GetTourHidden : function(target_url,target){
                        
                    var hiddenHtml;

                    hiddenHtml="<form id='JTNform' method='post' Accept-charset='utf-8' target='" + target + "' action='" + target_url + "'>";
                    hiddenHtml += "<input type='hidden' id='JTNhdnAgentCode' name='JTNhdnAgentCode' value='" + JTNagentCode + "'>";                
                    hiddenHtml +="<input type='hidden' id='" + JTN_TOUR_CAT_ELM + "' name='" + JTN_TOUR_CAT_ELM + "' value='' required>";
                    hiddenHtml +="<input type='hidden' id='" + JTN_TOUR_SUBCAT_ELM + "' name='" + JTN_TOUR_SUBCAT_ELM + "' value=''>";
                    hiddenHtml +="<input type='hidden' id='" + JTN_TOURDATE_ELM + "' name='" + JTN_TOURDATE_ELM + "' value='' pattern='date' required>";
                    hiddenHtml +="<input type='hidden' id='" + JTN_TOURPAXCONT_ELM + "' name='" + JTN_TOURPAXCONT_ELM + "' value=''>";
                    hiddenHtml +="<input type='hidden' id='" + JTN_SEARCH_ELM + "' name='" + JTN_SEARCH_ELM + "' value=''>";
                    hiddenHtml +="<input type='hidden' id='" + JTN_SEARCH_HDN_ELM + "' name='" + JTN_SEARCH_HDN_ELM + "' value='' required>";
                    hiddenHtml +="<input name='JTNtourSearch' type='hidden' id='JTNtourSearch' value='"+ JTNtourSearch + "' />";
                    hiddenHtml += "<input name='JTNhotelSearch' type='hidden' id='JTNhotelSearch' value='"+ JTNhotelSearch + "' />";
                    hiddenHtml += "</form>"
                    
                    return hiddenHtml;
        },
        ///////////////////////////////////////////////////////////////////////////
        GetMusicalHidden : function(target_url,target){ //add for musical
                        
                    var hiddenHtml;

                    hiddenHtml="<form id='JTNform' method='post' Accept-charset='utf-8' target='" + target + "' action='" + target_url + "'>";
                    hiddenHtml += "<input type='hidden' id='JTNhdnAgentCode' name='JTNhdnAgentCode' value='" + JTNagentCode + "'>";                
                    hiddenHtml +="<input type='hidden' id='" + JTN_MUSICAL_CITY_ELM + "' name='" + JTN_MUSICAL_CITY_ELM + "' value='' required>";
                    hiddenHtml +="<input type='hidden' id='" + JTN_MUSICALDATE_ELM + "' name='" + JTN_MUSICALDATE_ELM + "' value='' pattern='date' required>";
                    hiddenHtml +="<input type='hidden' id='" + JTN_MUSICAL_CNT_ELM + "' name='" + JTN_MUSICAL_CNT_ELM + "' value=''>";
                    hiddenHtml +="<input name='JTNtourSearch' type='hidden' id='JTNtourSearch' value='"+ JTNtourSearch + "' />";
                    hiddenHtml += "<input name='JTNhotelSearch' type='hidden' id='JTNhotelSearch' value='"+ JTNhotelSearch + "' />";
                    hiddenHtml += "</form>"
                    
                    return hiddenHtml;
        },
        ///////////////////////////////////////////////////////////////////////////
        GetCityList : function(){
        
            var city;
            
            if (JTN_AUTOCOMP_CITY){
            
                city = JTN_AUTOCOMP_CITY;
                
            }
            
            return city ;
        },
        ///////////////////////////////////////////////////////////////////////////
        GetVariable : function(var_name){
        
            var value = "";
            
            if (var_name == "JTNtourSearch"){
                value = JTNtourSearch;
            } else if (var_name == "JTNhotelSearch"){
                value = JTNhotelSearch;
            } else if (var_name == "JTNmusicalSearch"){ //add for musical
                value = JTNmusicalSearch;
            } else if (var_name == "JTNiconColor"){
                value = JTNiconColor;
            }
            
            return value ;
        },
        ///////////////////////////////////////////////////////////////////////////
        GetHTML : function(category){
        
            var JTNMapHtml = new String.builder();
            
            JTNMapHtml.append("<div style='bgcolor:#ecedef'>" );
            JTNMapHtml.append("<div id='JTNbodysectionMap' style='width: 448px; border-width: " + JTNborderWidth + "px;border-style: solid;'>");
            JTNMapHtml.append("<table id='JTNtableOuter' cellpadding='0' cellspacing='0'>");
            JTNMapHtml.append("<tr>");
            JTNMapHtml.append("<td>");
            JTNMapHtml.append("<object classid='clsid:d27cdb6e-ae6d-11cf-96b8-444553540000' codebase='http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0' width='448' height='278' id='JTNPluginMFlash' name='JTNPluginMFlash' align='middle' swLiveConnect=true VIEWASTEXT>");
            JTNMapHtml.append("<param name='allowScriptAccess' value='always' />");
            JTNMapHtml.append("<param name='allowFullScreen' value='false' />");
            JTNMapHtml.append("<param id ='JTNPluginMFlashParam' name='movie' value='" + JTN_DOMAIN + "Plugin/Map/flash/JTNPluginM" + category + JTNiconColor + ".swf' />");
            JTNMapHtml.append("<param name='quality' value='high' />");
            JTNMapHtml.append("<param name='bgcolor' value='#ecedef' />");
            JTNMapHtml.append("<embed id ='JTNPluginMFlashEmbed' swLiveConnect=true quality='high' bgcolor='#ecedef' width='448' height='278' name='JTNPluginMFlashEmbed' align='middle' allowScriptAccess='always' allowFullScreen='false' type='application/x-shockwave-flash' pluginspage='http://www.macromedia.com/go/getflashplayer'src='" + JTN_DOMAIN + "Plugin/Map/flash/JTNPluginM" + category + JTNiconColor + ".swf'/>");
            JTNMapHtml.append("</object>");
            JTNMapHtml.append("</td>");
            JTNMapHtml.append("</tr>");
            JTNMapHtml.append("</table>");
            JTNMapHtml.append("</div>");
            JTNMapHtml.append("<div id='JTNhdnsectionMap'>");
            JTNMapHtml.append("</div>");
            JTNMapHtml.append("</div>");

            return JTNMapHtml.toString();
        },
        ///////////////////////////////////////////////////////////////////////////
        GetMapHTML : function(category){

            if (category==JTN_HOTEL){
                return JTNMapHotelHtml;
            }
            else if (category==JTN_TOUR){
                return JTNMapTourHtml;
            }
            else if (category==JTN_MUSICAL){ //add for musical
                return JTNMapMusicalHtml;
            }
        },
        ///////////////////////////////////////////////////////////////////////////
        // add by B3 H.Mizuno 9/16/2008
        GetFlashVersion : function(desc) {
            var matches = desc.match(/[\d]+/g);
            matches.length = 3;  // To standardize IE vs FF
            return matches.join('.');
        },
        ///////////////////////////////////////////////////////////////////////////
        // add by B3 H.Mizuno 9/16/2008
        CheckFlashVersion : function(){ // only for non-IE browser
            var flashVersion = '';
            var hasFlash = false;
            
            // non-IE browser (1)
            if (navigator.plugins && navigator.plugins.length) 
            {
                var plugin = navigator.plugins['Shockwave Flash'];
                if (plugin) 
                {
                    hasFlash = true;
                    if (plugin.description) 
                    {
                        flashVersion = JTN.PluginM.GetFlashVersion(plugin.description);
                    }
                }
                if (navigator.plugins['Shockwave Flash 2.0']) 
                {
                    hasFlash = true;
                    flashVersion = '2.0.0.11';
                }
            } 
            
            // non-IE browser (2)
            else if (navigator.mimeTypes && navigator.mimeTypes.length) 
            {
                var mimeType = navigator.mimeTypes['application/x-shockwave-flash'];
                hasFlash = mimeType && mimeType.enabledPlugin;
                if (hasFlash) 
                {
                    flashVersion = getFlashVersion(mimeType.enabledPlugin.description);
                }
            } 
            
            // IE (does NOT work property)
            else 
            { 
                try 
                {
                    // Try 7 first, since we know we can use GetVariable with it
                    var ax = new ActiveXObject('ShockwaveFlash.ShockwaveFlash.7');
                    hasFlash = true;
                    flashVersion = getFlashVersion(ax.GetVariable('$version'));
                    alert("get in 7");
                } 
                catch (e) 
                {
                    // Try 6 next, some versions are known to crash with GetVariable calls
                    try 
                    {
                        var ax = new ActiveXObject('ShockwaveFlash.ShockwaveFlash.6');
                        hasFlash = true;
                        flashVersion = '6.0.21';  // First public version of Flash 6
                    } 
                    catch (e) 
                    {
                        try 
                        {
                            // Try the default activeX
                            var ax = new ActiveXObject('ShockwaveFlash.ShockwaveFlash');
                            hasFlash = true;
                            flashVersion = getFlashVersion(ax.GetVariable('$version'));
                        } 
                        catch (e) 
                        {
                        // No flash
                        }
                    }
                }
            }
            return flashVersion;
        }
        
    }
};


// Load Plugin Map

JTN.PluginCommon.AddEvent(window, 'load', JTN.PluginM.Init, false);