/************************************************************

  vmis.js
  Copyright 2008. Openv.com
  Version 1.0.2
  Last Update 2008.11.19 14:02
  Change log:
    加了对.openv.tv与vsearch.cctv.com域名的cookie支持
      
*************************************************************/

// added by Peng Wu
//--------------------------随机字符--------------------------
//string_length        长度
//is_upper_case_letter 是否出现大写字母
//is_lower_case_letter 是否出现小写字母
//is_digital           是否出现数字
function random_string(string_length, is_upper_case_letter, is_lower_case_letter, is_digital)
{
  var Seed_array=new Array();
  var result_string;
  var i;

  Seed_array[0]="";
  Seed_array[1]= "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z";
  Seed_array[2]= "a b c d e f g h i j k l m n o p q r s t u v w x y z";
  Seed_array[3]= "0 1 2 3 4 5 6 7 8 9";

  if (!is_upper_case_letter && !is_lower_case_letter && !is_digital)
  {
    is_upper_case_letter=true;
    is_lower_case_letter=true;
    is_digital=true;
  }

  if (is_upper_case_letter)
  {
    Seed_array[0] += Seed_array[1];
  }

  if (is_lower_case_letter)
  {
    Seed_array[0] += " " + Seed_array[2];
  }

  if (is_digital)
  {
    Seed_array[0] += " " + Seed_array[3];
  }

  Seed_array[0] = Seed_array[0].split(" ");
  result_string = "";
  for (i = 0; i < string_length; i++)
  {
    result_string += Seed_array[0][Math.round(Math.random() * (Seed_array[0].length-1))];
  }

  return(result_string);
}
// added by Peng Wu end

var ur = "";                                                  //来源地址
var urp = new Array();                                        //来源参数名称
var urpv = new Array();                                       //来源参数值
var arrayCount = 0;                                           //参数数目
var pageOpen = new Date();                                    //进入页面的时间
var reqURL = "http://vmis.openv.com/sites/";
var vvURL  = "http://vmis.openv.com/vv/";
var clickURL  = "http://vmis.openv.com/click/";

//接收数据的页面地址
var openvid = random_string(12, true, true, true);            //用户唯一随机数
var title = document.title;                                   //网页标题
var uexp = pageOpen.getTime() + ( 1000 * 60 * 60 * 24 * 30 ); //设置cookie过期时间 既回访用户的限定
var rtu = "false";                                            //指示用户是否回访用户
//浏览器特征信息
var brower = new Array();

/*
* brower[0] 浏览器类型
* brower[1] 浏览器版本
* brower[2] 浏览器java是否打开 1开-1关
* brower[3] 浏览器flash版本
* brower[4] 浏览器操作系统
* brower[5] 浏览器分辨率
* brower[6] 浏览器色深
* brower[7] 浏览器语言
* brower[8] 浏览器插件
*/
var s=new Array();  //搜索引擎的名称
var k=new Array(); //关键字传输形式
s[0]="google";    k[0]="gg";
s[1]="yahoo";     k[1]="yh";
s[2]="msn";       k[2]="msn";
s[3]="aol";       k[3]="query";
s[4]="lycos";     k[4]="query";
s[5]="ask";       k[5]="q";
s[6]="altavista"; k[6]="q";
s[7]="search";    k[7]="q";
s[8]="netscape";  k[8]="query";
s[9]="earthlink"; k[9]="q";
s[10]="cnn";      k[10]="query";
s[11]="looksmart";k[11]="key";
s[12]="about";    k[12]="terms";
s[13]="excite";   k[13]="qkw";
s[14]="mamma";    k[14]="query";
s[15]="alltheweb";k[15]="q";
s[16]="gigablast";k[16]="q";
s[17]="voila";    k[17]="kw";
s[18]="virgilio"; k[18]="qs";
s[19]="teoma";    k[19]="q";
s[20]="baidu";    k[20]="bd";
s[21]="localhost";k[21]="q";

