// -*- coding: UTF-8 -*-
// show_news.js - JavaScript
// Copyright 2008 Sofrosune. All rights reserved.
// Author: Sofrosune; www.sofrosune.net
// No part of this program may be reproduced or transmitted in any form or 
// by any means without permission from the author, Sofrosune.
//
// Date: September 18, 2008
// Version: 1.00; September 18, 2008
// Version: 1.01; July 31, 2009 (Added shownews_get_latest_url() function)
// Version: 1.02; July 31, 2009 (Added shownews_banner_put() function)

// Usage:
/**
<head>
	<script type="text/javascript" src="../scripts/jquery.js"></script>
	<script type="text/javascript" src="../scripts/show_news.js"></script>
	<script type="text/javascript" src="../scripts/show_news_data.js"></script>
</head>
*/

// Constants:

// templates

var kSN_SHOW_PREV_TMPL = '\
<p class="left"><a href="$$$self$$$?PARAM_TYPE=topics&PARAM_OFFSET=$$$startprev$$$\">←前の$$$step$$$を表示</a>（$$$restprev$$$件あります）</p>\
';
var kSN_SHOW_NEXT_TMPL = '\
<p class="right">（$$$restnext$$$件あります）<a href="$$$self$$$?PARAM_TYPE=topics&PARAM_OFFSET=$$$startnext$$$">次の$$$step$$$件を表示→</a></p>\
';

var kSN_ITEM_SIDEBAR_TMPL = '\
<dt>$$$date$$$</dt>\
<dd><a href="$$$url$$$">$$$subject$$$</a></dd>\
';

var kSN_ITEM_LISTING_TMPL = '\
<li class="clearfix">\
<span>$$$date$$$</span><p><a href="$$$url$$$">$$$subject$$$</a></p>\
</li>\
';

var kSN_BANNER_TMPL = '\
<li><img src="$$$rootdir$$$/common/images/bnr/bnr1.jpg" alt="Exhibitions" width="180" height="45" /></li>\
';

// parameters
var kSN_TYPE_ALL = "all";
var kSN_TYPE_TOPICS = "topics";
var kSN_TYPE_PROD = "prod";
var kSN_TYPE_INFO = "info";
var kSN_TYPE_NONE = "none";

var kSN_STEPS_SIDEBAR_DEFAULT = 3; // number of articles to show at sidebar
var kSN_STEPS_LISTING_DEFAULT = 7; // number of articles to show in one page

// articles
var gSN_ARTICLES = [ /* format:[date,type,path,subject] */
	null
];

// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
// shownews_cPref
// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
// Usage:
//	var aPref = new TEMP_cPref();
//	aPref.parse();
//	var key = aPref.key;

var gPref = new shownews_cPref();
gPref.parse();

function shownews_cPref() {
	this.self = "";
	this.rootdir = ""; // Ex. "../.." for the path "/pages-123/abc/xyz/doc.html"
	this.type = kSN_TYPE_NONE;
	this.offset = 0;

	// parse
	this.parse = function () {
		// get path
		var path = window.location.pathname.replace(/\\/g,"/");
		var nodes = path.split("/"); // ["pages-123","abc","xyz","doc.html"]
		this.self = nodes.pop(); // "doc.html"
		nodes.reverse(); // ["xyz","abc","pages-123"]
		for (var k = 0; k < nodes.length; k++) {
			if (nodes[k].search(/(?:^[e]?pages|^web-content|co\.jp$)/) != -1) { break; }
			if (this.rootdir != "") { this.rootdir += "/"; }
			this.rootdir += "..";
		}
		if (this.rootdir == "") { this.rootdir = "."; }
	//	window.alert(this.rootdir); // "../.."

		// get params
		var param_str = window.location.search.replace(/^\?/,"");
		param_str = unescape(param_str);
		if (param_str != "") {
			var params = param_str.split("&");
			for (var k = 0; k < params.length; k++) {
				var tuple = params[k].split("=");
				var key = tuple[0];
				var val = tuple[1];
				if (key == "PARAM_TYPE") { this.type = val; }
				else if (key == "PARAM_OFFSET") { this.offset = parseInt(val); }
			}
		}
	}
}

// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
// shownews_get_latest (added on 2009-07-31)
// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
// Usage:
//	<script type="text/javascript">window.location.replace(shownews_get_latest());</script>

function shownews_get_latest() {

	var articles = gSN_ARTICLES;
	var tuple = articles[0];
	var date_ = tuple[0];
	var type_ = tuple[1];
	var path_ = tuple[2];
	var subject_ = tuple[3];

	var rootdir = gPref.rootdir;
	var url = path_.replace(/\$\$\$rootdir\$\$\$/g,rootdir);

	return url;
}

// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
// shownews_banner_put (added on 2009-07-31)
// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
// Usage:
//	<script type="text/javascript">shownews_banner_put;</script>

function shownews_banner_put() {
	var msg = kSN_BANNER_TMPL;
	var rootdir = gPref.rootdir;
	var msg = msg.replace(/\$\$\$rootdir\$\$\$/g,rootdir);
	document.write(msg);
}

// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
// shownews_navi
// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
// Usage:
//	<script type="text/javascript">shownews_navi();</script>

