﻿
	var IDNAME_RESULT = "sresult";
	var IDNAME_CLIPBOARDCOPY = "copybox";
	var PATH_XMLPRG = "/ad.php";

	var MSG_URLERROR = "正しいURLを入力してください.";
	var MSG_NOWSEARCHING = "検索中です.";
	var MSG_OK = "RSSがみつかりました.";
	var MSG_OK_MULTI = "RSSが複数みつかりました.";
	var MSG_NG = "RSSが発見できませんでした.";
	var MSG_ERROR = "検索に失敗しました。";
	var MSG_SETCLIPBOARD = "クリップボードにコピーしました.";

	var HTML_RESULTICO = "<img src='images/result.gif' align='absmiddle'>"


	var status = false;

	// UI

	function clicked(){
		
		if(status) 	alert(MSG_NOWSEARCHING);
		if(!document.urlform.textfield.value.match(/(https?):\/\/[!#-9A-~]+\.+[a-z0-9]+/i)){
			alert(MSG_URLERROR);
			return false;
		}
		formDisabled(false);
		checkStart(document.urlform.textfield.value);
	}	

	function formDisabled(b){
		document.urlform.textfield.disabled = !b;
		status = !b;
		//document.urlform.search.disabled = !b;
	}

	function reset(){
		if(locationCheck()){
			formDisabled(true);
			if(getLocationHashStr() != ''){
				document.urlform.textfield.value = getLocationHashStr();
				clicked();
			}else{
				document.urlform.textfield.value = "http://"
			}
		}
	}

	// LIST
	
		function setViewResult(data){
			
			var resText = "<div style='margin:10px;'><table cellpadding='5'>";
			var resConter = 0;
	
			var trgData = data.xml.item;
			for(var i=0;i<trgData.length;i++){
				if(typeof data.xml.item[i].item != 'undefined'){
					if(typeof data.xml.item[i].item == "string"){
						resText += "<tr>";
						resText += getListItem(data.xml.item[i].item,data.xml.item[i].id);
						resText += "</tr>";
						resConter++;
					}else{
						for(var j in data.xml.item[i].item){
							resText += "<tr>";
							resText += getListItem(data.xml.item[i].item[j],data.xml.item[i].id);
							resText += "</tr>";
							resConter++;
						}
					}

				}
			}
			resText += "</table></div><br/><br/><br/>";

			if(resConter == 1) setResult(getResultMSG(MSG_OK) + resText);
			else if(resConter > 1) setResult(getResultMSG(MSG_OK_MULTI) + resText);
			else setResult(getResultMSG(MSG_NG) + "<br><br>");	
			
			formDisabled(true);
		}
		
		function getListItem(urlstr,typestr){
			urlstr = unescape(urlstr);
			var tmp = "<td><img src='images/" + typestr + ".gif'></td><td><b>" + urlstr + "</b></td>";
			if(hasFlashPlayer() && getFlashPlayerVersion()[0] >= 7) tmp += "<td><a href='javascript:void(0);' onClick='setClipboard(\""+ urlstr +"\")'><img src='images/btn_copy.gif' border='0'></a></td>";
			if(typestr == "rss") tmp += "<td><a href='/blogparts/#" + escape(urlstr) + "'><img src='images/makeblgpt.gif' border='0'></a></td>";
			return tmp;
		}

		function getResultMSG(str,type){
			var tmp = "<div style='font-size:14px;color:#4d4d4d'>";
			if(type != undefined) tmp += "<img src='images/result_" + type + ".gif' align='absmiddle'>"
			else tmp += "<img src='images/result.gif' align='absmiddle'>"
			return tmp + " " + str;
		}
	
		function setResult(str){
			document.getElementById(IDNAME_RESULT).innerHTML = str;	
		}
	
	// LOAD XML
	
		function checkStart(trgUrl){
			setResult(getNowLoadingView());
			var siid = setInterval(function(){
				clearInterval(siid);
				getXMLDocument(PATH_XMLPRG + '?l=' + trgUrl);
			},2000);

		}
		
		function getXMLDocument(trgPrg){
			var o = this;
			var http = new JKL.ParseXML(trgPrg);
			var func = setViewResult;
			var func2 = getXMLDocumentOnError;
			http.async(func);
			http.onerror(func2);
			http.parse();
		}
		
		function getXMLDocumentOnError(){
			setResult(getResultMSG(MSG_ERROR,2) + "<br><br>");
			formDisabled(true);
		}

	//Utils

		function locationCheck(){
			var myHost = window.location.host.toLowerCase();
			if(myHost != "yourrss.jp" && myHost != "dev.yourrss.jp" && myHost != "localhost"){
				var tmp = location.href.split("/");
				tmp[2] = "yourrss.jp";
				tmp = tmp.join("/");
				window.location.replace(tmp);
			}else{
				return true;
			}
		}

		function getLocationHashStr(){
			if(location.search.substr(1) != "") return location.search.substr(1);
			if(location.hash.substr(1) != "") return location.hash.substr(1);
			return "";
		}

		//Nowlaoding

			function getNowLoadingView(){
				if(hasFlashPlayer()){
					var myTxt = '<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=4,0,0,0" width="30" height="25" id="nowloading" align="middle"><param name="allowScriptAccess" value="sameDomain" /><param name="movie" value="images/nowloading.swf" /><param name="quality" value="high" /><param name="bgcolor" value="#ffffff" /><embed src="images/nowloading.swf" quality="high" bgcolor="#ffffff" width="30" height="25" name="nowloading" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" /></object><br/><br/>';
				}else{
					var myTxt = '<img src="images/nowloading.gif">';
				}
				return myTxt;
			}

		//Copy
		
			function setClipboard(str){
				document.getElementById(IDNAME_CLIPBOARDCOPY).innerHTML = getCopyComponentSrc(str);	
				alert(MSG_SETCLIPBOARD);
			}
			
			function getCopyComponentSrc(txt){
				var tmpSrc = '';
				tmpSrc += '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="1" height="1">';
				tmpSrc += '<param name="movie" value="setClipboardCopy.swf?str=' + txt + '"/>';
				tmpSrc += '<embed src="setClipboardCopy.swf' + txt + '" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="1" height="1"></embed>';
				tmpSrc += '</object>';
				return tmpSrc;
			}

		//Flash player

			function getFlashPlayerVersion(){
				var PlayerVersion = [0,0,0];
				if(navigator.plugins && navigator.mimeTypes.length){
					var x = navigator.plugins["Shockwave Flash"];
					if(x && x.description) {
						PlayerVersion = x.description.replace(/([a-zA-Z]|\s)+/, "").replace(/(\s+r|\s+b[0-9]+)/, ".").split(".");
					}
				}else{
					try{
						var axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");
					}catch(e){
						try {
							var axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");
							PlayerVersion = [6,0,21];
							axo.AllowScriptAccess = "always"; // throws if player version < 6.0.47 (thanks to Michael Williams @ Adobe for this code)
						} catch(e) {
							if (PlayerVersion[0] == 6) {
								return PlayerVersion;
							}
						}
						try {
							axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
						} catch(e) {}
					}
					if (axo != null) {
						PlayerVersion = axo.GetVariable("$version").split(" ")[1].split(",");
					}
				}
				return PlayerVersion;
			}

			function hasFlashPlayer(){
				if(getFlashPlayerVersion()[0] != 0) return true;
				else  return false;
			}
			
	function getLink(l){
		var lh = location.hash.split("#")[1];
		if(lh) location.href = l + "#" + lh;
		else location.href = l;
	}