function jip(red,args,two,func){
	if(keeplog){
		if(two){
			var funcst = func.toString().replace('function ','');
		}else{
			var funcst = jip.caller.toString().replace('function ','');
		}
		var funcst2 = funcst.split("(");
		var funcst3 = funcst2[1].split(")");
		var time = new Date();
		var now = time.toString().split(' ');
		var sec = time.getMilliseconds();
		if(!two){
			starttime.push(time.getTime());
		}else{
			var howlong = time.getTime() - starttime[starttime.length-1];	
			starttime.pop();
		}
		var jtxt = $('#jlogbox2').html();
		var redon = '';
		if(red != undefined){
			redon = 'redon';
		}
		var arg = '';
		if(args!= undefined){
			for(i=0;i<args.length;i++){
				arg +=", "+args[i]+':'+this.parent[args[i]];
			}
		}
		var space = '';
		for(var i=0;i<=jipstory;i++){
			space+="　";
		}
		if(two){
			$('#jlogbox2').html('<div id="log-'+time.getTime()+'" class="greyon">'+space+' '+now[4]+'.'+sec+'('+howlong+') '+funcst2[0]+'('+funcst3[0]+') = '+arg+'</div>'+jtxt);
		}else{
			$('#jlogbox2').html('<div id="log-'+time.getTime()+'" class="'+redon+'">'+space+' '+now[4]+'.'+sec+' '+funcst2[0]+'('+funcst3[0]+') = '+arg+'</div>'+jtxt);
		}
		if(red != undefined){
			$('#log-'+time.getTime()).css({'color':red});
		}
	}
	if(!two){
		jipstory++;
	}
}
function jip2(red,args){
	jipstory--;
	jip(red,args,true,jip2.caller);
}
function checkAll(where){
	jip();
	if(where == "dislay"){
		for(i=0;i<FWORDS.length;i++){
			v[FWORDS[i]]['ok'] = 0;
			$('#ok-'+FWORDS[i]).attr('checked','');
		}
		$("#rightmenu2").hide('slow');
	}else if(where == "list"){
		var TWORDS = whichWord();
		for(i=0;i<TWORDS.length;i++){
			v[TWORDS[i]]['ok'] = 0;
			$('#ok-'+TWORDS[i]).attr('checked','');
		}
		$("#rightmenu2").hide('slow');
	}else{
		for(i=0;i<selected.length;i++){
			v[FWORDS[selected[i]]]['ok'] = 0;
			$('#ok-'+FWORDS[selected[i]]).attr('checked','');
		}
		$("#rightmenu").hide('slow');
	}
	jip2();
}
function deleteAll(){
	jip();
	var xkv = whichKV();
	var TWORDS = whichWord();
	var sl = [];
	for(i=0;i<selected.length;i++){
		sl.push(TWORDS[selected[i]]);
	}
	if(whichdis == "mylist"){
		var sl2 = [];
		for(i=0;i<sl.length;i++){
			sl2.push(olkv[olistdis][sl[i]]);
		}
		OLWORDS[olistdis].pop2(sl2);
		reRender(true);
	}else{
		var sl2 = [];
		var sl3 = [];
		var sl4
		for(var i=0;i<sl.length;i++){
			v[sl[i]]['exist'] = false;
			sl2.push(okv[sl[i]]);
			sl3.push(popMyList2(sl[i]));
			if(listdis != "myitems"){
				$("#vitems-"+xkv[sl[i]]+"-exist").html('<span class="ajax" onclick="addToMy('+sl[i]+')"><img src="'+$('#base').val()+'img/add2.png" width="16" /></span>');
			}
		}
		OWORDS.pop2(sl2);
		for(i=0;i<OLISTS.length;i++){
			for(j=0;j<OLWORDS[OLISTS[i]['id']].length;j++){
				OLWORDS[OLISTS[i]['id']].pop2(sl3);
			}
		}	
		if(listdis == "myitems"){
			reRender(true);
		}/*else{
			$("#vitems-"+xkv[inum]+"-exist").html('<span class="ajax" onclick="addToMy('+inum+',\''+tw+'\')"><img src="'+$('#base').val()+'img/add2.png" width="16" /></span>');
			dp2();
		}*/
	}
	dp2();
	saveRequire();
	/*
	for(ii=0;ii<sl.length;ii++){
		alert(ii+" "+sl[ii]);
		removeFromMy(sl[ii],un,true);
	}
	if(whichdis == "mylist" || listdis == "myitems"){
		reRender(true);
	}
	$("#rightmenu").hide('slow');*/
	jip2();
}
function removeFromMy(inum,tw,multi,h){
	jip();
	dp();
	if(selected.length>2 && selected.search(h) !== false){
		deleteAll();
	}else{
		var xkv = whichKV();
		var TWORDS = whichWord();
		if(whichdis == "mylist"){
			OLWORDS[olistdis].pop2(olkv[olistdis][inum]);
			if(multi != true){
				reRender(true);
			}
		}else{
			v[inum]['exist'] = false;
			OWORDS.pop2(okv[inum]);
			popMyList(inum);
			if(listdis == "myitems"){
				if(multi != true){
					reRender(true);
				}
			}else{
				$("#vitems-"+xkv[inum]+"-exist").html('<span class="ajax" onclick="addToMy('+inum+',\''+tw+'\')"><img src="'+$('#base').val()+'img/add2.png" width="16" /></span>');
				dp2();
			}
		}
		saveRequire();
	}
	jip2();
}
function popMyList(inum){
	jip();
	for(var i=0;i<OLISTS.length;i++){
		for(var j=0;j<OLWORDS[OLISTS[i]['id']].length;j++){
			if(OLWORDS[OLISTS[i]['id']][j] == inum){
				OLWORDS[OLISTS[i]['id']].pop2(j);
			}	
		}
	}	
	jip2();
};
function popMyList2(inum){
	jip();
	for(var i=0;i<OLISTS.length;i++){
		for(var j=0;j<OLWORDS[OLISTS[i]['id']].length;j++){
			if(OLWORDS[OLISTS[i]['id']][j] == inum){
				//OLWORDS[OLISTS[i]['id']].pop2(j);
				jip2();
				return j;
			}	
		}
	}
	jip2();
};
function addToMyList(lid){
	jip();
	//var xkv = whichKV();
	var TWORDS = whichWord();
	for(i=0;i<selected.length;i++){
		addToMy(TWORDS[selected[i]],lid,'mylist');
	}
	$("#rightmenu").hide('slow');
	jip2();
}
function addToMyList2(lid){
	jip();
	//var xkv = whichKV();
	var TWORDS = whichWord();
	for(i=0;i<TWORDS.length;i++){
		addToMy(TWORDS[i],lid,'mylist');
	}
	reRender(true);
	jip2();
}
function addToMy(inum,tw,where,h){
	jip();
	if(selected.length>2 && selected.search(h) !== false){
		addAllToMy();
	}else{
		var xkv = whichKV();
		var TWORDS = whichWord();
		if(where == 'mylist'){
			if(olkv[tw][inum] == undefined){
				OLWORDS[tw].push(TWORDS[xkv[inum]]);
				olkv[tw][inum]=OLWORDS[tw].length-1;
			}
		}
		if(v[inum]['exist'] == false){
			v[inum]['exist'] = true;
			OWORDS.push(TWORDS[xkv[inum]]);
			okv[inum]=OWORDS.length-1;
			$("#vitems-"+xkv[inum]+"-exist").html('<span class="ajax" onclick="removeFromMy('+inum+',\''+tw+'\')"><img src="'+$('#base').val()+'img/delete_a.png" width="16" /></span>');
		}
		saveRequire();
	}
	jip2();
}
function addAllToMy(){
	jip();
	//var xkv = whichKV();
	var TWORDS = whichWord();
	for(i=0;i<selected.length;i++){
		addToMy(TWORDS[selected[i]]);
	}
	$("#rightmenu").hide('slow');
	jip2();
}
function addAllToMy2(){
	jip();
	dp();
	//var xkv = whichKV();
	var TWORDS = whichWord();
	for(i=0;i<TWORDS.length;i++){
		addToMy(TWORDS[i]);
	}
	reRender(true);
	jip2();
}

