﻿
var ADD_BASE;
var ADD_URI;
var ADD_UP;
var ADD_VPL;
var ADD_VPIC;
var ADD_AP;
var ADD_DOMAIN;


var vs_pgvTry = 0;
var LOGIN = "login";
var LOGOUT = "logout";
var LOGINNM = "loginnm";
var USERINFO="ui";
var VIDEOPL="vl";
var TAG="tag";
//var vs_menuIcon = "img/expand.gif";
var VS_MENUITEMICON= "";
var VS_MENUITEMICON1= "img/miicon1.gif";
var VS_MENUITEMICON2= "img/miicon2.gif";
var VS_MENUITEMICON3= "img/miicon3.gif";
var VS_MENUITEMICON4= "img/miicon4.gif";
var VS_MENUITEMICON5= "img/miicon5.gif";
var VS_MT_VIDEO = 1;
var VS_MT_USER = 2;
var VS_MT_GROUP = 3;
var g_noContextMenu = false;

//发送请求的队列，定时拉取数据
var kf_reqQueue = new Array();
//重发次数
var KF_RETRY_NUM = 2;

vs_addModule(vs_registerBusinessFunction);

function vs_registerBusinessFunction(vs)
{
	vs_setDomain();
	vs_lang(vs);

	if(g_isIE)
	{
		vs.oncreatewindow = vs_oncreatewindow;
	}

	//vs.vid2url = vs_vid2url;
	//vs.vid2file = vs_vid2file;
	//vs.vid2pic = vs_vid2pic;
	vs.uin2url = vs_uin2url;
	//vs.uin2pic = vs_uin2pic;
	//vs.gid2url = vs_gid2url;
	//vs.gid2pic = vs_gid2pic;
	//vs.tag2url = vs_tag2url;	
	vs.time2str = vs_time2str;
	vs.checkLogin = vs_checkLogin;
	vs.checkUin = vs_checkUin;
	vs.doWhenLogout = vs_doWhenLogout;
	vs.doWhenLogin = vs_doWhenLogin;
	vs.getUserNameFromCookie = vs_getUserNameFromCookie;
	vs.checkLoginByCookie = vs_checkLoginByCookie;
	vs.checkLoginByCookieMN=vs_checkLoginByCookieMN;
	vs.kfcheckLoginByCookie=kfpb_checkLoginByCookie;
	vs.createBtn = vs_createBtn;
	vs.createNewBtn = vs_createNewBtn;
	//vs.toMyHomeWhenLogin=vs_toMyHomeWhenLogin;
	//vs.loginClick=lo_click;
	//vs.createSearchPane = sr_search_init;
	//vs.score2rank=vs_score2rank;
	//vs.getTargetName=vs_getTargetName;
	vs.checkXml=vs_checkXml;
	vs.strReplace=vs_strReplace;
	vs.changeTextColor = vs_changeTextColor;
	//vs.checkQQlogin = lo_checkQQlogin;
	//vs.login_init=lo_login_init;
	//vs.checkAllowDomain=lo_checkAllowDomain;
	//vs.createOwnContextMenu = vs_createOwnContextMenu;
	vs.setSearch = vs_setSearch;
	vs.timeFormate = vs_timeFormate;
	vs.decodeSafeHTML = vs_decodeSafeHTML;
	//发送请求时候调用的队列
	vs.sendRequestQueue = vs_sendtoRequestQueue;
	//if(!g_noContextMenu)
	//{
	//	document.body.oncontextmenu = vs_createContextMenu;
	//	window.setTimeout("vs_prepareContextMenuIcon();",500);
	//}
	//lo_checkLoginForPublicTest(vs);
	//vs.checkLoginByCookie();
	//vs_setSearch();
	//window.setTimeout("vs_ping();", 1000);
	//vs_ns_launch(vs);
	window.setTimeout("vs_pgv();", 1000);
	
	//phourm
	vs.defaultcontextmenu = bp_defaultcontextmenu;
}

function bp_defaultcontextmenu()
{
	event.cancelBubble=true;
	return true;
}

