FW = {};
FW.dataError = null;
FW.selected = 0;
FW.dataList = {};
FW.searchUrl = '';
FW.checkUrl = '';
FW.temp = '';
FW.checkUrlId = 1024;

FW.ajaxSend = function(callback, postData, url, method){
	var postData = postData || null;
	var method = method || 'post';
	var url = url || backUrl;

	 $.ajax({
		type:method,
		url:url,
		data:postData,
		dataType:'json',
		async: true,
		success:callback,
		error:function(xhr, ajaxOptions, thrownError){
		  var temp = postData.split("&");
		  var postDataArr = {};
		  for (var i=0; i < temp.length; i++){
			  var each = temp[i].split("=");
			  postDataArr[each[0]] = each[1];
		  }
		  var response = {hasError : false, data : {}};
		  response.data.id = postDataArr.id || 0;
		  response.data.id = parseInt(response.data.id);
		  response.data.data = {};
		  
		  callback(response);
		}
   });
};

FW.extractResponse = function(response){
	if(response.hasError) {
	    FW.dataError = response.data;
		return response.data;
	}else if(response.data) {
		return response.data;
	}else {
		return {};
	}
};


FW.start = function(){
	//check cookie
	checkCookie();
	//---
	FW.selected = 0
	FW.num = 0;
	FW.dataList = {};
//	FW.searchUrl = check('#url_1');
	FW.searchUrl = trim($('#url_1').val());
	FW.checkUrl  = check('#checkUrl_1');
	backUrl = '/req';
	
	if(FW.searchUrl)
	{
		document.getElementById("divimg").style.display = 'none';
		prepare();
		
		clear_message_1();
		if(FW.checkUrl) {
			FW.yahooCheckUrl();
		} else {
			FW.yahooSearchUrl(); //Step 1
		}
	}
};
FW.yahooCheckUrl = function(){
	
	
    var postData = 'cmd=geturl&type=url&url='+ FW.checkUrl +'&size=1';
    
	FW.ajaxSend(FW.reqYahooCheckUrl,postData);  
}
FW.reqYahooCheckUrl = function(response){
	var result = FW.extractResponse(response);
	if(result && result.data && result.data.urlList) {
		var data = result.data;
		var i = FW.checkUrlId;
		FW.dataList[i] = {};
		FW.dataList[i]['url'] = FW.checkUrl;
		FW.dataList[i]['domains'] = data['domain'];
		FW.dataList[i]['domainTitle'] = '';
	}
	FW.yahooSearchUrl(); //Step 1
}


FW.yahooSearchUrl = function(){
	var selected = $('#num_1 option:selected').text();
	FW.selected = parseInt(selected);
    var url = FW.searchUrl;
	
    var postData = 'cmd=geturl&type=keyword&url='+url+'&size='+selected;
    
	FW.ajaxSend(FW.reqGetUrlList,postData);  
}

FW.reqGetUrlList = function(response){
    FW.dataError = null;
    FW.totalResultsAvailable = null;
    FW.domainCount = null;
    
	var result = FW.extractResponse(response);
	var data = result.data;
	if (FW.dataError) {
	    alert(FW.dataError);
	    FW.show();
		return;
	}
	
	if(parseInt(data.totalResultsReturned)==0)
	{
		alert('結果がない');
		FW.show();
		return;
	}
	
	if(!data || !data['urlList'] || !data['urlList'][0]){
		alert('エラーが生じました。しばらくしてから再度お試しください。');
		FW.show();
		return;
	}
	
	FW.selected = data['urlList'].length;
	
	
	for(var i in data['urlList']){
		FW.dataList[i] = {};
		FW.dataList[i]['url'] = data['urlList'][i]['Url'];
		FW.dataList[i]['domains'] = data['urlList'][i]['domain'];
		FW.dataList[i]['domainTitle'] = data['urlList'][i]['Title'];
		
		FW.getTotalResultsAvailable(i);
	}
	if(FW.checkUrl && FW.dataList[FW.checkUrlId]) {
		FW.selected += 1;
		FW.getTotalResultsAvailable(FW.checkUrlId);
	} 
	FW.domainCount = data.domainCount;
	FW.totalResultsAvailable = data.totalResultsAvailable;	
};

