


/*
url-loading object and a request queue built on top of it
*/

/* namespacing object */
var net=new Object();

net.READY_STATE_UNINITIALIZED=0;
net.READY_STATE_LOADING=1;
net.READY_STATE_LOADED=2;
net.READY_STATE_INTERACTIVE=3;
net.READY_STATE_COMPLETE=4;


/*--- content loader object for cross-browser requests ---*/
net.ContentLoader=function(url,onload,onerror,method,params,contentType){
  this.req=null;
  this.onload=onload;
  this.onerror=(onerror) ? onerror : this.defaultError;
  this.loadXMLDoc(url,method,params,contentType);
}

net.ContentLoader.prototype.loadXMLDoc=function(url,method,params,contentType){
  if (!method){
    method="GET";
  }
  if (!contentType && method=="POST"){
    contentType='application/x-www-form-urlencoded';
  }
  if (window.XMLHttpRequest){
    this.req=new XMLHttpRequest();
  } else if (window.ActiveXObject){
    this.req=new ActiveXObject("Microsoft.XMLHTTP");
  }
  if (this.req){
    try{
      var loader=this;
      this.req.onreadystatechange=function(){
        net.ContentLoader.onReadyState.call(loader);
      }
      this.req.open(method,url,true);
      if (contentType){
        this.req.setRequestHeader('Content-Type', contentType);
      }
      this.req.send(params);
    }catch (err){
      this.onerror.call(this);
    }
  }
}

net.ContentLoader.onReadyState=function(){
  var req=this.req;
  var ready=req.readyState;
  if (ready==net.READY_STATE_COMPLETE){
    var httpStatus=req.status;
    if (httpStatus==200 || httpStatus==0){
      this.onload.call(this);
    }else{
      this.onerror.call(this);
    }
  }
}


net.ContentLoader.prototype.defaultError=function(){
 // alert("error fetching data!"
//    +"\n\nreadyState:"+this.req.readyState
//    +"\nstatus: "+this.req.status
//    +"\nheaders: "+this.req.getAllResponseHeaders());
}

