YAHOO.namespace("jumpman");

var g_ajax = new nsajax("./nasp/api.aspx");






/**
 * エラー番号形式 TSSSNNN
 * [ﾀｲﾌﾟ1桁][ｻﾌﾞｼｽﾃﾑ3桁][固有番号3桁]
 *
 * ﾀｲﾌﾟ     1:エラー; 2:子エラー;
 * ｻﾌﾞｼｽﾃﾑ  000:システム; 001～ 連番
 * 固有番号 001～ 連番
 *
 */


var g_errors = {

	// システム
	0: "正常に処理されました",
	1000100: "入力エラーです",
	1000500: "原因不明のエラーです",

	// user
	1001201: "Name が既に使用されています",

	// friend
	1003201: "自分と友人になれません",
	1003202: "すでに友人か申請中です",

	// login
	1004201: "認証エラー"

};



var g_reasons = {

	// user
	2001101: "Nameが入力されていません",
	2001102: "Nameが長すぎます",
	2001201: "Passwordが入力されていません",
	2001202: "Passwordが長すぎます",
	2001301: "EMailが入力されていません",
	2001302: "EMailが長すぎます",

	// keyword
	2002101: "Wordが入力されていません",
	2002102: "Wordが長すぎます",
	2002201: "Urlが入力されていません",
	2002202: "Urlが長すぎます",

	// login
	2004101: "Nameが入力されていません",
	2004201: "Passwordが入力されていません"

};



/**
 * エラー整形
 *
 */
function genErrorMessage(err) {

	var msg = "";
	msg += g_errors[err.Status] + "\n";
	// 1000100 は入力エラー
	if(err.Status === "1000100"){
		$.each(err.Messages, function(i, n){
			msg += "・" + g_reasons[n] + "\n";
		});
	}
	// 1000500 は不明なエラー
	if(err.Status === "1000500"){
		msg += err.Title + "\n";
	}

	return msg;

}






/**
 * login チェック
 *
 */
function isLogin() {

	return (
		document.cookie.indexOf("LoginKey=") >= 0
	)

}






/**
 * user_logoutボタン 準備
 *
 */
function init_logout_button() {

	YAHOO.util.Event.addListener(
		$("#user_logout_button"),
		"click",
		 user_logout
	);

}



/**
 * user_logout 処理
 *
 */
function user_logout() {

	try {

		var r = g_ajax.naspExecute( "p_user_logout" );

	}catch(err){
		alert(err.Status);
	}

//	window.location.href="./"; //なぜかうまくいかず
	window.location.reload();
	document.end();

}






/**
 * user_loginダイアログ 準備
 *
 */
function init_user_login_dialog() {

	var handleSubmit = function() {
			user_login();
	};

	var handleCancel = function() {
		this.cancel();
	};

	YAHOO.jumpman.user_login_dialog
		 = new YAHOO.widget.Dialog("user_login_dialog",{
			 width               : "30em",
			 fixedcenter         : true,
			 modal               : true,
			 visible             : false,
			 constraintoviewport : true,
			 buttons             : [
				{
				 text:"Login",
				 handler: handleSubmit,
				 isDefault:true
				},
				{
				 text:"Cancel",
				 handler: handleCancel
				}
			]
		});

	var kl = new YAHOO.util.KeyListener(document,
		{ keys:13 },
		{
			fn:handleSubmit,
			scope:YAHOO.jumpman.user_login_dialog,
			correctScope:true
		}
	);
	YAHOO.jumpman.user_login_dialog.cfg.queueProperty("keylisteners", kl);


	var showdg = function() {

		var frm = $("#user_login_form");

		$("input[name='Name']",     frm).val("");
		$("input[name='Password']", frm).val("");

		YAHOO.jumpman.user_login_dialog.show();

	}

	YAHOO.util.Event.addListener(
		"user_login_button",
		"click",
		 showdg
	);


	YAHOO.jumpman.user_login_dialog.render();

}



/**
 * user_login 処理
 *
 */
function user_login(){

	try
	{
		var r = g_ajax.naspExecute( "p_user_login",
			$("#user_login_form").serialize()
		);

		alert("ログイン成功！");
		location.href="./";
	}
	catch(err)
	{

		// display error
		alert( genErrorMessage(err) );

		return;
	}

}






/**
 * user_createダイアログ 準備
 *
 */