function getKeyword(url)
{
  var hostname;
  if(url.indexOf(".") == -1)
    {hostname = url;}
  else
    {hostname = url.substring(url.indexOf("."),url.lastIndexOf("."));}
  for(var i = 0; i < s.length; i++)
  {
    if(hostname == s[i])
    {
      for(var j = 0; j < urp.length; j ++)
      {
        if(urp[j] == keyWord[i])
        {
          return urpv[j];
        }
      }
    }
  }

  return "";
}

function gethn(uri)
{
  if(!uri || uri == "") return "";
  ur = uri;
  var sub;
  if(ur.indexOf("?") != -1)
  {
    ur.replace(/\&/g,"#");
    return ur;
  }
  else
    return ur;
}

function getHostName(url)
{
  url = url.substring(url.indexOf('://')+3,url.length);
  url = url.substring(0,url.indexOf("/"));
  return url;
}

function getFlash() {
  var f="-1",n=navigator;
  if (n.plugins && n.plugins.length) {
    for (var ii=0;ii<n.plugins.length;ii++) {
      if (n.plugins[ii].name.indexOf('Shockwave Flash')!=-1) {
        f=n.plugins[ii].description.split('Shockwave Flash ')[1];
        break;
      }
    }
  }
  else if (window.ActiveXObject) {
    for (var ii=10;ii>=2;ii--) {
      try {
        var fl=eval("new ActiveXObject('ShockwaveFlash.ShockwaveFlash."+ii+"');");
        if (fl) { f=ii + '.0'; break; }
      }
      catch(e) {}
    }
  }
  if(f == "-1")
    return f;
  else
    return f.substring(0,f.indexOf(".")+2);
}

function GetResidentTime(vmis)
{
  isReturn();
  pageClose = new Date();
  minutes = (pageClose.getMinutes() - pageOpen.getMinutes());
  if(minutes < 0)
  {
    minutes = minutes + 60;
  }
  seconds = (pageClose.getSeconds() - pageOpen.getSeconds());
  if(seconds < 0){ seconds += 60;}
  time = (seconds + (minutes * 60));

  var i=new Image(1,1);
  i.src = reqURL + "?" + StrPara() + "&d=" + getCookieValue("openvid") + "&z=" + vmis + "&u_c="+category_domain();
  i.onload = function() {LoadVoid();}
  //i.src = reqURL + "?" + pageView() + "&st=" + time;
  //i.onload=function() {LoadVoid();}
}

function For_Click(s)
{
  isReturn();
  var noid = s;
  pageClose = new Date();
  minutes = (pageClose.getMinutes() - pageOpen.getMinutes());
  if(minutes < 0)
  {
    minutes = minutes + 60;
  }
  seconds = (pageClose.getSeconds() - pageOpen.getSeconds());
  if(seconds < 0){ seconds += 60;}
  time = (seconds + (minutes * 60));

  var i=new Image(1,1);
  i.src = clickURL + "?d=" + getCookieValue("openvid") + "&u=" + getHref() + "&t_u="+ escape(obj.href) +"&t_t="+encodeURI(t_t)+"&nodeid="+noid+"&"+Math.random();
  i.onload = function() {LoadVoid();}
}
function LoadVoid(){
  return;
}
function category_domain(){
    var metas = document.getElementsByTagName("meta");
    var strMeta="";
    for(var i=0;i < metas.length;i++)
      {
        if(metas[i].name=="category_domain"){
        strMeta+=metas[i].content;
      }
    }
    if(strMeta!=""){
    	var url_cate = strMeta;
    	}else{
    		var url_cate = getHostName(document.location.href);
    		}
    return url_cate
}

function StrPara()
{
  BrowserInfo();
  var para = "";
  para += "r=" +document.referrer + "&";//referrer
  para += "u=" + gethn(getHref()) + "&";//localurl
  para += "t=" + title + "&";//title
  para += "k=" + getKeyword(getHostName(gethn(document.referrer))) + "&";//keyword
  para += "e=" + brower[0] + "&";//browser
  para += "v=" + brower[1] + "&";//version
  para += "j=" + brower[2] + "&";//java
  para += "f=" + brower[3] + "&";//flash
  para += "o=" + brower[4] + "&";//os
  para += "n=" + brower[5] + "&";//screen
  para += "c=" + brower[6] + "&";//color
  para += "h=" + brower[7] + "&"; //lang
  para += "p=" + brower[8];//plagin
  return para;
}

