var KtUtils = function(){};

KtUtils.ajxJsonp = function( qryData ){
	var data_type = 'jsonp';
	if(  qryData.dataType != null  ) data_type = qryData.dataType;
	
	var isAsync = true;
	if(  qryData.async != null  ) isAsync = qryData.async;
	
	$.ajax({
		url      : qryData.url,
		type     : 'GET',
		cache    : true,
		async    : isAsync,
		timeout  : 20000,
		data     : qryData.params,
		dataType : data_type,
		jsonp    : qryData.params.callback,
		complete : qryData.complete,
		success  : qryData.success,
		error    : qryData.error
	});
	return;
};
	
KtUtils.separate3 = function( num ){
	var num = new String(num).replace(/,/g, "");
	while(num != (num = num.replace(/^(-?\d+)(\d{3})/, "$1,$2")));
	return num;
};

//	encodeURIComponent()

KtUtils.makePager = function( pageDataMap ){
		var allNum      = parseInt( pageDataMap.allNum );
		var perPageNum  = parseInt( pageDataMap.perPageNum );
		var startNum    = parseInt( pageDataMap.startNum );
		var resNum      = parseInt( pageDataMap.resNum );
		var onClickFunc = pageDataMap.onClickFunc;
		
		var pageNum = parseInt( allNum / perPageNum );
		if( allNum % perPageNum != 0 ) pageNum++;
		
		var pager =
			'<div class="pager_block">'+
				'<table class="pager_table"><tbody>'+
					'<tr>'+
						'<td class="pager_total_text">'+
							'総件数：'+
						'</td>'+
						'<td class="pager_total_num">'+
							allNum+
						'</td>'+
						'<td class="pager_total_from_to">'+
							startNum+' ～ '+(startNum+(resNum-1))+
						'</td>';
		
		for( var i = 1; i < pageNum+1; i++ ){
			var currPageClass  = '';
			var nextPageA      = '';
			if( (startNum == 1 && i != 1) || (startNum != 1 && (i-1)*perPageNum+1 != startNum) ){
				nextPageA = '<a href="javascript:void(0);" onclick="'+onClickFunc+'('+i+');">';
				
			} else {
				currPageClass = ' pager_num_curr';
			}
			
			pager += '<td class="pager_num'+currPageClass+'">';
			pager += nextPageA;
			pager += i;
			if( (startNum == 1 && i != 1) || (startNum != 1 && (i-1)*perPageNum+1 != startNum) ){
				pager += '</a>';
			}
			pager += '</td>';
		}
		pager += '</tr></tbody></table></div>';
		return pager;
};

KtUtils.imageLarge = function( imgUrl, capt, imgLongSize ){
	$('body').append('<div id="img_large_base"></div>');
	$('body').append(
		'<div id="img_large_main">'+
			'<div id="layer_remove"><button id="layer_remove_btn">CLOSE</button></div>'+
			'<img id="enlarge_image" src="'+imgUrl+'" alt="'+capt+'" title="'+capt+'" />'+
			'<p id="caption">'+capt+'</p>'+
		'</div>'
	);
	
// $(($.browser.safari || $.browser.msie) ? 'body' : 'html')
//alert(  $('html, body').scrollTop() );
	var scrollTopHTML = 0;
	if( $('html').scrollTop() != 0 ){
		scrollTopHTML = $('html').scrollTop();
		
	} else if( $('body').scrollTop() != 0 ){
		scrollTopHTML = $('body').scrollTop();
		
	} else {
		scrollTopHTML = $('html, body').scrollTop();
	}
	
	var imgLayer =  $('#img_large_main');
	var imgLayPL = imgLayer.css('padding-left');
		imgLayPL = parseInt( imgLayPL.replace('px', '') );
	var imgLayBD = imgLayer.css('border-top-width');
		imgLayBD = parseInt(imgLayBD.replace('px', '') );
	var imgLayPT = imgLayer.css('padding-top');
		imgLayPT = imgLayPT.replace('px', '');
		imgLayPT = parseInt(imgLayPT);
	var removePB = $('#layer_remove').css('padding-bottom');
		removePB = removePB.replace('px', '');
		removePB = parseInt(removePB);
	var removeH  = parseInt($('#layer_remove').height() );
	
	var allHeight  = scrollTopHTML + imgLongSize + imgLayPT*2 + imgLayBD*2 + removePB + removeH;
	var layerBaseH = $('html').height();
	if( layerBaseH < allHeight ) layerBaseH = allHeight;
	
	$('#img_large_base').height( layerBaseH );
	var imgLayerMarginLeft = ( $('html').width() - imgLongSize - imgLayPL*2 - imgLayBD*2 ) / 2;
	$('#img_large_main').css({
		'margin-left'	: imgLayerMarginLeft,
		'margin-top'	: scrollTopHTML,
		'width'			: imgLongSize
	});
	
	$('#img_large_base, #layer_remove_btn').click(function(){
		$('#img_large_base, #img_large_main').remove();
	});
}