function vs_setDomain()
{
	var dm = document.location.hostname;
	var rdm = dm;
	var ar = dm.split(".");
	var idc = "";
	
	if(ar.length == 4)
	{
		switch(ar[0])
		{
			case "szdx":
				idc = "0";
				break;
			case "szwt":
				idc = "20";
				break;
			default:
				break;
		}
		
		rdm = ar[1] + "." + ar[2] + "." + ar[3];
	}
	
	ADD_BASE = "http://" + dm;
	ADD_URI = dm;
	ADD_DOMAIN = rdm;
	ADD_UP = "u" + idc + "." + rdm;
	ADD_VPL = "http://v" + idc + "." + rdm;
	ADD_VPIC = "http://p" + idc + "." + rdm;

	ADD_AP = ADD_BASE + "/preview.htm";
}

function vs_setSearch()
{
	var link = document.createElement("LINK");
	var heads = document.getElementsByTagName("HEAD");
	
	if(heads && heads.length >= 1 && link)
	{
		link.rel = "search";
		link.type = "application/opensearchdescription+xml";
		link.title = "QQVideo";
		link.href = "qqvideo_search.xml";
		
		heads[0].appendChild(link);
	}

}

function vs_lang(vs)
{
	var lang = vs.getCookie("lang");
	
	switch(lang)
	{
		case "en":
			break;
		default:
			lang = "cn";
			break;
	}
	
	vs.lang = lang;
}

function vs_time2str(time)
{
	var str = "";
	var t = parseInt(time);
	var year = Math.floor((t/(24*60*60*30*12)), 10); 
	var mon =  Math.floor((t/(24*60*60*30)), 10);
	var day =  Math.floor((t/(24*60*60)), 10);
	var hour = Math.floor((t/(60*60)), 10);
	var minu = Math.floor((t/60), 10);
	if(year>0)
	{
		str = year + "年";
	}
	else if(mon>0)
	{
		str = mon + "个月";
	}
	else if(day>0)
	{
		str = day + "天";
	}
	else if(hour>0)
	{
		str = hour + "个小时";
	}
	else
	{
		if(minu<1)
		{
			minu = 1;
		}
		str = minu + "分钟";
	}

	return str;	
}

function vs_oncreatewindow(win)
{
	if(win.hasBorder)
	{
		vs_initBorder(win);
		win.onresize = vs_win_onresize;
	}
}

function vs_initBorder(win)
{
	var el = win.capBar.cells[0];
	var lt = document.createElement("<span class=winCorner></span>");
	var rt = document.createElement("<span class=winCorner></span>");
	var lb = document.createElement("<span class=winCorner></span>");
	var rb = document.createElement("<span class=winCorner></span>");
	var ln = document.createElement("<span class=winCapLine></span>");

	win.corner = new Object();
	win.corner.mytype = 'cornor';
	win.corner.lt = lt;
	win.corner.rt = rt;
	win.corner.lb = lb;
	win.corner.rb = rb;
	win.corner.ln = ln;

	el.insertAdjacentElement("afterBegin", ln);
	el.insertAdjacentElement("afterBegin", rb);
	el.insertAdjacentElement("afterBegin", lb);
	el.insertAdjacentElement("afterBegin", rt);
	el.insertAdjacentElement("afterBegin", lt);
}

function vs_win_onresize()
{
	var win = this;
	
	g_vs.moveElement(win.corner.lt, -1, -1);
	g_vs.moveElement(win.corner.rt, win.div.offsetWidth - 3, -1);
	g_vs.moveElement(win.corner.lb, -3, win.div.offsetHeight - 2);
	g_vs.moveElement(win.corner.rb, win.div.offsetWidth - 5, win.div.offsetHeight - 2);
	win.corner.ln.style.width = (win.div.offsetWidth - 6) + "px";
	g_vs.moveElement(win.corner.ln, -2, 0);
}

function vs_checkXml(xml,Rem)
{
	var root;
	var em;
	//var s;
	if(!(xml&&(root=xml.selectSingleNode("//root"))))
	{
		g_vs.showError(ERR_XML);
		return false;
	}
	else if(g_vs.getValue(root,"s")=="f")
	{
		em=g_vs.getValue(root,"em");
		if(err_xmlErrorCode[em])
		{
			g_vs.showError(err_xmlErrorCode[em]);
		}
		else
		{
			g_vs.showError(ERR_UNKNOW);
		}
		if(Rem)
		{
			return em;
		}
		return false;
	}
	else if(g_vs.getValue(root,"s")=="o")
	{
		if(Rem)
		{
			return "o";
		}
		return true;
	}
	else
	{
		g_vs.showError(ERR_UNKNOW);
		return false;
	}
}
 

function vs_strReplace(str)
{
	if(typeof(str)=="string")
	{
		return str.replace(/[\r\n\t\0]/g, "");
	}
}

