﻿var initval;
var search_time = 0;
var last_search = '';
var showquestionnaire = false;
$(document).ready(function() {
	/*var val = $.cookie("questioned");
	if(val == null || val == 0)
		showquestionnaire = true;*/

	initval = 1;
	
	/*
	$.ajax({url: "/exam/ajax/ajax_mysql.php",dataType: "json", timeout: 5000,
		success: function(result){
			var name = result['rand'];
			var names = [name[0], name[1].substr(1), name[2].substr(0,1)+'*'+name[2].substr(2,10), name[3].substr(1)];
			for(var i = 0; i < names.length; i++)
				names[i] = '<a href="http://www.highradio.tw/exam/'+result['rand_year']+'/name/'+encodeURIComponent(names[i])+'">'+names[i]+'</a>';
			$('#randname').hide().html('EX: ' + names.join(', ')).fadeIn();
			//林志玲, 杰倫, 趙*廷, 怡君
		},
		error: function(request, status, err){
			if(status == "timeout"){
				alert('網站速度過慢，請稍後再來');
			}
		}
	});*/
	
	$('#update_log').hide();
	$("#result").trigger("update"); 
	$('#result').tablesorter();

	$('#checkBtn :checkbox').attr('checked','checked');
	
	// $('#checkBtn input:nth-child(2)').attr('checked', ''); // 預設欄位不選高中
	resetTable();
	
	$("#checkBtn :checkbox").click(function(){
		resetTable();
	});
	
	// sort過後神人結果重新attach
	var tmp;
	$("#result").bind("sortStart",function() {
		$("#overlay").show();
		tmp = $('.photoShow').detach();
	}).bind("sortEnd",function() {
		$('.photoSelected').after(tmp);
		//$('.photoShow').remove();
		$("#overlay").hide();
	});
});


function resetTable(){
	$('#checkBtn :checkbox:checked').each(function(){
		var i = $(this).val();
		$('#result td:nth-child('+i+'),#result th:nth-child('+i+')').show();
	});
	
	$('#checkBtn :checkbox:not(:checked)').each(function(){
		var i = $(this).val();
		$('#result td:nth-child('+i+'),#result th:nth-child('+i+')').hide();
	});
	
	$('.photoShow').children().show();

}


function questiondisplay(){
	/*$('#questionnaire').html('<div id="questioncontent">您覺得… <input class="questionans" type="checkbox" value="太棒了" />太棒了 <input class="questionans" type="checkbox" value="外觀漂亮" />外觀漂亮 <input class="questionans" type="checkbox" value="功能齊全" />功能齊全 <input class="questionans" type="checkbox" value="太慢了" />太慢了 <input class="questionans" type="checkbox" value="神不到人" />神不到人 <input class="questionans" type="checkbox" value="操作不易" />操作不易 <input type="button" onclick="questionwrite()" value="送出" /></div>');
	$('#questionnaire').slideDown('slow');*/
}

/*function questionwrite(){
	var self = $('#questioncontent');
	var ans = '';
	$('.questionans:checkbox:checked').each(function(){
		ans += $(this).val() + ',';
	});
	if(ans != ''){
		$.post("/exam/ajax/ajax_questionnaire.php",{'a': ans},
			function(result){
			}, "json"
		);
		showquestionnaire = false;
		search_time = (search_time / 20) * 20;
		$.cookie("questioned", 1 , { expires: 30 });

		self.fadeOut(200,function(){
			self.empty();
			self.append('謝謝您的寶貴意見，若有任何建議請至<a href="guestbook/">留言版</a>');
			self.fadeIn(200);
		});
	}else{
		alert('請選擇至少一項');
	}
}*/

