﻿﻿	function MM_swapImgRestore() { //v3.0
		var	i,x,a=document.MM_sr;	for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
	}
	
	function MM_preloadImages()	{	//v3.0
		var	d=document;	if(d.images){	if(!d.MM_p)	d.MM_p=new Array();
			var	i,j=d.MM_p.length,a=MM_preloadImages.arguments;	for(i=0; i<a.length; i++)
			if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image;	d.MM_p[j++].src=a[i];}}
	}
	
	function MM_findObj(n, d)	{	//v3.0
		var	p,i,x;	if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length)	{
			d=parent.frames[n.substring(p+1)].document;	n=n.substring(0,p);}
		if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++)	x=d.forms[i][n];
		for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document); return	x;
	}
	
	function MM_swapImage()	{	//v3.0
		var	i,j=0,x,a=MM_swapImage.arguments;	document.MM_sr=new Array;	for(i=0;i<(a.length-2);i+=3)
		 if	((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x;	if(!x.oSrc)	x.oSrc=x.src;	x.src=a[i+2];}
	}

    function enableHTML(item) {    	
        var content;

        if (item != null) {
            content = item.innerHTML;
            content = content.replace(/&lt;/g, "<");
            content = content.replace(/&gt;/g, ">");
            content = content.replace(/&amp;/g, "&");
            item.innerHTML = content;
        }   
    }

    /**
     * 브라우저의 AJAX사용 가능 확인
     * @return
     */
    function getXMLHttpObject() {
        var xmlHttp;

        try {
            xmlHttp = new XMLHttpRequest();
        }catch (e) {
            try {
                xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
            }catch (e) {
                try {
                    xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
                }catch (e) {
                    alert('ブラウザがAJAX非対応です。');
                    return null;
                }
            }
        }
    
        return xmlHttp;
    }

    /**
     * ID중복확인
     * @param loginID
     * @param okMsg
     * @return
     */
    function checkDuplicateLoginID(loginID, okMsg) {
        var xmlHttp;
        var isDuplicate;

        xmlHttp = getXMLHttpObject();
        if (xmlHttp == null) return;

        xmlHttp.onreadystatechange = function() 
        {
            if (xmlHttp.readyState == 4){
                if (xmlHttp.status == 200){
                    if (xmlHttp.responseText == 1) {
                        isDuplicate = true;
                        alert('このIDは使用中です。');
                    }else {
                        isDuplicate = false;
                        if (okMsg)
                            alert('このIDは使用可能です。');
                    }
                }
            }
        }    

        xmlHttp.open("GET", "ajax.action?method=userCheck&loginID=" + loginID, okMsg);
        xmlHttp.send(null);

        if (!okMsg) {
            return isDuplicate;
        }
    }

    /**
     * 우편번호 유효확인
     * @param postalCode
     * @param async
     * @return
     */
    function checkPostalCode(postalCode, async) {
        var xmlHttp;
        var isValid;

        xmlHttp = getXMLHttpObject();
        if (xmlHttp == null) return;

        xmlHttp.onreadystatechange = function() 
        {
            if (xmlHttp.readyState == 4) {
                if (xmlHttp.status == 200) {
                    if (xmlHttp.responseText == 1) {
                        isValid = true;
                    }else {
                        isValid = false;
                        alert('存在しない郵便番号です。');
                    }
                }
            }
        }    

        xmlHttp.open("GET", "ajax.action?method=postalCode&postalCode=" + postalCode, async);
        xmlHttp.send(null);

        if (!async) {
            return isValid;
        }
    }

    //not found
    function doRanking(programID) {
        var xmlHttp;
        var isDuplicate;

        xmlHttp = getXMLHttpObject();
        if (xmlHttp == null) return;

        xmlHttp.onreadystatechange = function() {
            if (xmlHttp.readyState == 4) {
                if (xmlHttp.status == 200) {
                    if (xmlHttp.responseText == 1) {
                    }else {
                    }
                }
            }
        }    

        xmlHttp.open("GET", "ajax.action?method=ranking&programID=" + programID, true);
        xmlHttp.send(null);
    }

    /**
     * 패키지 구입전 유효확인
     * @param packageID
     * @return
     */
    function checkPackagePurchase(packageID) {
        var xmlHttp;
        var rc = -10; // HTTP status code is not 200

        xmlHttp = getXMLHttpObject();
        
        if (xmlHttp == null) return;

        xmlHttp.onreadystatechange = function() {
            if (xmlHttp.readyState == 4) {
                if (xmlHttp.status == 200) {
                    rc = xmlHttp.responseText;
                }
            }
        }    

        xmlHttp.open("GET", "check_purchase.action?isPackage=1&itemID=" + packageID, false);
        xmlHttp.send(null);
        
        return rc;
    }

	function login() {		
		var loginForm = document.login;
		
        if (loginForm.loginID.value == '') {
            alert('IDを入力してください。');
            return;
        }

        if (loginForm.password.value == '') {
            alert('パスワードを入力してください。');
            return;
        }
        
        if (loginForm.keepID.checked == true) {
            var nextYear = new Date();
            nextYear.setFullYear(nextYear.getFullYear() + 1);
            document.cookie = "imx_id=" + loginForm.loginID.value + "; expires=" + nextYear.toGMTString();
        }
        else {
            var nextYear = new Date();
            nextYear.setFullYear(nextYear.getFullYear() - 10);
            document.cookie = "imx_id=" + loginForm.loginID.value + "; expires=" + nextYear.toGMTString();
        }

		loginForm.submit();
	}
	
	function logout() {
		document.logout.submit();
	}

    function shop() {
        document.shop.submit();
    }
    
    function club() {
        document.club.submit();
    }

    function blog() {
        document.blog.submit();
    }

	function assortedSearch() {
		var searchForm = document.assortedSearch;
		
        if (searchForm.startProductionYear.options[searchForm.startProductionYear.selectedIndex].text > searchForm.endProductionYear.options[searchForm.endProductionYear.selectedIndex].text) 
        {
            alert('放送年は同じか右側が大きくなるように選してください。');
            return;
        }

		searchForm.submit();
	}
	
    function checkForSearchSubmit() {
        var keyword;

        keyword = document.search.keyword_input.value;
        keyword = convertSearchKeyword(keyword);
        document.search.keyword.value = keyword;

        return true;
    }

	function search() {
        checkForSearchSubmit();
		document.search.submit();
	}	

    var hasFocus = false;
    function searchFocused() {
        hasFocus = true;
    }

    function searchBlurred() {
        hasFocus = false;
    }
	
	document.onkeypress = myEvent ;
	function myEvent() {
    	if (window.event.keyCode == 13) {
			if (document.login != null && hasFocus == false) 
				login();

         	return true;
    	} 
	} 
    
    function handleKeepID() {
        var allcookies = document.cookie;
   
        var pos = allcookies.indexOf("imx_id=");
        if (pos != -1) {
            var start = pos + 7;
            var end = allcookies.indexOf(";", start);
            
            if (end == -1) end = allcookies.length;
            
            var value = allcookies.substring(start, end);
            if (value != "" && document.login != null) {
                document.login.keepID.checked = true;
                document.login.loginID.value = value;
            }
        }
    }

    function handleLoad(category, actorID, startProductionYear, endProductionYear, isAvailable, isCompleted) {
        var item1, item2;
        var searchForm = document.assortedSearch;

        handleKeepID();

        if (category > 3) category = 0;        
        
        searchForm.category.selectedIndex = category;

		if (actorID == 0) {
			searchForm.actorID.selectedIndex = 0;
		}else {
			for (var i = 0; i < searchForm.actorID.length; i++) {
				if (searchForm.actorID.options[i].value == actorID) {
					searchForm.actorID.selectedIndex = i;
					break;
				}
			}
		}
		
		if (startProductionYear == 0) {
			searchForm.startProductionYear.selectedIndex = 0;
		}else {
			for (var i = 0; i < searchForm.startProductionYear.length; i++) {
				if (searchForm.startProductionYear.options[i].text == startProductionYear) {
					searchForm.startProductionYear.selectedIndex = i;
					break;
				}
			}
		}

        if (endProductionYear == 0) {
            searchForm.endProductionYear.selectedIndex = searchForm.endProductionYear.length - 1;
        }else {
			for (var i = 0; i < searchForm.endProductionYear.length; i++) {
				if (searchForm.endProductionYear.options[i].text == endProductionYear) {
					searchForm.endProductionYear.selectedIndex = i;
					break;
				}
			}
		}                
        
        if (isAvailable == 1) {
            searchForm.isAvailable.checked = true;
        }
        
        if (isCompleted == 0) {
            searchForm.isCompleted.selectedIndex = 1;
        }

        item1 = document.getElementById("rankitem1");
        item2 = document.getElementById("rankitem2");

        if (item1 != null && item2 != null) {
            item1.style.position = "absolute";
            item2.style.position = item1.style.position;
            item2.style.left = item1.style.left;
            item2.style.top = item1.style.top;
        }
    }
	
	function handleRanking(num) {
	    var item1, item2;

	    item1 = document.getElementById("rankitem1");
	    item2 = document.getElementById("rankitem2");
	    
	    if (num == 1) {	    
	        item1.style.visibility = "visible";
	        item2.style.visibility = "hidden";	    
	    }
	    else if (num == 2) {
	        item1.style.visibility = "hidden";
	        item2.style.visibility = "visible";
	    } 
	}

    function episodePopup(episodeNo) {
        var item;
        
        item = document.getElementById("episode" + episodeNo);
        if (item != null) {
            item.style.display = "inline";
            item.style.position = "absolute";
        }
    }
    
    function episodePopupHide(episodeNo) {
        var item;
        
        item = document.getElementById("episode" + episodeNo);
        if (item != null) {
            item.style.display = "none";
        }
    }

    function moveToURL(url) {
        window.location = url;
    }
    
    function deletePost(url) {
        if (confirm("ほんとうに削除しますか?"))
            window.location = url;
        else
            return;
    }

    function handleExternal() {
        document.external.submit();
    }
    
    //Log In Check
    function checkLogin() {
    	var userForm = document.info;        	
    	
        if (userForm.loginID.value == ''){       
            if(userForm.cooperID.value == 'YH'){
               	fn_yahooLogin();
            	//alert('Yahoo!決済ページへ移動中です。そのままお待ちください。');
            }else{        
            	alert('先にログインしてください。');
            	moveToURL('login.action?category=' + userForm.category.value);
            }           
            return false;
        }else {        	
            return true;
        }
    }
    
    function checkLoginAndGo(returnURL) {
    	var userForm = document.info;  
        
        if (userForm.loginID.value == '') {        	
        	if(userForm.cooperID.value == 'YH'){
               	fn_yahooLogin();
            	//alert('Yahoo!決済ページへ移動中です。そのままお待ちください。');
            }else{        
            	alert('先にログインしてください。');
            	returnURL = returnURL.replace(/&/g, "%26");
                moveToURL('login.action?category=' + document.info.category.value + '&returnURL=' + returnURL);
            }            
            return false;
        }else {
            return true;
        }
    }

    /**
     * 패키지 상품 구입
     * @param productType
     * @param programID
     * @param itemID
     * @param pid
     * @return
     */
    function buyPackage(productType, programID, itemID, pid) 
    {
    	var userForm = document.info;
        var rc;
        
        if (checkLogin()){	
        	rc = checkPackagePurchase(itemID);
	        switch (Number(rc)) {
	            case 0: alert("このパッケージは購入済みでまだ有効です。"); break;
	            		//이 패키지는 구입이 끝난 상태로 아직 유효합니다
	            case -1: alert("IDが存在しません。"); break;
	            		//ID가 존재하지 않습니다
	            case -2: alert("パッケージがシステムに存在しません。"); break;
	            		//패키지가 시스템에 존재하지 않습니다
	            case -4: alert("不明なエラーが発生しました。"); break;
	            		//불명한 에러가 발생했습니다
	        }
	            
	        if (rc == -3){
	        	moveToURL('check_purchase.action?stepNum=-2&method=ask&param=ppv&category=' + userForm.category.value + '&programID=' + programID + '&itemID=' + itemID + '&isPackage=1');	        	
	        }
        }else{
        	return;
        }
    }

    /**
     * episode 구입
     * @param productType
     * @param programID
     * @param itemID
     * @param isPackage
     * @return
     */
    function askPurchase(productType, programID, itemID, isPackage) {
    	var userForm = document.info;
    	
    	if (checkLogin()) {        	        	
            if (productType == 1 && userForm.isSVOD.value != 1) {
                moveToURL('check_purchase.action?method=ask&param=svod&category=' + userForm.category.value + '&programID=' + programID + '&itemID=' + itemID + '&isPackage=' + isPackage);
            }
            else if (productType == 0) {
                moveToURL('check_purchase.action?method=ask&param=ppv&category=' + userForm.category.value + '&programID=' + programID + '&itemID=' + itemID + '&isPackage=' + isPackage);
            }        	
        }else{
        	return;
        }
    }

    /**
     * 마이페이지에서의 episode 구입 :: from mypage-bilinglist
     * @param productType
     * @param programID
     * @param itemID
     * @param isPackage
     * @param pid
     * @return
     */
    function askPurchaseFromMyPage(productType, programID, itemID, isPackage, pid) {
    	var userForm = document.info;
    	
        if (checkLogin()) {
            if (productType == 1 && userForm.isSVOD.value != 1) {
                moveToURL('check_purchase.action?mypage=1&method=ask&param=svod&category=' + userForm.category.value + '&programID=' + programID + '&itemID=' + itemID + '&isPackage=' + isPackage);
            }
            else if (productType == 0) {
                moveToURL('check_purchase.action?mypage=1&method=ask&param=ppv&category=' + userForm.category.value + '&programID=' + programID + '&itemID=' + itemID + '&isPackage=' + isPackage);
            }
        }else{
        	return;
        }
    }

    function checkForPostEdit() {
        count = 0;
        postID = 0;

        if (document.wm.postIDs == null)
            return;

        if (document.wm.postIDs.length == null) {
            if (document.wm.postIDs.checked == true) {
                postID = document.wm.postIDs.value;
                count++;                
            }
        }
        else {
            for (i = 0; i < document.wm.postIDs.length; i++) {
                if (document.wm.postIDs[i].checked == true) {
                    postID = document.wm.postIDs[i].value;
                    count++;                
                    if (count > 1)
                        break;
                }
            }
        }    

        if (count == 0) {
            alert("編集する掲示物を選択してください。");
        }
        else if (count > 1) {
            alert("1つだけ選択してください。");
        }
        else {
            document.wm.mode.value = "view";
            document.wm.op.value = "edit";
            document.wm.postID.value = postID;
            document.wm.submit();
        }
    }

    function confirmAgreement() {
        if (document.signup.agreement.checked != true) {
            alert("次に進むには同意にチェックしてください。");
            return false;
        }
        return true;
    }

    function confirmPostDelete() {
        isChecked = false;

        if (document.wm.postIDs == null)
            return false;

        if (document.wm.postIDs.length == null) {
            if (document.wm.postIDs.checked == true) {
                isChecked = true;
            }
        }
        else {
            for (i = 0; i < document.wm.postIDs.length; i++) {
                if (document.wm.postIDs[i].checked == true) {
                    isChecked = true;
                    break;
                }
            }
        }

        if (!isChecked) {
            alert("削除する掲示物を選択してください。");
            return false;
        }
        else {
            return confirm("ほんとうに削除しますか?");
        }
    }

    function confirmDelete() {
        return confirm("本当に削除しますか?");
    }
        
    function checkStringValidity(str) {
        var ch;

        for (i = 0; i < str.length; i++) 
        {
            ch = str.charAt(i);
            
            if (ch >= 'ｦ' && ch <= 'ﾟ') {
                alert('カタカナは全角で入力してください。');
                return false;
            }else if (ch >= '０' && ch <= '９') {
                alert('数字は半角で入力してください。');
                return false;
            }else if ((ch >= 'Ａ' && ch <= 'Ｚ') || (ch >= 'ａ' && ch <= 'ｚ')) {
                alert('アルファベットは半角で入力してください。');
                return false;
            }else if (ch == '･') {
                alert('「・」は全角で入力してください。');
                return false;
            }else if (ch == '／') {
                alert('「/」は半角で入力してください。');
                return false;
            }
        }
        return true;
    }

    function checkStringPronounceValidity(str) {
        return checkStringValidity(str);
    }

    function checkTitlePronounceValidity(str) {
        var ch;
        var pos;
        var HI = "あいうえおかきくけこがぎぐげごさしすせそざじずぜぞたちつてとだぢづでどなにぬねのはひふへほばびぶべぼぱぴぷぺぽまみむめもやゆよらりるれろわをん";

        if (str.length > 0) {
            ch = str.charAt(0);

            if ((pos = HI.indexOf(ch)) == -1) {
                alert('タイトルのフリガナはひらがなで始めてください。');
                return false;
            }
        }

        return checkStringValidity(str);
    }

    function checkNamePronounceValidity(str) {
        var KF = "アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヲンァィゥェォャュョ、。「」（）ー－゛゜ヴガギグゲゴザジズゼゾダヂヅデドバビブベボパピプペポ";
        var ch;

        for (i = 0; i < str.length; i++) {
            ch = str.charAt(i);   

            if (KF.indexOf(ch) == -1) {
                return false;
            }
        }

        return true;
    }

    function toZenkaku(org) {

	    txt = "ｱｲｳｴｵｶｷｸｹｺｻｼｽｾｿﾀﾁﾂﾃﾄﾅﾆﾇﾈﾉﾊﾋﾌﾍﾎﾏﾐﾑﾒﾓﾔﾕﾖﾗﾘﾙﾚﾛﾜｦﾝｧｨｩｪｫｬｭｮ､｡｢｣()ｰﾞﾟ";
	    zen = "アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヲンァィゥェォャュョ、。「」（）－゛゜";
	    duk = "　　ヴ　　ガギグゲゴザジズゼゾダヂヅデド　　　　　バビブベボ";
	    you = "　　　　　　　　　　　　　　　　　　　　　　　　　パピプペポ";
	    str = "";
	    count = 1;
    	
	    for (i=0; i<org.length; i++) {
            c = org.charAt(i);
            if (c < "ア" || c > "ン") {
                if (c != "-" && c != "ー" && c != "‐" && c != "-" && c != "-" && c != "ー" && c != "―" && c != "‐" && c != "－" && c != "─" && c != "━" && c != "ヴ") {
                //if (intChr != "（" && intChr != "）" && intChr != "(" && intChr != ")") {
                    if (c != "（" && c != "）" && c != "(" && c != ")") {
                        n = txt.indexOf(c,0);
                        if (i > 0 && (n == 61 || n == 62)) {	// ﾞ or ﾟ
                            c = org.charAt(i-1);
                            if (n == 61) {  // ﾞ
                                n = txt.indexOf(c,0);
                                c = "　";
                                if (n < duk.length)
                                    c = duk.charAt(n);
                            } else {        // ﾟ
                                n = txt.indexOf(c,0);
                                c = "　";
                                if (n < you.length)
                                    c = you.charAt(n);
                            }
                            if (c == "　") {    // 濁音も 半濁音も ない 場合
                                c = org.charAt(i);
                                n = txt.indexOf(c,0);
                                c = zen.charAt(n);
                            } else {
                                str = str.substring(0, i-count);
                                count++;
                            }
                        } else if (n >= 0) {
                            c = zen.charAt(n);
                        }
                    }
                }
            }
            //半角のハイフン（半角カナのハイフンではない）は全角に変換
            if (c == "-") {
                c = "－";
            }
            str += c;
	    }
	    return str;
    }

    function convertSearchKeyword(str) {
        var ch, newStr;       
        var pos; 
        var AF = "０１２３４５６７８９ＡＢＣＤＥＦＧＨＩＪＫＬＭＮＯＰＱＲＳＴＵＶＷＸＹＺａｂｃｄｅｆｇｈｉｊｋｌｍｎｏｐｑｒｓｔｕｖｗｘｙｚ";
        var AH = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
        var KH = "ｱｲｳｴｵｶｷｸｹｺｻｼｽｾｿﾀﾁﾂﾃﾄﾅﾆﾇﾈﾉﾊﾋﾌﾍﾎﾏﾐﾑﾒﾓﾔﾕﾖﾗﾘﾙﾚﾛﾜｦﾝｧｨｩｪｫｬｭｮｯ､｡ｰ｢｣ﾞﾟ";
        var KF = "アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヲンァィゥェォャュョッ、。ー「」　　";

        newStr = "";
        for (i = 0; i < str.length; i++) {
            ch = str.charAt(i);  

            if ((pos = AF.indexOf(ch)) != -1) {
                ch = AH.charAt(pos);
            }else if (ch == '･') { 
                ch = '・'; // to full-width
            }

            newStr += ch;
        }
        newStr = toZenkaku(newStr);

        return newStr;
    }
    
    //input validation check
    function containsCharsOnly(input, addChars)
    {
    	var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789" + (addChars ? addChars : '');

    	for(var i=0 ; i < input.value.length; i++){
    		if(chars.indexOf(input.value.charAt(i)) < 0)
    			return false;
    	}    	
    	return true;
    }
          
    function fn_denyCountryUser(){
    	alert("KBS Download Mallは日本国内でのみ視聴が可能です。\n " + "本サービスは 日本国内の居住者向けにサービスしております。\n" +
    		  "（お客様がお使いのIPアドレスは、IP判定データベース上、\n" + "  国内のIPアドレスではございませんのでご利用いただくことができません） ");
    }
    
    /**
     * Yahoo Package Button 
     * @param _object
     * @return
     */
    function fn_purchMouseOverOut(_object){       	
    	if(_object.className == "purchOn"){
    		_object.className = "purchOff";
    	}else if(_object.className == "purchOff"){
    		_object.className = "purchOn";
    	}
    }
    
    /**
     * KBS-Y에서 KBS페이지로 이동
     * @param _kbsUrl
     * @return
     */
    function goKBS(_kbsUrl){    	
    	if(typeof _kbsUrl == 'undefined'){
    		_kbsUrl = "/top.action";
    	}
    	
    	if(confirm("ここから先はYahoo! JAPAN IDおよび\nYahoo！ウォレットが使用できません")){
    		moveToURL(_kbsUrl);
    	}else{
    		return;
    	}    	
    }    