///////////////////////////////////////////////////////////////////////////////
//	Check Browser
///////////////////////////////////////////////////////////////////////////////
var W3C = ( document.getElementById )	? true : false;
var IE5 = ( W3C && document.all )		? true : false;
var NS6 = ( W3C && (navigator.appName=="Netscape") ) ? true: false;


///////////////////////////////////////////////////////////////////////////////
//	Check Cookie enable
///////////////////////////////////////////////////////////////////////////////
//var CookieEnabled;
//
//if( document.all )
//{	CookieEnabled	= navigator.cookieEnabled; 	}
//else
//{
//	var CookieName	= 'testCookie' + ( new Date().getTime() );
//	document.cookie	= CookieName + '=CookieValue';
//	CookieEnabled	= document.cookie.indexOf(CookieName) != -1;
//}
//
//if( !CookieEnabled ){	alert( "º» »çÀÌÆ®¿¡¼­´Â ÄíÅ°Á¤º¸¸¦ »ç¿ëÇÕ´Ï´Ù. ÄíÅ°»ç¿ëÀ» Çã°¡ÇØ ÁÖ½Ã±â ¹Ù¶ø´Ï´Ù." ); 	}


///////////////////////////////////////////////////////////////////////////////
//	Cookie Handling
///////////////////////////////////////////////////////////////////////////////
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 deleteCookie( cookieName ){
	var expireDate = new Date();

	expireDate.setDate( expireDate.getDate() - 1 );
	document.cookie = cookieName + "= " + "; expires=" + expireDate.toGMTString() + "; path=/";
}


///////////////////////////////////////////////////////////////////////////////
//	popup
///////////////////////////////////////////////////////////////////////////////
var PopupHandle;
function Popup( popURL, popName, popParam, On ){
	if( PopupHandle ){	PopupHandle.close();	}
	if( On != 0 )
	{
		PopupHandle = window.open( popURL, popName, popParam );
		PopupHandle.focus();
	}

	return PopupHandle;
}

function Move2Center( Wx, Wy ){
	var Px	= screen.width/2 - Wx/2;
	var Py	= screen.height/2 - Wy/2;
	self.moveTo( Px, Py );
	window.resizeTo( Wx, Wy );
}


///////////////////////////////////////////////////////////////////////////////
//	move to
///////////////////////////////////////////////////////////////////////////////
function MoveTo( url ){		window.location.href = url;		}
function Replace( url ){	window.location.replace( url );	}


///////////////////////////////////////////////////////////////////////////////
//	Set_Color(Color)
///////////////////////////////////////////////////////////////////////////////
function SetBGColor( Element, Color, Hand ){
	Element.style.backgroundColor = Color;
	Element.style.cursor = ( Hand && Hand != 0) ? "hand" : "default";
}


///////////////////////////////////////////////////////////////////////////////
//	SwapImage( Element, ImageID )
///////////////////////////////////////////////////////////////////////////////
PreLoadImageAry	= new Array();
function SwapImage( Element, ImageID ){
	if( PreLoadImageAry[ImageID] )
	{	Element.src	= PreLoadImageAry[ImageID].src;	}
}

function PreLoadImage( ImageName, URL ){
	PreLoadImageAry[ImageName]		= new Image;
	PreLoadImageAry[ImageName].src	= URL;
}

function preloadImages(){
  var d=document; if(d.images){ if(!d.p) d.p=new Array();
    var i,j=d.p.length,a=preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.p[j]=new Image; d.p[j++].src=a[i];}}
}


///////////////////////////////////////////////////////////////////////////////
//	Image Utils..
///////////////////////////////////////////////////////////////////////////////
function onImageError(obj, src){
	if (typeof $ != "function") return;
	else{
		if (!$(obj).hasClass("errorProcess"))
			$(obj).attr("src", src).addClass("errorProcess");
	}
}

function JacketErr( objJacket, jacketSize ){
	var sJacketURL	= 'http://img.soribada.com/Img/Soribada/Common/noimage_55.';
	var mJacketURL	= 'http://img.soribada.com/Img/Soribada/Common/noimage_80.';
	var lJacketURL	= 'http://img.soribada.com/Img/Soribada/Common/noimage_120.';

	switch( jacketSize.toUpperCase() ){
		case 'S'	:
		case '55'	: objJacket.src = sJacketURL;	break;

		case 'M'	:
		case '80'	: objJacket.src = mJacketURL;	break;

		case 'L'	:
		case '120'	: objJacket.src = lJacketURL;	break;

		default		: objJacket.src = mJacketURL;
	}
}

//IE6 png
function setpngIE(obj) {
	obj.width=obj.height=1;
	obj.className=obj.className.replace(/\bpngIE\b/i,'');
	obj.style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+obj.src+"',sizeMethod='image');"
	objsrc='';
	return '';
}


///////////////////////////////////////////////////////////////////////////////
//	PrintDiv( AreaName )
///////////////////////////////////////////////////////////////////////////////
var PrintArea;
function PrintDiv( AreaName ){
	PrintArea	= PrintArea;
	if( document.all && window.print ){
		PrintArea = document.all[AreaName];
		window.onbeforeprint	= beforeDivs;
		window.onafterprint		= afterDivs;
		window.print();
	}
}

