
backUrl = '/req';

FS = {};
FS.dataError = null;
FS.selected = 0;
FS.dataList = {};
FS.searchUrl = '';
FS.length = 0;
FS.company = {}

FS.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);
		}
	});
};

FS.extractResponse = function(response){
	if(response.hasError) {
	    FS.dataError = response.data;
		return null;
	}else if(response.data) {
		return response.data;
	}else {
		return null;
	}
};

FS.start = function(){
	//check cookie
	checkCookie();
	//---
	FS.selected = 0;
	FS.num = 0;
	FS.dataList = {};
	FS.searchUrl = check('#url');
	FS.searchUrl = trim(FS.searchUrl);
	FS.temp = '';
	var selected = $('#num option:selected').text();
	FS.selected = parseInt(selected);
	if(FS.searchUrl)
	{
		prepare();
		clear_message();
		FS.yahooSearchUrl();
		
	}else{
	    alert('正しいURLを入力してください。');
	    return;
	}
	//get url List and title info ,Step 1
	
};

FS.yahooSearchUrl = function(){
    var url = FS.searchUrl;
	var postData = 'cmd=geturl&url='+url+'&size='+FS.selected;
	FS.ajaxSend(FS.reqGetUrlList, postData);
}

FS.reqGetUrlList = function(response){
    FS.dataError = null;
    FS.totalResultsAvailable = null;
    FS.domainCount = null;
    
	var result = FS.extractResponse(response);
	var data = result.data;
	if (FS.dataError) {
	    alert(FS.dataError);
	    FS.show();
		return;
	}
	
	if(parseInt(data.totalResultsReturned)==0)
	{
		alert('結果がない');
		FS.show();
		return;
	}
	
	if(!data || !data['urlList']){
		alert('エラーが生じました。しばらくしてから再度お試しください。');
		FS.show();
		return;
	}
	
	FS.selected = data['urlList'].length;
	
	for(var i in data['urlList']){
		FS.dataList[i] = {};
		FS.dataList[i]['url'] = data['urlList'][i]['Url'];
		FS.dataList[i]['domains'] = data['urlList'][i]['domain'];
		FS.dataList[i]['domainTitle'] = data['urlList'][i]['Title'];
		
		FS.getUrlTitleAndNf(i);
	}

	FS.totalResultsReturned = data.totalResultsReturned;
	FS.totalResultsAvailable = data.totalResultsAvailable;
	FS.domainCount = data.domainCount;
	//FS.length = data['urlList'].length;
	
};

//查询url名字、nf值
FS.getUrlTitleAndNf = function(id){
	var postData = 'cmd=getresult&search='+FS.searchUrl+'&url='+FS.dataList[id]['url']+'&id='+id;
	FS.ajaxSend(FS.reqUrlTitleAndNf, postData);
};

FS.reqUrlTitleAndNf = function(response){
	var result = FS.extractResponse(response);
	var id = result.id;
	var data = result.data;
	
	FS.dataList[id]['title'] = data.title || null;
	FS.dataList[id]['nf'] = data.nf;
			
	FS.getPR(id); //Step 3


};

//查询pr值
FS.getPR = function(id){

	var postData = 'cmd=getPr&url='+FS.dataList[id]['url']+'&id='+id;
	FS.ajaxSend(FS.reqPR, postData);
	
};

FS.reqPR = function(response){
	var result = FS.extractResponse(response);
	var id = result.id;
	var data = result.data;
	
	FS.dataList[id]['pr'] = data.pr;
			
	FS.getIsRegister(id); //Step 4
};

//查询注册
FS.getIsRegister = function(id){
	
	var postData = 'cmd=getIsRegister&url='+FS.dataList[id]['url']+'&id='+id;
	FS.ajaxSend(FS.reqIsRegister, postData);
};

FS.reqIsRegister = function(response){
	var result = FS.extractResponse(response);
	var id = result.id;
	var data = result.data;
	
	FS.dataList[id]['isReg'] = data;
	
	if(FS.finish()==FS.selected){
		FS.show();
	}
	
	return;
	
};