function loadMining(inputname,highschool_bname,school,dept,target) {
	var search_year = $('#select_exam').val();
	var schoolandname = inputname;

	if(highschool_bname==null || highschool_bname=="")
		highschool_bname = "";
	else
		schoolandname = highschool_bname+'的'+inputname;

	$.jsonp({
		url: "http://mining.tw/events/exam/search.json?q="+encodeURIComponent(inputname)+"&school="+encodeURIComponent(highschool_bname)+"&jsoncallback=?", dataType: "jsonp", timeout: 10000,
		error: function(xOptions, textStatus){
			target.animate({height:100}, 'fast', function(){
				$('div',target).fadeOut('fast', function(){
					content = $('<div class="mNfound" align="center">無名挖挖挖暫時無法連線，請稍候再試<br /><div align="right"><img src="/image/logo_mining.png" alt="無名挖挖挖" /></div></div>');
					content.appendTo(target).hide().fadeIn('fast');
				});
			});
		},
		success: function(data){
			var list = $('<ul class="mList"></ul>');
			var content;
			$.each(data.items, function(i,item){
				list.append('<li><div class="mItem"><div class="mPic"><a href="http://www.wretch.cc/album/'+item.wretchid+'" target="_blank" rel="nofollow" onclick="return clk(this.href)"><img src="http://l.yimg.com/e/cover/'+item.wretchid+'_90.jpg/" alt="'+item.wretchid+'" onerror="this.src=\'http://mining.myweb.hinet.net/mining_tw/nocover.jpg\'" /></a></div><div class="mTitle" align="center"><a target="_blank" href="http://mining.tw/searchx-'+encodeURIComponent(item.nickname)+'.html">'+item.nickname+'</a></div></div></li>');
				if ( i == 5 ) return false;
			});
			$.post("/ajax/ajax_mining.php",{'h': highschool_bname, 'y': search_year, 'n' : inputname, 'i' : data.items.length, 's' : school, 'd' : dept},function(result){}, "json");
			if(data.items.length > 0){
				list.append('<li><div class="mEmpty"><span style="font-size:11.5px;">找不到'+schoolandname+'?</span><br /><a href="http://mining.tw/searchx-'+encodeURIComponent(inputname)+'.html" target="_blank">找更多</a>...<br /><a href="http://mining.tw/" target="_blank"><img src="/image/logo_mining.png" alt="無名挖挖挖" /></a></div></li>');
				target.animate({height:140}, 450, function(){
					$('div',target).fadeOut('fast', function(){
							target.empty();
						content = list;
						content.appendTo(target).hide().fadeIn('fast');
					});
				});
			}else{
				list.remove();
				target.animate({height:100}, 'fast', function(){
					$('div',target).fadeOut('fast', function(){
						content = $('<div class="mNfound" align="center">找不到符合結果，他可能沒有使用無名...到<a href="http://mining.tw/" target="_blank">無名挖挖挖</a>找其他人<br /><div align="right"><img src="/image/logo_mining.png" alt="無名挖挖挖" /></div></div>');
						content.appendTo(target).hide().fadeIn('fast');
					});
				});
			}
		}
	});
}


