// JavaScript Document

function timerSet() {
	
	$(".timer_start").hide();
	$(".timer_last").hide();
	$(".timer_end").hide();
	
	cookie_name_cnt = cookname+"cntdwn_cnt";
	cookie_name_time = cookname+"cntdwn_tm";
	
	startvalue = parseInt(startvalue);
	lastvalue = parseInt(lastvalue);
	
	//カウント
	ck_cnt = $.cookie(cookie_name_cnt);
	if (ck_cnt == null) ck_cnt = 0;
	ck_cnt = parseInt(ck_cnt);
	
	//タイマー
	ck_tm = $.cookie(cookie_name_time);
	if (ck_tm == null || ck_tm < 0) ck_tm = 0;
	ck_tm = parseInt(ck_tm);
	
	period = parseInt(period);
	
	ps_milliset = parseInt(ps_milliset);
	milliset = parseInt(milliset);
	
	view_type = parseInt(view_type);
	
	ps_day = parseInt(ps_day);
	ps_hour = parseInt(ps_hour);
	ps_minute = parseInt(ps_minute);
	ps_last_day = parseInt(ps_last_day);
	ps_last_hour = parseInt(ps_last_hour);
	ps_last_minute = parseInt(ps_last_minute);
	
	year = parseInt(year);
	month = parseInt(month);
	day = parseInt(day);
	hour = parseInt(hour);
	minute = parseInt(minute);
	last_year = parseInt(last_year);
	last_month = parseInt(last_month);
	last_day = parseInt(last_day);
	last_hour = parseInt(last_hour);
	last_minute = parseInt(last_minute);
	
	
	var css1 = {
		'color':color1,
		'font-size':size1,
		'font-weight':bold1
	};
	
	var css2 = {
		'color':color2,
		'font-size':size2,
		'font-weight':bold2
	};
	
	$(".timer").css(css2);
	
	switch (timer_type) {
		
		//パーソナルカウント（回数）の場合
		case "cnt":
			var rm = startvalue - ck_cnt;
			
			//終了
			if ( rm < 0 ) {
				if ( end_url != "" ) location.href = end_url;
				$(".timer_start").hide();
				$(".timer_last").hide();
				$(".timer_end").hide();
				
				
			//最後
			} else if ( rm == 0 ) {
				$(".timer_start").hide();
				$(".timer_last").hide();
				$(".timer_end").show();
				var newck_cnt = ck_cnt + 1;
				
				
			//直前
			} else if ( rm <= lastvalue ) {
				if ( last_url != "" ) {
					var newck_cnt = ck_cnt;
					location.href = last_url;
				} else {
					var newck_cnt = ck_cnt + 1;
				}
				
				$(".timer_start").hide();
				$(".timer_last").show();
				$(".timer_end").hide();
				
				if ( count_style == "image" ) {
					code = splitText(rm);
					$(".timer_last span").html(code+"回").css(css1);
				} else {
					$(".timer_last span").text(rm+"回").css(css1);
				}
				
				
			//通常
			} else {
				$(".timer_start").show();
				$(".timer_last").hide();
				$(".timer_end").hide();
				
				if ( count_style == "image" ) {
					code = splitText(rm);
					$(".timer_start span").html(code+"回").css(css1);
				} else {
					$(".timer_start span").text(rm+"回").css(css1);
				}
				var newck_cnt = ck_cnt + 1;
			}
			
			if ( rm >= 0 ) {
				$.cookie(cookie_name_cnt, newck_cnt, { expires:period, path:'/' });
			}
			break;
	
	
		//パーソナルタイマーの場合
		case "time":
			
			//アクセスした日時を記録
			if ( ck_tm == 0 ) {
				start = new Date();
				var ck_tm = start.getTime();
				$.cookie(cookie_name_time, ck_tm, { expires:period, path:'/' });
			}
			
			/*millisecond = 0;
			second = 0;*/
			
			var end_line = ((ps_day*24*60*60) + (ps_hour*60*60) + (ps_minute*60)) * 1000;
			var endStr = ck_tm + end_line;
			
			var last_line = ((ps_last_day*24*60*60) + (ps_last_hour*60*60) + (ps_last_minute*60)) * 1000;
			var lastStr = ck_tm + (end_line - last_line);
			
			
			var sc = (ps_milliset) ? 10 : 1000;
			
			$.timer(sc, function (timer) {
				var dt = new Date();
				var nowStr = dt.getTime();
				
				//経過秒数
				/*getSecond();
				second = millisecond / 100;
				
				if ( millisecond % 100 == 0 ) {
					var newck_tm = ck_tm + second;
					$.cookie(cookie_name_time, newck_tm, { expires:period, path:'/' });
				}*/
				
				var flag = calcTime( count_style, nowStr, endStr, ps_milliset );
				
				if (flag) {
					
					//$("#sec").text(lastStr+" / "+nowStr+" / "+endStr);
					
					//直前
					if ( nowStr > lastStr && nowStr < endStr ) {
						if ( last_url != "" ) {
							$(".timer").hide();
							timer.stop();
							location.href = last_url;
						}
						$(".timer_start").hide();
						$(".timer_last").show();
						$(".timer_last span").html(diffStr).css(css1);
						
						
					//通常
					} else if ( nowStr <= lastStr ) {
						$(".timer_start").show();
						$(".timer_last").hide();
						$(".timer_start span").html(diffStr).css(css1);
					}
					
				
				//終了
				} else {
					timer.stop();
					if ( end_url != "" ) {
						$(".timer").hide();
						location.href = end_url;
					}
					$(".timer_start").hide();
					$(".timer_last").hide();
				}
			});
			break;
			
			
		//日時指定の場合
		case "date":
			var last = new Date( last_year, last_month-1, last_day, last_hour, last_minute );
			var lastStr = last.getTime();
			
			var end = new Date( year, month-1, day, hour, minute );
			var endStr = end.getTime();
			
			
			var sc = (milliset) ? 10 : 1000;
			
			$.timer(sc, function (timer) {
				var dt = new Date();
				var nowStr = dt.getTime();
				
				var flag = calcTime( count_style, nowStr, endStr, milliset );
				
				if (flag) {
					
					//直前
					if ( nowStr > lastStr && nowStr < endStr ) {
						if ( last_url != "" ) {
							$(".timer").hide();
							timer.stop();
							location.href = last_url;
						}
						$(".timer_start").hide();
						$(".timer_last").show();
						$(".timer_last span").html(diffStr).css(css1);
						
						
					//通常
					} else if ( nowStr <= lastStr ) {
						$(".timer_start").show();
						$(".timer_last").hide();
						$(".timer_start span").html(diffStr).css(css1);
					}
					
				
				//終了
				} else {
					timer.stop();
					if ( end_url != "" ) {
						$(".timer").hide();
						location.href = end_url;
					}
					$(".timer_start").hide();
					$(".timer_last").hide();
				}
			});
			break;
	}
}