function beforeDivs(){
	if( document.all ){
		objContents.style.display	= 'none';
		//objSelection.innerHTML		= document.all[PrintDiv].innerHTML;
		objSelection.innerHTML		= PrintArea.innerHTML;
	}
}

function afterDivs(){
	if(	document.all ){
		objContents.style.display	= 'block';
		objSelection.innerHTML		= "";
	}
}


///////////////////////////////////////////////////////////////////////////////
//	RelayURL
///////////////////////////////////////////////////////////////////////////////
function RelayURL(Position,Url,Type,Other){
	Url = urlencode(Url);
	Type = Type.toLowerCase();

	if(Type == "popup"){
		PopupHandle = window.open("/Include/Common/LogGate.php?Url="+Url+"&Position="+Position,"MainPop1",Other);
		PopupHandle.focus();
	}else if(Type == "blank" || Type == "_blank"){
		PopupHandle = window.open("/Include/Common/LogGate.php?Url="+Url+"&Position="+Position,"MainPop2","width=800,height=600,toolbar=yes,location=yes,directories=yes,status=yes,menubar=yes,scrollbars=yes,resizable=yes");
		PopupHandle.focus();
	}else if(Type == "fb_blank"){
		PopupHandle = window.open("/Include/Common/LogGate.php?Url="+Url+"&Position="+Position,"FB_BLANK","width=800,height=600,toolbar=yes,location=yes,directories=yes,status=yes,menubar=yes,scrollbars=yes,resizable=yes");
		PopupHandle.focus();
	}else if(Type == "top"){
		window.top.location.href = "/Include/Common/LogGate.php?Url="+Url+"&Position="+Position;
	}else if(Type == "p2p"){
		frmPlayListCheck.location.href = "/Include/Common/LogGate.php?Url=about:blank&Position="+Position;
	}else{
		document.location.href = "/Include/Common/LogGate.php?Url="+Url+"&Position="+Position;
	}
}


///////////////////////////////////////////////////////////////////////////////
//	Logs
///////////////////////////////////////////////////////////////////////////////
/*¸ÞÀÎ Å¬¸¯·Î±× 20080311*/
function LogGate(KIND,SERVICE,GRP,GRPNO,TARGETLINK,REFERER,POPINFO){
	if(KIND == "" && SERVICE == "main") {
		try{top.logPage(KIND,SERVICE,GRP,GRPNO,TARGETLINK,REFERER,POPINFO);}catch(e){};
	}else if(KIND == "hideifr" && SERVICE == "main"){
		try{top.logPage(KIND,SERVICE,GRP,GRPNO,TARGETLINK,REFERER,POPINFO);}catch(e){};
	}else if(KIND == "" && SERVICE == "newmain") {
		try{top.logPage(KIND,SERVICE,GRP,GRPNO,TARGETLINK,REFERER,POPINFO);}catch(e){};
	}else if(KIND == "hideifr" && SERVICE == "newmain"){
		try{top.logPage(KIND,SERVICE,GRP,GRPNO,TARGETLINK,REFERER,POPINFO);}catch(e){};
	}else if(KIND == "" && SERVICE == "main201112") {
		try{top.logPage(KIND,SERVICE,GRP,GRPNO,TARGETLINK,REFERER,POPINFO);}catch(e){};
	}else if(KIND == "hideifr" && SERVICE == "main201112"){
		try{top.logPage(KIND,SERVICE,GRP,GRPNO,TARGETLINK,REFERER,POPINFO);}catch(e){};
	}

	else{
		TARGETLINK = urlencode(TARGETLINK);
		REFERER = urlencode(REFERER);

		if(KIND == "blank") {
			PopupHandle = window.open("http://gate.soribada.com/LogGate.php?KIND="+KIND+"&SERVICE="+SERVICE+"&GRP="+GRP+"&GRPNO="+GRPNO+"&TARGETLINK="+TARGETLINK+"&REFERER="+REFERER);
		// ¿À¸£°ñ ÆË¾÷½Ã
		}else if(KIND == "popup")	{
			var OrgelPopupParam = 'width=970,height=700 ,top=0,left=0,toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no, resizable=no';
			PopupHandle = window.open("http://gate.soribada.com/LogGate.php?KIND="+KIND+"&SERVICE="+SERVICE+"&GRP="+GRP+"&GRPNO="+GRPNO+"&TARGETLINK="+TARGETLINK+"&REFERER="+REFERER,"",OrgelPopupParam);
			PopupHandle.focus();
		}
		else if(KIND == "popinfo") {
			var OrgelnfoParam = 'width=750,height=550 ,top=0,left=0,toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no, resizable=no';
			PopupHandle = window.open("http://gate.soribada.com/LogGate.php?KIND="+KIND+"&SERVICE="+SERVICE+"&GRP="+GRP+"&GRPNO="+GRPNO+"&TARGETLINK="+TARGETLINK+"&REFERER="+REFERER,"",OrgelnfoParam);
			PopupHandle.focus();
		}
		else if(KIND == "iframe") {
			 parent.location.href =	"http://gate.soribada.com/LogGate.php?KIND="+KIND+"&SERVICE="+SERVICE+"&GRP="+GRP+"&GRPNO="+GRPNO+"&TARGETLINK="+TARGETLINK+"&REFERER="+REFERER;
		}

		else if(KIND == "top") {
			top.location.href =	"http://gate.soribada.com/LogGate.php?KIND="+KIND+"&SERVICE="+SERVICE+"&GRP="+GRP+"&GRPNO="+GRPNO+"&TARGETLINK="+TARGETLINK+"&REFERER="+REFERER;
		}
		else if(KIND == "p2p") {
			frmPlayListCheck.location.href = "http://gate.soribada.com/LogGate.php?KIND="+KIND+"&SERVICE="+SERVICE+"&GRP="+GRP+"&GRPNO="+GRPNO+"&TARGETLINK="+TARGETLINK+"&REFERER="+REFERER;
		}
		else if(KIND == "refuseEmail"){	// ¸ÞÀÎ ·Î±×ÀÎ ¿µ¿ª ¾ÆÀÌµð,ºñ¹Ð¹øÈ£ Ã£±â
			PopupHandle = window.open("http://gate.soribada.com/LogGate.php?KIND="+KIND+"&SERVICE="+SERVICE+"&GRP="+GRP+"&GRPNO="+GRPNO+"&TARGETLINK="+TARGETLINK+"&REFERER="+REFERER,"",'scrollbars=no,status=no,width=490,height=390');
		}
		else if(KIND == "new"){	// ÆË¾÷
			var PopInfo = POPINFO;
			while(PopInfo.indexOf("||")>-1){
				PopInfo = PopInfo.replace("||",",");
			}
			PopupHandle = window.open("http://gate.soribada.com/LogGate.php?KIND="+KIND+"&SERVICE="+SERVICE+"&GRP="+GRP+"&GRPNO="+GRPNO+"&TARGETLINK="+TARGETLINK+"&REFERER="+REFERER,"",PopInfo);
		}
		else if(KIND == "hideifr"){
			var frmLogGate = document.getElementById("frmLogGate");
			frmLogGate.src = "http://gate.soribada.com/LogGate.php?KIND="+KIND+"&SERVICE="+SERVICE+"&GRP="+GRP+"&GRPNO="+GRPNO+"&TARGETLINK="+TARGETLINK+"&REFERER="+REFERER+"&IFR=Y";
		}
		else{
			document.location.href = "http://gate.soribada.com/LogGate.php?KIND="+KIND+"&SERVICE="+SERVICE+"&GRP="+GRP+"&GRPNO="+GRPNO+"&TARGETLINK="+TARGETLINK+"&REFERER="+REFERER;
		}
	}
}

