var fadeObj;
var fadeTimer;
var openWi = false;
var widgetBox = new Array();
var useAlpha = (navigator.userAgent.indexOf("MSIE")!=-1 && parseInt(/MSIE ([0-9])/.exec(navigator.userAgent)[1])<=6);

function widget(num, title, auth, cnt, img, thum, desc){
	var param = {
		thum:thum,
		title:title,
		desc:desc,
		auth:auth,
		cnt:cnt
	}
	widgetBox[num] = param;
	var liObj = 	getDomObject("li");
	liObj.id = "widget"+num;
	liObj.appendChild(getTextNode(title));

	if(useAlpha){
		liObj.style.background = "none";
		liObj.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+ img +"',sizingMethod='crop')";
		liObj.onmouseover = function(){ this.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+ this.style.filter.substring(this.style.filter.indexOf("src='")+"src='".length, this.style.filter.indexOf(".png")) +"_over.png',sizingMethod='crop')"; }
		liObj.onmouseout = function(){ this.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+ this.style.filter.substring(this.style.filter.indexOf("src='")+"src='".length, this.style.filter.indexOf("_over.png")) +".png',sizingMethod='crop')"; }
	}else{
		liObj.style.backgroundImage = "url("+ img +")";
		liObj.onmouseover = function(){  this.style.backgroundImage = "url("+ this.style.backgroundImage.substring(this.style.backgroundImage.indexOf("url(")+"url(".length, this.style.backgroundImage.indexOf(".png")) +"_over.png)"; }
		liObj.onmouseout = function(){ this.style.backgroundImage = "url("+ this.style.backgroundImage.substring(this.style.backgroundImage.indexOf("url(")+"url(".length, this.style.backgroundImage.indexOf("_over.png")) +".png)"; }
	}
	document.getElementById("widgetList").appendChild(liObj);
	liObj.onclick =	function(){ 
							var bgObj = document.getElementById("wiLayer");
							var id = this.id.getIdNum("widget");
							var param = widgetBox[id];
							
							document.getElementById("wiLayer_thum").src = param["thum"];
							document.getElementById("wiLayer_title").innerHTML = param["title"];
							document.getElementById("wiLayer_desc").innerHTML = param["desc"];
							document.getElementById("wiLayer_auth").innerHTML = param["auth"];
							document.getElementById("wiLayer_cnt").innerHTML = param["cnt"];
							document.getElementById("wiLayer_install").onclick = function(){ scrapWi(id); };
							
							var bgWidth = document.getElementById("wiList").offsetWidth;
							var bgHeight = document.getElementById("wiList").offsetHeight;
							var liSize = this.offsetWidth;
							bgObj.style.top = -10000+"px";
							bgObj.style.left = -10000+"px";
							bgObj.style.display = "";
							var layerWidth = bgObj.offsetWidth;
							var layerHeight = bgObj.offsetHeight;

							var layerTop = this.offsetTop-((layerHeight-liSize)/2);
							var layerLeft = this.offsetLeft-((layerWidth-liSize)/2);
							layerTop = (layerTop<0)?0:layerTop;
							layerLeft = (layerLeft<0)?0:layerLeft;
							layerTop = (layerTop>(bgHeight-layerHeight))?(bgHeight-layerHeight):layerTop;
							layerLeft = (layerLeft>(bgWidth-layerWidth))?(bgWidth-layerWidth):layerLeft;
							bgObj.style.top = layerTop+ "px";
							bgObj.style.left = layerLeft+ "px";
							bgObj.style.display = "";
							
							var startOp = 40;
							var endOp = 100;
							var termOp = 5;
							var termT = 50;
							fadeObj =  ["wiLayer_thum", "wiLayer_close", "wiLayer_detail", "wiLayer_install" ];
							if(fadeTimer!=null){
								clearTimeout(fadeTimer);
								fadeTimer = null;
							}
							fadeFunc(startOp, endOp, termOp,termT);
						}
}

function getTagLink(tag, sortType, selectedTag, isReduce) {
	if ((selectedTag != null) && (selectedTag != '')) {	// 선택된 태그 맨 앞으로 위치시킴
		tag = selectedTag + ',' + tag.replace(selectedTag, '');
		tag = tag.replace(',,', ',');
	} else {
		selectedTag = ',';	// 절대 겹칠일 없는 걸로 바꿈
	}
	
	if (isReduce) {
		tag = leftByByte(tag, 30, true);	// 말줄임표 붙이고
	}

	var tagList = tag.split(',');
	var tagHTML = '';
	
	if (tag != '') {
		for (var i=0; i<tagList.length; i++) {
			if (tagList[i].strip().empty()) {
				continue;
			}
			if (tagList[i].substr(tagList[i].length-3) == '...') {	// 말줄임표가 온 상황
				tagHTML += ' ...';
				break;
			}
			if (i > 0) {
				tagHTML += ', ';
			}
			
			if (tagList[i] == selectedTag) {	// 선택된 태그
				tagHTML += '<a class="widgetCopy txt_point4" href="/widget/sub.do?sortType=' + sortType + '&tagName=' + encodeURI(tagList[i]) + '">' + tagList[i] + '</a>';
			} else {	// 나머지 태그
				tagHTML += '<a class="widgetCopy" href="/widget/sub.do?sortType=' + sortType + '&tagName=' + encodeURI(tagList[i]) + '">' + tagList[i] + '</a>';
			}
		}
	} else {
		tagHTML = '';
	}
	
	return tagHTML;
}