function init_user_create_dialog() {

	var handleSubmit = function() {
			user_create();
	};

	var handleCancel = function() {
		this.cancel();
	};

	YAHOO.jumpman.user_create_dialog
		 = new YAHOO.widget.Dialog("user_create_dialog",{
			 width               : "30em",
			 fixedcenter         : true,
			 modal               : true,
			 visible             : false,
			 constraintoviewport : true,
			 buttons             : [
				{
				 text:"Submit",
				 handler: handleSubmit,
				 isDefault:true
				},
				{
				 text:"Cancel",
				 handler: handleCancel
				}
			]
		});


	var showdg = function() {

		var frm = $("#user_create_form");

		// obtain list data
		try
		{
			var se_data = g_ajax.naspLoad( "s_search_engine_list" );
		}
		catch(err)
		{
			alert(err.Title);
			return;
		}
		var se_list = se_data.Result.Items;

		var se_select = $("select[name='SearchEngineId']", frm);
		se_select.children().remove();
		se_select.after(se_select.clone()).remove();
		$.each(se_list, function(i, n){
			$("#user_create_form > select[name='SearchEngineId']")
				.append($("<option>")
				.attr({ value: n.Id })
				.text(n.Name));
		});

		$("input[name='Name']",     frm).val("");
		$("input[name='Password']", frm).val("");
		$("input[name='EMail']",    frm).val("");

		YAHOO.jumpman.user_create_dialog.show();

	}

	YAHOO.util.Event.addListener(
		"user_create_button",
		"click",
		 showdg
	);


	YAHOO.jumpman.user_create_dialog.render();


}



/**
 * user_create 処理
 *
 */
function user_create(){

	try
	{
		var r = g_ajax.naspExecute( "p_user_create",
			$("#user_create_form").serialize()
		);
		alert("登録成功！");
		location.href="./";
	}
	catch(err)
	{

		// display error
		alert( genErrorMessage(err) );

		return;
	}

}






/**
 * friend_rs_admintダイアログ 準備
 *
 */
function init_friend_rs_admit_dialog() {

	var handleAdmit = function() {
		friend_rs_admit( 
			$("input[name='Id']", $("#friend_rs_admit_form")).val()
		);
	};

	var handleRefuse = function() {
		friend_rs_refuse(
			$("input[name='Id']", $("#friend_rs_admit_form")).val()
		);
	};

	var handleCancel = function() {
		this.cancel();
	};

	YAHOO.jumpman.friend_rs_admit_dialog
		 = new YAHOO.widget.Dialog("friend_rs_admit_dialog",{
			 width               : "30em",
			 fixedcenter         : true,
			 modal               : true,
			 visible             : false,
			 constraintoviewport : true,
			 buttons             : [
				{
				 text:"Admit",
				 handler: handleAdmit,
				 isDefault:true
				},
				{
				 text:"Refuse",
				 handler: handleRefuse
				},
				{
				 text:"Cancel",
				 handler: handleCancel
				}
			]
		});

	YAHOO.jumpman.friend_rs_admit_dialog.render();

}



/**
 * friend_rs_admint 処理
 *
 */
function friend_rs_admit(id) {

	try
	{
		var r = g_ajax.naspExecute( "p_friend_rs_admit", "SUserId=" + id );
		YAHOO.jumpman.friend_rs_admit_dialog.hide();
	}
	catch(err)
	{
		if(err.Status === "1004201") //ログインエラー
			user_logout();

		alert(err);
		return;
	}

	alert("友達になりました！");

	load_friend_rs_list();


}



/**
 * friend_rs_refuse 処理
 *
 */
function friend_rs_refuse(id) {

	try
	{
		var r = g_ajax.naspExecute( "p_friend_rs_refuse", "SUserId=" + id );
		YAHOO.jumpman.friend_rs_admit_dialog.hide();
	}
	catch(err)
	{
		if(err.Status === "1004201") //ログインエラー
			user_logout();
		alert(err);
		return;
	}

	alert("拒否しました");

	load_friend_rs_list();


}






/**
 * friend_destroyダイアログ 準備
 *
 */