// P2P Åë½Å½Ã ·Î±× ½×±â
function MuClickCheck(gbn){
	top.document.getElementById("IfrSbCheck").src = g_wwwSvr + "/Music/HotChart/clicklog.php?gbn="+gbn;
}

function goWriteLog(strPosition,strUrl,strType,strOther)	{
	var strUrl = getUrlencode(strUrl);
	var strType = strType.toLowerCase();

	switch (strType)
	{
		case "popup" :
			objPopup = window.open("/Include/Common/LogGate.php?Url="+strUrl+"&Position="+strPosition,"MainPop1",strOther);
			objPopup.focus();
			break;
		case "blank" :
		case "_blank" :
			objPopup = window.open("/Include/Common/LogGate.php?Url="+strUrl+"&Position="+strPosition,"MainPop2","width=800,height=600,toolbar=yes,location=yes,directories=yes,status=yes,menubar=yes,scrollbars=yes,resizable=yes");
			objPopup.focus();
			break;
		case "fb_blank" :
			objPopup = window.open("/Include/Common/LogGate.php?Url="+strUrl+"&Position="+strPosition,"FB_BLANK","width=800,height=600,toolbar=yes,location=yes,directories=yes,status=yes,menubar=yes,scrollbars=yes,resizable=yes");
			objPopup.focus();
			break;
		case "top" :
			window.top.location.href = "/Include/Common/LogGate.php?Url="+strUrl+"&Position="+strPosition;
			break;
		default :
			document.location.href = "/Include/Common/LogGate.php?Url="+strUrl+"&Position="+strPosition;
	}
}


////////////////////////////////////////////////////////////////////////////////
// Resize
////////////////////////////////////////////////////////////////////////////////
/* ½ÃÀÛ - SP2 ´ëºñ resize ÇÔ¼ö */
var g_resizeWidth, g_resizeHeight;
/* ÇÁ·¹ÀÓ ³»¿¡¼­ À©µµ¿ì »çÀÌÁî Á¶Àý resizeToTop(width, height) */
function resizeToTop(width, height)
{
	if (typeof(top.resizeToBody) == "function")
		top.resizeToBody(width, height);
}
/* body ±âÁØ À©µµ¿ì »çÀÌÁî Á¶Àý resizeToBody(width, height) */

function resizeToBody(width, height){
	g_resizeWidth = width;
	g_resizeHeight = height;
	if (document.layers || document.body)
		resizeToBodyEx();
	else if (window.addEventListener)
		window.addEventListener("load", resizeToBodyEx, false);
	else if (window.attachEvent)
		window.attachEvent("onload", resizeToBodyEx);
}

/* Helper - body ±âÁØ À©µµ¿ì »çÀÌÁî Á¶Àý */
function resizeToBodyEx(){
	var sw, sh;

	if (document.layers)
	{
		sw = window.innerWidth;
		sh = window.innerHeight;
	}
	else
	{
		sw = document.body.clientWidth;
		sh = document.body.clientHeight;
	}

	window.resizeBy(g_resizeWidth - sw, g_resizeHeight - sh);
}

