/*************************************************************
* 全ページから呼ぶ。
* 検索処理、カート追加処理、文字列処理、イメージのリサイズ
*/

/*
*定数
*
*/
var element_limit = 5; //１ページあたりの表示要素数
var domain = location.hostname;
if (domain == 'portal.trunc.jp') {
	var p_domain = 'http://portal.trunc.jp/';
	var c_domain = 'http://trunc.jp/';
	var b_domain = 'http://portal.trunc.jp/';
	
} else  {
	var p_domain = 'http://portal.trunc.jp/';
	var c_domain = 'http://trunc.jp/';
	var b_domain = 'http://portal.trunc.jp/';
}
/**
* 文字を丸める
*/
function str_truncate(str,description_length) {
	if (str) {
		var ret = str.substr(0,description_length);
		if (str.length > description_length) {
			ret += '...';
		}
		return ret;
	} else {
		return '';
	}
}

/**
 * URLの？以下のパラメータを取得
 * ハッシュで返す。（key=val）
 */
function getQueryParam() {
	var getParam = new Array();
	var q = window.location.search.substring(1);
	var params = q.split('&');
	for (var i=0;i<params.length;i++){
		var pos = params[i].indexOf('=');
		
		if(pos > 0) {
			var key = params[i].substring(0,pos);
			var val = params[i].substring(pos+1);
			getParam[key] = val;
		}
	}
	
	return getParam;
}

/**
* ページインデックス表示
*/
function pager (count, before_num, next_num, offset) {
	var page_index = "";
	
	page_index += '<div style="vertical-align: middle; " class="page"><table width="454px" align="center"><tr>';
	
	//前に戻るボタン
	page_index += '<td class="arrow_box_back">';
	if (before_num >= 0) {
		page_index += '<a href="javascript:void(0)" onclick="getList('+before_num+')"><img src="/img/back_icon.gif" alt="前を表示" /><span class="page_index_text">前を表示</span></a>';
	}
	page_index += '</td><td class="page_index noborder">';
	
	
	var start_page = 0; //描画を開始するページ番号(page値）
	var end_page = 10; //描画するページ番号の最大値(page値)
	var current_page = offset/element_limit; //現在のページ位置（page値）
	var last_range = parseInt(count/element_limit) + parseInt(1);//(page値)
	
	if ((current_page - 4) >= 0 && count > end_page*element_limit) { //5ページ目以降のとき
		start_page = current_page - 4; //現在いるpage値から4番前のものまでしか描画しない
		end_page = 10 + start_page; //開始ページ値に合わせて最後のページの表示値も変更
	}
	
	var page_counter_limit = count; 
	if (count > end_page*element_limit) { //ページの実質的な最大値の描画をまだ行っていない時
		page_counter_limit = end_page*element_limit; //描画するページの最大値のoffset換算値を求める。
	} else if (count <= 10*element_limit){
	} else { 
		start_page = last_range - 10; //ページの実質的な最大値の描画を行っているときは、開始ページの値は最後のページから10ページ前まで描画
		page_counter_limit = count; //カウンターは最大値をセット
	} 

	//描画
	for (var i = start_page*element_limit ; i < page_counter_limit; i++) {
		if (i % element_limit == 0 && i != offset) { //ページ番号
			var page_number = parseInt(i/element_limit) + parseInt(1);
			page_index += '<a href="javascript:void(0)" onclick="getList('+i+')">' + page_number + '</a>&nbsp;';
		} else if (i % element_limit == 0 && i == offset) { //今いるページ番号
			page_index += parseInt(i / element_limit) + parseInt(1) + '&nbsp;';
		}
	}
	
	//次に進むボタン
	page_index += '</td><td class="arrow_box_next">';
	if (next_num < count) {
		page_index += '<a href="javascript:void(0)" onclick="getList('+next_num+')"><span class="page_index_text">次を表示</span><img src="/img/next_icon.gif" alt="次を表示" /></a>';
	}
	page_index += '</td>';
	page_index += '</tr></div>';

	return page_index;
}


/**
 * 検索ボタンを押したときの処理
 */
function searchGadget(){
	var key = $('#search_keyword').val();
	document.searchForm.action = "/gadget/search/index.php";
	document.searchForm.method = "get";
	document.searchForm.submit();
}

/**
 * 検索ページ中央の入力欄からの検索処理。
 */
