//
//	お知らせ表示モジュール
//
function PortalInfoBack(){
	PortalInfoUpdate(0);
}
function PortalInfoNext(){
	PortalInfoUpdate(1);
}
function PortalInfoUpdate(dir){
	var info_name = $('#PortalInfoModuleName').val();
	var info_row = $('#PortalInfoRow').val();
	var info_blog_id = $('#PortalInfoBlog_id').val();
	var info_body_f = $('#PortalInfoBody_flg').val();
	var info_page = $('#PortalInfoPage').val();
	var info_data = $('#PortalInfoData').val();
	var info_newtime = $('#PortalInfoNewtime').val();

	if (dir == 0){
		if (info_page >1)  info_page --;
	}
	else	info_page ++;

	var myajax = $.ajax({
		url:"portal_xmlRequest.php",
		method: 
			'post',
		data:{
			'mode':'InfoUpdate', 
			'ModuleName':info_name,
			'PIRow':PIRow,
			'PIBlog_id':info_blog_id,
			'PIBody_flg':info_body_f,
			'PIPage':info_page,
			'PINew_time':info_newtime,
			'PIData':info_data
			}, 
		beforeSend:
			function(){
//				PortalInfo_showStatus("読込み中")
			},
		error:
			function(){
//				PortalInfo_showStatus("受信エラーが発生しました")
			},
		success:
			PortalInfo_showResult
	});
}

function PortalInfo_showResult(request){
	$('#PortalInfo_xml').html(code_convert(request));
	$('#PortalInfo_pageback').click(function(){PortalInfoBack()});
    $('#PortalInfo_pagenext').click(function(){PortalInfoNext()});
}

function PortalInfo_showStatus(request){
	$('#PortalInfo_xml_status').html(request);
}

//
//	最新記事表示モジュール
//
function PortalDescriptionBack(){
	PortalDescriptionUpdate(0);
}
function PortalDescriptionNext(){
	PortalDescriptionUpdate(1);
}
function PortalDescriptionUpdate(dir){
	var descript_name = $('#PortalDescriptionModuleName').val();
	var descript_row = $('#PortalDescriptionRow').val();
	var descript_lvmin = $('#PortalDescriptionLvmin').val();
	var descript_lvmax = $('#PortalDescriptionLvmax').val();
	var descript_page = $('#PortalDescriptionPage').val();
	var descript_data = $('#PortalDescriptionData').val();
	var descript_cid = $('#PortalDescriptionCid').val();

	if (dir == 0){
		if (descript_page >1)  descript_page --;
	}
	else	descript_page ++;

	var myajax = $.ajax({
		url:"portal_xmlRequest.php",
		method: 
			'post',
		data:{
			'mode':'DescriptionUpdate', 
			'ModuleName':descript_name,
			'PDRow':descript_row,
			'PDLvmin':descript_lvmin,
			'PDLvmax':descript_lvmax,
			'PDPage':descript_page,
			'PDData':descript_data,
			'PDCid':descript_cid
			}, 
		beforeSend:
			function(){
//				PortalDescription_showStatus("読込み中")
			},
		error:
			function(){
//				PortalDescription_showStatus("受信エラーが発生しました")
			},
		success:
			PortalDescription_showResult
	});
}

function PortalDescription_showResult(request){
	$('#PortalDiscript_xml').html(code_convert(request));
    $('#PortalDescription_pageback').click(function(){PortalDescriptionBack()});
	$('#PortalDescription_pagenext').click(function(){PortalDescriptionNext()});
}

function PortalDescription_showStatus(request){
	$('#PortalDiscript_xml_status').html(request);
}

//
//	コメント表示モジュール
//
function PortalCommentBack(){
	PortalCommentUpdate(0);
}
function PortalCommentNext(){
	PortalCommentUpdate(1);
}
function PortalCommentUpdate(dir){
	var comment_name = $('#PortalCommentModuleName').val();
	var comment_row = $('#PortalCommentRow').val();
	var comment_lvmin = $('#PortalCommentLvmin').val();
	var comment_lvmax = $('#PortalCommentLvmax').val();
	var comment_page = $('#PortalCommentPage').val();
	var comment_data = $('#PortalCommentData').val();
	var comment_cid = $('#PortalCommentCid').val();

	if (dir == 0){
		if (comment_page >1)  comment_page --;
	}
	else	comment_page ++;

	var myajax = $.ajax({
		url:"portal_xmlRequest.php",
		method: 
			'post',
		data:{
			'mode':'CommentUpdate', 
			'ModuleName':comment_name,
			'PCRow':comment_row,
			'PCLvmin':comment_lvmin,
			'PCLvmax':comment_lvmax,
			'PCPage':comment_page,
			'PCData':comment_data,
			'PCCid':comment_cid
			}, 
		beforeSend:
			function(){
//				PortalComment_showStatus("読込み中")
			},
		error:
			function(){
//				PortalComment_showStatus("受信エラーが発生しました")
			},
		success:
			PortalComment_showResult
	});
}

function PortalComment_showResult(request){
	$('#PortalComment_xml').html(code_convert(request));
	$('#PortalComment_pageback').click(function(){PortalCommentBack()});
    $('#PortalComment_pagenext').click(function(){PortalCommentNext()});
}

function PortalComment_showStatus(request){
//	if($('#PortalComment_xml_status'))
		$('#PortalComment_xml_status').html(request);
}