//查询每个url被链接总数、独立域名数
FW.getTotalResultsAvailable = function(id){
	
	var postData = 'cmd=geturl&type=url&url='+FW.dataList[id]['url']+'&size=1&id='+id;
	FW.ajaxSend(FW.reqTotalResultsAvailable, postData);   
}

FW.reqTotalResultsAvailable = function(response){
	var result = FW.extractResponse(response);
	var data = result.data;
	var id = result.id;
	if (data && data.totalResultsAvailable){
		FW.dataList[id]['totalResultsAvailable'] = data.totalResultsAvailable;
		FW.dataList[id]['domainCount'] = data.domainCount;
	}else {
		FW.dataList[id]['totalResultsAvailable'] = '';
		FW.dataList[id]['domainCount'] = 0;
	}

	FW.getPR(id);//Step 3

}

//查询域名PR值
FW.getPR = function(id){

	var postData = 'cmd=getPr&url='+FW.dataList[id]['url']+'&id='+id;
	FW.ajaxSend(FW.reqPR, postData);   	
};

FW.reqPR = function(response){
	var result = FW.extractResponse(response);
	var data = result.data;
	var id = result.id;
	
	FW.dataList[id]['pr'] = data.pr;
	FW.getIsRegist(id);//Step 4
};

//查询域名是否被注册
FW.getIsRegist = function(id){
	var start = start || 0;
	FW.temp = start;
	
	var postData = 'cmd=getIsRegister&url='+FW.dataList[id]['url']+'&id='+id;
	FW.ajaxSend(FW.reqIsRegist, postData);
};

FW.reqIsRegist = function(response){
	var result = FW.extractResponse(response);
	var data = result.data;
	var id = result.id;
	
	FW.dataList[id]['isReg'] = data;
	FW.getDomainAge(id);//Step 5
};

//查询域名年龄
FW.getDomainAge = function(id){

	var postData = 'cmd=getDomainNameAge&url='+FW.dataList[id]['url']+'&id='+id;
	FW.ajaxSend(FW.reqDomainAge, postData);
};

FW.reqDomainAge = function(response){
	var result = FW.extractResponse(response);
	var data = result.data;
	var id = result.id;
	
	FW.dataList[id]['CreationDate'] = data.CreationDate;//起始时间
	FW.dataList[id]['ExpirationDate'] = data.ExpirationDate;//结束时间
	
	if(FW.finish()==FW.selected){
	  	FW.show(); //Step 6
	  	return;
	}
};

