// 화면구성용 XML 엘리먼트를 구성한다.
function getXMLDataForm( sModuleName, feedURL, lineNo, sColor ) {

	var sAddEl = '';
	if( sModuleName == 'infoWeather' )
		sAddEl = '\t\t<areaCode>1300000</areaCode>\n';
	else if( sModuleName == 'myKeyword' )
		sAddEl = '\t\t<reference><![CDATA[http://searchplus.nate.com/searchplus/search.plus?ud=1&query=%s]]></reference>\n';
		
	var sData = '\t\t<feedURL id="1"><![CDATA['+feedURL+']]></feedURL>\n'+
			'\t\t<lineNo>'+lineNo+'</lineNo>\n'+
			'\t\t<color>'+sColor+'</color>\n' +
			sAddEl;

	return sData;			
}


var mcTagCloudFeed = function(feed) {

	this.root = feed.responseXML; //.documentElement;
	this.items = [];
	var items = this.root.getElementsByTagName("item");
	var ln = items.length;	
	for (var z=0; z<ln; z++) {
		var obj = {};
		obj.title = items[z].getElementsByTagName("keyword")[0].firstChild.nodeValue;
		// tagCloud var scale = getChildrenByTagName(items[z], 'Scale')[0];
		var scale = items[z].getElementsByTagName("cnt_hit")[0].firstChild; //getChildrenByTagName(items[z], 'cnt_hit');
		var level = items[z].getElementsByTagName("level")[0].firstChild; 
		var nWeight = parseInt(scale.nodeValue);
		obj.scale = nWeight; //(nWeight - nWeight%100)/100;
		obj.level = level.nodeValue;
		if( obj.scale > 15 )
			obj.scale = 15;
		obj.link = "";
		obj.tagLink = "";

		this.items.push(obj);
	}
}

var TagCloudFeed = function(feed) {

	this.root = feed.responseXML.documentElement;

	var link = this.root.getElementsByTagName("link")[0];
	for (var z=0; z<link.length; z++) {
		if (link[z].getAttribute("type")=="text/html" || link.length==1) {
			this.htmlUrl = link[z].getAttribute("href");
		}
	}

	// title
	var title = this.root.getElementsByTagName("title")[0];
	this.title = (title.firstChild) ? title.firstChild.nodeValue : this.htmlUrl;
	// description
	var desc = this.root.getElementsByTagName("description");
	this.description = (desc.length>0) ? ((desc[0].firstChild) ? desc[0].firstChild.nodeValue : '') : '';

	// image
	var img = this.root.getElementsByTagName("image");
	this.image = (img.length>0) ? ((img[0].firstChild) ? img[0].firstChild.nodeValue : '') : '';
	this.items = [];
	var items = this.root.getElementsByTagName("item");
	var ln = items.length;	
	
	
	for (var z=0; z<ln; z++) {
		var obj = {};

		var title = items[z].getElementsByTagName("title")[0];
		obj.title = title.firstChild.nodeValue;

		var scale = getChildrenByTagName(items[z], 'description')[0];
		var nWeight = parseInt(scale.firstChild.nodeValue);
		obj.scale = (nWeight - nWeight%100)/100;
		if( obj.scale > 15 )
			obj.scale = 15;

		var link = getChildrenByTagName(items[z], "link");
		if (link.length>0)
			obj.link = (link[0].firstChild) ? link[0].firstChild.nodeValue : '';

		var tagLink = getChildrenByTagName(items[z], "TagLink");
		if (tagLink.length>0)
			obj.tagLink = (tagLink[0].firstChild) ? tagLink[0].firstChild.nodeValue : '';

		this.items.push(obj);
	}
}


/*
	channel
		title
		link
		tagline
		description
		image
		entry
		item
			enclosure
			


*/