function BuildXMLResults(dataXML,target){
	try{
		var xmlDoc = this.req.responseXML.documentElement;		
	}
	catch(ee){
		xmlDoc = (dataXML)?dataXML:xmlDoc;
	}
	var isNewComment;
	if(target){
		target = document.getElementById("commentPage"+target);
		isNewComment = false;
	}
	else{
		target = document.getElementById("commentContainer");
		isNewComment = true;
	}
	target =$(target);
	
//<?if($is_admin){?>
	//alert(xmlDoc.getElementsByTagName('ddd')[0].firstChild.nodeValue);
//	alert(SID+ xmlDoc.getElementsByTagName('result')[0].firstChild.nodeValue);
//<?}?>
	if(xmlDoc.getElementsByTagName('result')[0].firstChild.nodeValue == "true"){
		//commentContainer.innerHTML="";

		var xRows = xmlDoc.getElementsByTagName('item');
		for(iC=0;iC<xRows.length;iC++){
			var type = xRows[iC].getElementsByTagName('type')[0].firstChild.nodeValue;

			if(type =="¾Ë¸²"){
				var newline=$(document.createElement("div")).addClass("commentNotice");
				target.append(newline);
				newline.hide();
				
				var reg_date=document.createElement("span");
				reg_date.className = "reg_date";
				reg_date.innerHTML = xRows[iC].getElementsByTagName('reg_date')[0].firstChild.nodeValue;
				newline.append(reg_date);

				var memo=document.createElement("div");
				memo.className = "notice";
				var txt=document.createTextNode(xRows[iC].getElementsByTagName('description')[0].firstChild.nodeValue);

				memo.innerHTML=txt.nodeValue;
				newline.append(memo);
				newline.fadeIn();
			}
			else{
				try{
					var newline=$(document.createElement("div")).addClass("comment");
					
					var memoStyle;
					switch(type){
						case "ÀÏ¹Ý": memoStyle = "normal";
											break;
						case "¸Þ¸ð": memoStyle = "memo";
											break;
						case "ºñ¹Ð": memoStyle = "secret";						
											break;
						case "ÅÚ·¹":memoStyle = "telepathy";						
											break;
						case "»ç¸Á": memoStyle = "grave";						
											break;
						case "ÆíÁö": memoStyle = "secretletter";						
											break;
						case "´äº¯": memoStyle = "secretanswer";						
											break;
						//case "¾Ë¸²":memoStyle = true;
						//					break;
					}
					
					var character= xRows[iC].getElementsByTagName('character')[0].firstChild.nodeValue;	
					
					newline.addClass(memoStyle);
					newline.addClass(character);
					target.append(newline);
					newline.hide();
	
					if(viewImage != "off"){
						var image = xRows[iC].getElementsByTagName('image')[0].firstChild.nodeValue;
						var c_image=document.createElement("div");
						c_image.className = "c_Image";
						c_image.innerHTML = "<img width='100' height='100' src='"+characterImageFolder+image+"'>";
						newline.append(c_image);
					}
					var c_info=document.createElement("div");
					c_info.className = "c_info";
				    newline.append(c_info);
	
						var c_name=document.createElement("span");
						var name = xRows[iC].getElementsByTagName('name')[0].firstChild.nodeValue;
						c_name.className = "c_name";
						c_name.innerHTML = "<label for='"+character+"' title='"+name+"´ÔÀÇ ·Î±×¸¦ ÇÊÅÍ¸µ ÇÕ´Ï´Ù.'>"+name+ "</label> ";
						c_info.appendChild(c_name);
	
						var reg_date=document.createElement("span");
						reg_date.className = "reg_date";
						reg_date.innerHTML = xRows[iC].getElementsByTagName('reg_date')[0].firstChild.nodeValue;
						c_info.appendChild(reg_date);
						
						try{
							var player_info=document.createElement("span");
							player_info.className = "playerInfo";
							player_info.innerHTML = " "+xRows[iC].getElementsByTagName('username')[0].firstChild.nodeValue+" / ";
							player_info.innerHTML += xRows[iC].getElementsByTagName('truecharacter')[0].firstChild.nodeValue;
							c_info.appendChild(player_info);
						}
						catch(ee){}
	
					if(viewImage != "off"){
						var ct=document.createElement("div");
						ct.className = "ct";
						ct.innerHTML = "<img  src=skin/werewolf/ctb.gif>";
						newline.append(ct);
					}
	
					var memo=document.createElement("div");
					memo.className = "message";
	
					var txt=document.createTextNode(xRows[iC].getElementsByTagName('description')[0].firstChild.nodeValue);
					memo.innerHTML=txt.nodeValue;
				    newline.append(memo);
				    
				   if(isNewComment || ($("#"+memoStyle+"Button").attr("checked") && $("#"+character).attr("checked")))newline.fadeIn();
				   else if ($("#"+character).size() ==0 )newline.fadeIn();
				}
				catch(ee){};
			}

		}
		try{
			SID =xmlDoc.getElementsByTagName('SID')[0].firstChild.nodeValue;
			if(xmlDoc.getElementsByTagName('sound')[0].firstChild.nodeValue == "play" && soundPlay){
					playsound(soundfile);
			}
			soundPlay = true;
		}
		catch(ee){}
	}
	else if(xmlDoc.getElementsByTagName('result')[0].firstChild.nodeValue == "deleteGame"){
		window.clearTimeout(timer);
		window.clearTimeout(commentLoader);
		
		timer=null;
		delete timer;

		commentLoader=null;
		delete commentLoader;

		document.getElementById('displayTimer').innerHTML="<font color='red'>°ÔÀÓÀÌ »èÁ¦µÇ¾ú½À´Ï´Ù!!<br><a href='"+gameLink +"zboard.php?id=werewolf'>[°ÔÀÓÇÏ±â·Î ÀÌµ¿ ¢Ñ]</a></font>"
	}
	else if(xmlDoc.getElementsByTagName('result')[0].firstChild.nodeValue == "goNextDay"){
		window.clearTimeout(timer);
		window.clearTimeout(commentLoader);
		
		timer=null;
		delete timer;

		commentLoader=null;
		delete commentLoader;

		document.getElementById('displayTimer').innerHTML="<font color='red'>³¯Â¥°¡ º¯°æµÇ¾ú½À´Ï´Ù!!<br><a href='"+gameLink +"view.php?id=werewolf&no="+gameNo+"&viewDay="+(gameDay+1)+"'>[¿À´Ã·Î ÀÌµ¿ ¢Ñ]</a></font>"
	}

//	timer  = setTimeout(load,loadingInterval);
	//load();
}