function shownews_navi(type) {

	if (type == undefined) { type = gPref.type; }

	var self = gPref.self;
	var rootdir = gPref.rootdir;
	var start = gPref.offset;
	var step = kSN_STEPS_LISTING_DEFAULT;

	var total = 0;
	var articles = gSN_ARTICLES;
	for (var k = 0; k < articles.length; k++) {
		var tuple = articles[k];
		if (tuple == null) { continue; }
		if ((type == kSN_TYPE_ALL) || (type == kSN_TYPE_NONE) || (type == tuple[1])) { total += 1; }
	}

	if (start > total) { start = total; }
	if (start < 0) { start = 0; }
	var startprev = start - step;
	if (startprev < 0) { startprev = 0; }
	var startnext = start + step;
	if (startnext > total) { startnext = total; }

	var restprev = start;
	var restnext = total - startnext;

	var msg = "";

	if (restprev > 0) {
		var msg_ = kSN_SHOW_PREV_TMPL;
		msg_ = msg_.replace(/\$\$\$self\$\$\$/,self);
		msg_ = msg_.replace(/\$\$\$step\$\$\$/,step);
		msg_ = msg_.replace(/\$\$\$startprev\$\$\$/,startprev);
		msg_ = msg_.replace(/\$\$\$restprev\$\$\$/,restprev);
		msg += msg_;
	}

	if (restnext > 0) {
		var msg_ = kSN_SHOW_NEXT_TMPL;
		msg_ = msg_.replace(/\$\$\$self\$\$\$/,self);
		msg_ = msg_.replace(/\$\$\$step\$\$\$/,step);
		msg_ = msg_.replace(/\$\$\$startnext\$\$\$/,startnext);
		msg_ = msg_.replace(/\$\$\$restnext\$\$\$/,restnext);
		msg += msg_;
	}

//	document.write(msg);
	return msg;
}

// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
// shownews_sidebar
// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
// Usage:
//	<script type="text/javascript">shownews_sidebar();</script>

function shownews_sidebar(type) {

	if (type == undefined) { type = gPref.type; }

	var rootdir = gPref.rootdir;
	var articles = gSN_ARTICLES;
	var count = kSN_STEPS_SIDEBAR_DEFAULT;
	var msg = "";

	var k = 0;
	for (var k = 0; k < articles.length; k++) {
		var tuple = articles[k];
		if (tuple == null) { continue; }
		var date_ = tuple[0];
		var type_ = tuple[1];
		var path_ = tuple[2];
		var subject_ = tuple[3];
		if ((type != kSN_TYPE_ALL) && (type != kSN_TYPE_NONE) && (type != type_)) { continue; }
		if (--count < 0) { break; }
		path_ = path_.replace(/\$\$\$rootdir\$\$\$/g,rootdir);
		subject_ = subject_.replace(/\$\$\$rootdir\$\$\$/g,rootdir);
		var msg_ = kSN_ITEM_SIDEBAR_TMPL;
		msg_ = msg_.replace(/\$\$\$date\$\$\$/g,date_.replace(/-/g,"."));
		msg_ = msg_.replace(/\$\$\$url\$\$\$/g,path_);
		msg_ = msg_.replace(/\$\$\$subject\$\$\$/g,subject_);
		msg += msg_;
	}

//	document.write(msg);
	return msg;
}

// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
// shownews_listing
// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
// Usage:
//	<script type="text/javascript">shownews_listing();</script>

function shownews_listing(type) {

	if (type == undefined) { type = gPref.type; }

	var rootdir = gPref.rootdir;
	var articles = gSN_ARTICLES;
	var count = kSN_STEPS_LISTING_DEFAULT;
	var msg = "";

	var start = gPref.offset;

	var k = 0;
	for (var k = start; k < articles.length; k++) {
		var tuple = articles[k];
		if (tuple == null) { continue; }
		var date_ = tuple[0];
		var type_ = tuple[1];
		var path_ = tuple[2];
		var subject_ = tuple[3];
		if ((type != kSN_TYPE_ALL) && (type != kSN_TYPE_NONE) && (type != type_)) { continue; }
		if (--count < 0) { break; }
		path_ = path_.replace(/\$\$\$rootdir\$\$\$/g,rootdir);
		subject_ = subject_.replace(/\$\$\$rootdir\$\$\$/g,rootdir);
		var msg_ = kSN_ITEM_LISTING_TMPL;
		msg_ = msg_.replace(/\$\$\$date\$\$\$/g,date_.replace(/-/g,"/"));
		msg_ = msg_.replace(/\$\$\$url\$\$\$/g,path_);
		msg_ = msg_.replace(/\$\$\$subject\$\$\$/g,subject_);
		msg += msg_;
	}

//	document.write(msg);
	return msg;
}

// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
// queryform_init
// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
// <input class="field" type="text" name="q" value="明電舎サイト内を検索" onblur="if (this.value == '') { this.style.color = ''; this.form.reset();}" onfocus="this.value = ''; this.style.color = '#000000';" />

function queryform_init() {
	var kQUERYFORM_MSG = "AGVナビサイト内を検索";
	var fields = $('input[name="q"]');
	fields.attr('value',kQUERYFORM_MSG);
	fields.css('color','#a6a6a6');
	fields.blur(function (e) {
	//	if (this.value == "") { this.style.color = ""; this.form.reset(); }
		if (this.value == "") { fields.css('color','#a6a6a6'); fields.attr('value',kQUERYFORM_MSG); }
	});
	fields.focus(function (e) {
		this.value = ""; this.style.color = "#000000";
	});
}

// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
// shownews_init
// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

function shownews_init() {

//	if (typeof(initRollOverImages) == "function") {
//		initRollOverImages();
//	}

	// put sidebar
	$('dl.topics_sidebar').append(shownews_sidebar());

	// put listing
	$('ul.topics_listing').append(shownews_listing());

	// put navi
	$('div.topics_link').append(shownews_navi());

	// put query form
	queryform_init();
}

// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
// main functions:
// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

$(document).ready(shownews_init);

// end of javascript