function pageView()
{
  var para = "";
  var strTmp = "";
  strTmp = "cur=" + gethn(getHref()) + "&";
  para += strTmp;
  strTmp = "urp=";
  for(var j = 0; j < urp.length; j++)
  {
    strTmp += urp[j]+ ",";
  }
  strTmp = strTmp.substring(0,strTmp.length-1) + "&";
  if(strTmp == "urp&") strTmp = "";
  para += strTmp;

  strTmp = "urpv=";
  for(var i = 0; i < urpv.length; i++)
  {
    strTmp += urpv[i] + ",";
  }
  strTmp = strTmp.substring(0,strTmp.length-1) + "&";
  if(strTmp == "urpv&") strTmp = "";
  para += strTmp;

  para += "openvid=" + getCookieValue("openvid") + "&";
  para += "title=" + title;
  return para;
}

function isReturn()
{
  if(getCookieValue() == "noCookie")
  {
    setCookie("openvid",openvid);
    setCookie("lastTime",pageOpen.getTime());
    setCookie("firstTime",pageOpen.getTime());
    return false;
  }
  else
  {
    if((getCookie("firstTime") + 1000*60*60*24*30) < pageOpen.getTime())
    {
      setCookie("openvid",openvid);
      setCookie("lastTime",pageOpen.getTime());
      setCookie("firstTime",pageOpen.getTime());
      return false;
    }
    if((getCookie("lastTime") + 1000*60*60*24) > pageOpen.getTime())
    {
      setCookie("lastTime",pageOpen.getTime());
      return true;
    }

    return true;
  }
}

function BrowserInfo()
{
  brower[0] = navigator.appName;
  brower[7] = navigator.language;
  if(brower[0] == "Netscape")
  {
    var browerInfo = navigator.userAgent;
    brower[1] = browerInfo.substring(browerInfo.lastIndexOf(" ")+1,browerInfo.length);
    brower[0] = brower[1].substring(0,brower[1].lastIndexOf("/"));
    brower[1] = browerInfo.substring(browerInfo.lastIndexOf("/")+1,browerInfo.length);
    brower[7] = navigator.language;
  }
  else if(brower[0] == "Microsoft Internet Explorer")
  {
    brower[1] = navigator.userAgent.split(";")[1];
    brower[7] = navigator.userLanguage;
  }
  brower[2] = navigator.javaEnabled()?1:-1;
  brower[3] = getFlash();
  brower[4] = getOS();

  if (self.screen) {
    sr=screen.width+"x"+screen.height;
    sc=screen.colorDepth+"-bit";
  }
  else if (self.java)
  {
    var j=java.awt.Toolkit.getDefaultToolkit();
    var s=j.getScreenSize();
    sr=s.width+"x"+s.height;
  }
  brower[5] = sr;
  brower[6] = sc;
  brower[8] = getPlugin();
}

function getHref()
{
  return escape(document.location.href);
}

function setCookie(name, value)
{
  var expdate = new Date();
  var argv = setCookie.arguments;
  var argc = setCookie.arguments.length;
  var expires = 15768000;
  var path = "/";
  var secure = (argc > 5) ? argv[5] : false;

  var domain_name = document.domain;
  var s = domain_name.split(".");
  var l = s.length;
  var domain = '.openv.com';
  if (s[l-1] == 'com' && s[l-2] == 'cctv') {
    domain =".vsearch.cctv.com";
  }
  else if (s[l-1] == 'tv') {
    domain =".openv.tv";
  }
  
  expdate.setTime(uexp);
  document.cookie = name + "=" + escape (value) + "; expires= " + expdate.toGMTString() + "; path=" + path + "; domain=" + domain + ((secure == true) ? "; secure=" : "");
}

