//
// @(#)program.js
//

if(typeof(RPSP)=="undefined"){ RPSP={} }
if(typeof(RPSP.GA)=="undefined"){ RPSP.GA={} }

RPSP.NotSupport=function() {
	alert("선택하신 프로그램은 해당 기능을 지원하지 않습니다.");
}

//즐겨듣기 -------------------------------------------------------------------
if(typeof(RPSP.MyFavorite)=="undefined"){ RPSP.MyFavorite={} }
RPSP.MyFavorite.add=function(c,p) {
	if(c == "undefined" || c == "" || p == "undefined" || p == "") { return; }
	var url="/mychannel/favorite/add.do";
	RPSP.GA.pageview(url);
	try {
	new Ajax.Request(url,{ method : "post",
		parameters : { "channelCode": c, "programCode": p },
		evalScript : true,
		requestHeaders: {Accept: 'application/json'},
		onFailure: function() { alert("오류가 발생했습니다.\n잠시 후에 다시 시도해 주세요"); },
		onComplete : function(r){
			var res = r.responseText;
			if(res) {
				j = res.evalJSON(true);
				if(j.code == "failed") {
					if(j.url != null) {
						alert(j.message);
						window.location.href=j.url;
						return;
					}
				} else {
					if($("favoriteCnt") != undefined) {
						$("favoriteCnt").innerHTML = parseInt($("favoriteCnt").innerHTML)+1;
					}
				}
				alert(j.message);
			}
		}
	});
	}catch(e) {	alert("error=" + e); }
};

//다시듣기 -------------------------------------------------------------------
if(typeof(RPSP.ListenToAgain)=="undefined"){ RPSP.ListenToAgain={} }
RPSP.ListenToAgain.view=function(c,p) {
	if(c == undefined || c == "") { return; }
	var url="/radio/listenToAgain.do?channelCode="+c;
	if(p != undefined && p != "") { url += "&programCode="+p; }
	location.href=url;
};