function search_add(input, search_year, callback) {
	$('#search_body').slideUp('fast', function(){
		if(input=='caac')
			$('#search_body').html('<table style="text-align:left;margin:0 auto"><tr><td align="right" width="120">報名序號：</td><td width="450"><input size="16" id="number" type="text" maxlength="8" onKeyDown="if(event.keyCode==13||event.which==13){searching(\'number\')}"/> <button id="buttonNumber" disabled="true" class="sexybutton sexysimple sexyblue" onclick="searching(\'number\')"><span class="search sexybuttonfont">搜尋</span></button></td></tr><tr><td align="right">依高中查詢：</td><td><select id="select_highschool_area"><option>讀取中</option></select> <select id="select_highschool" onKeyDown="if(event.keyCode==13||event.which==13){searching(\'senior\')}"><option>讀取中</option></select> <button id="buttonSenior" disabled="true" class="sexybutton sexysimple sexyblue" onclick="searching(\'senior\')"><span class="search sexybuttonfont">搜尋</span></button></td></tr><tr><td align="right">校系查詢：</td><td><select id="select_school"><option>讀取中</option></select> <select id="select_dept" onKeyDown="if(event.keyCode==13||event.which==13){searching(\'dept\')}"><option>讀取中</option></select> <button id="buttonSchool" disabled="true" class="sexybutton sexysimple sexyblue" onclick="searching(\'dept\')"><span class="search sexybuttonfont">搜尋</span></button></td></tr></table>');
		else if(input=='uac'){
			if(search_year == '99' || search_year == '100')
				$('#search_body').html('<table style="text-align:left;margin:0 auto"><tr><td align="right" width="120">准考證號碼：</td><td width="450"><input size="16" id="number" type="text" maxlength="8" onKeyDown="if(event.keyCode==13||event.which==13){searching(\'number\')}"/> <button id="buttonNumber" disabled="true" class="sexybutton sexysimple sexyblue" onclick="searching(\'number\')"><span class="search sexybuttonfont">搜尋</span></button></td></tr><tr><td align="right">校系查詢：</td><td><select id="select_school"><option>讀取中</option></select> <select id="select_dept" onKeyDown="if(event.keyCode==13||event.which==13){searching(\'dept\')}"><option>讀取中</option></select> <button id="buttonSchool" disabled="true" class="sexybutton sexysimple sexyblue" onclick="searching(\'dept\')"><span class="search sexybuttonfont">搜尋</span></button></td></tr><tr><td align="right">依高中查詢：</td><td><select id="select_highschool_area"><option>讀取中</option></select> <select id="select_highschool" onKeyDown="if(event.keyCode==13||event.which==13){searching(\'senior\')}"><option>讀取中</option></select> <button id="buttonSenior" disabled="true" class="sexybutton sexysimple sexyblue" onclick="searching(\'senior\')"><span class="search sexybuttonfont">搜尋</span></button><br /><span style="font-size:12px;color:#999">推薦其他高中請至討論區(新功能建議區)貼榜單連結</span></td></tr></table>');
			else
				$('#search_body').html('<table style="text-align:left;margin:0 auto"><tr><td align="right" width="120">准考證號碼：</td><td width="450"><input size="16" id="number" type="text" maxlength="8" onKeyDown="if(event.keyCode==13||event.which==13){searching(\'number\')}"/> <button id="buttonNumber" disabled="true" class="sexybutton sexysimple sexyblue" onclick="searching(\'number\')"><span class="search sexybuttonfont">搜尋</span></button></td></tr><tr><td align="right">校系查詢：</td><td><select id="select_school"><option>讀取中</option></select> <select id="select_dept" onKeyDown="if(event.keyCode==13||event.which==13){searching(\'dept\')}"><option>讀取中</option></select> <button id="buttonSchool" disabled="true" class="sexybutton sexysimple sexyblue" onclick="searching(\'dept\')"><span class="search sexybuttonfont">搜尋</span></button></td></tr></table>');
		}
		else
			$('#search_body').empty();

		
		$('#search_body').hide().slideDown('slow', function(){
			$('#name').focus();
			
			if(initval == 1 && typeof static_page != 'undefined' && static_page == 1){
				$('#name').blur();
				$.scrollTo('#fb_wrapper', 1000);
				static_page = 0;
			}
			
		});
		
		$('#buttonName , #buttonNumber').attr("disabled", false);
		
		if(callback!=null)
			callback();
	});
}

function searching(type){
	$('#questionnaire').fadeOut();
	var preresult = $('#result > tbody').html();
	//var preresult;
	$('#result > tbody').html("<tr><td colspan=\"6\"><img src=\"/image/loading.gif\" border=\"0\" /><br />Loading...</td></tr>");
	
	var year = $('#select_exam').val();
	var query;
	record_remain = false;
	
	if (type=='name')
		query = $('#name').val();
	else if (type=='number')
		query = $('#number').val();
	else if (type=='senior')
		query = $('#select_highschool').val();
	else if (type=='dept')
		query = $('#select_dept').val();
	else
		return;
	
	// Google Analytics
	_gaq.push(['_trackEvent', type, query, year]);
	
	$('button').attr({"disabled": true});
	$.ajax({type: "POST", url: "/ajax/ajax_mysql.php", data:{ "q": query, "y": year, "t": type, "init": initval }, dataType: "json", timeout: 5000,
		success: function(records){
			load_result(records, preresult, type);
		},
		error: function(request, status, err){
			load_result({"error": 'slow'}, preresult, type);
		}
	});
	
	/*
	$.post("/exam/ajax/ajax_mysql.php", { "q": query, "y": year, "t": type, "init": initval },
		function(records){
		}, "json"
	);*/
}