//显示数据
FW.show = function(){
	if (!FW.totalResultsAvailable){
	    $('#overlay').hide();
        $('#box').hide();
        return;
	}
	var urlDomain = [];
	var chlInfo = [];
	var outLinkCount = [];
	//添加表头
	var text = '<tr bgcolor="#dd960f" class="sizestyle" align="center">\
	<td width="5%">順位</td>\
	<td width="40%">URL</td>\
	<td width="10%">外部リンク数</td>\
	<td width="10%">独自ドメイン数</td>\
	<td width="5%">PR</td>\
	<td width="6%">Y！登録</td>\
	<td width="14%">ドメイン年数</td>\
	<td width="10%" title="サイト指定外部リンク分析">Check</td>\
	</tr>'
	$('#message_1').append(text);
	
	if(FW.checkUrl && FW.dataList[FW.checkUrlId]) {
		$('#message_1_url').append(text);
	} 
	
	//添加CSV表头
	var UserName = getCookie('UserName');
	var Email	 = getCookie('Email');
	
	text = '<div class="csvDiv"><a href="javascript:void(0)" id="explain_1" onclick="showExplain(this.id)">項目の説明</a>&nbsp;&nbsp;<input type="submit" value="csv" /></div>';
	text = '<input type="hidden" name="keyword" value="'+ FW.searchUrl +'">';
	text += "<input type=\"hidden\" id=\"name\" name=\"name\" value=\""+UserName+"\"/><input  type=\"hidden\" id=\"email\" name=\"email\" value=\""+Email+"\"/>";
	text += "<input type=\"hidden\" name=\"filename\" value=\""+FW.searchUrl+"\">\
	<input type=\"hidden\" name=\"title_1_1\" value=\"順位\">\
	<input type=\"hidden\" name=\"title_1_2\" value=\"タイトル\">\
	<input type=\"hidden\" name=\"title_1_3\" value=\"URL\">\
	<input type=\"hidden\" name=\"title_1_4\" value=\"外部リンク数\">\
	<input type=\"hidden\" name=\"title_1_5\" value=\"独自ドメイン数\">\
	<input type=\"hidden\" name=\"title_1_6\" value=\"PR\">\
	<input type=\"hidden\" name=\"title_1_7\" value=\"Y！登録\">\
	<input type=\"hidden\" name=\"title_1_8\" value=\"ドメイン年数\">";
	if(FW.checkUrl && FW.dataList[FW.checkUrlId]) {
		text += "\
		<input type=\"hidden\" name=\"title_2_1\" value=\"順位\">\
		<input type=\"hidden\" name=\"title_2_2\" value=\"タイトル\">\
		<input type=\"hidden\" name=\"title_2_3\" value=\"URL\">\
		<input type=\"hidden\" name=\"title_2_4\" value=\"外部リンク数\">\
		<input type=\"hidden\" name=\"title_2_5\" value=\"独自ドメイン数\">\
		<input type=\"hidden\" name=\"title_2_6\" value=\"PR\">\
		<input type=\"hidden\" name=\"title_2_7\" value=\"Y！登録\">\
		<input type=\"hidden\" name=\"title_2_8\" value=\"ドメイン年数\">";
	} 
	$('#form_1').append(text);
	//一些总数
	var T_num = 1;
	var T_totalResultsAvailable = 0;
	var T_domainCount = 0;
	var T_PR = 0;
	var T_Totaldays = 0;
	var T_isReg = 0;
	
		 for(var i in FW.dataList)
		 {
			var line = FW.dataList[i];
			i = parseInt(i);
			var num = i + 1;
			if (FW.checkUrlId != i){
				T_num = num;
			}
			
			var pr = line.pr;
//			var isReg = line.isReg;

			var isReg = parseInt(line.isReg) ? '<img src="images/middle_25.gif" />' : '<img src="images/middle_28.gif" />';
			
			var totalResultsAvailable = line.totalResultsAvailable ? line.totalResultsAvailable : '-'
			
			var CreationDate = line.CreationDate;
			var ExpirationDate = line.ExpirationDate;
			//alert(i + ' i =  ' +CreationDate);
			var startDate = (strtotime(CreationDate))*1000;
			var endDate = (strtotime(ExpirationDate))*1000;
			
			var t = get_today();
			endDate = endDate > t ? t : endDate;//结束日期与当前时间比较
		
			var Totaldays = (endDate-startDate)/(1000*24*3600);
			var year = parseInt(Totaldays/365);
			var date = parseInt((Totaldays%365)/30);
			var day = parseInt((Totaldays%365)%30);
			
			var domainTime = year + "年" + date + "ヶ月" + day + "日";
			if (!year && !date && !day) {
				domainTime = '取得失敗';
			}
			var num_val = num == (FW.checkUrlId + 1) ? '貴社' : num;
			
			text = "<tr align=\"center\">\
			<td><p>" + num_val + '</p></td>\
			<td><p ><a target="_blank" href="'+ line.url +'">' + line.domainTitle + '</a></p><p >' + sub_link_title(line.url) + "</p></td>\
			<td>" + totalResultsAvailable + "</td>\
			<td>" + line.domainCount + "</td>\
			<td>" + pr + "</td>\
			<td>" + isReg + "</td>\
			<td><p title='開始日:" + CreationDate + ",終了日:" + ExpirationDate + "," + Totaldays + "日使用'>" + domainTime + "</p></td>\
			<td><input type=\"button\" value=\"Check\" id=" + line.url + " onclick=\"FS.doSearch(this.id,FW.selected)\" title=\"サイト指定外部リンク分析\"/></td>\
			</tr>";
			if(FW.checkUrl && i == FW.checkUrlId) {
				var message_1_url_text = text;
				
			} else {
				$('#message_1').append(text);
			}
			
			var isReg = parseInt(line.isReg) ? 1 : 0;
			//填充CSV数据 style="text-align:left"
			
			text = "<input type=\"hidden\" name=\"value_1_" + num + "_1\" value=\"" + num_val + "\">\
			<input type=\"hidden\" name=\"value_1_" + num + "_2\" value=\"" + line.domainTitle + "\">\
			<input type=\"hidden\" name=\"value_1_" + num + "_3\" value=\"" + line.url + "\">\
			<input type=\"hidden\" name=\"value_1_" + num + "_4\" value=\"" + totalResultsAvailable + "\">\
			<input type=\"hidden\" name=\"value_1_" + num + "_5\" value=\"" + line.domainCount +"\">\
			<input type=\"hidden\" name=\"value_1_" + num + "_6\" value=\"" + pr +"\">\
			<input type=\"hidden\" name=\"value_1_" + num + "_7\" value=\"" + isReg + "\">\
			<input type=\"hidden\" name=\"value_1_" + num + "_8\" value=\"" + domainTime + "\">";
			if(FW.checkUrl  && i == FW.checkUrlId) {
				text = "<input type=\"hidden\" name=\"value_2_2_1\" value=\"" + num_val + "\">\
				<input type=\"hidden\" name=\"value_2_2_2\" value=\"-\">\
				<input type=\"hidden\" name=\"value_2_2_3\" value=\"" + line.url + "\">\
				<input type=\"hidden\" name=\"value_2_2_4\" value=\"" + totalResultsAvailable + "\">\
				<input type=\"hidden\" name=\"value_2_2_5\" value=\"" + line.domainCount +"\">\
				<input type=\"hidden\" name=\"value_2_2_6\" value=\"" + pr +"\">\
				<input type=\"hidden\" name=\"value_2_2_7\" value=\"" + isReg + "\">\
				<input type=\"hidden\" name=\"value_2_2_8\" value=\"" + domainTime + "\">";
				var message_1_url_csv = text;
			} else {
				$('#form_1').append(text);
			}
			//放弃URL查询的数据加入整数
			if(FW.checkUrl && i == FW.checkUrlId) {
				continue;
			}
			
			//绘图
			urlDomain.push(line.domains);
			chlInfo.push(line.domainCount);
			outLinkCount.push(line.totalResultsAvailable ? line.totalResultsAvailable : 0);
			
			//一些总数
			//外部リンク数
			T_totalResultsAvailable += parseInt(totalResultsAvailable);
			//独自ドメイン数
			T_domainCount += parseInt(line.domainCount);
			//PR
			T_PR += parseInt(pr);
			//Y！登録
			T_isReg += isReg;
			//ドメイン年数
			T_Totaldays += Totaldays;
			
		 }
		 T_totalResultsAvailable = T_totalResultsAvailable ? parseInt(T_totalResultsAvailable/T_num) : 0;
		 T_domainCount = T_domainCount ? parseInt(T_domainCount/T_num) : 0;
		 T_PR = T_PR ? parseInt(T_PR/T_num) : 0;
		 T_Totaldays = T_Totaldays ? parseInt(T_Totaldays/T_num) : 0;
		 T_isReg = T_isReg || 0;
		 var year = parseInt(T_Totaldays/365);
		 var date = parseInt((T_Totaldays%365)/30);
		 var day = parseInt((T_Totaldays%365)%30);
		 
		 var domainTime = year + "年" + date + "ヶ月" + day + "日";
		 if (!year && !date && !day) {
			 domainTime = '取得失敗';
		 }
			
		 //CSV 下载的一些均值
		 text = "<input type=\"hidden\" name=\"title_2_1\" value=\"平均\">\
				<input type=\"hidden\" name=\"title_2_2\" value=\"-\">\
				<input type=\"hidden\" name=\"title_2_3\" value=\"-\">\
				<input type=\"hidden\" name=\"title_2_4\" value=\"" + T_totalResultsAvailable + "\">\
				<input type=\"hidden\" name=\"title_2_5\" value=\"" + T_domainCount +"\">\
				<input type=\"hidden\" name=\"title_2_6\" value=\"" + T_PR +"\">\
				<input type=\"hidden\" name=\"title_2_7\" value=\"" + T_isReg + "\">\
				<input type=\"hidden\" name=\"title_2_8\" value=\"" + domainTime + "\">";
		 if(FW.checkUrl && FW.dataList[FW.checkUrlId]) {
			 text = "<input type=\"hidden\" name=\"value_2_1_1\" value=\"平均\">\
				<input type=\"hidden\" name=\"value_2_1_2\" value=\"-\">\
				<input type=\"hidden\" name=\"value_2_1_3\" value=\"-\">\
				<input type=\"hidden\" name=\"value_2_1_4\" value=\"" + T_totalResultsAvailable + "\">\
				<input type=\"hidden\" name=\"value_2_1_5\" value=\"" + T_domainCount +"\">\
				<input type=\"hidden\" name=\"value_2_1_6\" value=\"" + T_PR +"\">\
				<input type=\"hidden\" name=\"value_2_1_7\" value=\"" + T_isReg + "\">\
				<input type=\"hidden\" name=\"value_2_1_8\" value=\"" + domainTime + "\">"
				+ message_1_url_csv;

			 message_1_url_text = "<tr align=\"center\">\
				<td><p>" + '平均</p></td>\
				<td><p >-</p>' + "</td>\
				<td>" + T_totalResultsAvailable + "</td>\
				<td>" + T_domainCount + "</td>\
				<td>" + T_PR + "</td>\
				<td>" + T_isReg + "</td>\
				<td><p>" + domainTime + "</p></td>\
				<td></td>\
				</tr>" + message_1_url_text;
				
				$('#message_1_url').append(message_1_url_text);
		 } 
		 $('#form_1').append(text);
		 //CSV 下载 END
		 
		 $('#overlay').hide();
	     $('#box').hide();
	     $('#result_1').show();
	     $('#2_word').attr('title',FW.searchUrl);
	     $('#2_word').text(FW.searchUrl);
         format('#2_word');
	     
		 //$('#totalResultsAvailable_1').append(FW.totalResultsAvailable).show();
		 $('#totalResultsAvailable_1').append(T_totalResultsAvailable).show();
		 //$('#domainCount_1').append(FW.domainCount).show();
		 $('#domainCount_1').append(T_domainCount).show();
		 
	     $('#message_1').show();
	     $('#message_1 tr:odd').css('background-color','#f8f8f8');
	     var h = $('#message_1').height()+840;  //计算插入表格后的div高度  840 = 原Div高度（420） + 图片高度（420）
	     h += 130;//抬高
		 if(FW.checkUrl && FW.dataList[FW.checkUrlId]) {
			 $('#message_1_url').show();
	    	 $('#message_1_url tr:odd').css('background-color','#f8f8f8');
		 	 h += $('#message_1_url').height();
		 }
	     h = h > $('#center').height() ? h : $('#center').height(); //与当前div高度比较，取大
	     $('#center').height(h);
	     $('#Containers .left').height(h);
	     $('#Containers .right').height(h);
	     $('#overlay').remove();
	     $('#box').remove();
		//画图
		
		getLinkAndCount(FW.searchUrl,urlDomain,chlInfo,outLinkCount)
		
		//domainAndCount(num,FW.searchUrl,chlInfo,urlDomain);
		//outLinkAndCount(num,FW.searchUrl,outLinkCount,urlDomain);
};

FW.finish = function(){
	FW.num++;
	return FW.num;
}