//스케줄 ---------------------------------------------------------------------
if(typeof(RPSP.MySchedule)=="undefined"){ RPSP.MySchedule={} }
RPSP.MySchedule.add=function(c,s,e,b) {
	if( c == "undefined" || c == "" ||
		s == "undefined" || s == "" ||
		e == "undefined" || e == "") { return; }
	if(b) {
		var param = {
			"adding" : true,
			"overwrite" : true,
			"channelCode" : c,
			"startTime" : s,
			"endTime" : e
		};
	} else {
		var param = {
			"adding" : true,
			"channelCode" : c,
			"startTime" : s,
			"endTime" : e
		};
	}
	var url="/mychannel/schedule/connector.do";
	RPSP.GA.pageview(url);
	try {
	new Ajax.Request(url,{ method : "post",
		parameters : param,
		evalScript : true,
		requestHeaders: {Accept: 'application/json'},
		onFailure: function() { alert("오류가 발생했습니다.\n잠시 후에 다시 시도해 주세요"); },
		onComplete : function(r){
			var res = r.responseText;
			if(res) {
				j = res.evalJSON(true);
				if(j.code == "failed") {
					if(j.url != null) {
						alert(j.message);
						window.location.href=j.url;
						return;
					}
					if(confirm(j.message)) {
						RPSP.MySchedule.add(c,s,e,true);
					}
					return;
				}else if(j.code == "confirm_success"){
					if(j.url != null) {
						if(confirm(j.message)) {
							window.location.href=j.url;
						}
					}
				}else{
				   alert(j.message);
				}
			}
		}
	});
	}catch(e) { alert("error=" + e); }
};
//프로그램 -------------------------------------------------------------------
if(typeof(RPSP.Program)=="undefined"){ RPSP.Program={} }
RPSP.Program.view=function(p) {
	window.location.href="/radio/programInfo.do?programCode="+p;
};
RPSP.Program.bvContentView=function(p) {
	window.location.href="/radio/programInfo.do?programCode="+p+"&programTab=content";
};
RPSP.Program.galleryView=function(channelCode,programCode) {
	//window.location.href="/radio/programInfo.do?programCode="+p+"&programTab=gallery";
	window.location.href="/focus/gallery.do?pageNo=0&galleryNo=0&channelCode="+ channelCode +"&programCode="+ programCode +"&keyword=";
	
};
RPSP.Program.changeImage=function() {
	document.location.href="/mychannel/mypage.do";
}
RPSP.Program.getBvContentList=function(pc,pn) {
	if(pc == "undefined" || pc == "") { return; }
	if(pn == "#") { return; }
	var url="/radio/bvContentList.do";
	RPSP.GA.pageview(url);
	try {
	new Ajax.Request(url,{ method : "post",
		parameters : { "programCode":pc, "pageNo":pn },
		evalScript : true, requestHeaders: {Accept: 'application/json'},
		onFailure: function() {	alert("오류가 발생했습니다.\n잠시 후에 다시 시도해 주세요"); },
		onComplete : function(r){
			$("swap").innerHTML = r.responseText;
			Element.Methods.removeClassName("tab_home", "active");
			Element.Methods.addClassName("tab_content", "active");
		}
	});
	} catch (e) { alert("error=" + e); }
}
RPSP.Program.addBvContent=function(pc,c) {
	if(pc == "undefined" || pc == "" || c == "undefined" || c == "") { return false; }
	// need to include http://vsystem.kbsi.co.kr/js/wordFilter.js
	try { if(!wordFilter(c)) {return false;} } catch (e) { }
	var url="/radio/bvContentAdd.do";
	RPSP.GA.pageview(url);
	try {
	new Ajax.Request(url,{ method : "post",
		parameters : { "programCode":pc,"content":c },
		evalScript : true, requestHeaders: {Accept: 'application/json'},
		onFailure: function() { alert("오류가 발생했습니다.\n잠시 후에 다시 시도해 주세요"); },
		onComplete : function(r){
			var res = r.responseText;
			if(res) {
				j = res.evalJSON(true);
				if(j.code == "failed") {
					if(j.url != null) {
						alert(j.message);
						window.location.href=j.url;
						return;
					}
					alert(j.message);
				} else {
					alert(j.message);
					RPSP.Program.getBvContentList(pc,1);
				}
			}
		}
	});
	return false;
	} catch (e) { alert("error=" + e); }
};
RPSP.Program.removeBvContent=function(pc,seq) {
	if(pc == "undefined" || pc == "" || seq == "undefined" || seq == "") { return; }
	if(!confirm("정말 삭제하겠습니까?")) {
		return;
	}
	var url="/radio/bvContentRemove.do";
	RPSP.GA.pageview(url);
	try {
	new Ajax.Request(url,{ method : "post",
		parameters : { "programCode":pc,"seq":seq },
		evalScript : true, requestHeaders: {Accept: 'application/json'},
		onFailure: function() { alert("오류가 발생했습니다.\n잠시 후에 다시 시도해 주세요"); },
		onComplete : function(r){
			var res = r.responseText;
			if(res) {
				j = res.evalJSON(true);
				if(j.code == "failed") {
					if(j.url != null) {
						alert(j.message);
						window.location.href=j.url;
						return;
					}
					alert(j.message);
				} else {
					alert(j.message);
					RPSP.Program.getBvContentList(pc,1);
				}
			}
		}
	});
	} catch (e) { alert("error=" + e); }
};
RPSP.Program.ChannelList=function(genreCode, pageNo, pageSize) {
	if(pageNo=="#"){
		return;
	}
	if(pageNo=="" || pageNo=="undefined" || pageNo==null){ pageNo=1; }
	if(pageSize == "undefined" || pageSize == "" || pageSize==null) { pageSize=10; }
	var param = {
			"genreCode": genreCode, 
			"pageNo": pageNo, 
			"pageSize": pageSize
		};
	var url="/radio/channelList.do";
	RPSP.GA.pageview(url);
	try {
	new Ajax.Request(url,{ method : "post",
		parameters : param,
		onFailure: function() { alert("오류가 발생했습니다.\n잠시 후에 다시 시도해 주세요"); },
		onComplete : function(r){
			var res = r.responseText;
			$("swap").innerHTML = res;
			RPSP.Program.ChannelSwap();
		}
	});
	}catch(e){ alert("error=" + e);	}
};
RPSP.Program.ChannelSwap=function() {
	var a=$$("a.swapChannel");
	var b=a;
	a.each(function(d){
		Event.observe(d, "click", function(e){
			Event.stop(e);
			var f=this;
			new Ajax.Request(f,{ method : "get",
				onFailure: function() { alert("오류가 발생했습니다.\n잠시 후에 다시 시도해 주세요"); },
				onSuccess : function(r){
					a.each(function(d){
						Element.Methods.removeClassName(d, "active");
					});
					Element.Methods.addClassName(f, "active");
					var a1=$$("a.swapGenre");
					a1.each(function(d1) {
						Element.Methods.removeClassName(d1, "active");
					});
					$("programList").innerHTML = r.responseText;
				}
			});
		});
	});
}
RPSP.Program.ProgramListByChannelCode=function(channelCode, pageNo, pageSize, orderType) {
	if(pageNo=="#"){
		return;
	}
	if(pageNo=="" || pageNo=="undefined" || pageNo==null){ pageNo=1; }
	if(pageSize == "undefined" || pageSize == "" || pageSize==null) { pageSize=10; }
	var param = {
		"channelCode": channelCode, 
		"pageNo": pageNo, 
		"pageSize": pageSize
	};
	if(orderType != "undefined" && orderType != undefined && orderType != null) {
		param.orderType = orderType;
	}
	var url="/radio/programList.do";
	RPSP.GA.pageview(url);
	try {
	new Ajax.Request(url,{ method : "post",
		parameters : param,
		onFailure: function() { alert("오류가 발생했습니다.\n잠시 후에 다시 시도해 주세요"); },
		onComplete : function(r){
			var res = r.responseText;
			$("programList").innerHTML = res;
		}
	});
	}catch(e){ alert("error=" + e);	}
};
// 프로그램 목록 장르
RPSP.Program.ProgramListByGenreCode=function(parentGenreCode, genreCode, pageNo, pageSize, orderType) {
	if(pageNo=="#"){
		return;
	}
	if(pageNo=="" || pageNo=="undefined" || pageNo==null){ pageNo=1; }
	if(pageSize == "undefined" || pageSize == "" || pageSize==null) { pageSize=10; }
	var param = {
		"genreCode": genreCode, 
		"pageNo": pageNo, 
		"pageSize": pageSize
	};
	if(parentGenreCode != "undefined" && parentGenreCode != undefined && parentGenreCode != null) {
		param.parentGenreCode = parentGenreCode;
	}
	if(orderType != "undefined" && orderType != undefined && orderType != null) {
		param.orderType = orderType;
	}
	var url="/radio/programListByGenre.do";
	RPSP.GA.pageview(url);
	try {
	new Ajax.Request(url,{ method : "post",
		parameters : param,
		onFailure: function() { alert("오류가 발생했습니다.\n잠시 후에 다시 시도해 주세요"); },
		onComplete : function(r){
			var res = r.responseText;
			$("programList").innerHTML = res;
		}
	});
	}catch(e){ alert("error=" + e);	}
};