function calcTime( count_style, nowStr, endStr, ml ) {
	
	var diff = endStr - nowStr;
	
	var day = Math.floor( diff  / (24*60*60*1000) );
	
	var h = diff % (24*60*60*1000);
	var hour = Math.floor( h / (60*60*1000) );
	
	var m = diff % (60*60*1000);
	var minute = Math.floor( m / (60*1000) );
	
	var s = diff % (60*1000);
	var second = Math.floor( (m % (60*1000))/1000 );
	
	if (minute < 10) minute = "0" + minute;
	if (second < 10) second = "0" + second;
	
	
	diffStr = "";
	
	if ( count_style == "image" ) {
		if (day > 0) {
			diffStr = splitText(day);
			diffStr += '日と ';
		}
		
		var hourCode = splitText(hour);
		var minuteCode = splitText(minute);
		var secondCode = splitText(second);
		
		if ( timestr == "ja" ) {
			//diffStr += hourCode+'時間'+minuteCode+'分'+secondCode+'秒';
			
			switch (view_type) {
				
				//全て表示
				case 0:
					diffStr += hourCode+'時間'+minuteCode+'分'+secondCode+'秒';
					break;
					
				//秒を消す
				case 1:
					diffStr += hourCode+'時間'+minuteCode+'分';
					break;
					
				//分秒を消す
				case 2:
					diffStr += hourCode+'時間';
					break;
					
				default:
					diffStr += hourCode+'時間'+minuteCode+'分'+secondCode+'秒';
			}
			
		
		} else {
			diffStr += hourCode+':'+minuteCode+':'+secondCode;
		}
		
		if (ml && view_type == 0) {
			var milli = Math.floor( (s % 1000)/10 );
			if (milli < 10) milli = "0" + milli;
			var milliCode = splitText(milli);
			
			if ( timestr == "ja" ) {
				diffStr += milliCode;
				
			} else {
				diffStr += ":"+milliCode;
			}
		}
		
		$(".timer img").attr('border','0');
		
		
	} else {
		if (day > 0) {
			diffStr = day+"日と ";
		}
		
		if ( timestr == "ja" ) {
			//diffStr += hour+'時間'+minute+'分'+second+'秒';
			
			switch (view_type) {
				
				//全て表示
				case 0:
					diffStr += hour+'時間'+minute+'分'+second+'秒';
					break;
					
				//秒を消す
				case 1:
					diffStr += hour+'時間'+minute+'分';
					break;
					
				//分秒を消す
				case 2:
					diffStr += hour+'時間';
					break;
					
				default:
					diffStr += hour+'時間'+minute+'分'+second+'秒';
			}
			
			
		} else {
			diffStr += hour+":"+minute+":"+second;
		}
		
		if (ml && view_type == 0) {
			var milli = Math.floor( (s % 1000)/10 );
			if (milli < 10) milli = "0" + milli;
			
			if ( timestr == "ja" ) {
				diffStr += milli;
				
			} else {
				diffStr += ":"+milli;
			}
		}
	}
	
	return ( diff > 0 ) ? true : false;
}


function splitText(str) {
	
	var folder = "system/number/";
	var code = "";
	
	str = ""+str;
	
	switch (str.length) {
		case 1:
			var n1 = str.charAt(0);
			code = '<img src="'+folder+n1+'.jpg">';
			break;
			
		case 2:
			var n1 = str.charAt(0);
			var n2 = str.charAt(1);
			code = '<img src="'+folder+n1+'.jpg"><img src="'+folder+n2+'.jpg">';
			break;
			
		case 3:
			var n1 = str.charAt(0);
			var n2 = str.charAt(1);
			var n3 = str.charAt(2);
			code = '<img src="'+folder+n1+'.jpg"><img src="'+folder+n2+'.jpg"><img src="'+folder+n3+'.jpg">';
			break;
	}
	
	//alert(code);
	
	return code;
}


function getSecond() {
	
	now = new Date();
	millisecond = ( parseInt((now.getTime() - start.getTime()) / 10) );
	
	//return second;
}