function changeOk(OKI,MR,VI){
	jip();
	if(MR == 1){
		var RMW = FWORDS;
	}else{
		var RMW = FWORDS;
	}
	if(selected.length>2 && selected.search(OKI) !== false){
		if($('#'+VI+'-'+v[RMW[OKI]]['id']).attr('checked')){
			var che = true;
		}else{
			var che = false;	
		}
		for(var i=0;i<selected.length;i++){
			if(che !== $('#'+VI+'-'+v[RMW[selected[i]]]['id']).attr('checked')){
				changeOk2(selected[i],MR,VI,che);
				$('#'+VI+'-'+v[RMW[selected[i]]]['id']).attr('checked',che);
			}
		}
	}else{
		changeOk2(OKI,MR,VI);
	}
	
	if(mmr != 2){
		showFword(MR,1);
	}
	jip2();
}
function changeOk2(OKI,MR,VI,che){
	jip();
	var RMW = FWORDS;
	if((che != undefined && che == true) || (che == undefined && $('#'+VI+'-'+v[RMW[OKI]]['id']).attr('checked'))){
		v[RMW[OKI]][VI] = 1;
		saveRequire();
		if(v[RMW[OKI]]['ki'] == 1){
			kinong++;
		}
		nong[VI]++;
	}else{
		v[RMW[OKI]][VI] = 0;
		saveRequire();
		if(v[RMW[OKI]]['ki'] == 1){
			kinong--;
		}
		nong[VI]--;
	}
	jip2();
}