function subWidget(num, title, auth, commentcnt, regcnt, thum, desc, lastChk, blog, parameter, tag, sortType, selectedTag){
	var tagHTML = getTagLink(tag, sortType, selectedTag, true);

	var liObj = getDomObject("li");
	var linkStyle = "";
	liObj.id = "widget"+num;
	if(lastChk) liObj.className = "noBorder";

	if(useAlpha){
		linkStyle = "background: none; filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+ thum +"',sizingMethod='image');";
	}else{
		linkStyle = "background-image: url("+ thum +");";
	}

	var htmlStr = "";
	htmlStr += "<a href=\"/widget/view/" + num + parameter + "\" class=\"wiIcon imgLink\" style=\""+linkStyle+"\" title=\""+title+"\">"+title+"</a>";
	htmlStr += "<dl>";
	htmlStr += "<dt><a href=/widget/view/" + num + parameter + ">"+title+" </a><span class=\"n\">(</span><span class=\"nosp\">"+commentcnt+"</span><span class=\"n\">)</span></dt>";
	htmlStr += "<dd class=\"widgetDescDD\"><a href=/widget/view/" + num + parameter + " class=\"txt_point2\">"+desc+"</a></dd>";
	htmlStr += "<dd class=\"widgetCopy\">제작 ";
	if (blog == '') {
		htmlStr += auth;
	} else {
		htmlStr += "<a href=\"" + blog + "\" class=\"widgetCopy\" target=\"_blank\">" + auth + "</a>";
	}
	htmlStr += "<span class=\"subLineBarL\">누적 퍼간수</span> <span class=\"nosp\">"+regcnt+"</span></dd>";
	htmlStr += "<dd class=\"widgetTag\">" + tagHTML + "</dd>";
	htmlStr += "</dl>";

	liObj.innerHTML = htmlStr;
	document.getElementById("widgetSubList").appendChild(liObj);
}

function scrapWi(id){
	alert(id+"번 위젯을 퍼갑니다.");
}

function fadeFunc(start,end,termOp,termT) { 
	for(var i=0;i<fadeObj.length;i++){
		var object = document.getElementById(fadeObj[i]).style; 
		object.opacity = (start / 100); 
		object.MozOpacity = (start / 100); 
		object.KhtmlOpacity = (start / 100); 
		object.filter = "alpha(opacity=" + start + ")";
	}
	
	if(start<end){
		start+=termOp;
		fadeTimer = setTimeout("fadeFunc("+ start + "," + end + "," + termOp +"," + termT + ")",termT);
	}else{
		clearTimeout(fadeTimer);
		fadeTimer = null;
	}
}

function toggleWi(){
	var obj = document.getElementById("wiCateList");
	openWi = (obj.style.display=="none")?true:false;
	obj.style.display = (openWi)?"block":"none";
	document.getElementById("wiCurCate").className = (openWi)?"over":"";
}

function setStyleWi(obj){
	var ulObj = obj.parentNode;
	ulObj = ulObj.getElementsByTagName("li");
	for(var i=0;i<ulObj.length;i++){
		ulObj[i].className = ""
	}
	obj.className = "over"
}

function closeWi(){
	var obj = document.getElementById("wiCateList");
	if(!openWi){
		obj.style.display = "none";
		document.getElementById("wiCurCate").className = "";
	}
	openWi = false;
}

function closeLayer(id){
	document.getElementById("wiLayer").style.display = "none";
	popupChk = false;
}

function getDomObject(tagName){ return document.createElement(tagName); }
function getTextNode(arg){ return document.createTextNode(arg); }

function initMain(sortType){
	// 주간인기위젯, 최신위젯 모양 셋팅
	document.getElementById('btn_sortByWeek').className = (sortType == 'WEEK')?"imgLink over":"imgLink";
	document.getElementById('btn_sortByNew').className = (sortType == 'WEEK')?"imgLink":"imgLink over";
}

function initSub(sortType){
	// 인기위젯, 최신위젯 모양 셋팅
	document.getElementById('btn_sortByPop').className = (sortType == 'POP')?"over":"";
	document.getElementById('btn_sortByNew').className = (sortType == 'POP')?"":"over";
}

function inductScrapLogin(checkedType) {
	var returnUrl = '/widget/view.do?widgetId=' + document.getElementById('widgetId').value + '&checkedType=' + checkedType;
	inductLogin(null, true, returnUrl);
}