function resizeToBodyDlg(iWidth, iHeight) {
	window.dialogWidth = iWidth + "px";
	window.dialogHeight = iHeight + "px";

	window.dialogWidth = (iWidth * 2 - document.body.clientWidth) + "px";
	window.dialogHeight = (iHeight * 2 - document.body.clientHeight) + "px";
}

function setResizeTo(intWidth, intHeight){
	var strAgent = navigator.userAgent.toLowerCase();
	var intFirstPos = strAgent.indexOf("msie");
	var strVersion = strAgent.substr(intFirstPos+5,1);

	switch(strVersion)
	{
		case "7" :
			window.resizeTo(intWidth, intHeight+39);
			break;
		case "6" :
			window.resizeTo(intWidth, intHeight+8);
			break;
		default :
			window.resizeTo(intWidth, intHeight);
	}
}

function resizeiFrame(frameId, turm){
	var frame, innerDoc;
	if (!turm) turm = 0;

	frame = document.getElementById(frameId);

	innerDoc = (frame.contentDocument) ? frame.contentDocument : frame.contentWindow.document;
	objToResize = (frame.style) ? frame.style : frame;
	if ($.support.leadingWhitespace)	 //»çÀÌÁî¸¦ °»½ÅÇÏÁö ¾ÊÀ¸¹Ç·Î.. ÇöÀç IE¸¦ Á¦¿ÜÇÏ°í´Â true
		objToResize.height = "0px";
	objToResize.height = parseInt(innerDoc.body.scrollHeight) + turm + "px";
	return objToResize.height;
}


////////////////////////////////////////////////////////////////////////////////
// String Utils (Encode, Parse, Decode..)
////////////////////////////////////////////////////////////////////////////////
function trim(str){
	var re = /^\s+|\s+$/g;
	return str.replace(re, '');
}

function ltrim (str) {
	var re = /^\s+/g;
	return str.replace(re, '');
}

function rtrim (str) {
	var re = /\s+$/g;
	return str.replace(re, '');
}

function getUrlencode(str) {
	return urlencode(str);
}

// PHP-Javascript È£È¯ URLEncode ÇÔ¼ö
function urlencode(str) {
	outstr=' ';
	for (i=0; i < str.length; i++) {
		strchar=str.substring (i, i+1);
		switch(strchar){
		case '%': outstr += "%25"; break; case ',': outstr += "%2C"; break;
		case '/': outstr += "%2F"; break; case ':': outstr += "%3A"; break;
		case '~': outstr += "%7E"; break; case '!': outstr += "%21"; break;
		case '"': outstr += "%22"; break; case '#': outstr += "%23"; break;
		case '$': outstr += "%24"; break; case "'": outstr += "%27"; break;
		case '`': outstr += "%60"; break; case '^': outstr += "%5E"; break;
		case '&': outstr += "%26"; break; case '(': outstr += "%28"; break;
		case ')': outstr += "%29"; break; case '+': outstr += "%2B"; break;
		case '{': outstr += "%7B"; break; case '|': outstr += "%7C"; break;
		case '}': outstr += "%7D"; break; case ';': outstr += "%3B"; break;
		case '<': outstr += "%3C"; break; case '=': outstr += "%3D"; break;
		case '>': outstr += "%3E"; break; case '?': outstr += "%3F"; break;
		case '[': outstr += "%5B"; break; case '\\': outstr += "%5C"; break;
		case ']': outstr += "%5D"; break; case ' ': outstr += "+"; break;
		default: outstr += strchar;
		}
	}
	return outstr.substring(1, outstr.length);
}

function getBase64_decode(strString){
	var InStr =strString;
	var len_1 = InStr.length;
	var ttb = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
	var len_res = InStr.length % 4;
	var len_div = len_1 - len_res;
	var re = new setMakeArray(3);
	var In  = new setMakeArray(4);
	var DecNum = new setMakeArray(4);
	var i=0;
	var Stat = "";
	var tmp16, tmp16s;
	var EnB=4;
	var str="";

	while(1)
	{
		if( i >= len_1 )  break;

		for(k=1;k<=4;k++)
		{
			In[k] = InStr.charAt(i++);
			DecNum[k] = ttb.indexOf(In[k]);
		}

		if( i >= len_div )
		{
			Stat = "End";
			if( len_res == 3 || DecNum[4] == 64 )  EnB = 3;
			if( len_res == 2 || DecNum[3] == 64 )  EnB = 2;
		}

		re[1] = ( DecNum[1] << 2 ) + ( DecNum[2] >> 4);
		re[2] = ( ( DecNum[2] & 15 ) << 4 ) + ( DecNum[3] >> 2);
		re[3] = ( ( DecNum[3] & 3 ) << 6 ) | DecNum[4] ;

		for(k=1;k<=3;k++)
		{
			if( k < EnB )
			{
				tmp16 = re[k].toString(16);
				tmp16s = "%" + tmp16;
				str = str + tmp16s  ;
			}
		}
	}

	return unescape(str);
}