function vs_decodeSafeHTML(str)
{
	var temp = "";   
	temp=str.replace(/&amp;/g,"&");   
	temp=temp.replace(/&lt;/g,"<");   
	temp=temp.replace(/&gt;/g,">");   
	temp=temp.replace(/&quot;/g,"\"");   
	temp=temp.replace(/&apos;/g,"'");   
	return temp;
}

function vs_uin2url(id)
{
	return g_vs.encodeURI("userinfo.htm?u=" + id);
}


function vs_checkLogin(cb)
{
	if(vs_checkUin(g_vs.getCookie("uin")))
	{
		if(!g_vs.sendRequest("/cgi-t/tverify", null, "",lo_verifycb,cb))
		{
			g_vs.showError(AJAX_EXCEPTION);	
			cb(false);
		}
	}
	else
	{
		cb(false);
	}
}

function kfpb_checkLoginByCookie(failed_url)
{
	var kfguin = this.getCookie(KF_CN_KFUIN);
	var ext = this.getCookie(KF_CN_KFEXT);
	var key = this.getCookie(KF_CN_COOKIE);
	//var key = this.getCookie(KF_CN_VERI);
	//alert(key);
	if(kfguin && kfguin >= 10000 && ext && ext > 1000 && key)
	{
		G_KFGUIN = kfguin;
		G_EXT_NUM = ext;

		//alert('kfguin:'+G_KFGUIN+';ext='+G_EXT_NUM+';key:'+key);
		return ;
	}
	else if(failed_url)
	{
		parent.location.href = failed_url;
	}
	return;
}

function vs_checkLoginByCookie(callback,cbParams,noWin,drop)
{
	var win;
	var elem;
	var uin;
	var verifysessionold;
	
	uin=lo_checkLogin(this);
	verifysessionold=this.getCookie("verifysession");	
	if(uin)
	{	
		this.setCookie("verifysessionold",verifysessionold,-1);
		if(typeof(callback)=="function")
		{
			callback(cbParams);
		}
		return uin;
	}
	this.setCookie("verifysessionold",verifysessionold,5);
	if(noWin)
	{
		return false;
	}	

	elem=document.getElementById(g_loginId);
	//alert(elem);
	if(elem)
	{
		//alert(typeof(callback));
		if(typeof(callback)=="function")
		{
			elem.callback=callback;
			elem.cbParams=cbParams;
			this.attachEvent(LOGIN,lo_loginCb);
			//alert("attach");
			//this.attachEvent(LOGIN,lo_loginCb);
		}
		//g_vsAsyncInit = true;
		//lo_checkLoginForPublicTest();
		window.setTimeout("if(g_vs){g_vs.login_init(null,null,"+drop+");}",10);
		//this.login_init(elem,null,null,drop);
		//alert(1);
	}
	
	return false;
}


function vs_checkLoginByCookieMN()
{
	var win;
	var elem;
	var uin;
	
	uin=lo_checkLogin(this);
	if(!uin)
	{	
		g_vsAsyncInit = true;
		lo_checkQQlogin(lo_checkQQloginCallBack);
	}
}

function vs_checkUin(uin)
{ 
	var j;
	var un = new RegExp("[^0-9]", "g");
	var ch;
	for( j = 0 ; j < uin.length ; j++ )
	{ 
		ch = uin.charAt(j);
		if( ch!='o' && ch != '0' )
		{
			break;
		}
	}
	if(j < uin.length)
	{
		uin = uin.substring(j,uin.length);
		
		if(uin.search(un)<0)
		{
			return uin;
		}
	}
	return false;
}
	
function vs_doWhenLogout()
{
	var elem;
	var prelem;
	
	elem=document.getElementById(g_loginId);
	g_isLogin=false;
	g_vs.fireEvent(LOGOUT);
	if(elem)
	{
		elem.style.visibility="visible";
		prelem=elem.previousSibling;
		
		if(prelem)
		{
			prelem.innerText="";
		}
		elem.innerText = G_S_IN;
	}
}

function vs_doWhenLogin(uin)
{
	var lk;
	g_isLogin=true;
	//vs_doWhenLogin
	lo_showName();
}

function vs_getUserNameFromCookie()
{
	return g_vs.getCookie("name");
}