var postMemo;

function BuildError(){
	postMemo = "";
	//	timer  = setTimeout(load,loadingInterval);
	//load();

	//alert("¿¡·¯°¡ ¹ß»ýÇß½À´Ï´Ù!!!!!!! \n\nreadyState:"+ this.req.readyState + "\nstatus: "+ this.req.status +"\nheaders: "+ this.req.getAllResponseHeaders());
}

function submitComment(obj){
	if(obj.memo.value.length<10 ){
		alert("³»¿ëÀÌ ³Ê¹« Âª½À´Ï´Ù. ("+obj.memo.value.length+")");
		return false;
	}

	if(postMemo == obj.memo.value) {
		alert("°°Àº ³»¿ëÀÇ ±ÛÀ» ÀÌ¹Ì ¼­¹ö·Î º¸³Â½À´Ï´Ù.\nÀá½Ã ±â´Ù·ÁÁÖ¼¼¿ä.\nÀü¼ÛÀÌ µÇÁú ¾ÊÀ¸¸é ±ÛÀ» ¾à°£ ¼öÁ¤ÇØ¼­ Àü¼ÛÀ» ´Ù½Ã ½ÃµµÇØÁÖ¼¼¿ä.^^"
		+"\n\n ¼­¹ö°¡ È¥ÀâÇÑ ½Ã°£ÀÌ ¾Æ´Ñµ¥µµ ·Î±×°¡ ¿Ã¶ó°¡Áú ¾ÊÀ¸¸é... "
		+"\n ÀÎÅÍ³Ý ¿É¼Ç¿¡¼­ ÄíÅ°¸¦ ¸ðµÎ »èÁ¦ÇÏ°í ´Ù½Ã ·Î±×ÀÎ ÇØº¸¼¼¿ä."
		);
		return false;
	}
	else 
		postMemo = obj.memo.value;

	try{
		prams="page="+obj.page.value;
		prams+="&id="+obj.id.value;
		prams+="&no="+obj.no.value;
		prams+="&select_arrange="+obj.select_arrange.value;
		prams+="&desc="+obj.desc.value;
		prams+="&page_num="+obj.page_num.value;
		prams+="&keyword="+obj.keyword.value;
		prams+="&category="+obj.category.value;
		prams+="&sn="+obj.sn.value;
		prams+="&ss="+obj.ss.value;
		prams+="&sc="+obj.sc.value;
		prams+="&mode="+obj.mode.value;

		if(obj.c_type.length >= 0)  prams+="&c_type="+encodeURIComponent(obj.c_type[selectedType(obj)].value);
		else	prams+="&c_type="+encodeURIComponent(obj.c_type.value);
		if(obj.secretletterTo)prams+="&secretletterTo="+obj.secretletterTo.value;
		
		prams+="&memo="+encodeURIComponent(obj.memo.value);
	//	prams+="&memo="+escape(obj.memo.value);
		prams+="&SID="+encodeURIComponent(SID);

		soundPlay = false;
		var writer= new net.ContentLoader("skin/werewolf/were_comment_type_ok.php",write_ok,BuildError,"POST",prams);
		//obj.memo.value = obj.memo.value + prams;
		return false;
	}
	catch(ee){
		alert(ee.description );
		return false;
	}
}

function selectedType(obj){
	for(i=0;i<obj.c_type.length;++i){
		if(obj.c_type[i].checked) return i;
	}

}

function write_ok(){
	var xmlDoc = this.req.responseXML.documentElement;

	if(xmlDoc.getElementsByTagName('result')[0].firstChild.nodeValue == "true"){
		writeComment.memo.value = "";
		postMemo = "";

		commentType = xmlDoc.getElementsByTagName('commentType')[0].childNodes;
		selectCommentType.innerHTML="";

		for (i=0;i<commentType.length;i++){
			printCommentType(commentType[i].nodeName,commentType[i].firstChild.nodeValue);
		}
		initCommentType();
		load();
//		clearTimeout(timer);
//		timer  = setTimeout(load,1000);	
	}
	else if(xmlDoc.getElementsByTagName('result')[0].firstChild.nodeValue == "alert"){
		alert(xmlDoc.getElementsByTagName('alert')[0].firstChild.nodeValue );
	}
}