function init_friend_destroy_dialog() {

	var handleSubmit = function() {
		friend_destory(
			$("input[name='Id']", $("#friend_destroy_form")).val()
		);
	};

	var handleCancel = function() {
		this.cancel();
	};

	YAHOO.jumpman.friend_destroy_dialog
		 = new YAHOO.widget.Dialog("friend_destroy_dialog",{
			 width               : "30em",
			 fixedcenter         : true,
			 modal               : true,
			 visible             : false,
			 constraintoviewport : true,
			 buttons             : [
				{
				 text:"Submit",
				 handler: handleSubmit,
				 isDefault:true
				},
				{
				 text:"Cancel",
				 handler: handleCancel
				}
			]
		});

	YAHOO.jumpman.friend_destroy_dialog.render();

}



/**
 * friend_destroy処理
 *
 */
function friend_destory(id) {
	//friend destroy

	try
	{
		var r = g_ajax.naspExecute( "p_friend_destroy", "Id=" + id );
		YAHOO.jumpman.friend_destroy_dialog.hide();
	}
	catch(err)
	{
		if(err.Status === "1004201") //ログインエラー
			user_logout();
		alert(err);
		return;
	}

	load_friend_list();

}






/**
 * friend_ro_requestダイアログ 準備
 *
 */
function init_friend_ro_request_dialog() {

	var handleSubmit = function() {
		friend_ro_request();
	};

	var handleCancel = function() {
		this.cancel();
	};


	YAHOO.jumpman.friend_ro_request_dialog
		 = new YAHOO.widget.Dialog("friend_ro_request_dialog",{
			 width               : "14em",
			 fixedcenter         : true,
			 modal               : true,
			 visible             : false,
			 constraintoviewport : true,
			 buttons             : [
				{
				 text:"Submit",
				 handler: handleSubmit,
				 isDefault:true
				},
				{
				 text:"Cancel",
				 handler: handleCancel
				}
			]
		});

	var showdg = function(e, id) {

		var frm = $("#friend_ro_request_form");
		$("input[name='OUserId']", frm).val("");


		YAHOO.jumpman.friend_ro_request_dialog.show();

	}

	YAHOO.util.Event.addListener(
		"friend_ro_request_button",
		"click",
		 showdg
	);

	YAHOO.jumpman.friend_ro_request_dialog.render();

}



/**
 * friend_ro_request 処理
 *
 */
function friend_ro_request() {
	//friends_request

	try
	{
		var r = g_ajax.naspExecute( "p_friend_ro_request",
			$("#friend_ro_request_form").serialize()
		);
		YAHOO.jumpman.friend_ro_request_dialog.hide();
	}
	catch(err)
	{
		if(err.Status === "1004201") //ログインエラー
			user_logout();

		// display error
		alert( genErrorMessage(err) );
		return;
	}

	load_friend_ro_list();

}






/**
 * friend_ro_cancelダイアログ 準備
 *
 */
function init_friend_ro_cancel_dialog() {

	var handleSubmit = function() {
		friend_ro_cancel(
			$("input[name='Id']", $("#friend_ro_cancel_form")).val()
		);
	};

	var handleCancel = function() {
		this.cancel();
	};


	YAHOO.jumpman.friend_ro_cancel_dialog
		 = new YAHOO.widget.Dialog("friend_ro_cancel_dialog",{
			 width               : "30em",
			 fixedcenter         : true,
			 modal               : true,
			 visible             : false,
			 constraintoviewport : true,
			 buttons             : [
				{
				 text:"Submit",
				 handler: handleSubmit,
				 isDefault:true
				},
				{
				 text:"Cancel",
				 handler: handleCancel
				}
			]
		});

	YAHOO.jumpman.friend_ro_cancel_dialog.render();

}



/**
 * friend_ro_cancel 処理
 *
 */
function friend_ro_cancel(id) {

	try
	{
		var r = g_ajax.naspExecute( "p_friend_ro_cansel", "OUserId=" + id );
		YAHOO.jumpman.friend_ro_cancel_dialog.hide();

	}
	catch(err)
	{
		if(err.Status === "1004201") //ログインエラー
			user_logout();
		alert(err);
		return;
	}

	load_friend_ro_list();


}






/**
 * keyword_updateダイアログ 準備
 *
 */