function getBase64_encode(strString){

	var InStr = strString;
	var ttb = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
	var len_1 = InStr.length;
	var len_res = InStr.length % 3;
	var len_div = len_1 - len_res;
	var ra = new setMakeArray(4);
	var i=0;
	var Stat = "";

	var str="";
	while(1)
	{
		if( i >= len_1 )  break;


		if( i >= len_div )  Stat = "End";

		A = eval(InStr.charCodeAt(i++));
		B = eval(InStr.charCodeAt(i++));
		C = eval(InStr.charCodeAt(i++));

		if( i > len_div )
		{
			Stat = "End";

			if( len_res >= 1)  C = 0;
			if( len_res == 1 )  B = 0;
		}
		ra[1] = A >> 2;
		ra[2] = ( (A & 3) << 4 ) + (B >> 4);
		ra[3] = ( ( B & 15 ) << 2 ) + ( C >> 6);
		ra[4] = C & 63;

		if( Stat == "End" && len_res >= 1 )  ra[4] = 64;
		if( Stat == "End" && len_res == 1 )  ra[3] = 64;

		for(k=1;k<=4;k++)  str = str + ttb.substr(ra[k],1);
	}

	return str;
}

function setMakeArray(n){
	this.length=n
	for(var i=1; i<=n; i++)  this[i]=null;

	return this;
}

// ±ÛÀÚÁ¦ÇÑ(ÀÚ¸£±â)
function getStringCut(str, len, tail){
	var temp_length = 0;
	var cutStr = "";
	var str_length = str.length;

	for(var i=0;i<str_length;i++){
		if(escape(str.charAt(i)).length > 4)
		{	temp_length += 2;	}
		else
		{	temp_length++;		}

		if(temp_length <= len)
		{
			cutStr += str.charAt(i);
		}
	}

	if( len < temp_length ) {
		returnStr = cutStr+ tail;
	} else {
		returnStr = str;
	}

	return returnStr;
}

function stripslashes(str){
	return (str+'').replace(/\\(.?)/g, function (s, n1) {
		switch (n1) {
			case '\\': return '\\';
			case '0': return '\u0000';
			case '': return '';
			default: return n1;
		}
	});
}

////////////////////////////////////////////////////////////////////////////////
// Debug Utils
////////////////////////////////////////////////////////////////////////////////
var g_debugpop;
function debug(str, style){
	if(typeof(style) == "undefined") style = "border:1px solid red;z-index:200;font-size:12px;padding:10px;width:100%;height:100%;";

	if(!g_debugpop){
		g_debugpop = window.open("", "_debugwin_", "top=0, left=1524, width=500, height=300, scrollbars=yes, toolbars=no,resizable=yes", "no");
		if(g_debugpop.document.body.innerHTML == "") g_debugpop.document.writeln("<html><title>DEBUG</title><body style='margin:0px;'><div style='" + style + "'><span style='color:red;'>**DEBUG**<br /></span><ul id='debuglayer' style='padding:0px;margin:0px 20px;list-style-type:decimal;'></ul></div></body></html>");
	}

	var newul = g_debugpop.document.getElementById("debuglayer");
	var newli = g_debugpop.document.createElement("li");
	var newtext = g_debugpop.document.createTextNode(str);

	newli.appendChild(newtext);
	newul.appendChild(newli);
}


////////////////////////////////////////////////////////////////////////////////
// PG
////////////////////////////////////////////////////////////////////////////////
function Gopg(strCheckAuthVar) {
	 window.open('https://pg.soribada.com/Pay_Choice.php?strCheckAuthVar='+strCheckAuthVar+'&svcurl=TOP','pg',"width=520,height=560,top=0,left=0");
}

function opnP2pPayment(){
	if(g_client == 1)  return;
	//if (GetCookie("SORIBADA_TICKET") != "OFF")  window.open(g_wwwSvr + '/mypage/TicketPopup.php','SORIBADA_TICKET','scrollbars=no,status=no,width=390,height=273');
}


////////////////////////////////////////////////////////////////////////////////
// Dimension
////////////////////////////////////////////////////////////////////////////////
//* get dimension */
function getAbsoluteTop(oNode){
	var oCurrentNode=oNode;
	var iTop=0;

	while(oCurrentNode && oCurrentNode.tagName){
		iTop += oCurrentNode.offsetTop;
		oCurrentNode=oCurrentNode.offsetParent;
	}
	return iTop;
}

function getAbsoluteLeft(oNode){
	var oCurrentNode=oNode;
	var iLeft=0;

	while(oCurrentNode && oCurrentNode.tagName){
		iLeft += oCurrentNode.offsetLeft;
		oCurrentNode=oCurrentNode.offsetParent;
	}
	return iLeft;
}

function getAbsoluteScrollTop(oNode){
	var oCurrentNode=oNode;
	var iTop=0;

	while(oCurrentNode && oCurrentNode.tagName){
		iTop += oCurrentNode.scrollTop;
		oCurrentNode = oCurrentNode.parentNode;
	}
	return iTop;
}

function getAbsoluteScrollLeft(oNode){
	var oCurrentNode=oNode;
	var iLeft=0;

	while(oCurrentNode && oCurrentNode.tagName){
		iLeft += oCurrentNode.scrollLeft;
		oCurrentNode = oCurrentNode.parentNode;
	}
	return iLeft;
}


////////////////////////////////////////////////////////////////////////////////
// Soribada Client and ActiveX
////////////////////////////////////////////////////////////////////////////////
function writeActiveXObject(str){
	document.writeln(str);
}