//显示数据
FS.show = function(){
	//添加表头
	if (!FS.totalResultsAvailable){
	    $('#overlay').hide();
        $('#box').hide();
        return;
	}
	var text = '<tr bgcolor="#dd960f" class="sizestyle" align="center">\
	<td width="5%">順位</td>\
	<td width="50%">URL</td>\
	<td width="20%">リンクタイトル</td>\
	<td width="10%">NF</td>\
	<td width="5%">PR</td>\
	<td width="10%">Y！登録</td></tr>';
	$('#message').append(text);
	
	//添加CSV表头
/*	text = "<tr><td><input name=\"title_1\" value=\"順位\"></td><td><input name=\"title_2\" value=\"URL\"></td><td><input name=\"title_3\" value=\"リンクタイトル\"></td>" +
	   "<td><input name=\"title_4\" value=\"NF\"></td><td><input name=\"title_5\" value=\"PR\"></td><td><input name=\"title_6\" value=\"Y！登録\"></td></tr>";
	$('#form_0 table').append(text);*/
    text = '<div class="csvDiv"><a href="javascript:void(0)" id="explain_0" onclick="showExplain(this.id)">項目の説明</a> &nbsp;	&nbsp;<input type="submit" value="csv" /></div>';
	
	var patt = /^https?:\/\/(?:www\.)?([^\/]+)/; 
	var arr = FS.searchUrl.match(patt);
	if (arr[1]) {
		var url = arr[1];
	} else {
		var url = '';
	}

	var UserName = getCookie('UserName');
	var Email	 = getCookie('Email');
	
	text ='<input type="hidden" id="name" name="name" value="'+UserName+'"/><input  type="hidden" id="email" name="email" value="'+Email+'"/>'
	text += '<input type="hidden" name="URL" value="'+ FS.searchUrl +'">';
	text += "<input type=\"hidden\" name=\"filename\" value=\""+ url +"\">\
	   <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=\"NF\">\
	   <input type=\"hidden\" name=\"title_1_6\" value=\"PR\">\
	   <input type=\"hidden\" name=\"title_1_7\" value=\"Y！登録\">";
	$('#form_0').append(text);

	 for(var i in FS.dataList)
	 {
		var line = FS.dataList[i];
		i = parseInt(i);
		var num = i + 1;
		var title = line.title ? line.title : '-';
		var nf = line.nf ? 'Yes' : 'No';
		var pr = line.pr;
		
		var isReg = parseInt(line.isReg) ? '<img src="images/middle_25.gif" />' : '<img src="images/middle_28.gif" />';
		
		text = "<tr align='center'><td>" + num + '</td>\
		<td><p ><a target="_blank" href="'+ line.url +'">' + line.domainTitle + '</a></p><p >' + sub_link_title(line.url) + "</p></td>\
		<td>" + title + "</td>\
		<td>" + nf + "</td>\
		<td>" + pr + "</td>\
		<td>" + isReg + "</td></tr>";
		$('#message').append(text);
		
		//CSV数据\r\n  style="text-align:left"
		var isReg = parseInt(line.isReg) ? 1 : 0;
		text = "<input type=\"hidden\" name=\"value_1_" + num + "_1\" value=\"" + num + "\">\
		<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=\"" + title + "\">\
		<input type=\"hidden\" name=\"value_1_" + num + "_5\" value=\"" + nf +"\">\
		<input type=\"hidden\" name=\"value_1_" + num + "_6\" value=\"" + pr + "\">\
		<input type=\"hidden\" name=\"value_1_" + num + "_7\" value=\"" + isReg + "\">";
		$('#form_0').append(text);
		
	 }
	 $('#overlay').hide();
	 $('#box').hide();
	 $('#result_0').show();
	 $('#1_url').attr('title',FS.searchUrl);
	 $('#1_url').text(FS.searchUrl);
     format('#1_url');
	 $('#totalResultsAvailable').append(FS.totalResultsAvailable).show();
	 $('#domainCount').append(FS.domainCount).show();
     $('#message').show();
     $('#message tr:odd').css('background-color','#f8f8f8');
     
     var h = $('#message').height()+440; //计算插入表格后的div高度 420 + 20 抬高
     h = h > $('#center').height() ? h : $('#center').height(); //与当前div高度比较，取大
     $('#center').height(h); //重新设置高度
     $('#Containers .left').height(h); 
     $('#Containers .right').height(h);
     
     $('#overlay').remove();
     $('#box').remove();
};