function printCommentType(typeName,typeValue){
	switch(typeName){
		case "normal":selectCommentType.innerHTML+= "<INPUT TYPE=radio ID=c_type NAME=c_type value=ÀÏ¹Ý  onclick=setColor('ÀÏ¹Ý')>ÀÏ¹Ý("+ typeValue +"/20)</input>";
						break;
		case "secret":selectCommentType.innerHTML+= "<INPUT TYPE=radio ID=c_type NAME=c_type value=ºñ¹Ð onclick=setColor('ºñ¹Ð') checked>ºñ¹Ð("+typeValue +"/40)</input>" ;
						break;
		case "memo":selectCommentType.innerHTML+= "<INPUT TYPE=radio ID=c_type NAME=c_type value=¸Þ¸ð onclick=setColor('¸Þ¸ð')>¸Þ¸ð(" + typeValue +"/10)</input>" ;
						break;
		case "telepathy":selectCommentType.innerHTML+= "<INPUT TYPE=radio ID=c_type NAME=c_type value=ÅÚ·¹ onclick=setColor('ÅÚ·¹')>ÅÚ·¹ÆÄ½Ã("+ typeValue +"/1)</input>";
						break;
		case "grave":selectCommentType.innerHTML+= "<INPUT TYPE=radio ID=c_type NAME=c_type value=»ç¸Á  onclick=setColor('»ç¸Á')>»ç¸Á(" + typeValue + "/20)</input>";
						break;
		case "notice":selectCommentType.innerHTML+= "<INPUT TYPE=radio ID=c_type NAME=c_type value=¾Ë¸² onclick=setColor('¾Ë¸²')>¾Ë¸²</input>"
						break;
		case "secretletter":
						selectCommentType.innerHTML+= "<INPUT TYPE=radio ID=c_type NAME=c_type value=ÆíÁö  onclick=setColor('ÆíÁö')>ÆíÁö" + typeValue + "</input>";
						break;
		case "secretanswer":
						selectCommentType.innerHTML+= "<INPUT TYPE=radio ID=c_type NAME=c_type value=´äº¯  onclick=setColor('ÆíÁö')>´äº¯</input>";
						break;
	}
}

function checkCommentType(){
	try{
		var radioButton = $('#writeComment input[type^=radio]');

		if(radioButton.is("[value*=ºñ¹Ð]")){
			radioButton.filter("[value*=ºñ¹Ð]").attr("checked",true);
		}
		else radioButton.filter(":first").attr("checked",true);
	}catch(ee){
		alert(ee.description );
		return false;
	}
}
function setColor(type){
	switch (type)
	{
	case "ÀÏ¹Ý":
		$("#memo").css("backgroundColor","#fff");
		$("#memo").css("color","#000");
		break;
	case "¸Þ¸ð":
		$("#memo").css("backgroundColor","#DEDB9C");
		$("#memo").css("color","#000");
		break;
	case "»ç¸Á":
		$("#memo").css("backgroundColor","#9D9D9D");
		$("#memo").css("color","#000");
		break;
	case "ºñ¹Ð":
		$("#memo").css("backgroundColor","#F77");
		$("#memo").css("color","#000");
		break;
	case "ÅÚ·¹":
		$("#memo").css("backgroundColor","#93B4B7");
		$("#memo").css("color","#000");
		break;
	case "¾Ë¸²":
		$("#memo").css("backgroundColor","#121212");
		$("#memo").css("color","");
		break;	
	case "ÆíÁö":
		$("#memo").css("backgroundColor","#A6E1C4");
		$("#memo").css("color","#000");
		break;	
	case "´äº¯":
		$("#memo").css("backgroundColor","#A6E1C4");
		$("#memo").css("color","#000");
		break;	
	}
	return true;
}

function initCommentType(){
	checkCommentType();
	setColor($(':radio:checked').attr("value"));	
}