// ¼Ò¸®¹Ù´Ù ½ÇÇà
function launchSB(strenc, returnurl, opentype){
	if(typeof(opentype) == "undefined") opentype = "move";

	if(!window.ActiveXObject){
		alert("Internet Explorer ¸¦ »ç¿ëÇÏ¼Å¾ß ÀÌ¿ëÀÌ °¡´ÉÇÕ´Ï´Ù.");
		return;
	}

	if(strenc.length > 0 && checkSB()){
		var oSB = getSB();

		if(oSB) oSB.RunSoribada(strenc, "Soribada", "u0HqxbmQ8oLN5j4T0Tn9flKzS34jCgx1G74cJlLVJjghUYA9J8iez5PnzJkh974p", "SORIBADA.exe");
	}else{
		if(opentype == "move") top.document.location.href = g_wwwSvr + "/installSB.php?returnurl=" + returnurl;
		else if(opentype == "open") window.open(g_wwwSvr + "/installSB.php?returnurl=" + returnurl);
	}
}

// Get ¼Ò¸®¹Ù´Ù Launcher Object
function getSB(){
	var oSB = document.getElementById("_sbstarter");
	if(!oSB) oSB = installSB();
	return oSB;
}

// Install ¼Ò¸®¹Ù´Ù Launcher Object
function installSB(){
	try{
		var sSBString = "<object id='_sbstarter' name='_sbstarter' style='width: 0px; height: 0px; display: none; ' codebase='" + g_sbcheckcabpath + "/SBCheck.cab#" + g_sbcheckver + "' classid='clsid:" + g_sbcheckclsid + "' />";
		document.body.insertAdjacentHTML("beforeEnd", sSBString);
		var oSB = document.getElementById("_sbstarter");

		return oSB;
	}catch(e){
		alert("¼Ò¸®¹Ù´Ù ¼³Ä¡ ½ÇÆÐ");
		return false;
	}
}

// Check ¼Ò¸®¹Ù´Ù Launcher Object
function checkSB(){
	var oSBTest;
	var bReturn = false;

	try {
		if(window.ActiveXObject){
			oSBTest = document.getElementById("_sbstarter_test");

			if(!oSBTest) {
				var sSBTestString = "<object id='_sbstarter_test' style='width: 0px; height: 0px; display: none; ' classid='clsid:" + g_sbcheckclsid + "' />";
				document.body.insertAdjacentHTML("beforeEnd", sSBTestString);

				var oSBTest = document.getElementById("_sbstarter_test");
			}

			bReturn = compareSBVersion(oSBTest.GetSBStarterVer(), g_sbcheckver);
			oSBTest.parentNode.removeChild(oSBTest);
		}
	}catch(e){}

	return bReturn;
}

// SBStarter ¹öÀü ºñ±³
function compareSBVersion(clientver, currentver){
	var arrClientVer = clientver.split(",");
	var arrCurrentVer = currentver.split(",");
	var lngClientVer = 0;
	var lngCurrentVer = 0;

	if(arrClientVer.length != 4) return false;

	for(var i=0; i<arrClientVer.length; i++){
		lngClientVer += parseInt(arrClientVer[i]) * Math.pow(100, 4-1-i);
		lngCurrentVer += parseInt(arrCurrentVer[i]) * Math.pow(100, 4-1-i);
	}

	return (lngClientVer >= lngCurrentVer);
}

// Download ¼Ò¸®¹Ù´Ù Launch EXE
function downloadSB(strenc, returnurl){
	if(typeof(strenc) == "undefined") strenc = "";
	if(typeof(returnurl) == "undefined") returnurl = "";

	if(checkSB()) launchSB(strenc, returnurl);
	else top.document.location.href = g_sbstartexepath + "/SBStart.exe";
}

// ¼Ò¸®¹Ù´Ù5 ·Î ¿¬°á
function sendToSB(type, str, strenc){
	switch (type){
		case "song" :
		case "albumPlay" :	//¾Ù¹üµè±â
		case "album" :			//¾Ù¹üÃß°¡
		case "sword" :
		case "refresh" :
		case "xdown" :
		case "songdown" :
			break;
		default:
			return false;
	}

	if(!str) return false;

	try{
		var objflexApp = top.document.getElementById("player");
		if (objflexApp != null){
			switch (type){
				case "album" :
					top.wpListenAlbum(str, "add");
					break;
				case "albumPlay" :
					top.wpListenAlbum(str, "listen");
					break;
				case "song" :
					MuListen(str,"listen","");
					break;
				case "songdown" :
					str = str.length<16?g_musicApi + str:str;
					top.goSoriDown(str);
					break;
			}
			if(type=="album"||type=="albumPlay"||type=="song"||type=="songdown") return;
		}
	}catch(e){}
	if(!strenc) return false;

//	if(!checkSB()){
//		if(confirm("¼Ò¸®¹Ù´Ù°¡ ¼³Ä¡µÇÁö ¾Ê¾Ò°Å³ª, ¹öÀüÀÌ ÀÏÄ¡ÇÏÁö ¾Ê½À´Ï´Ù. ¼Ò¸®¹Ù´Ù ÇÁ·Î±×·¥ ¼³Ä¡/¾÷±×·¹ÀÌµå ÈÄ ´Ù½Ã ½ÃµµÇÏ½Ê½Ã¿À.")){
//			launchSB(strenc, g_wwwSvr, "move");
//		}
//		return false;
//	}

	var oSB = getSB();
	oSB.SendToSoribada(type, str, strenc, "Soribada", "u0HqxbmQ8oLN5j4T0Tn9flKzS34jCgx1G74cJlLVJjghUYA9J8iez5PnzJkh974p", "SORIBADA.exe");
}