// rss 2.0과 Atom 의 호환이 가능한 Feed 객체
var Feed = function(feed) {
	// public member variables
	// this.root
	// this.type
	// this.htmlUrl
	// this.title
	// this.description
	// this.image
	// this.category
	// this.items

	// public member functions
	// this.getNode(idx)

	// this.root
	this.root = feed.responseXML.documentElement;

	// this.type
	this.type = (this.root.nodeName=="feed") ? 1 : 0;	// 1 : Atom, 0 : rss 2.0

	// 임의의 channel 인덱스 생성
	var channels = this.root.getElementsByTagName("channel");
	var currentChannelIdx = 0;
	if(channels.length>0) {
		currentChannelIdx = (Math.round(Math.random()*10))%(channels.length); 
	}
	
	// Atom : feed, rss 2.0 : channel
	var root = (this.type==1) ? this.root : this.root.getElementsByTagName("channel")[currentChannelIdx];

	// this.htmlUrl
	var link = getChildrenByTagName(root, "link");
	if (this.type==1) {
		for (var z=0; z<link.length; z++) {
			if (link[z].getAttribute("type")=="text/html" || link.length==1) {
				this.htmlUrl = link[z].getAttribute("href");
			}
		}
	} else {
		this.htmlUrl = (link[0].firstChild) ? link[0].firstChild.nodeValue : "";
	}

	// this.title
	var title = getChildrenByTagName(root, "title")[0];
	this.title = (title.firstChild) ? title.firstChild.nodeValue : this.htmlUrl;
	
	// this.description
	var desc = (this.type==1) ? root.getElementsByTagName("tagline") : this.root.getElementsByTagName("description");
	this.description = (desc.length>0) ? ((desc[0].firstChild) ? desc[0].firstChild.nodeValue : '') : '';

	// this.image
	var img = root.getElementsByTagName("image");
	this.image = (img.length>0) ? ((img[0].firstChild) ? img[0].firstChild.nodeValue : '') : '';

	// this.category
	this.category = root.getElementsByTagName("category");

	// this.items
	this.items = [];
	var items = (this.type==1) ? this.root.getElementsByTagName("entry") : root.getElementsByTagName("item");
	var ln = items.length;	
	
	// this.getNode method()
	this.getNode = function(index) {
		return items[index];
	}
	
	// this.items 에 값 설정
	for (var z=0; z<ln; z++) {
		// obj.node
		// obj.category
		// obj.enclosures
		// obj.title
		// obj.date
		// obj.link
		// obj.id
		// obj.id_old
		// obj.content
		// obj.description
		var obj = {};
		obj.node = items[z];
		obj.category = items[z].getElementsByTagName("category")[0];
		obj.enclosures = items[z].getElementsByTagName("enclosure");
		
		var title = getChildrenByTagName(items[z], 'title')[0];
		if (title && title.firstChild) {
			obj.title = title.firstChild.nodeValue;
		} else {
			var d = items[z].getElementsByTagName("description");
			if (d[0]) {
				var tmp = document.createElement("div");
				tmp.innerHTML = d[0].firstChild.nodeValue;				
				obj.title = ((tmp.innerText)?tmp.innerText.substring(0,50):'')+"...";
			} else {
				obj.title = '[...]';
			}
		}

		var dcDate = (Browser.isIE) ? items[z].getElementsByTagName("dc:date")[0] : items[z].getElementsByTagName("date")[0];
		if (items[z].getElementsByTagName("pubDate")[0]) {
			obj.date = (items[z].getElementsByTagName("pubDate")[0].firstChild) ? items[z].getElementsByTagName("pubDate")[0].firstChild.nodeValue : "";
		} else if (dcDate) {
			obj.date = dcDate.firstChild.nodeValue;
		} else if (items[z].getElementsByTagName("issued")[0]) {
			obj.date = items[z].getElementsByTagName("issued")[0].firstChild.nodeValue;
		}
				
		var link = getChildrenByTagName(items[z], "link");
		if (link.length>0) {
			if (this.type==1) {
				for (var n=0; n<link.length; n++) {
					if (link[n].getAttribute("type")=="text/html" || link.length==1) {
						obj.link = link[n].getAttribute("href");
					}
				}
			} else {
				if (link[0] || link[0].firstChild) {
					obj.link = (link[0].firstChild) ? link[0].firstChild.nodeValue : '';
				} else if (items[z].getElementsByTagName("guid")[0].firstChild) {
					obj.link = items[z].getElementsByTagName("guid")[0].firstChild.nodeValue;
				}
			}
		} else {
			obj.link = this.htmlUrl;
		}
		
		if (obj.link!="" && obj.link!=this.htmlUrl) {
			var str = obj.link;
		} else {
			var str = obj.title+obj.date+obj.link;
		}

		obj.id = str.replace(/([^0-9a-zA-Z])/g,"");
		obj.id_old = (obj.title+obj.date+obj.link).replace(/([^0-9a-zA-Z])/g,"");

		
		if (this.type==1) {
			obj.content = items[z].getElementsByTagName("content")[0];
			obj.description = items[z].getElementsByTagName("summary")[0];
		} else {
			obj.content = (Browser.isIE) ? items[z].getElementsByTagName("content:encoded")[0] : items[z].getElementsByTagName("encoded")[0];
			obj.description = items[z].getElementsByTagName("description")[0];
		}
		this.items.push(obj);
	}
}