function vs_createBtn(text, url, funcClick, params)
{
	var spanObj;
	var linkObj;
	
	spanObj = document.createElement("span");
	linkObj = document.createElement("a");
	if(spanObj && linkObj)
	{
		spanObj.className = "btn";

		if(g_isFF)
		{
			spanObj.style.padding = "6 3 5 3";
		}

		linkObj.className = "btn";
		linkObj.innerText = text;
	
		//if (url)
		//{
			linkObj.href = url;
		//}
		//else
		//{
		//	linkObj.style.cursor = VS_CUR_HAND;
		//}		

		linkObj.onmousemove = bt_onmousemove;
		if(funcClick)
		{
			linkObj.onclick = funcClick;
		}
		linkObj.param = params;
		
		spanObj.appendChild(linkObj);	
		spanObj.lk=linkObj;
		//alert(spanObj.outerHTML);
		return spanObj;
	}
}

function vs_createNewBtn(text, url, funcClick, params)
{
	var tbObj;
	var linkObj;
	
	tbObj = document.createElement('<table border=0 cellspacing=0 cellpadding=0 style="height:23px;display:inline;">');
	if(tbObj)
	{
		var row,cell;
		row = tbObj.insertRow();
		if(row)
		{
			cell = row.insertCell();
			if(cell)
			{
				cell.className = "newbtnl";
				cell.innerHTML = "&nbsp;";
			}

			cell = row.insertCell();
			if(cell)
			{
				tbObj.lkcell = cell;
				cell.style.padding = "0 10 0 10";
				cell.className = "newbtnn";
				cell.align = "middle";
				cell.vAlign = "bottom";
				cell.mytype = "newbtn";
				cell.onmouseover = vs_onnewbtnmouseover;
				cell.onmouseout = vs_onnewbtnmouseout;
				cell.onclick = vs_onnewbtnclick;
				
				linkObj = document.createElement("a");
				if(linkObj)
				{
					//FAFDFF hover
					//E6F4FF normal
					linkObj.className = "newbtn";
					linkObj.innerText = g_vs.getSafeHTML(text);
				
					linkObj.href = url;			
					linkObj.onmousemove = bt_onmousemove;
					if(funcClick)
					{
						linkObj.onclick = funcClick;
					}
					linkObj.param = params;
					
					cell.appendChild(linkObj);	
					tbObj.lk=linkObj;
					linkObj.tb = tbObj;
					linkObj.td = cell;
				}				
			}			
		
			cell = row.insertCell();
			if(cell)
			{
				cell.className = "newbtnr";
				cell.innerHTML = "&nbsp;";
			}
		}
		
		tbObj.setPadding = vs_newBtnSetPadding;
	}
	

	return tbObj;
}

function vs_newBtnSetPadding(w)
{
	if(this && this.lkcell)
	{
		this.lkcell.style.paddingLeft = w + "px";
		this.lkcell.style.paddingRight = w + "px";
	}
}

function vs_onnewbtnmouseover()
{
	if(event.srcElement.mytype == "newbtn")
	{
		event.srcElement.className = "newbtnh";
	}
	else if(event.srcElement.td)
	{
		event.srcElement.td.className = "newbtnh";
	}
}

function vs_onnewbtnmouseout()
{
	if(event.srcElement.mytype == "newbtn")
	{
		event.srcElement.className = "newbtnn";
	}
	else if(event.srcElement.td)
	{
		event.srcElement.td.className = "newbtnn";
	}
}

function vs_onnewbtnclick()
{
	if(event.srcElement.mytype == "newbtn")
	{
		event.srcElement.children[0].click();
	}
}

//function bt_onclickbtn(linkObj)
//{
	//if(typeof(linkObj.clickfun) == "function")
	//{
	//		linkObj.clickfun(linkObj.clickparam);
	//}
//}

function bt_onmousemove()
{
	window.status = "";
}

function vs_toMyHomeWhenLogin()
{
	g_vs.attachEvent(LOGINNM,lo_toMyHomeWhenLogin);
}

function qqping_url_build()
{
	return "http://csa.qq.com/p?ref=" + document.referrer + "&domain=BIZAPP.QQ.COM";
}

function vs_ping()
{
	var img = document.createElement("<img src='" + qqping_url_build() + "' style='display:none;'>");
	document.body.appendChild(img);
}



function vs_ns_launch(vs)
{
	var s = vs.getCookie("IDC");
	if(s.length == 0)
	{
		window.setTimeout("if(g_vs){g_vs.addScript('js/ns.js');}", 5000);
	}
	else
	{
		vs.idc = s;
	}
}