//FW,FP点击按钮搜索
FS.doSearch = function(url,selected)
{
	var $div_li =$("#tab_menu ul li");
	$div_li.eq(1).addClass("selected").siblings().removeClass("selected"); 
	for (var i = 0; i < $div_li.length; i++) {
		var img = $div_li.eq(i).find('img');
		src = img.attr('src');
		src = src.replace('_v', '');
		img.attr('src',src);
	}
	var img = $div_li.eq(1).find('img');
	src = img.attr('src');
	var ftype = src.substring(src.lastIndexOf('.'), src.length);
	var hsrc = src.replace(ftype, '_v'+ftype);
	img.attr('src',hsrc);
		
	$("#tab_box > div").eq(1).show().siblings().hide(); 
	backUrl = '/req';
	FS.selected = selected;
	FS.searchUrl = url;

	$('#url').attr('value',FS.searchUrl);
	//切换当前查询选择数量与来者同
	var option = $('#num option');
	var optionHtml = '';
	var optionI = '';
	for (i = 0; i < option.length; i++) {
		optionI = option.eq(i);
		optionI.removeAttr('selected');
		optionHtml = optionI.html();
		 
		if(optionHtml == selected) {
			optionI.attr('selected','selected');
		}
	}
	//...
	
	FS.dataList = {};
	FS.num = 0;
	FS.temp = '';
	prepare();
	clear_message();
	FS.yahooSearchUrl();
}

FS.finish = function(){
	FS.num++;
	return FS.num;
}

/*判断是否输入为空*/
FS.IsEmpty = function() {
	var email = "";
	var emailpd = "";
	if($("#companyName").val() == ""){
		alert("会社名をご入力ください。");
		return false;
	}else if($("#companyEmail").val() != ""){
		email = $("#companyEmail").val();
		
		var at = email.indexOf("@");
		var dian = email.lastIndexOf(".");
		if((parseInt(at) <= 0 || parseInt(dian) <= 0) || parseInt(at) > parseInt(dian)){
			alert("メールアドレスを正しく入力してください!");
			return false;
		}else{
			return true;
		}
	}else if($("#companyEmail").val() == ""){
		alert("メールアドレスをご入力ください。");
		return false;
	}else{
		return true;
	}
}

