var sogouAccountId=USER_DEFINE_ACCOUNT_ID;
var sogou_msg_reffer ='';
var sogou_msg_url ='';
var sogou_submit_url = 'http://beta.sogou.com/js/SOGOUPV.gif?v?=1000?r?=sogou_msg_reffer?l?=sogou_msg_url?acid?=sogouAccountId?t?=sogouGotoUrl';


function sogouBindEvent(oTarget,sEvtType,fnHandle){
	if(!oTarget){return;}
	if(oTarget.addEventListener){
		oTarget.addEventListener(sEvtType,fnHandle,false);
	}else if(oTarget.attachEvent){
		oTarget.attachEvent("on" + sEvtType,fnHandle);
	}else{
		oTarget["on" + sEvtType] = fnHandle;
	}
}

function sogouIsIE(){
	var sUserAgt = navigator.userAgent;
	var isOpera = sUserAgt.indexOf("Opera") > -1;
	return sUserAgt.indexOf("compatible") > -1 && sUserAgt.indexOf("MSIE") > -1	&& !isOpera;
}

function sogouFmtEvt(oEvt){
	if(sogouIsIE()){
		oEvt.charCode = (oEvt.type == "keypress") ? oEvt.keyCode : 0;
		oEvt.eventPhase = 2;
		oEvt.isChar = (oEvt.charCode > 0);
		oEvt.pageX = oEvt.clientX + document.body.scrollLeft;
		oEvt.pageY = oEvt.clientY + document.body.scrollTop;
		oEvt.preventDefault = function(){
			this.returnValue = false;
		};
		if(oEvt.type == "mouseout"){
			oEvt.relatedTarget = oEvt.toElement;
		}else if(oEvt.type == "mouseover"){
			oEvt.relatedTarget = oEvt.fromElement;
		}
		oEvt.stopPropagation = function(){
			this.cancelBubble = true;
		};
		oEvt.target = oEvt.srcElement;
		oEvt.time = (new Date()).getTime();		
	}
	return oEvt;
}

function sogouGetEvent(){
	if(window.event){
		return sogouFmtEvt(window.event);
	}else{
		return sogouGetEvent.caller.arguments[0];
	}
}


function initSogouInfo(){
		if (window.parent != window.self){try{sogou_msg_reffer = parent.document.referrer;}catch(err) {sogou_msg_reffer = document.referrer;} try {sogou_msg_url = parent.document.location;}catch(err){sogou_msg_url = document.location;}}
	  else {sogou_msg_reffer = document.referrer;sogou_msg_url = document.location;}
	  
		var sogou_submit_form_str='<form name="sogouReferForm" id="sogouReferForm" method="post" target="sogouMsgFrame" action=""></form>';
		var sogou_ifame='<iframe id="sogouIframe" src="" name="sogouMsgFrame" style="display:none;"></iframe>';
		document.writeln(sogou_submit_form_str);
		document.writeln(sogou_ifame);
	
}

window.onunload=function sogouWin_beforeClose(){
	sogouSubReferInfo("gb","null");
}

function sogouSubReferInfo(sogouPvValue,gotoUrl){
	  try{
	  var formObj =  document.getElementById('sogouReferForm');
	  if(null == formObj || 'undefined' == formObj){

	  }else{
	  		formObj.action= sogou_submit_url.replace("sogouGotoUrl",gotoUrl).replace("SOGOUPV",sogouPvValue).replace("sogou_msg_reffer",sogou_msg_reffer).replace("sogou_msg_url",sogou_msg_url).replace("sogouAccountId",sogouAccountId);
	 			formObj.submit();
	  }
	 
	}catch(e){
	}
	
 }

function sogouSubUrl(){
	try{
	 var o = sogouGetEvent().target;
	 var i=0;
	 if(!isOInArray(o.tagName)){
	   do{
	 	   o = o.parentElement;
	 	   i++;
	   }while(!isOInArray(o.tagName) && o.tagName != 'BODY' && i<3)
	  }

	 sogouSubReferInfo("ck", o.getAttribute("href"));
	}catch(e){
  }
}

var tagArray = new Array("A","AREA");
function isOInArray(tagStr){
	for(var i=0;i<tagArray.length;i++){
		if(tagStr == tagArray[i]){
			return true;
		}	
	}
	return false;
}

function sogou_bindAllLInkEvent(){
 for(var i=0;i<tagArray.length;i++){
 		sogou_bindTagEvent(tagArray[i]);
 	}
}

function sogou_bindTagEvent(tagStr){
	var links = document.getElementsByTagName(tagStr);
	for(var i=0;i<links.length;i++){
		sogouBindEvent(links[i],"click",sogouSubUrl);
	}
}

initSogouInfo();
window.setTimeout("sogouSubReferInfo('ts','null')",10);
sogou_domReady(sogou_bindAllLInkEvent);

function sogou_domReady( f ) {
if ( sogou_domReady.done ) return f();   
if ( sogou_domReady.timer ) { 
sogou_domReady.ready.push( f ); 
} else { 
sogouBindEvent(window,"load",isDOMReady);	  
sogou_domReady.ready = [ f ];   
sogou_domReady.timer = setInterval( isDOMReady, 10 ); 
} 
}  
function isDOMReady() { 
if ( sogou_domReady.done ) return false;   
if ( document &&  document.getElementsByTagName &&  document.getElementById &&  document.body ) {   
clearInterval( sogou_domReady.timer ); 
sogou_domReady.timer = null;   
for ( var i = 0; i < sogou_domReady.ready.length; i++ ) 
sogou_domReady.ready[i]();   
sogou_domReady.ready = null; 
sogou_domReady.done = true; 
} 
}