$('div.btn_hover img').hover(
	function(){
		var jqThis = $(this);
		jqThis.css({
			padding  : '2px 0px 0px 2px'
		});
		
	},
	function(){
		$(this).css({
			padding  : '0px'
		});
	}
);

$.fn.sameHeight = function(){
	var jqThis = $(this);
	
	this.each(function(){
		var maxHeight = 0;
		$.each(jqThis, function(){
			var tmpHeight = $(this).height();
			if( maxHeight < tmpHeight ){
				maxHeight = tmpHeight;
			}
		});
		jqThis.height( maxHeight );
	});
}

var ShortUrl = function(){};
ShortUrl.prototype = {
	query : {
		url    : '/php/api/urlShorterBitLy.php',
		params : {
			changeUrl : '',
			callback  : ''
		}
	}
};

TwitterButton = function( targetObj ){
	this.targetObj = targetObj;
};
TwitterButton.dataMap = {
	targetObj : '',
	text 	  : '',
	hashTag	: ''
};
TwitterButton.requiredTextNum = null;
TwitterButton.makeTwitterButton = function( dataUrl ){
	var ALL_CHARACTERS_NUM = 140;
	var requiredTextNum    = 36;
	if( TwitterButton.requiredTextNum != null ) requiredTextNum = TwitterButton.requiredTextNum;
	
	var hashTagLeng        = TwitterButton.dataMap.hashTag.length;
	var sliceNum           = ALL_CHARACTERS_NUM - requiredTextNum - hashTagLeng;
	
	if( sliceNum < 1 ){
		alert( 'Illegal Message!' );
		return;
	}
	TwitterButton.dataMap.text = TwitterButton.dataMap.text.slice( 0, ALL_CHARACTERS_NUM-requiredTextNum );
	
	$(TwitterButton.dataMap.targetObj).html('<a href="http://twitter.com/share" class="twitter-share-button" data-url="'+dataUrl+'" data-text="'+TwitterButton.dataMap.text+' '+TwitterButton.dataMap.hashTag+'" data-count="horizontal" data-via="kochitimes" data-lang="ja">Tweet</a><sc'+'ript type="text/javascript" src="http://platform.twitter.com/widgets.js"></sc'+'ript>');
};
TwitterButton.callBackTwitter = function( jsonUrl ){
	TwitterButton.makeTwitterButton( jsonUrl );
};

$(function(){
	$('div.navibar_block').hover(
		function(){
			$('ul.navibar_list', $(this)).show();
		},
		function(){
			$('ul.navibar_list', $(this)).hide();
		}
	);
	
	$('#mailto_img').hover(
		function(){
			$(this).get(0).src = '/jc/css/css-img/mail/mailto2.gif';
		},
		function(){
			$(this).get(0).src = '/jc/css/css-img/mail/mailto1.gif';
		}
	);
	
	// page scroll
	$("a[href*='#']").click(function(){
		var targetObj		= $(this.hash);
		var targetTop		= targetObj.position().top;
		var targetMarginTop	= parseInt( targetObj.css('marginTop') );
		
		targetTop = targetTop + targetMarginTop;
		
		$('html,body').animate(
			{ scrollTop: targetTop },
			400
		);
		return false;
	});
});