function getPopupForm(strTitle, strBody, bDnD) {
	var nSpace = 15;
	var sContent = '<table border="0" cellspacing="0" cellpadding="0">';
	if( strTitle.length != 0 )
	{
		nSpace = 0;
		sContent += '<tr>'+
		'<td>'+
			'<table cellspacing="0" cellpadding="0" border="3">'+
			'<tr>'+
			'<td><img src="'+rootDomain +'/modules/page/img/topr_01.gif" width="4" height="34" border="0"></td>'+
			'<td width="100%" height="30" bgcolor="#8D83CD" style="padding-left:15px; padding-top:4px"'+
			((bDnD == true) ? ' id="dr2">' : '>')+
			'<!-- 타이틀 -->'+
			'<img src="'+rootDomain +'/modules/page/img/ico_bullet.gif" align="absmiddle" width="10" height="11" border="0"><font style="font-weight:bold; color:#FFFFFF;" >'+strTitle+'</font>'+
			'<!-- 타이틀 -->'+
			'</td>'+
			'<td><img src="'+rootDomain +'/modules/page/img/topr_02.gif" width="4" height="34" border="0"></td>'+
			'</tr>'+
			'</table>'+
		'</td>'+
		'</tr>';
	}
	
	sContent = sContent + '<tr>'+
		'<td align="center" height="100%" style="border:3px solid #8D83CD" bgcolor="#FFFFFF">'+
			'<table cellspacing="0" cellpadding="0" border="0" width="100%">'+
				'<tr><td width="'+nSpace+'" nowrap></td>'+ 
				'<td width="100%" bgcolor="#FFFFFF" style="padding-top:5px;padding-left:5px;padding-right:5px" align="left">'+
				strBody+
				'</td><td width="'+nSpace+'" nowrap></td></tr>'+
				'</tr>'+ 
				'<tr><td align="center" colspan="3" height="50" nowrap bgcolor="#FFFFFF">'+
		'<!--button-->'+
							'<img id="lw2ok" src="http://image.chosun.com/myhome/btn_ok.gif" width="48" height="21" border="0" style="cursor:pointer;">&nbsp; &nbsp;<img id="lw2close" src="http://image.chosun.com/myhome/btn_cancel.gif" width="48" height="21" border="0" style="cursor:pointer;">'+
		'<!---->'+
				'</td>'+
				'</tr>'+
			'</table>'+
		'</td>'+
		'</tr>'+
		'</table>';
	return sContent;	
}


