//////////////////////////////////////////////////
/// func.js : iddy.jp JavaScript functions
/// $Id: func.js,v 1.10 2007/02/20 08:36:17 sakama Exp $
//////////////////////////////////////////////////

//--------------------------------------
// checkValue()
// 
//--------------------------------------
function checkValue(id)
{
	if ( id.indexOf("public_") >= 0 ) {
		if ( document.getElementById(id).value == 1 ) {
			var text_id = id.replace(/public_/, "");
			if ( document.getElementById(text_id).value == "" ) {
				document.getElementById(text_id).value = "公開する場合はこちらを入力してください";
			}
		}

		return;
	}

	if ( id == 'username' ) {
		var value = document.getElementById(id).value;
		if ( value != "" ) {
			var url = '/checkvalue.php';
			var query = 'name=AccountName&value=' + escape(value);

			var http = new JKL.ParseXML.Text(url, query);
			var result = http.parse();
			if ( result == "NG" ) {
				document.getElementById('username_err').innerHTML = 
					"<font color=\"#ff0000\">すでに登録されています。</font><br />";
			} else {
				document.getElementById('username_err').innerHTML = "";
			}
		} else {
			document.getElementById('username_err').innerHTML = "";
		}

		return;
	}
}


//--------------------------------------
// setBlogTitle()
// set BlogTitle form value from BlogURL
//--------------------------------------
function setBlogTitle()
{
	var url = '/getblogtitle.php';
	var blogurl = document.forms[0].BlogURL.value;

	if ( blogurl == "" ) {
		document.getElementById('blog_feed_err').innerHTML = 
			"<font color=\"#ff0000\">入力してください。</font><br />";
		document.getElementById('blog_title_err').innerHTML = "";
		return;
	}

	if ( blogurl.match(/^s?https?(:\/\/[-_.!~*\'()a-zA-Z0-9;\/?:\@&=+\$,%#]+)$/) ) {
		var query = 'url=' + blogurl

		var http = new JKL.ParseXML.Text(url, query);
		var res = http.parse();
		var result = res.split("\n");
		var status = result[0];
		var title = result[1];

		if ( status == "err_url" ) {
			document.getElementById('blog_feed_err').innerHTML = 
				"<font color=\"#ff0000\">RSSのURLを入力してください。</font><br />";
			document.getElementById('blog_title_err').innerHTML = "";
		} else {
			document.getElementById('blog_feed_err').innerHTML = "";
			document.getElementById('blog_title_err').innerHTML = "";
			document.forms[0].BlogTitle.value = title;
		}
	} else {
		document.getElementById('blog_feed_err').innerHTML = 
			"<font color=\"#ff0000\">URL形式で入力してください。</font><br />";
		document.getElementById('blog_title_err').innerHTML = "";
	}
}


//--------------------------------------
// dispBlogEntry()
// disp BlogEntry
//--------------------------------------
function dispBlogEntry(bid)
{
	var url = '/getblogentry.php';
	var query = 'bid=' + bid;
	var http = new JKL.ParseXML.Text(url, query);
	var func = function(entry) {
		document.getElementById(bid).innerHTML = entry;
	}
	http.async(func);
	http.parse();
}


//--------------------------------------
// dispFlickrEntry()
// disp Flickr Entry
//--------------------------------------
function dispFlickrEntry(uid, aid, max)
{
	var url = '/getrss.php';
	var requesturl = 'http://www.flickr.com/services/rest/' +
					 '?api_key=' + aid +
					 '&method=flickr.photos.search' +
					 '&user_id=' + uid +
					 '&sort=date-posted-desc' +
					 '&per_page=' + max +
					 '&format=rest';
	var query = 'url=' + escape(requesturl);
	var http = new JKL.ParseXML(url, query);
	var func = function(xml) {
		var html = '';
		if ( xml.rsp.stat == "ok" ) {
			try {
				var items = xml.rsp.photos.photo;
				var length = items.length;
				html = '<ul>';
				if ( !length ) {
					var photohref = 'http://www.flickr.com/photos/' +
									items.owner + '/' + items.id;
					var photosrc = 'http://static.flickr.com/' +
									items.server + '/' + items.id + '_' + items.secret + '_s.jpg';
					html += '<li><a href="' + photourl + '">' +
							'<img src="' + photsrc + '" border="0" />' +
							'</a></li>';
				} else {
					for( var i = 0; i < length; i++ ) {
						var photohref = 'http://www.flickr.com/photos/' +
										items[i].owner + '/' + items[i].id;
						var photosrc = 'http://static.flickr.com/' +
										items[i].server + '/' + items[i].id + '_' + items[i].secret + '_s.jpg';
						html += '<li><a href="' + photohref + '">' +
								'<img src="' + photosrc + '" border="0" />' +
								'</a></li>';
					}
				}
				html += '</ul>';
			} catch(e) {
				html = '';
			}
		}
		document.getElementById('flickr_photo').innerHTML = html;
	}

	http.async(func);
	http.parse();
}


//--------------------------------------
// dispLastfmEntry()
// disp Lastfm Entry
//--------------------------------------
function dispLastfmEntry(uid)
{
	var url = '/getrss.php';
	var requesturl = 'http://ws.audioscrobbler.com/1.0/user/' + uid + '/recenttracks.rss';
	var query = 'url=' + escape(requesturl);
	var http = new JKL.ParseXML(url, query);
	var func = function(xml) {
		var html = '';
		try {
			var items = xml.rss.channel.item;
			var length = items.length;
			html = '<ul>';
			if ( !length ) {
				html += '<li><a href="' + items.link + '">' + items.title + '</a></li>';
			} else {
				for( var i = 0; i < length; i++ ) {
					html += '<li><a href="' + items[i].link + '">' + items[i].title + '</a></li>';
				}
			}
			html += '</ul>';
		} catch(e) {
			html = '';
		}
		document.getElementById('lastfmitem').innerHTML = html;
	}

	http.async(func);
	http.parse();
}


//--------------------------------------
// disphatenaEntry()
// disp hatena bookmark Entry
//--------------------------------------
function disphatenaEntry(uid, max)
{
	var url = '/getrss.php';
	var requesturl = 'http://b.hatena.ne.jp/' + uid + '/rss';
	var query = 'url=' + escape(requesturl);
	var http = new JKL.ParseXML(url, query);
	var func = function(xml) {
		var html = '';
		try {
			var items = xml['rdf:RDF'].item;
			var length = items.length;
			html = '<ul>';
			if ( !length ) {
				html += '<li><a href="' + items.link + '">' + items.title + '</a></li>';
			} else {
				for( var i = 0; i < items.length; i++ ) {
					if ( i >= max ) {
						break;
					}

					html += '<li><a href="' + items[i].link + '">' + items[i].title + '</a></li>';
				}
			}
			html += '</ul>';
		} catch(e) {
			html = '';
		}
		document.getElementById('hatenaitem').innerHTML = html;
	}
	http.async(func);
	http.parse();
}


//--------------------------------------
// dispdeliciousEntry()
// disp del.icio.us Entry
//--------------------------------------
function dispdeliciousEntry(uid, max)
{
	var url = '/getrss.php';
	var requesturl = 'http://del.icio.us/rss/' + uid + '/';
	var query = 'url=' + escape(requesturl);
	var http = new JKL.ParseXML(url, query);
	var func = function(xml) {
		var html = '';
		try {
			var items = xml['rdf:RDF'].item;
			var length = items.length;
			html = '<ul>';
			if ( !length ) {
				html += '<li><a href="' + items.link + '">' + items.title + '</a></li>';
			} else {
				for( var i = 0; i < items.length; i++ ) {
					if ( i >= max ) {
						break;
					}

					html += '<li><a href="' + items[i].link + '">' + items[i].title + '</a></li>';
				}
			}
			html += '</ul>';
		} catch(e) {
			html = '';
		}
		document.getElementById('deliciousitem').innerHTML = html;
	}
	http.async(func);
	http.parse();
}


//--------------------------------------
// dispYouTubeEntry()
// disp YouTube Entry
//--------------------------------------
function dispYouTubeEntry(uid, max)
{
	var url = '/getrss.php';
	var requesturl = 'http://www.youtube.com/rss/user/' + uid + '/videos.rss';
	var query = 'url=' + escape(requesturl);
	var http = new JKL.ParseXML(url, query);

	var func = function(xml) {
		var html = '';
		try {
			var items = xml.rss.channel.item;
			var length = items.length;
			html = '<ul>';
			if ( !length ) {
				html += '<li>' +
						'<a href="' + items['enclosure'].url + 
						'" onclick="return GB_show(\'' + items.title + '\',' +
						'\'' + items[i]['enclosure'].url + '\', 480, 640)">' +
						'<img src="' + items['media:thumbnail'].url + '" ' +
						'width="' + items['media:thumbnail'].width / 2 + '" ' +
						'height="' + items['media:thumbnail'].height / 2 + '" ' +
						'border="0" />' +
						'</a></li>';
			} else {
				for( var i = 0; i < length; i++ ) {
					if ( i >= max ) {
						break;
					}

					html += '<li>' +
							'<a href="' + items[i]['enclosure'].url + 
							'" onclick="return GB_show(\'' + items[i].title + '\',' +
							'\'' + items[i]['enclosure'].url + '\', 480, 640)">' +
							'<img src="' + items[i]['media:thumbnail'].url + '" ' +
							'width="' + items[i]['media:thumbnail'].width / 2 + '" ' +
							'height="' + items[i]['media:thumbnail'].height / 2 + '" ' +
							'border="0" />' +
							'</a></li>';
				}
			}
			html += '</ul>';
		} catch(e) {
			html = '';
		}
		document.getElementById('youtubeitem').innerHTML = html;
	}

	http.async(func);
	http.parse();
}


//--------------------------------------
// dispAmazonListManiaEntry()
// disp AmazonListMania Entry
//--------------------------------------
function dispAmazonListManiaEntry(uid, aid, max)
{
	var url = '/getrss.php';
	var requesturl = 'http://xml-jp.amznxslt.com/onca/xml3?t=' + aid +
					 '&dev-t=D20A8BD16A99PV&type=lite&page=1&f=xml&locale=jp&ListManiaSearch=' + uid;
	var query = 'url=' + escape(requesturl);
	var http = new JKL.ParseXML(url, query);
	var func = function(xml) {
		var html = '';
		try {
			var items = xml.ProductInfo.Details;
			var length = items.length;
			html = '<ul>';
			for( var i = 0; i < length; i++ ) {
				if ( i >= max ) {
					break;
				}

				html += '<li>' +
						'<a href="' + items[i].url + '">' +
						'<img src="' + items[i].ImageUrlSmall + '" border="0" />' +
						'</a></li>';
			}
			html += '</ul>';
		} catch(e) {
			html = '';
		}
		document.getElementById('amazonlistmaniaitem').innerHTML = html;
	}

	http.async(func);
	http.parse();
}