function load_count(count) {
	//$('#count').html(add_commas(count));
	
	function add_commas(nStr){
		nStr += '';
		x = nStr.split('.');
		x1 = x[0];
		x2 = x.length > 1 ? '.' + x[1] : '';
		var rgx = /(\d+)(\d{3})/;
		while (rgx.test(x1)) {
			x1 = x1.replace(rgx, '$1' + ',' + '$2');
		}
		return x1 + x2;
	}
}

// for ajax loading use, now disabled
var record_remain = false;
var record_remain_arr;

/*
$(document).ready(function(){
	var l_lock = false;

	function check(){
		var now_top = $("#checkBtn").offset().top;
		if(record_remain && $(window).scrollTop() + $(window).height() > now_top+ 50){
			if(l_lock)
				return;
			l_lock = true;
			
			var i = 0;
			var record = "";
			while(record_remain_arr.length > 0){
				i++;
				if(i > 200)
					break;
				var record_now = record_remain_arr.shift();
				var exam_type = record_now.exam_type;
				var senior = record_now.senior;
				if(senior==null || senior=='undefined')
					senior = '';
				record += '<tr style="display:none" class="showPhoto" type="'+exam_type+'">';
				switch(exam_type){
					case '0':
						exam_type = "指考分發";break;
					case '1':
						exam_type = "學校推薦";break;
					case '2':
						exam_type = "個人申請";break;
					case '3':
						exam_type = "繁星計畫";break;
					case '4':
						exam_type = "軍校獨招";break;
					default:
						exam_type = "NA";
				}
				if(record_now.extra != undefined && record_now.extra != ''){
					if(exam_type != '軍校獨招')
						exam_type += " (外加)";
					else{
						if(record_now.extra=='2')
							exam_type += " (申請)";
						else
							exam_type += " (推薦)";
					}
				}
				record += "<td>"+record_now.number+"</td>";
				record += "<td>"+senior+"</td>";
				record += "<td>"+record_now.name+"</td>";
				record += "<td>"+record_now.school+"</td>";
				record += "<td>"+record_now.dept+"</td>";
				record += "<td>"+exam_type+"</td>";
				record += "</tr>";

			}
			$(record).insertAfter($('#result tr:last')).fadeIn(500);
			resetTable();
			$('#result').trigger("update");
			
			if(record_remain_arr.length == 0)
				record_remain = false;
			l_lock = false;
		}
	}
	$(window).scroll(check);
	check();
});*/

function dynamic_table(){
			$('.showPhoto').click(function() {
				var self = $(this);
				var examnumber = $('td:nth-child(1)', self).html();
				var senior = $('td:nth-child(2)', self).html();
				var inputname = $('td:nth-child(3)', self).html();
				var schoolname = $('td:nth-child(4)', self).html();
				var deptname = $('td:nth-child(5)', self).html();
				var examtype = self.attr('type');
				
				if(self.next().hasClass('photoShow'))
					return;
					
				var showThings = function(){
					$('.showPhoto').removeClass('photoSelected');
					$('.photoShow').remove();
					self.addClass('photoSelected');
					var photoRow = $('<tr class="photoShow"><td colspan="6" align="center"><div class="photoDiv"></div></td></tr>')
						.insertAfter(self);
					var photo = $('div', photoRow)
						.html("<div><img src=\"/image/loading.gif\" border=\"0\" /><br />Loading...</div>")
						.hide()
						.slideDown('fast', function(){
									loadMining(inputname,senior,schoolname,deptname,photo);
						}
					);
				};
					
				if($('.photoDiv').length>0)
					$('.photoDiv').slideUp('fast',showThings);
				else
					showThings();
			});
}