// Safari　UTF-8バグ対応
function code_convert ( text ) {
	if ( navigator.appVersion.indexOf( "KHTML" ) > -1 ) {
		var esc = escape( text );
		if ( esc.indexOf("%u") < 0 && esc.indexOf("%") > -1 ) {
			text = decodeURIComponent( esc );
		}
	}
	return text;
}
//------------------------- イベント登録 -------------------------------------
//
//

window.onload = function(){
	$('#PortalInfo_pageback').click(function(){PortalInfoBack()});
	$('#PortalInfo_pagenext').click(function(){PortalInfoNext()});
	$('#PortalDescription_pageback').click(function(){PortalDescriptionBack()});
	$('#PortalDescription_pagenext').click(function(){PortalDescriptionNext()});
	$('#PortalComment_pageback').click(function(){PortalCommentBack()});
	$('#PortalComment_pagenext').click(function(){PortalCommentNext()});
}

/*

highlight v3

Highlights arbitrary terms.

<http://johannburkard.de/blog/programming/javascript/highlight-javascript-text-higlighting-jquery-plugin.html>

MIT license.

Johann Burkard
<http://johannburkard.de>
<mailto:jb@eaio.com>

*/

jQuery.fn.highlight = function(pat) {
 function innerHighlight(node, pat) {
  var skip = 0;
  if (node.nodeType == 3) {
   var pos = node.data.toUpperCase().indexOf(pat);
   if (pos >= 0) {
    var spannode = document.createElement('span');
    spannode.className = 'highlight';
    var middlebit = node.splitText(pos);
    var endbit = middlebit.splitText(pat.length);
    var middleclone = middlebit.cloneNode(true);
    spannode.appendChild(middleclone);
    middlebit.parentNode.replaceChild(spannode, middlebit);
    skip = 1;
   }
  }
  else if (node.nodeType == 1 && node.childNodes && !/(script|style)/i.test(node.tagName)) {
   for (var i = 0; i < node.childNodes.length; ++i) {
    i += innerHighlight(node.childNodes[i], pat);
   }
  }
  return skip;
 }
 return this.each(function() {
  innerHighlight(this, pat.toUpperCase());
 });
};

jQuery.fn.removeHighlight = function() {
 return this.find("span.highlight").each(function() {
  this.parentNode.firstChild.nodeName;
  with (this.parentNode) {
   replaceChild(this.firstChild, this);
   normalize();
  }
 }).end();
};

jQuery.fn.inwindow = function(){
    var top    = $(window).scrollTop();
    var bottom = $(window).height() + $(window).scrollTop();
    var left   = $(window).scrollLeft();
    var right  = $(window).width() + $(window).scrollLeft();
    bottom = bottom /2;

    if(!(this.offset().top  >= top)){
        $(window).scrollTop(this.offset().top);
    }
    if(!(this.offset().top  + this.height() <= bottom)){
        $(window).scrollTop(
            $(window).scrollTop() + this.offset().top  + this.height() - bottom
        );
    }
    if(!(this.offset().left  >= left)){
        $(window).scrollLeft(this.offset().left);
    }
    if(!(this.offset().left  + this.width() <= right)){
        $(window).scrollLeft(
            $(window).scrollLeft() + this.offset().left  + this.width() - right
        );
    }
    return this;
};

$.cookie = function(name, value, options) {
    if (typeof value != 'undefined') { // name and value given, set cookie
        options = options || {};
        if (value === null) {
            value = '';
            options = $.extend({}, options); // clone object since it's unexpected behavior if the expired property were changed
            options.expires = -1;
        }
        var expires = '';
        if (options.expires && (typeof options.expires == 'number' || options.expires.toUTCString)) {
            var date;
            if (typeof options.expires == 'number') {
                date = new Date();
                date.setTime(date.getTime() + (options.expires * 24 * 60 * 60 * 1000));
            } else {
                date = options.expires;
            }
            expires = '; expires=' + date.toUTCString(); // use expires attribute, max-age is not supported by IE
        }
        // NOTE Needed to parenthesize options.path and options.domain
        // in the following expressions, otherwise they evaluate to undefined
        // in the packed version for some reason...
        var path = options.path ? '; path=' + (options.path) : '';
        var domain = options.domain ? '; domain=' + (options.domain) : '';
        var secure = options.secure ? '; secure' : '';
        document.cookie = [name, '=', encodeURIComponent(value), expires, path, domain, secure].join('');
    } else { // only name given, get cookie
        var cookieValue = null;
        if (document.cookie && document.cookie != '') {
            var cookies = document.cookie.split(';');
            for (var i = 0; i < cookies.length; i++) {
                var cookie = jQuery.trim(cookies[i]);
                // Does this cookie string begin with the name we want?
                if (cookie.substring(0, name.length + 1) == (name + '=')) {
                    cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
                    break;
                }
            }
        }
        return cookieValue;
    }
};

$(function(){
    var keyword = $("#search_keyword").val();

    if (keyword == "") {
        keyword = $.cookie('skey');
    }
    if (keyword != "" && keyword != null) {
        var key_array = keyword.split(" ");
        for (var i=0; i < key_array.length; i++) {
            $("#mainarea").highlight(key_array[i]);
        }
        $('.highlight').inwindow(); 
    }
});