function vs_pgv()
{
	if(vs_pgvTry == 0)
	{
		g_vs.addScript("http://pingjs.qq.com/ping.js");
	}
	
	vs_pgvTry++;

	if(typeof(pgvMain) == "function")
	{
		pgvMain();
	}
	else
	{
		if(vs_pgvTry <= 10)
		{
			window.setTimeout("vs_pgv();", 1000);
		}
	}
}

function vsp_changeTextColor(id,color1,color2)
{
	var elem = document.getElementById(id);
	var str;
	var len;
	var i;
	var child;
	if(elem)
	{
		str = elem.innerText;
		len = str.length;
		i= Math.floor(elem.sor%(len+1));
		elem.sor = i+1;
		child = elem.children[i];
		if(child)
		{
			if(child.color == color1)
			{
				child.color = color2;
			}
			else
			{
				child.color = color1;
			}
		}
		window.setTimeout("vsp_changeTextColor('"+id+"','"+color1+"','"+color2+"');", 200);
	}
}

function vs_changeTextColor(elem,text,color1,color2)
{
	var e;
	var id;
	var str="";
	if(typeof(elem)=="object")
	{
		if(!elem.id)
		{
			elem.id = g_vs.genUID();
		}
		id = elem.id;
		e = elem;
	}
	else if(typeof(elem)=="string")
	{
		e = document.getElementById(elem);
		id = elem;
	}
	if(e&&typeof(text)=="string")
	{
		e.sor = 0;
		for(var j=0;j<text.length;j++)
		{
			str += "<font color='"+color1+"'>"+text.substr(j,1)+"</font>";
		}
		e.innerHTML = str;
		
		window.setTimeout("vsp_changeTextColor('"+id+"','"+color1+"','"+color2+"');", 200);
	}
}

function vs_sendtoRequestQueue(cgi, method, data, callback, params)
{
	//1. add obj into the end of  request array
	var reqObj = new Object();
	var len;
	if(reqObj)
	{
		reqObj.mytype = 'request';
		reqObj.cgi = cgi;
		reqObj.method = method;
		reqObj.data = data;
		reqObj.callback = callback;
		reqObj.params = params;
		len = kf_reqQueue.length;
		reqObj.index = len;
		kf_reqQueue[len] = reqObj;
	}
	
	//2. send array[0] 
	if(kf_reqQueue.length == 1)
	{
		vs_sendOneRequest();
	}
}

function vs_sendOneRequest()
{
	var len = kf_reqQueue.length;
	if(len > 0)
	{
		if(kf_reqQueue[0])
		{
			if(!g_vs.sendRequest(kf_reqQueue[0].cgi, kf_reqQueue[0].method, kf_reqQueue[0].data, vs_runCallBack, kf_reqQueue[0]))
			{
				g_vs.showError(AJAX_EXCEPTION);
				g_vs.clearObject(kf_reqQueue[0]);
				kf_reqQueue.splice(0, 1);
				g_vs.showError('发送请求失败');
			}
		}
	}
}

function vs_runCallBack(xml, kf_reqQ)
{
	//1. call call back function 
	if(typeof(kf_reqQ.callback) == 'function')
	{
		kf_reqQ.callback(xml, kf_reqQ.params);
	}
	g_vs.clearObject(kf_reqQueue[0]);
	kf_reqQueue.splice(0, 1);
	//kf_reqQueue[kf_reqQ.index] = null;
	//2. remove array[0] in kf_reqQueue
	//if(kf_reqQueue.length > 0)
	//{
	//kf_reqQueue.splice(kf_reqQ.index, 1);
	//}
	
	//3. call vs_sendOneRequest again if kf_reqQueue.length > 0
	setTimeout("vs_sendOneRequest()",1500);
}


function vs_timeFormate(str, bshort)
{
	var timeStr="";
	if(str.length==14)
	{
		if(bshort == true)
		{
			timeStr=str.substring(2,4)+"-"+str.substring(4,6)+"-"+str.substring(6,8)+" "+str.substring(8,10)+":"+str.substring(10,12);
		}
		else
		{
			timeStr=str.substring(0,4)+"-"+str.substring(4,6)+"-"+str.substring(6,8)+" "+str.substring(8,10)+":"+str.substring(10,12)+":"+str.substring(12,14);
		}	
		return timeStr;
	}
	return str;
}