// 채널 포커스 ------------------------------------------------------------------
if(typeof(RPSP.Focus)=="undefined"){ RPSP.Focus={} }
RPSP.Focus.BoraChannelList=function(genreCode, pageNo, pageSize) {
	if(pageNo=="#"){
		return;
	}
	if(pageNo=="" || pageNo=="undefined" || pageNo==null){ pageNo=1; }
	if(pageSize == "undefined" || pageSize == "" || pageSize==null) { pageSize=10; }
	var param = {
			"genreCode": genreCode, 
			"pageNo": pageNo, 
			"pageSize": pageSize
		};
	var url="/focus/boraChannelList.do";
	RPSP.GA.pageview(url);
	try {
	new Ajax.Request(url,{ method : "post",
		parameters : param,
		onFailure: function() { alert("오류가 발생했습니다.\n잠시 후에 다시 시도해 주세요"); },
		onComplete : function(r){
			var res = r.responseText;
			$("swap").innerHTML = res;
			RPSP.Focus.BoraProgramSwap();
		}
	});
	}catch(e){ alert("error=" + e);	}
}
RPSP.Focus.BoraProgramSwap=function() {
	var a=$$("a.swapChannel");
	var b=a;
	a.each(function(d){
		Event.observe(d, "click", function(e){
			Event.stop(e);
			var f=this;
			RPSP.GA.pageview(f.href);
			new Ajax.Request(f,{ method : "get",
				onFailure: function() { alert("오류가 발생했습니다.\n잠시 후에 다시 시도해 주세요"); },
				onSuccess : function(r){
					a.each(function(d){
						Element.Methods.removeClassName(d, "active");
					});
					Element.Methods.addClassName(f, "active");
					var res = r.responseText;
					$("programList").innerHTML = res;
				}
			});
		});
	});
}
RPSP.Focus.BoraProgramList=function(channelCode, pageNo, pageSize) {
	if(pageNo=="#"){
		return;
	}
	if(pageNo=="" || pageNo=="undefined" || pageNo==null){ pageNo=1; }
	if(pageSize == "undefined" || pageSize == "" || pageSize==null) { pageSize=10; }
	var param = {
			"channelCode": channelCode, 
			"pageNo": pageNo, 
			"pageSize": pageSize
		};
	var url="/focus/boraProgramList.do";
	RPSP.GA.pageview(url);
	try {
	new Ajax.Request(url,{ method : "post",
		parameters : param,
		onFailure: function() { alert("오류가 발생했습니다.\n잠시 후에 다시 시도해 주세요"); },
		onComplete : function(r){
			var res = r.responseText;
			$("programList").innerHTML = res;
		}
	});
	}catch(e){ alert("error=" + e);	}
};
// 인기방송
RPSP.Program.ProgramListBy1DepthBestGenreCode=function(parentGenreCode, pageNo, pageSize) {
	if(pageNo=="#"){
		return;
	}
	if(pageNo=="" || pageNo=="undefined" || pageNo==null){ pageNo=1; }
	if(pageSize == "undefined" || pageSize == "" || pageSize==null) { pageSize=10; }
	var param = {
			"parentGenreCode": parentGenreCode, 
			"pageNo": pageNo, 
			"pageSize": pageSize
		};
	var url="/radio/bestProgramList.do";
	RPSP.GA.pageview(url);
	try {
	new Ajax.Request(url,{ method : "post",
		parameters : param,
		//parameters : { "genreCode": genreCode},
		onFailure: function() { alert("오류가 발생했습니다.\n잠시 후에 다시 시도해 주세요"); },
		onComplete : function(r){
			var res = r.responseText;
			$("programList").innerHTML = res;
			if($("genre2Depth_"+parentGenreCode)!=null){
				for(var i=0; i<document.getElementsByName("genre2Depth").length;i++){
					document.getElementsByName("genre2Depth")[i].className="";
				}
				$("genre2Depth_all").className = "";
				$("genre2Depth_"+parentGenreCode).className = "active";
			}
		}
	});
	}catch(e){ alert("error=" + e);	}
};
RPSP.Program.ProgramListByBestGenreCode=function(genreCode, parentGenreCode, pageNo, pageSize) {
	if(pageNo=="#"){
		return;
	}
	if(pageNo=="" || pageNo=="undefined" || pageNo==null){ pageNo=1; }
	if(pageSize == "undefined" || pageSize == "" || pageSize==null) { pageSize=10; }
	var param = {
			"parentGenreCode" : parentGenreCode,
			"genreCode": genreCode, 
			"pageNo": pageNo, 
			"pageSize": pageSize
		};
	var url="/radio/bestProgramList.do";
	RPSP.GA.pageview(url);
	try {
	new Ajax.Request(url,{ method : "post",
		parameters : param,
		onFailure: function() { alert("오류가 발생했습니다.\n잠시 후에 다시 시도해 주세요"); },
		onComplete : function(r){
			var res = r.responseText;
			$("programList").innerHTML = res;
			if($("genre2Depth_"+genreCode)!=null){
				for(var i=0; i<document.getElementsByName("genre2Depth").length;i++){
					document.getElementsByName("genre2Depth")[i].className="";
				}
				$("genre2Depth_all").className = "";
				$("genre2Depth_"+genreCode).className = "active";
			}
		}
	});
	}catch(e){ alert("error=" + e);	}
};
RPSP.Program.BestProgramList=function(genreCode, parentGenreCode, pageNo, pageSize){
	if(pageNo=="#"){
		return;
	}
	if(parentGenreCode != "undefined" && parentGenreCode != "" && parentGenreCode!=null) {
		RPSP.Program.ProgramListBy1DepthBestGenreCode(parentGenreCode, pageNo, pageSize);
	} else {
		RPSP.Program.ProgramListByBestGenreCode(genreCode, parentGenreCode, pageNo, pageSize);
	}
}
// 다시 듣기
RPSP.Program.ListenToAgainChannelList=function(genreCode, pageNo, pageSize) {
	if(pageNo=="#"){
		return;
	}
	if(pageNo=="" || pageNo=="undefined" || pageNo==null){ pageNo=1; }
	if(pageSize == "undefined" || pageSize == "" || pageSize==null) { pageSize=10; }
	var param = {
			"genreCode": genreCode, 
			"pageNo": pageNo, 
			"pageSize": pageSize
		};
	var url="/radio/listenToAgainChannelList.do";
	RPSP.GA.pageview(url);
	try {
	new Ajax.Request(url,{ method : "post",
		parameters : param,
		//parameters : { "channelCode": channelCode},
		onFailure: function() { alert("오류가 발생했습니다.\n잠시 후에 다시 시도해 주세요"); },
		onComplete : function(r){
			var res = r.responseText;
			$("swap").innerHTML = res;
			RPSP.Program.ListenToAgainChannelSwap();
		}
	});
	}catch(e){ alert("error=" + e);	}
};
RPSP.Program.ListenToAgainChannelSwap=function() {
	var a=$$("a.swapChannel");
	var b=a;
	a.each(function(d){
		Event.observe(d, "click", function(e){
			Event.stop(e);
			var f=this;
			new Ajax.Request(f,{ method : "get",
				onFailure: function() { alert("오류가 발생했습니다.\n잠시 후에 다시 시도해 주세요"); },
				onSuccess : function(r){
					a.each(function(d){
						Element.Methods.removeClassName(d, "active");
					});
					Element.Methods.addClassName(f, "active");
					$("programList").innerHTML = r.responseText;
				}
			});
		});
	});
}
RPSP.Program.AodListView=function(programCode) {
	var url="/radio/aodList.do";
	RPSP.GA.pageview(url);
	try {
	new Ajax.Request(url,{ method : "post",
		parameters : { "programCode": programCode },
		onFailure: function() { alert("오류가 발생했습니다.\n잠시 후에 다시 시도해 주세요"); },
		onComplete : function(r){
			var res = r.responseText;
			$("aodList").innerHTML = res;
		}
	});
	}catch(e){ alert("error=" + e);	}
};
//다시듣기 링크
//RPSP.Program.AodListView=function(channelCode, programCode) {
RPSP.Program.ListenToAgainView=function(channelCode, programCode) {
	var url="/radio/listenToAgain.do";
	RPSP.GA.pageview(url);
	try {
	new Ajax.Request(url,{ method : "post",
		parameters : { "channelCode": channelCode, "programCode": programCode },
		onFailure: function() { alert("오류가 발생했습니다.\n잠시 후에 다시 시도해 주세요"); },
		onComplete : function(r){
			var res = r.responseText;
			$("aodList").innerHTML = res;
		}
	});
	}catch(e){ alert("error=" + e);	}
}
//메인 -----------------------------------------------------------------------
if(typeof(RPSP.Main)=="undefined"){ RPSP.Main={} }
RPSP.Main.OnAirNextProgramView=function(c) {
	if(c == "undefined" || c == "") { return; }
	var url="/tile/main/onAirNextProgram.do";
	RPSP.GA.pageview(url);
	try {
	new Ajax.Request(url, { method : "post",
		parameters : { "channelCode": c },
		onFailure: function() { alert("오류가 발생했습니다.\n잠시 후에 다시 시도해 주세요");	},
		onComplete : function(r){
			var res = r.responseText;
			$("onAirNextProgram").innerHTML = res;
		}
	});
	}catch(e){ alert("error=" + e);	}
};
RPSP.Main.OnAirProgramListView=function(pageNo, pageSize) {
	if(pageNo=="#"){
		return;
	}
	if(pageNo=="" || pageNo=="undefined" || pageNo==null){ pageNo=1; }
	if(pageSize == "undefined" || pageSize == "") { pageSize=10; }
	var url="/tile/main/onAirProgram.do";
	RPSP.GA.pageview(url);
	try {
	new Ajax.Request(url,{ method : "post",
		parameters : { "pageNo": pageNo, "pageSize": pageSize },
		onFailure: function() { alert("오류가 발생했습니다.\n잠시 후에 다시 시도해 주세요"); },
		onComplete : function(r){
			var res = r.responseText;
			$("onAirProgramList").innerHTML = res;
		}
	});
	}catch(e){ alert("error=" + e);	}
};
//인기방송
RPSP.Program.BestPrograList=function() {
	var url="/tile/radio/bestProgram.do";
	RPSP.GA.pageview(url);
	try {
	new Ajax.Request(url,{ method : "post",
		parameters : '',
		onFailure: function() { alert("오류가 발생했습니다.\n잠시 후에 다시 시도해 주세요"); },
		onComplete : function(r){
			var res = r.responseText;
			$("bestProgram").innerHTML = res;
		}
	});
	}catch(e){ alert("error=" + e);	}
};
// EOF