function init_keyword_update_dialog() {

	var handleSubmit = function() {
		keyword_update();
	};

	var handleCancel = function() {
		this.cancel();
	};

	/// prepare dialog
	YAHOO.jumpman.keyword_update_dialog
		 = new YAHOO.widget.Dialog("keyword_update_dialog",{
			 width               : "30em",
			 fixedcenter         : true,
			 modal               : true,
			 visible             : false,
			 constraintoviewport : true,
			 buttons             : [
				{
				 text:"Submit",
				 handler: handleSubmit,
				 isDefault:true
				},
				{
				 text:"Cancel",
				 handler: handleCancel
				}
			]
		});

	/// prepare create button event
	var show_create_dg = function(e, id) {

		var frm = $("#keyword_update_form");
		$("input[name='Id']",   frm).val("");
		$("input[name='Word']", frm).val("");
		$("input[name='Url']",  frm).val("");

		YAHOO.jumpman.keyword_update_dialog.show();

	}

	/// bind create button event
	YAHOO.util.Event.addListener(
		"keyword_create_button",
		"click",
		 show_create_dg
	);


	YAHOO.jumpman.keyword_update_dialog.render();

}



/**
 * keyword_update 処理
 *
 */
function keyword_update() {

	if( $("input[name='Id']", $("#keyword_update_form")).val() === "") {
		keyword_create();
		return;
	}


	try
	{

		g_ajax.naspExecute( "p_keyword_update",
			$("#keyword_update_form").serialize()
		);
		YAHOO.jumpman.keyword_update_dialog.hide();

	}
	catch(err)
	{
		if(err.Status === "1004201") //ログインエラー
			user_logout();

		// display error
		alert( genErrorMessage(err) );
		return;
	}

	load_keyword_list();

}



/**
 * keyword_create 処理
 *
 */
function keyword_create(){

	try
	{
		g_ajax.naspExecute( "p_keyword_create",
			$("#keyword_update_form").serialize()
		);
		YAHOO.jumpman.keyword_update_dialog.hide();

	}
	catch(err)
	{

		if(err.Status === "1004201") //ログインエラー
			user_logout();

		// display error
		alert( genErrorMessage(err) );
		return;
	}

	load_keyword_list();

}






/**
 * keyword_destroyダイアログ 準備
 *
 */
function init_keyword_destroy_dialog() {

	var handleSubmit = function() {
		keyword_destroy(
			$("input[name='Id']", $("#keyword_destroy_form")).val()
		);
	};

	var handleCancel = function() {
		this.cancel();
	};

	YAHOO.jumpman.keyword_destroy_dialog
		 = new YAHOO.widget.Dialog("keyword_destroy_dialog",{
			 width               : "30em",
			 fixedcenter         : true,
			 modal               : true,
			 visible             : false,
			 constraintoviewport : true,
			 buttons             : [
				{
				 text:"Delete",
				 handler: handleSubmit
				},
				{
				 text:"Cancel",
				 handler: handleCancel
				}
			]
		});

	YAHOO.jumpman.keyword_destroy_dialog.render();

}



/**
 * keyword_destroy 処理
 *
 */
function keyword_destroy(id) {

	try
	{
		g_ajax.naspExecute( "p_keyword_destroy", "Id=" + id );
		YAHOO.jumpman.keyword_destroy_dialog.hide();
	}
	catch(err)
	{
		if(err.Status === "1004201") //ログインエラー
			user_logout();
		alert(err);
		return;
	}

	load_keyword_list();

}






/**
 * user_updateダイアログ 準備
 *
 */
function init_user_update_dialog() {

	var handleSubmit = function() {
		user_update();
	};

	var handleCancel = function() {
		this.cancel();
	};

	YAHOO.jumpman.user_update_dialog
		 = new YAHOO.widget.Dialog("user_update_dialog",{
			 width               : "30em",
			 fixedcenter         : true,
			 modal               : true,
			 visible             : false,
			 constraintoviewport : true,
			 buttons             : [
				{
				 text:"Submit",
				 handler: handleSubmit,
				 isDefault:true
				},
				{
				 text:"Cancel",
				 handler: handleCancel
				}
			]
		});


	var showdg = function() {

		var frm = $("#user_update_form");

		// obtain list data
		try
		{
			var se_data = g_ajax.naspLoad( "s_search_engine_list" );
		}
		catch(err)
		{
			alert(err.Title);
			return;
		}
		var se_list = se_data.Result.Items;

		var se_select = $("select[name='SearchEngineId']", frm);
		se_select.children().remove();
		se_select.after(se_select.clone()).remove();
		$.each(se_list, function(i, n){
			$("#user_update_form > select[name='SearchEngineId']")
				.append($("<option>")
				.attr({ value: n.Id })
				.text(n.Name));
		});


		// obtain item data
		try
		{
			var rdata = g_ajax.naspLoad( "s_user_item" );
		}
		catch(err)
		{
			if(err.Status === "1004201") //ログインエラー
				user_logout();
			alert(err.Title);
			return;
		}
		var obj = rdata.Result.Items[0];

		$("input[name='Name']",            frm).val( obj.Name );
		$("input[name='Password']",        frm).val( obj.Password );
		$("input[name='EMail']",           frm).val( obj.EMail );
		$("select[name='SearchEngineId']", frm).val( obj.SearchEngineId );

		YAHOO.jumpman.user_update_dialog.show();

	}

	YAHOO.util.Event.addListener(
		"user_update_button",
		"click",
		 showdg
	);


	YAHOO.jumpman.user_update_dialog.render();


}