var logloader;
function load(){
	var strParams = 'SID=' + encodeURIComponent(SID);
	delete logloader;
	logloader = new net.ContentLoader("skin/werewolf/wolf.php",BuildXMLResults,BuildError,"POST",strParams);
}

/***********************************************
* JavaScript Sound effect-  Dynamic Drive DHTML code library (www.dynamicdrive.com)
* Visit http://www.dynamicDrive.com for hundreds of DHTML scripts
* This notice must stay intact for legal use
***********************************************/

var soundfile="notify.wav" //path to sound file, or pass in filename directly into playsound()
var soundPlay = true;

function playsound(mediaURL) {
	var rpt =1;
	var height=0;
	var width=0;
	var CodeGen = "" 

	CodeGen = '<embed type="application/x-mplayer2" ' + '\n' ;
   	CodeGen += ' pluginspage="http://www.microsoft.com/Windows/MediaPlayer/" ' + '\n' ;
 	CodeGen += 'Name="Player" ' + 'src="' + mediaURL + '" ' + '\n' ;
 	CodeGen += 'autoStart=true ' ;
	CodeGen += 'ShowStatusBar=0 '; 
	CodeGen += 'enableContextMenu=0 cache=0' + '\n' ;
	CodeGen += 'playCount=' + rpt + ' ' ;
	CodeGen += 'volume=100 ' ;
	CodeGen += 'loop=false' ;
	CodeGen += 'hidden=true ';
	CodeGen += 'HEIGHT=' + height + ' WIDTH=' + width + '>'
				
	$('#playerpp').html(CodeGen);
}

/*
 * ÄíÅ° »ç¿ë ÇÔ¼ö
 */
function setCookie(c_name,value,expiredays)
{
	var exdate=new Date();exdate.setDate(exdate.getDate()+expiredays);
	document.cookie=c_name+ "=" +escape(value)+ ((expiredays==null) ? "" : ";expires="+exdate.toGMTString());
} 

function getCookie(c_name)
{
	if (document.cookie.length>0)
	  {
	  c_start=document.cookie.indexOf(c_name + "=")
	  if (c_start!=-1)
		{ 
	    c_start=c_start + c_name.length+1 ;
		c_end=document.cookie.indexOf(";",c_start);
	    if (c_end==-1) c_end=document.cookie.length;
		return unescape(document.cookie.substring(c_start,c_end))
	    } 
	  }
	return "";
}
/*
 * ÃÊ±âÈ­ ÇÔ¼ö 
 */