//登陆
FS.loginContent = function(){
	//encodeURIComponent
	var loginType =  trim($('#loginType').val());
	if (loginType == 'Registe') {
		var focusId = false;
		var alertError = '';
		var Error = false;
		var CompanyName = trim($('#loginCompanyName').val());
		if(!CompanyName) {
			focusId = focusId ? focusId : '#loginCompanyName';
			Error = "会社名をご入力ください。";
			alertError += alertError ? "\r\n" + Error : Error;
//			alert("会社名をご入力ください。");
//			$('#loginCompanyName').focus();
//			return false;
		}
		var UserName 	= trim($('#loginUserName').val());
		if(!UserName) {
			focusId = focusId ? focusId : '#loginUserName';
			Error = "担当者名をご入力ください。";
			alertError += alertError ? "\r\n" + Error : Error;
//			alert("担当者名をご入力ください。");
//			$('#loginUserName').focus();
//			return false;
		}
		var WebSite 	= trim($('#loginWebSite').val());
		if(!WebSite) {
			focusId = focusId ? focusId : '#loginWebSite';
			Error = "WEBサイトURLをご入力ください。";
			alertError += alertError ? "\r\n" + Error : Error;
//			alert("WEBサイトURLをご入力ください。");
//			$('#loginWebSite').focus();
//			return false;
		}
		WebSite = check('#loginWebSite');
		if(!WebSite) {
			focusId = focusId ? focusId : '#loginWebSite';
			Error = "URLの入力に誤りがあるようです。";
			alertError += alertError ? "\r\n" + Error : Error;
//			alert("URLの入力に誤りがあるようです。");
//			$('#loginWebSite').focus();
//			return false;
		}
		var ZipCode 	= trim($('#loginZipCode').val());
		if(!ZipCode) {
			focusId = focusId ? focusId : '#loginZipCode';
			Error = "郵便番号をご入力ください。";
			alertError += alertError ? "\r\n" + Error : Error;
//			alert("郵便番号をご入力ください。");
//			$('#loginZipCode').focus();
//			return false;
		}
		//150-0031 
		var   re=/^(\d{3}-\d{4})|\d{7}$/i;
		if(!re.test(ZipCode))  
	    {  
			focusId = focusId ? focusId : '#loginZipCode';
			Error = "郵便番号の入力に誤りがあるようです。";
			alertError += alertError ? "\r\n" + Error : Error;
//			alert("郵便番号の入力に誤りがあるようです。");
//			$('#loginZipCode').focus();
//			return false; 
	    }
		var Residence	= trim($('#loginResidence').val());
		if(!Residence) {
			focusId = focusId ? focusId : '#loginResidence';
			Error = "住所をご入力ください。";
			alertError += alertError ? "\r\n" + Error : Error;
//			alert("住所をご入力ください。");
//			$('#loginResidence').focus();
//			return false;
		}
		var Email		= trim($('#loginEmail').val());
		if(!Email) {
			focusId = focusId ? focusId : '#loginEmail';
			Error = "メールアドレスをご入力ください。";
			alertError += alertError ? "\r\n" + Error : Error;
//			alert("メールアドレスをご入力ください。");
//			$('#loginEmail').focus();
//			return false;
		}
		var   re=/^(([\w]+)|([\w]+[\w.-]*[\w]+))@([0-9a-z][\w-]+\.)+[a-z]{2,4}$/i;
	    //或   var   re=new   RegExp("^[\\w.-]+@([0-9a-z][\\w-]+\\.)+[a-z]{2,3}$","i");  
	    if(!re.test(Email))  
	    {
	    	focusId = focusId ? focusId : '#loginEmail';
			Error = "メールアドレスの入力に誤りがあるようです。";
			alertError += alertError ? "\r\n" + Error : Error;
//			alert("メールアドレスの入力に誤りがあるようです。");
//			$('#loginEmail').focus();
//			return false; 
	    }
	    
		var Email_C		= trim($('#loginEmail_C').val());
		
		var Password	= $('#loginPassword').val();
		if(!Password) {
			focusId = focusId ? focusId : '#loginPassword';
			Error = "パスワードをご入力ください。";
			alertError += alertError ? "\r\n" + Error : Error;
//			alert("パスワードをご入力ください。");
//			$('#loginPassword').focus();
//			return false;
		}
		var Password_C	= $('#loginPassword_C').val();

//		if(!CompanyName || !UserName || !WebSite || !ZipCode || !Residence ||!Email || !Password) {
//			alert('必須では空にできません。');
//			return;
//		}
		if (Email != Email_C) {
			focusId = focusId ? focusId : '#loginEmail_C';
			Error = "メールアドレスと確認用メールアドレスが一致しません。";
			alertError += alertError ? "\r\n" + Error : Error;
//			$('#loginEmail_C').focus();
//			alert('メールアドレスと確認用メールアドレスが一致しません。');
//			return;
		}
		if (Password != Password_C) {
			focusId = focusId ? focusId : '#loginPassword_C';
			Error = "パスワードと確認用パスワードが一致しません。";
			alertError += alertError ? "\r\n" + Error : Error;
//			$('#loginPassword_C').focus();
//			alert('パスワードと確認用パスワードが一致しません。');
//			return;
		}
		if (focusId) {
			$(focusId).focus();
			alert(alertError);
			return false;
		}
		var postData = 'cmd=getLogin&type=Registe' 
						+ '&CompanyName=' + encodeURIComponent(CompanyName) 
						+ "&UserName=" + encodeURIComponent(UserName)  
						+ "&WebSite=" + encodeURIComponent(WebSite) 
						+ "&ZipCode=" + encodeURIComponent(ZipCode) 
						+ "&Residence=" + encodeURIComponent(Residence) 
						+ "&Email=" + encodeURIComponent(Email) 
						+ "&Password=" + encodeURIComponent(Password) 
						;

		FS.ajaxSend(FS.reqLoginContent, postData);
	} else if (loginType == 'Login') {
		var Email		= trim($('#loginEmail').val());
		var Password	= $('#loginPassword').val();
		if (!Email || !Password) {
			alert('メールアドレスとパスワードは空にできません。');
			return;
		}
		var postData = 'cmd=getLogin&type=Login'
						+ "&Email=" + encodeURIComponent(Email) 
						+ "&Password=" + encodeURIComponent(Password) 
		FS.ajaxSend(FS.reqLoginContent, postData);
	}
	return;
	//var id = Math.random(1,100);
	//var postData = 'cmd=getLogin&id='+id;
	//FS.ajaxSend(FS.reqLoginContent, postData);
};