function load_result(records, preresult, type) {
	
	
		
		
	$('button').attr({"disabled": false});
	search_time++;
	if(showquestionnaire)
		questiondisplay();
	else if(search_time % 20 == 0)
		questiondisplay();
	
	
	load_count(records['count']);
	
	$('#linkpage').hide();
	
	initval = 0;
	var search_year = $('#select_exam').val();
	if(records['error']=="R") {
		$('#result > tbody').html(preresult);
	} else if (records['error']=="N") {
		$('#restrict').empty();
		$('#result > tbody').html("<tr><td colspan=\"6\">請輸入內容</td></tr>");
		$('#message').html('');
	} else if (records['error']=="Evil") {
		$('#restrict').empty();
		$('#result > tbody').html("<tr><td colspan=\"6\">DON'T BE EVIL!!!</td></tr>");
	} else if (records['error'] == "slow") {
		$('#restrict').empty();
		$('#result > tbody').html("<tr><td colspan=\"6\">網站負載過大，請稍候再試</td></tr>");
	} else if (records['data'].length==0) {
		$('#restrict').empty();
		$('#result > tbody').html("<tr><td colspan=\"6\">查不到資料</td></tr>");
		$('#message').html(records['exam_name']+"，花費 "+records['time']+" 秒");
	} else {
		$('#restrict').empty();
		$('#result > tbody').empty();
		
		
		load_type(records['uac']);
		
		$('#message').html(records['exam_name']+" 共有 "+records['data'].length+" 筆結果，花費 "+records['time']+" 秒");
		
		/*if(records['data'].length > 300){
			var answer = confirm ("資料大於300筆，繼續顯示？(需等待較久)")
			if (!answer){
				initval = 1;
				return;
			}
		}*/

		var i = 0;
		var record = "";
		
		while(records['data'].length > 0){
			i++;
			if(i > 1000){
				record_remain = true;
				record_remain_arr = records['data'];
				break;
			}
			
			var record_now = records['data'].shift();
			var exam_type = record_now.exam_type;
			var senior = record_now.senior;
			if(senior==null || senior=='undefined')
				senior = '';
			record += '<tr class="showPhoto" type="'+exam_type+'">';
			switch(exam_type){
				case '0':
					exam_type = "指考分發";break;
				case '1':
					exam_type = "學校推薦";break;
				case '2':
					exam_type = "個人申請";break;
				case '3':
					exam_type = "繁星計畫";break;
				case '4':
					exam_type = "軍校獨招";break;
				case '5':
					exam_type = "繁星推薦";break;
				default:
					exam_type = "NA";
			}
			if(record_now.extra != undefined && record_now.extra != ''){
				if(exam_type != '軍校獨招')
					exam_type += " (外加)";
				else{
					if(record_now.extra=='2')
						exam_type += " (申請)";
					else
						exam_type += " (推薦)";
				}
			}
			record += "<td>"+record_now.number+"</td>";
			record += "<td>"+senior+"</td>";
			record += "<td>"+record_now.name+"</td>";
			record += "<td>"+record_now.school+"</td>";
			record += "<td>"+record_now.dept+"</td>";
			record += "<td>"+exam_type+"</td>";
			record += "</tr>\n";
		}
		$('#result > tbody').append(record);
		resetTable();
		
		// $.scrollTo('#fb_wrapper', 1000);
		
		
		var path = "/";
		
		switch(type){
			case 'name':
				path = "/" + $('#select_exam').val() + "/name/" + encodeURIComponent($('#name').val());
				path = path.replace("+all/name/", "/");
				break;
			case 'dept':
				path = "/" + $('#select_exam').val() + "/dept/" + $('#select_dept').val();
				break;
			case 'senior':
				path = "/" + $('#select_exam').val() + "/highschool/" + $('#select_highschool').val();
				break;
		}
		
		//path = encodeURIComponent(path);
		
		$('#linkvalue').val("http://exam.benck.tw" + path);
		$('#linkpage').show();
			
		//History.pushState(null, null, "/exam/" + ($('#select_exam').val().replace("+", "-")) + "/name/" + encodeURIComponent($('#name').val()));
		
		
		if (typeof(window.history.pushState) == 'function') {
			 window.history.pushState(null, path, path);
		}else{
			window.location.hash = "#!" + path;
		}
	}
	$('#result').trigger("update");

	dynamic_table();
}

function load_type(records) { // for 指考資料
	if(records.length > 0){
		$('#restrict').html("<table style=\"margin: 0 auto\"><thead><tr><td width=\"100\">身份別</td><td width=\"100\">最低分數</td><td width=\"100\">同分參酌</td></tr></thead><tbody></tbody></table><br />");
		for(var i=0; i<records.length; i++) {
			var record = "";
			record += "<tr bgcolor=\"white\">";
			record += "<td>"+records[i].type+"</td>";
			record += "<td>"+records[i].score+"</td>";
			record += "<td>"+records[i].compare+"</td>";
			record += "</tr>";
			$('#restrict > table > tbody').append(record);
		}
	}
}