$(function(){
	$('#soundOn').click(function(){
		setCookie('sound','on',7);
		$('#selectSound').css("visibility", "visible");

		var selectedSound =  getCookie('selectedSound');
		if(selectedSound =="cat"){
			$('#catSound').attr("checked",true);
			soundfile="notify.wav";
		}
		else{
			$('#dogSound').attr("checked",true);
			soundfile="dog.wav";
		}
	});
	
	$('#soundOff').click(function(){
		setCookie('sound','off',7);
		$('#selectSound').css("visibility", "hidden");
		soundfile="";
	});

	$('#dogSound').click(function(){
		soundfile="dog.wav";
		setCookie('selectedSound','dog',7);
		playsound(soundfile);
	});

	$('#catSound').click(function(){
		soundfile="notify.wav";
		setCookie('selectedSound','cat',7);
		playsound(soundfile);
	});
	//checkSound();
	{
		swit =  getCookie('sound');

		if(swit == "off"){
			$('#soundOff').attr("checked",true);
			$('#selectSound').css("visibility","hidden");
			soundfile="";
		}
		else{
			$('#soundOn').attr("checked",true);

			swit =  getCookie('selectedSound');
			if(swit =="cat"){
				$('#catSound').attr("checked",true);
				soundfile="notify.wav";
			}
			else{
				$('#dogSound').attr("checked",true);
				soundfile="dog.wav";
			}	
		}
	}
	
	//checkRead();
	{
		if(getCookie('readLatest'))$('#readLimit').val(getCookie('readLatest')); 
		else $('#readLimit').val(10);
	}	
	
	$("#readLimit").change(function(event){
		setCookie('readLatest',$(this).val());
		alert("·Î±×¸¦  "+ $(this).val() +"°³¾¿ ³ª´² º¸µµ·Ï ¼³Á¤ µÇ¾ú½À´Ï´Ù.");
		location.href = location.href ;
	});	

	$(".buttonCommentPage").click(function (event){
		var commentPage = jQuery(event.target).children("input").val();
		if(commentPage == undefined){
			commentPage  = jQuery(event.target).parent().children("input").val();
		}
		var target = $("#commentPage"+commentPage);
		
		//$(event.target).toggleClass("openPage");
		
		if(target.children().size()==0){
			var strParams = 'SID=' + encodeURIComponent(SID) +'&cPage='+encodeURIComponent(commentPage)+"&viewChar="+viewChar;
			$(event.target).css("background-color","#050505");		
			$.ajax({
				url: "skin/werewolf/viewCommentPage.php",
				data: strParams,
				dataType: "xml",
				success: function(xmlData){
					BuildXMLResults(xmlData,commentPage);
			 	}
			});	

			$(event.target).removeClass("close");
			$(event.target).addClass("open");
			$(event.target).css("background-color","#050505");
		}
		else{
			if(target.css("display")== "none"){
				target.fadeIn();
				$(event.target).removeClass("close");
				$(event.target).addClass("open");
				$(event.target).css("background-color","#050505");						
			}
			else{
				target.fadeOut();
				$(event.target).removeClass("open");
				$(event.target).addClass("close");
				$(event.target).css("background-color","#111111");						
			}
		}
		
		//location.replace("#commentPage"+commentPage);
	});
	
	$('.characterButton').each(function(index){
		var character = this;
		var cookie_checked = getCookie(gameNo+"_"+this.value);
		if(cookie_checked =="false"){
			//alert($("."+this.value).size());
			//$("."+this.value).fadeOut();
			var hh = $(this);
			hh.attr("checked",false);
			//hh.click();
			//$(this).click();
		}
	});
	
	$('.characterButton').click(function(event){
		$('.commentButton').each(function(index){
			//alert(event.target.checked + " "+ this.checked);
			//alert("."+event.target.value+" ."+this.value);
			if(event.target.checked && this.checked)
				$("."+event.target.value).filter("."+this.value).fadeIn();
			else
				$("."+event.target.value).filter("."+this.value).fadeOut();			    
		});
		
		setCookie(gameNo+"_"+event.target.value,event.target.checked);
	});

	
	$('.characterButton + label').dblclick(function(event){
		location.replace(gameLink +"view.php?id=werewolf&no="+gameNo+"&viewDay="+gameDay+"&viewMode="+viewMode+"&viewChar="+$(this).attr("for"));
		//location.replace(gameLink +"view.php?id=werewolf&no="+gameNo+"&viewDay="+gameDay+"&viewChar="+$(this).attr("for"));
		/*
		$('.commentButton').each(function(index){
			//alert(event.target.checked + " "+ this.checked);
			//alert("."+event.target.value+" ."+this.value);
			if(event.target.checked && this.checked)
				$("."+event.target.value).filter("."+this.value).fadeIn();
			else
				$("."+event.target.value).filter("."+this.value).fadeOut();
		});
		*/
	});	
	
	$('.commentButton').click(function(event){
		$('.characterButton').each(function(index){
			//alert(event.target.checked + " "+ this.checked);
			//alert("."+event.target.value+" ."+this.value);
			if(event.target.checked && this.checked)
				$("."+event.target.value).filter("."+this.value).fadeIn();
			else
				$("."+event.target.value).filter("."+this.value).fadeOut();
		});
	});
	
	//Æ®·¡ÇÈÀ» À§ÇØ F5Å° »ç¿ëÀ» ¸·À½
	$().keydown(function (event) {
		var eventChooser = event.keyCode;

	    if (eventChooser == 116) {
			alert("Æ®·¡ÇÈÀ» À§ÇØ »õ·Î °íÄ§ »ç¿ëÀ» ÀÚÁ¦ÇØ ÁÖ¼¼¿ä.");
			if (!window.netscape)
			{	
				event.keyCode =2;
			}
	        return false;
	    }
	});
});