/**
 * user_update 処理
 *
 */
function user_update() {

	try
	{
		var r = g_ajax.naspExecute( "p_user_update",
			$("#user_update_form").serialize()
		);
		YAHOO.jumpman.user_update_dialog.hide();
	}
	catch(err)
	{

		if(err.Status === "1004201") //ログインエラー
			user_logout();

		// display error
		alert( genErrorMessage(err) );

		return;
	}

	load_user_info();

}






/**
 *
 *
 */
function load_friend_ro_list() {

	// clear all
	$("#friend_ro_list > .template").hide();
	$("#friend_ro_list > *").not(".template").remove();

	// obtain data
	try
	{
		var rdata = g_ajax.naspLoad( "s_friend_ro_list" );
	}
	catch(err)
	{
		if(err.Status === "1004201") //ログインエラー
			user_logout();

		alert(err.Title);
		return;
	}


	var showdg = function(e, id) {

		try
		{
			var rdata = g_ajax.naspLoad( "s_friend_ro_item", "Id=" + id );
		}
		catch(err)
		{
			if(err.Status === "1004201") //ログインエラー
				user_logout();

			alert(err);
			return;
		}
		var obj = rdata.Result.Items[0];

		var frm = $("#friend_ro_cancel_form");
		$("input[name='Id']", frm).val(obj.OUserId);
		$(".Name", frm).text(obj.OUserName);

		YAHOO.jumpman.friend_ro_cancel_dialog.show();
	}


	// display data
	$.each(rdata.Result.Items, function(i, n){

		var elem = $("#friend_ro_list > .template").clone();
		elem.removeClass("template");
		$(".Name", elem).text(n.Name);
		$("#friend_ro_list").prepend(elem);
		elem.show();

		YAHOO.util.Event.addListener(
			$(".cancel", elem),
			"click",
			 showdg,
			 n.Id
		);

	});

}



/**
 *
 *
 */
function load_friend_rs_list() {

	// clear all
	$("#friend_rs_list > .template").hide();
	$("#friend_rs_list > *").not(".template").remove();

	// obtain data
	try
	{
		var rdata = g_ajax.naspLoad( "s_friend_rs_list" );
	}
	catch(err)
	{
		if(err.Status === "1004201") //ログインエラー
			user_logout();

		alert(err.Title);
		return;
	}


	var showdg = function(e, id) {

		try
		{
			var rdata = g_ajax.naspLoad( "s_friend_rs_item", "Id=" + id );
		}
		catch(err)
		{
			if(err.Status === "1004201") //ログインエラー
				user_logout();

			alert(err);
			return;
		}
		var obj = rdata.Result.Items[0];

		var frm = $("#friend_rs_admit_form");
		$("input[name='Id']", frm).val(obj.SUserId);
		$(".Name",            frm).text(obj.SUserName);

		YAHOO.jumpman.friend_rs_admit_dialog.show();
	}


	// display data
	$.each(rdata.Result.Items, function(i, n){

		var elem = $("#friend_rs_list > .template").clone();
		elem.removeClass("template");
		$(".Name", elem).text(n.Name);
		$("#friend_rs_list").prepend(elem);
		elem.show();

		YAHOO.util.Event.addListener(
			$(".admit", elem),
			"click",
			 showdg,
			 n.Id
		);

	});

}



/**
 *
 *
 */