function getAttributePopupForm(xmlObj) {
	var attTitle = '';
		attTitle = xmlObj.getElementsByTagName("title")[0].firstChild.nodeValue;
	var attColor = xmlObj.getElementsByTagName("color")[0].firstChild.nodeValue;
	if(attColor == 1) checked1 = 'checked'; else checked1 = '';
	if(attColor == 2) checked2 = 'checked'; else checked2 = '';
	if(attColor == 3) checked3 = 'checked'; else checked3 = '';
	if(attColor == 4) checked4 = 'checked'; else checked4 = '';
	var attLine = xmlObj.getElementsByTagName("lineNo")[0].firstChild.nodeValue;
	if(attLine == 5) selected1 = 'selected'; else selected1 = '';
	if(attLine == 10) selected2 = 'selected'; else selected2 = '';
	if(attLine == 15) selected3 = 'selected'; else selected3 = '';
	if(attLine == 20) selected4 = 'selected'; else selected4 = '';

	var sContent = ''
		+ '<form name="channelAttForm">\n'
		+ '<table width="285" border="0" cellspacing="0" cellpadding="0">\n'
		+ '<tr><td><img src="http://image.chosun.com/myhome/edite_01.gif" width="285" height="40"></td></tr>\n'
		+ '<tr>\n'
		+ '	<td height="91" align="center" background="http://image.chosun.com/myhome/edite_02.gif">\n'
		+ '	<table width="256" border="0" cellspacing="0" cellpadding="2">\n'
		+ '	<tr>\n'
		+ '		<td width="71" height="20" align="left"><img src="http://image.chosun.com/myhome/edite_05.gif" width="11" height="11" align="absmiddle"><span style="color:#6398c8;font-weight:bold">제목</span></td>\n'
		+ '		<td width="177" align="left"><input name="attFeedTitle" type="text" class="listText" style="width:160px;height:18px;background-color:white;border:1px solid #aaaaaa;font-size:10;" value="'+attTitle+'"></td>\n'
		+ '	</tr>\n'
		+ '	<tr><td height="5" colspan="2" background="http://image.chosun.com/myhome/news_line.gif"></td></tr>\n'
		+ '	<tr>\n'
		+ '		<td height="20" align="left"><img src="http://image.chosun.com/myhome/edite_05.gif" width="11" height="11" align="absmiddle"><span style="color:#6398c8;font-weight:bold">색상</span></td>\n'
		+ '		<td align="left">\n'
		+ '		<table width="100%"  border="0" cellspacing="0" cellpadding="0">\n'
		+ '		<tr>\n'
		+ '			<td><input name="attFeedColor" type="radio" value="1" '+checked1+'></td>\n'
		+ '			<td><img src="http://image.chosun.com/myhome/color_03.gif" width="16" height="16" border="0"></td>\n'
		+ '			<td><input name="attFeedColor" type="radio" value="2" '+checked2+'></td>\n'
		+ '			<td><img src="http://image.chosun.com/myhome/color_02.gif" width="16" height="16" border="0"></td>\n'
		+ '			<td><input name="attFeedColor" type="radio" value="3" '+checked3+'></td>\n'
		+ '			<td><img src="http://image.chosun.com/myhome/color_01.gif" width="16" height="16" border="0"></td>\n'
		+ '			<td><input name="attFeedColor" type="radio" value="4" '+checked4+'></td>\n'
		+ '			<td><img src="http://image.chosun.com/myhome/color_04.gif" width="16" height="16" border="0"></td>\n'
		+ '		</tr>\n'
		+ '		</table>\n'
		+ '		</td>\n'
		+ '	</tr>\n'
		+ '	<tr><td height="5" colspan="2" background="http://image.chosun.com/myhome/news_line.gif"></td></tr>\n'
		+ '	<tr>\n'
		+ '		<td height="20" align="left"><img src="http://image.chosun.com/myhome/edite_05.gif" width="11" height="11" align="absmiddle"><span style="color:#6398c8;font-weight:bold">기사개수</span></td>\n'
		+ '		<td align="left"><select name="attFeedLine" class="listText" style="width:80px;height:15px;">\n'
		+ '			<option value="5" '+selected1+'>5개</option>\n'
		+ '			<option value="10" '+selected2+'>10개</option>\n'
		+ '			<option value="15" '+selected3+'>15개</option>\n'
		+ '			<option value="20" '+selected4+'>20개</option>\n'
		+ '			</select>\n'
		+ '		</td>\n'
		+ '	</tr>\n'
		+ '	</table>\n'
		+ '	</td>\n'
		+ '</tr>\n'
		+ '<tr><td><img src="http://image.chosun.com/myhome/edite_03.gif" width="285" height="8"></td></tr>\n'
		+ '<tr>\n'
		+ '	<td height="30" align="center" valign="top" background="http://image.chosun.com/myhome/edite_04.gif"><img src="http://image.chosun.com/myhome/bt_save3.gif" id="attOkBtn" width="54" height="23" border="0" align="absmiddle" style="cursor:hand">  <img src="http://image.chosun.com/myhome/bt_cancel.gif" id="attCancelBtn" width="40" height="23" border="0" align="absmiddle" style="cursor:hand"></td>\n'
		+ '</tr>\n'
		+ '</table>\n'
		+ '</form>';
/*
	var sContent = "<table width='230' cellpadding='1' cellspacing='1' border='0'>\n"
		+ "<tr bgcolor='#000000'>\n"
		+ "	<td align='center'>\n"

		+ "	<table width='100%' cellpadding='0' cellspacing='0'>\n"
		+ "	<tr bgcolor='#ffffff'>\n"
		+ "		<td align='center'>\n"

		+ "		<table width='100%' cellpadding='0' cellspacing='0'>\n"
		+ "		<tr height='10'><td></td></tr>\n"
		+ "		<tr bgcolor='#ffffff'>\n"
		+ "			<td>&nbsp; -> 수정하기</td>\n"
		+ "		</tr>\n"
		+ "		<tr height='5'><td></td></tr>\n"
		+ "		<tr>\n"
		+ "			<td align='center'>\n"

		+ "			<table width='180' cellpadding='1' cellspacing='1' border='0'>\n"
		+ "			<tr bgcolor='#000000'>\n"
		+ "				<td align='center'>\n"

		+ "				<table width='100%' cellpadding='0' cellspacing='0'>\n"
		+ "				<tr bgcolor='#ffffff'>\n"
		+ "					<td align='center'>\n"

		+ "					<table width='100%' cellpadding='0' cellspacing='0'>\n"
		+ "					</tr>\n"
		+ "					<tr height='7'><td></td></tr>\n"
		+ "					<tr bgcolor='#ffffff' height='30'>\n"
		+ "						<td>&nbsp; * 제목 : <input type='text' name='title' size='13'></td>\n"
		+ "					</tr>\n"
		+ "					<tr bgcolor='#ffffff' height='30'>\n"
		+ "						<td>&nbsp; * 색상 : <select name='color' style='width:103px;align:center'>\n"
		+ "							<option value='black'>검 정</option>\n"
		+ "							<option value='red'>빨 강</option>\n"
		+ "							<option value='blue'>파 랑</option>\n"
		+ "							<option value='orange'>주 황</option>\n"
		+ "							<option value='green'>녹 색</option>\n"
		+ "						</select>\n"
		+ "						</td>\n"
		+ "					</tr>\n"
		+ "					<tr bgcolor='#ffffff' height='30'>\n"
		+ "						<td>&nbsp; * 기사 개수 : <select name='color' style='width:75px'>\n"
		+ "							<option value='5'>5 개</option>\n"
		+ "							<option value='5'>10 개</option>\n"
		+ "							<option value='5'>15 개</option>\n"
		+ "							<option value='5'>20 개</option>\n"
		+ "							<option value='5'>30 개</option>\n"
		+ "							<option value='5'>50 개</option>\n"
		+ "						</select>\n"
		+ "						</td>\n"
		+ "					</tr>\n"
		+ "					<tr height='7'><td></td></tr>\n"
		+ "					</table>\n"

		+ "					</td>\n"
		+ "				</tr>\n"
		+ "				</table>\n"

		+ "				</td>\n"
		+ "			</tr>\n"
		+ "			</table>\n"
		+ "			</td>\n"

		+ "			<tr height='10' bgcolor='#ffffff'><td></td></tr>\n"
		+ "			<tr bgcolor='#ffffff'>\n"
		+ "				<td align='center'>\n"
		+ "				<input type='button' id='lw2ok' value='수정 저장'>&nbsp;&nbsp;<input type='button' value='취소' id='lw2close'>\n"
		+ "				</td>\n"
		+ "			</tr>\n"
		+ "			<tr height='15' bgcolor='#ffffff'><td></td></tr>\n"

		+ "		</tr>\n"
		+ "		</table>\n"

		+ "		</td>\n"
		+ "	</tr>\n"
		+ "	</table>\n"

		+ "	</td>\n"
		+ "</tr>\n"
		+ "</table>";
*/
	return sContent;
}

function debugText(sModuleID, sText){
	if($("debugConsole") == null )
		return;
	$("debugConsole").innerHTML = (sModuleID + ":>" + sText + "<br>"+$("debugConsole").innerHTML);
}