function searchGadget2(){
	var key = $('#search_keyword2').val();
	document.searchForm2.action = "/gadget/search/index.php";
	document.searchForm2.method = "get";
	document.searchForm2.submit();
}

/**
 * タグ名をクリックしたときにそのタグで絞り込みを行う。
 * @param {Object} tag
 */
function searchTag(tag){
	var url = '/gadget/search/index.php?keyword='+tag;
	location.href=url;
}

function createGadgetRow(obj) {
	var ret = '<div class="g_listup section" id="list_'+ obj.index +'"><div class="left">';
	if (obj.thumbnail) {
		ret += '<img class="glist_thm gadget_thumbnail_60x45" src="'+obj.thumbnail+'" />';
	} else {
		ret += '<img class="glist_thm gadget_thumbnail_60x45" src="/resource/default/no_thumbnail.jpg" />';
	}
	ret += '</div><div class="glist_text right"><div class="left" style="width: 108px; padding-top: 10px;"><strong>' + htmlspecialchars(str_truncate(obj.title,16)) + '</strong></div><a href="javascript:void(0)" onclick="deleteGadget(' + obj.index + ')"><img class="left" style="width: 17px; height: 60px;" src="/img/del_btn_off.jpg" /></a></div></div>';	
	return ret;
}

/**
 * ガジェット追加リストの項目を描画する。
 * JSONデータは、現在登録中の全てのガジェット情報を取得してくる。
 * @param {Object} json
 */


function drawAdditionalGadgetListAppend(json) {
	if (json != '') {
		var obj = new Array();
		obj = eval('(' + json + ')');
		
		//最初の一個を追加したときにはクリアする。
		if (obj.length == 1) {
			$('#additional_gadget_list').html('');
		}
		var i = obj.length - 1;
		
		var tmpl = '';
		tmpl += createGadgetRow(obj[i]);
	
		$('#additional_gadget_list').append(tmpl);
	} else {
		$('#additional_gadget_list').html('');
		$('#additional_gadget_list').append('<div class="g_listup"><img src="/img/gadgetlist_text.jpg"/></div>');
	}
}



/**
* ページリロード時の再描画
*/
function drawAdditionalGadgetListAll(json) {
	$('#additional_gadget_list').html('');
	if (json != '') {
		
		var obj = new Array();
		obj = eval('(' + json + ')');
		
		var tmpl = "";
		for (var i = 0; i < obj.length; i++) {
			tmpl += createGadgetRow(obj[i]);
		}
		$('#additional_gadget_list').append(tmpl);
		
	} else {
		$('#additional_gadget_list').append('<div class="g_listup"><img src="/img/gadgetlist_text.jpg"/></div>');
	}
}

function addGadget(gadget_id){
	$.get('/gadget/request/additional_gadget_list.php?gadget_id=' + gadget_id, function(json){
		drawAdditionalGadgetListAppend(json);
		new ImageResize('gadget_thumbnail_60x45');
	});
}

function deleteGadget(index_number) {
	//$('#additional_gadget_list').html('');
	$('#list_' + index_number).remove();
	var result = $.get('/gadget/request/delete_gadget.php?index_number='+index_number);
	/*
	$.get('/gadget/request/additional_gadget_list.php', function(json){
		drawAdditionalGadgetListAll(json);
		new ImageResize('gadget_thumbnail_60x45');
	});
	*/
}

/**
 * 追加したガジェットを追加リストに再描画
 * $_SESSIONの値を見て追加している。
 */
$(function(){
	$(window).bind("load",function(){
		$.get('/gadget/request/additional_gadget_list.php',function(json){
			drawAdditionalGadgetListAll(json);
			new ImageResize('gadget_thumbnail_60x45');
			new ImageResize('gadget_thumbnail_108x81');
			new ImageResize('gadget_thumbnail_124x93');
			new ImageResize('screenshot_240x240');
			//new ImageResize('service_thumbnail_124x112');
			new ImageResize('recommend_thumbnail_168x126');
		});
		
		
	});
});


function htmlspecialchars(ch) {
	if (ch) {
	    ch = ch.replace(/&/g,"&amp;");
	    ch = ch.replace(/"/g,"&quot;");
	    ch = ch.replace(/'/g,"&#039;");
	    ch = ch.replace(/</g,"&lt;");
	    ch = ch.replace(/>/g,"&gt;");
   		return ch;
    } else {
    	return "";
    }
} 