//* ¼Ò¸®¹Ù´Ù5 °Ë»ö */
function searchToSB(strsearch, strenc){
	if(!checkSB()){
		if(confirm("¼Ò¸®¹Ù´Ù°¡ ¼³Ä¡µÇÁö ¾Ê¾Ò°Å³ª, ¹öÀüÀÌ ÀÏÄ¡ÇÏÁö ¾Ê½À´Ï´Ù. ¼Ò¸®¹Ù´Ù ÇÁ·Î±×·¥ ¼³Ä¡/¾÷±×·¹ÀÌµå ÈÄ ´Ù½Ã ½ÃµµÇÏ½Ê½Ã¿À.")){
			launchSB(strenc, g_wwwSvr, "open");
		}
		return false;
	}
	sendToSB("sword", strsearch, strenc);
}

//* p2p ÆäÀÌÁö ¿¬°á - °­¼® */
function sendToPage(strenc, returnurl, linkurl){
	if(!linkurl) return false;
	if(!strenc) return false;

	if(checkSB()){
		var oSB = getSB();
		oSB.SendAlbumPage(linkurl, strenc, "Soribada", "u0HqxbmQ8oLN5j4T0Tn9flKzS34jCgx1G74cJlLVJjghUYA9J8iez5PnzJkh974p", "SORIBADA.exe");
	}
	else{
		top.document.location.href = g_wwwSvr + "/installSB.php?returnurl=" + returnurl;
	}
}

//½ºÆ®¸µ ¹öÆÛ
var StringBuffer = function() {
	this.buffer = new Array();
}
StringBuffer.prototype.append = function(str) {
	this.buffer[this.buffer.length] = str;
}
StringBuffer.prototype.toString = function() {
	return this.buffer.join("");
}


///////////////////////////////////////////////////////////////////////////////
// Utils
///////////////////////////////////////////////////////////////////////////////
function microtime(get_as_float) {
	var now = new Date().getTime() / 1000;
	var s = parseInt(now);
	return (get_as_float) ? now : (Math.round((now - s) * 1000) / 1000) + ' ' + s;
}

function addListener(el, sType, fn) {
	if (window.addEventListener)
		el.addEventListener(sType, fn, false);
	else if (window.attachEvent) {
		el.attachEvent("on" + sType, fn)
	}
}


///////////////////////////////////////////////////////////////////////////////
// Detection object, element, browser..
///////////////////////////////////////////////////////////////////////////////
//return flash object
function thisMovie(movieName) {
	if (navigator.appName.indexOf("Microsoft") != -1) {
		return window[movieName];
	} else {
		return document[movieName];
	}
}

//return getelementbyid
function $ID(id){return document.getElementById(id);}

function getBrowserApp(){
	var tmpBrowserApp = "";
	tmpBrowserApp = navigator.userAgent.indexOf("Opera") > -1 ? "Opera" : tmpBrowserApp;
	tmpBrowserApp = navigator.userAgent.indexOf("MSIE") > -1 ? "Explorer" : tmpBrowserApp;
	tmpBrowserApp = navigator.userAgent.indexOf("Safari") > -1 ? "Safari" : tmpBrowserApp;
	tmpBrowserApp = navigator.userAgent.indexOf("Firefox") > -1 ? "Firefox" : tmpBrowserApp;
	tmpBrowserApp = navigator.userAgent.indexOf("Chrome") > -1 ? "Chrome" : tmpBrowserApp;

	return tmpBrowserApp;
}

////////////////////////////////////////////////////////////////////////////////
// Make Container
////////////////////////////////////////////////////////////////////////////////
//Dim. common.css ÇÊ¿ä
function containerDim(element){
	var $target = $(element);
	var _h, _position;
	if ($target.is("body")){
		_h = $(document).height();
		_position = {position:"fixed"};
		if ($.browser.opera)
			_position = {position:"relative"};
	}else{
		_h = $target.height();
		_position = {};
	}
	if (!$target.find("div.dim").is("div.dimByGnb")){
		$target.prepend($("<div/>").addClass("dimPosition"))
			.find("div:first")
			.append($("<div/>").addClass("dimPositionMiddle").css({height: _h}))
				.find("div:last")
				.append($("<div/>").addClass("dimByGnb").addClass("dim").css(_position));
	}
	return $target;
}

///////////////////////////////////////////////////////////////////////////////
// Login
///////////////////////////////////////////////////////////////////////////////
function goLoginCheck(strType){
	var blnDecision = confirm('·Î±×ÀÎ ÈÄ ÀÌ¿ëÇÏ½Ç ¼ö ÀÖ½À´Ï´Ù.\nÁö±Ý ·Î±×ÀÎÇÏ½Ã°Ú½À´Ï±î?');

	if(blnDecision)
	{
		switch (strType)
		{
			case "top" :
				var strLoction = top.location.href;
				var arrLoction = strLoction.split("?");
				var strQuery = arrLoction[1] != undefined ? strQuery + "&amp;" + arrLoction[1] : "";
				var strGoUrl = getLoginUrl("",false,arrLoction[0],strQuery);
				top.location.href = strGoUrl;
				break;
			case "parent" :
				var strLoction = parent.location.href;
				var arrLoction = strLoction.split("?");
				var strQuery = arrLoction[1] != undefined ? strQuery + "&amp;" + arrLoction[1] : "";
				var strGoUrl = getLoginUrl("",false,arrLoction[0],strQuery);
				parent.location.href = strGoUrl;
				break;
			case "self" :
			default :
				var strLoction = location.href;
				var arrLoction = strLoction.split("?");
				var strQuery = arrLoction[1] != undefined ? strQuery + "&amp;" + arrLoction[1] : "";
				var strGoUrl = getLoginUrl("",false,arrLoction[0],strQuery);
				location.href = strGoUrl;
				break;
		}
	}

	return false;
}