FS.reqLoginContent = function(response){
	var result = FS.extractResponse(response);
	if(!result) {
		if(FS.dataError.error == 'Email is used') {
			FS.dataError.error = 'ご入力のメールアドレスはすでに登録されています。';
			$('#loginEmail').focus();
		} else if (FS.dataError.error == 'Email or password error') {
			FS.dataError.error = 'メールアドレスもしくはパスワードが異なります。';
		}
		alert(FS.dataError.error);
		return;
	}
	//alert(result.toSource())
	if (!result.UserName || !result.Email) {
		alert('error request');
		return;
	}
	setCookie('UserName', result.UserName, 30);
	setCookie('Email', result.Email, 30);
	window.location.href="/index1.html?name="+result.UserName+"&email="+result.Email;
	return;
	var id = result.id;
	FS.company[id] = {};
	if(FS.IsEmpty()){
		FS.company[id]['name'] = $("#companyName").val();
		FS.company[id]['email'] = $("#companyEmail").val();
		//http://framework-python.appspot.com/index1.html       http://www.linkcheetah.net           localhost:8080
		window.location.href="/index1.html?name="+FS.company[id]['name']+"&email="+FS.company[id]['email'];
	}
};

//加载遮罩,提示登录后才能搜索的层
function alertMessage(messages, index){
	var UserName = getCookie('UserName');
	var Email	 = getCookie('Email');
	index = index ? index : 0;
	setCookie('index', index, 30);
	if(UserName && Email) {
		window.location.href="/index1.html?name="+UserName+"&email="+Email;
	}else if (messages == '/index.html') {
        window.location.replace('/selectlogin.html');
    } 
    return true;
    var height=windowHeight();
    var top = (height-70)/2;
    var left = (windowWidth()-310)/2;
	var body_h = $('body').height();
	 var h = body_h > windowHeight() ? body_h : windowHeight;
   	$('body').append('<div id="overlay" style="display:none;_width:'+windowWidth()+'px;height:'+h+'px"></div>');
    $('body').append('<div id="boxlog" style="display:none;top:'+top+'px;left:'+left+'px"><div class="frame" style="width:310px; height:80px; border:1px solid #c31401;"><a href="'+messages+'" class="tishi"><img src="images/middle_28.jpg"/></a><div class="clear" style="clear:both"></div><p style="margin:10px 0 0 40px;">ご利用いただくには会員登録が必要です。</p><p style="margin:0px 0 0 40px;"><a href="/selectlogin.html">こちらから</a>登録をお済ませください!</p></div></div>');
    $('#overlay').css('opacity',0.5);
	$('#overlay').fadeIn('fast');
	$('#boxlog').fadeIn();
}


//<div class="frame" style="width:260px; height:80px; border:1px solid #c31401;"><div style="padding:0 0 10px 10px"></div>
//<img src="images/middle_v_28.jpg" alt="" style="float:right; margin:2px;" />
//<div class="clear"></div>
//<p style="margin:10px 0 0 10px;">ご利用いただくには会員登録が必要です。</p>
//<p style="margin:10px 0 0 10px;"><a href="/selectlogin.html">こちらから</a>登録をお済ませください!</p></div>





