/**
 * levi.jp
 * 2011.08.03 13:00
 */
//Console
if(!window.console){(function(){var names=["log","debug","info","warn","error","assert","dir","dirxml","group","groupEnd","time","timeEnd","count","trace","profile","profileEnd"];window.console={};for(var i=0;i<names.length;++i)window.console[names[i]]=function(){}})();}
window.console.debugMode = false;
window.console._log = window.console.log;
window.console.log = function(log) {
  if ( window.console.debugMode && window.console )
    console._log.apply(this, arguments);
}
window.console._debug = window.console.debug;
window.console.debug = function(log) {
	if (window.console.debugMode && window.console) {
		if(window.console.notifyFirebug){
			window.console.notifyFirebug(arguments, "debug", "firebugAppendConsole");
		}
	}
};

//LeviScript
if (!window.LeviScript) var LeviScript = function(){};
//定義
LeviScript.Utils = function(){};

//Prototype
LeviScript.Utils.prototype = {
	////////////////////////////////////////////////// 初期設定
	settings: {
		RollOver : {
			target : ".rollover", 
			suffix : "_on", 
			preLoadImg : {}
		}
	}, 
	////////////////////////////////////////////////// 以上　初期設定
	
	
	//------------------------------------------------ Device
	IsIDevice: (/iphone|ipad|android/gi).test(navigator.appVersion),
	IsIPhone: (/iphone/gi).test(navigator.appVersion),
	IsIPad: (/ipad/gi).test(navigator.appVersion),
	IsAndroid: (/android/gi).test(navigator.appVersion), 
	
	//------------------------------------------------ ROLLOVER
	initRollOvers : function(_opt){
		var self = this;
		if (_opt) { 
			this.settings.RollOver = $.extend({}, this.settings.RollOver, _opt );
		}
		
		$(this.settings.RollOver.target).each(function(){
			var imgSrc = this.src;
			var sep = imgSrc.lastIndexOf('.');
			var onSrc = imgSrc.substr(0, sep) + self.settings.RollOver.suffix + imgSrc.substr(sep, 4);
			self.settings.RollOver.preLoadImg[imgSrc] = new Image();
			self.settings.RollOver.preLoadImg[imgSrc].src = onSrc;
			$(this).hover(
				function() { this.src = onSrc; },
				function() { this.src = imgSrc; }
			);
		});
	}, 
	
	
	//------------------------------------------------ ゼロ詰め
	zeroFormat: function(v, n) {
		var vl = String(v).length;
		if(n > vl) {
			return (new Array((n - vl) + 1).join(0)) + v;
		} else {
			return v;
		}
	}, 
	
	//------------------------------------------------ 配列をシャッフル
	getShuffleArray: function (a) {
		var l = a.length, t = a.concat(), r = [];
		while (l) {
			r.push(t.splice(Math.floor(Math.random() * l--),1)[0]);
		}
		return r;
	}, 
	
	//------------------------------------------------ おさめる
	getForceInSize: function(_org_w, _org_h, _d_w, _d_h) 
	{
		var f_rate = _d_w / _d_h;
		
		var tgt_w = _org_w;
		var tgt_h = _org_h;
		var tgt_rate = tgt_w / tgt_h;
		
		var max_w = Math.max(_d_w, tgt_w);
		var max_h = Math.max(_d_h, tgt_h);
		
		var d_w = tgt_w;
		var d_h = tgt_h;
		
		if (max_w > _d_w || max_h > _d_h) {
			//大きいのでおさめる
			if(tgt_rate > f_rate) {
				//横長
				d_w = _d_w;
				d_h = _d_w / tgt_rate;
			} else if(tgt_rate < f_rate) {
				//縦長
				d_w = _d_h * tgt_rate;
				d_h = _d_h;
			} else if(tgt_rate == f_rate) {
				//背景との比率が同じ
				d_w = _d_w;
				d_h = _d_h;
			}
		}
		return [d_w, d_h];
	}
	
};

//実行
$(function(){
	//ROLLOVER
	new LeviScript.Utils().initRollOvers();
});