//Å¸ÄÏ ¸¶ÄÉÆÃ
/*
function Marketing (){
	var _that = this;
	
	this.freeuser = false;
	this.saleuser = false;
	this.used = false;

	this.act = "targetmarketing";	
	this.progress = false;
	this.resultFunc = null;
	this.userid = "";

	this.login = function(){
		_that.check();
		flashAutoLogin('createAutoLogin');
	};
	
	this.logout = function(){
		_that.freeuser = false;
		_that.saleuser = false;	
	};
	
	this.hide = function(){
		_that.freeuser = false;
		_that.saleuser = false;
		_that.used = true;
	};
	
	this.setData = function(){
		var _r;
		if (_that.act == "targetmarketing")
			_r = {"act" : _that.act, "userid" : _that.userid};
		else
			_r = {"act" : _that.act};
		return _r;
	};
	this.successFunc = {
		"targetmarketing": function(json){
		  	_that.freeuser = json.freeuser;
		  	_that.saleuser = json.saleuser;
		  	_that.progress = false;
		  	if (_that.resultFunc != null && typeof(_that.resultFunc) == "function") 
		  		_that.resultFunc();
	  }
	};
	this.check = function(){
		_that.progress = true;
		$.ajax({
			type: "POST",
			url: "/Mypage/Target_gnbJson.php?d=20100524",
			dataType: "json",
			cache: true,
			data: _that.setData(),
			success: function(json){
				eval("_that.successFunc"+"."+_that.act+"("+"json"+")");
			},
			error:function(e){
				_that.progress = false;
			}
		});
	};
	
	this.setResult = function (func){
		this.resultFunc = func;
	};
};
var marketing = new Marketing();
*/

var TESTLOCATION = "";
//·Î±×ÀÎ Ã¼Å©
function loginClass(){
	var _that = this;

	this.act = "checkLogin";
	
	this.login = false;
	this.progress = false;
	this.resultFunc = null;
	this.status = "";
	this.userid = "";
	this.encodedid = "";
	this.remoteAddr = "";
	this.autoLogin = false;
	
	this.setData = function(){
		var _r;
		if (_that.act == "checkLogin")
			_r = {"act" : _that.act};
		else
			_r = {"act" : _that.act};
		return _r;
	};
	this.successFunc = {
		"checkLogin" : function(json){
			_that.login = json.login;
			_that.status = json.status;
			_that.userid = json.userid;
			_that.encodedid = json.encodedid;
			_that.remoteAddr = json.remoteAddr;
			_that.autoLogin = json.autoLogin;
			_that.progress = false;
			if (_that.resultFunc != null && typeof(_that.resultFunc) == "function")
				_that.resultFunc();
		}
	};
	this.check = function(){
		_that.progress = true;
		$.ajax({
			type:"POST",
			url: "/Login/LoginProcess.html",
			dataType: "json",
			cache: true,
			data: _that.setData(),
			success: function(json){
				eval("_that.successFunc"+"."+_that.act+"("+"json"+")");
			},
			error:function(e){
				_that.progress = false;
			}
		});
	}
	this.getProgress = function(){return this.progress;}
	this.getLogin = function(){return this.login;}
	this.getStatus = function(){return this.status;}
	this.getUserid = function(){return this.userid;}
	this.getEncodedid = function(){return this.encodedid;}
	this.getAutoLogin = function(){return this.autoLogin;}

	this.setResult = function(func){
		this.resultFunc = func;
	}
}
var _loginObj = new loginClass();
//_loginObj.check();


//2010.06 ¸ÞÀÎ °³Æí ÀÌÈÄ ÆÛ°¡±â-me2day ¸Þ´º°¡ Á¦°ÅµÇ°Å³ª º¯°æµÇ¸é ÇÔ¼ö »èÁ¦ÇØµµ ¹«¹æÇÔ.
//2010.05.26 °³¹ßÆÀ ¹®ÀÍÀç.
//¼ºÁ¾Ãµ ´ë¸®¿Í ½¦¾îÇÑ ³»¿ë.
function GetCookie( cookieName ){
	var isFound			= false;
	var start			= 0;
	var end				= 0;
	var idx				= 0;
	var cookieString	= document.cookie;
	var cookieLength	= cookieString.length;

	while( idx <= cookieLength ){
		start	= idx;
		end		= start + cookieName.length;

		if( cookieString.substring( start, end ) == cookieName ){
			isFound	= true;		break;
		}
		idx++;
	}

	if( isFound ){
		start 	= end+1;
		end		= document.cookie.indexOf( ";", start );
		end		= ( end < start )	? cookieLength	: end ;

		return cookieString.substring( start, end );
	}

	return "";
}