function load_friend_list() {

	// clear all
	$("#friend_list > .template").hide();
	$("#friend_list > *").not(".template").remove();

	// obtain data
	try
	{
		var rdata = g_ajax.naspLoad( "s_friend_list" );
	}
	catch(err)
	{
		if(err.Status === "1004201") //ログインエラー
			user_logout();
		alert(err.Title);
		return;
	}


	var showdg = function(e, id) {

		try
		{
			var rdata = g_ajax.naspLoad( "s_friend_item", "Id=" + id );
		}
		catch(err)
		{
			if(err.Status === "1004201") //ログインエラー
				user_logout();
			alert(err);
			return;
		}
		var obj = rdata.Result.Items[0];

		var frm = $("#friend_destroy_form");
		$("input[name='Id']", frm).val( obj.Id );
		$(".Name", frm).text(obj.Name);

		YAHOO.jumpman.friend_destroy_dialog.show();
	}


	// display data
	$.each(rdata.Result.Items, function(i, n){

		var elem = $("#friend_list > .template").clone();
		elem.removeClass("template");
		$(".Name", elem).text(n.Name);
		$("#friend_list").prepend(elem);
		elem.show();

		YAHOO.util.Event.addListener(
			$(".destroy", elem),
			"click",
			 showdg,
			 n.Id
		);

	});

}




/**
 *
 *
 */
function load_keyword_list(){

	// clear all
	$("#keyword_list > .template").hide();
	$("#keyword_list > *").not(".template").remove();

	// obtain data
	try
	{
		var rdata = g_ajax.naspLoad( "s_keyword_list" );
	}
	catch(err)
	{
		if(err.Status === "1004201") //ログインエラー
			user_logout();

		alert(err.Title);
		return;
	}


	var show_update_dg = function(e, id) {

		// obtain data
		try
		{
			var rdata = g_ajax.naspLoad( "s_keyword_item", "Id=" + id );
		}
		catch(err)
		{
			if(err.Status === "1004201") //ログインエラー
				user_logout();

			alert(err.Title);
			return;
		}
		var obj = rdata.Result.Items[0];

		var frm = $("#keyword_update_form");
		$("input[name='Id']",   frm).val(obj.Id);
		$("input[name='Word']", frm).val(obj.Word);
		$("input[name='Url']",  frm).val(obj.Url);
		$("select[name='AccessLevel']", frm).val(obj.AccessLevel);

		YAHOO.jumpman.keyword_update_dialog.show();

	}

	var show_destroy_dg = function(e, id) {

		// obtain data
		try
		{
			var rdata = g_ajax.naspLoad( "s_keyword_item", "Id=" + id );
		}
		catch(err)
		{
			if(err.Status === "1004201") //ログインエラー
				user_logout();
			alert(err.Title);
			return;
		}
		var obj = rdata.Result.Items[0];

		var frm = $("#keyword_destroy_form");
		$("input[name='Id']", frm).val(obj.Id);
		$(".Word", frm).text(obj.Word);
		$(".Url", frm).text(obj.Url);

		YAHOO.jumpman.keyword_destroy_dialog.show();

	}

	// display data
	$.each(rdata.Result.Items, function(i, n){

		var elem = $("#keyword_list > .template").clone();
		elem.removeClass("template");
		$(".Word", elem).text(n.Word);
		$(".Word", elem).attr("href", n.Url);
		$("#keyword_list").prepend(elem);
		elem.show();

		YAHOO.util.Event.addListener(
			$(".update", elem),
			"click",
			 show_update_dg,
			 n.Id
		);

		YAHOO.util.Event.addListener(
			$(".destroy", elem),
			"click",
			 show_destroy_dg,
			 n.Id
		);

	});

}



/**
 *
 *
 */
function load_user_info(){

	// obtain data
	try
	{
		var rdata = g_ajax.naspLoad( "s_user_item" );
	}
	catch(err)
	{
		if(err.Status === "1004201") //ログインエラー
			user_logout();
		alert(err.Title);
		return;
	}
	var obj = rdata.Result.Items[0];

	var viw = $("#user_info");
	$(".UserId",       viw).text( obj.Id );
	$(".Name",         viw).text( obj.Name );
	$(".EMail",        viw).text( obj.EMail );
	$(".SearchEngine", viw).text( obj.SearchEngine );

}