function delCookie(name)
{
  var exp = new Date();
  exp.setTime (exp.getTime() - 1);
  var cval = getCookie (name);
  document.cookie = name + "=" + cval + "; expires="+ exp.toGMTString();
}

function getCookie(fname)
{
  var name,value;
  var cookies = new Object();
  var beginning,middle,end;

  beginning = 0;
  while(beginning < document.cookie.length)
  {
    middle = document.cookie.indexOf("=",beginning);
    end = document.cookie.indexOf(";",beginning);

    if(end == -1)
    {
      end = document.cookie.length;
    }
    if((middle > end) || (middle == -1))
    {
      name = document.cookie.substring(beginning,end);
      value = "";
    }
    else
    {
      name = document.cookie.substring(beginning,middle);
      value = document.cookie.substring(middle+1,end);
    }
    if(name == fname)
    {
      return unescape(value);
    }
    beginning = end + 2;
  }
}

function getCookieValue()
{
  var openvid = getCookie("openvid");
  if(openvid != null)
  {
    //openvid = openvid.replace('"','');
    //alert(openvid);
    return openvid;
  }
  else
  {
    return "noCookie";
  }
}

function getRegUserCookie()
{
  return ;
}

function getOS()
{
  var OSlist = new Array();
  var OSName = new Array();
  OSlist[0] = " Windows4.0";       OSName[0] = "Windows 95";
  OSlist[1] = " Windows 98";       OSName[1] = "Windows 98";
  OSlist[2] = " Windows NT 5.0";   OSName[2] = "Windows 2000";
  OSlist[3] = " Windows NT 5.1";   OSName[3] = "Windows XP";
  OSlist[4] = " Windows NT 5.2";   OSName[4] = "Windows Server 2003";
  var ua = navigator.userAgent.split(";");
  for(var i = 0; i < OSlist.length; i++)
  {
    if(ua[2] == OSlist[i]) return OSName[i];
  }
  return ua[2];
}

function getPlugin()
{
  var plugin = "";
  var ua = navigator.userAgent.split(";");
  if(ua.length < 4) return "";
  for(var i = 4; i < ua.length; i++)
  {
    plugin += ua[i] + ",";
  }
  return plugin.substring(0,plugin.length-2);
}

function g_c(obj){
		if(obj.href!=null || obj.href!='#'){
			new Date()
			var i=new Image(1,1);
			var t_t = obj.innerHTML;
			t_t = t_t.replace(/(<([^>]+)>)/ig,"");
  		i.src = clickURL + "?d=" + getCookieValue("openvid") + "&u=" + getHref() + "&t_u="+ escape(obj.href) +"&t_t="+encodeURI(t_t)+"&nodeid="+obj.parentNode.id+"&"+Math.random();
  		i.onload = function(){LoadVoid();}
  		if(obj.target==null) window.location=obj.href;
		 }
		}


function Target_c(){
	var a = document.links;
	for(var i=0;i<a.length;i++){
		if(a[i].onclick==null && a[i].indexOf("uniclick")==-1) a[i].onclick=Function("g_c(this);if(this.target==null) return false;");
	}
}

function vv(id,ty,cs){
  isReturn();
  pageClose = new Date();
  minutes = (pageClose.getMinutes() - pageOpen.getMinutes());
  if(minutes < 0)
  {
    minutes = minutes + 60;
  }
  seconds = (pageClose.getSeconds() - pageOpen.getSeconds());
  if(seconds < 0){ seconds += 60;}
  time = (seconds + (minutes * 60));

  var i=new Image(1,1);
  i.src = vvURL + "?" + StrPara() + "&d=" + getCookieValue("openvid") + "&ref="+ id+ "&ty=" + ty+ "&cs="+cs ;
  i.onload = function() {LoadVoid();}
}



document.onload = GetResidentTime(1);
//document.onload = Target_c();
document.onbeforeunload = function(){
  if (document.body.offsetWidth-50<event.clientX && event.clientY<0) GetResidentTime(2);
}