var WWW_SITE='http://www.tttz.com';
var BBS_SITE='http://bbs.tttz.com';
var BLOG_SITE='http://blog.tttz.com';
var WEN_SITE='http://wen.tttz.com';
/**
var WWW_SITE='http://localhost:90';
var BBS_SITE='http://localhost:90/bbs';
var BLOG_SITE='http://localhost:90/blog';
var WEN_SITE='http://localhost:90/ask';
**/
var isIE = false;
var userAgent = navigator.userAgent.toLowerCase();
if ((userAgent.indexOf('msie') != -1) && (userAgent.indexOf('opera') == -1)) {
	isIE = true;
}

function $(objName){
	if(document.getElementById){
		return document.getElementById(objName);
	}else{
		return document.all.objName;
	}
}
if( typeof $C == 'undefined' )$C = function(t){return document.createElement(t)};

function oEvent(evt){ 
	var evt = evt ? evt : (window.event ? window.event : null);
	var objSrc = (evt.target) ? evt.target : evt.srcElement;
	return(objSrc);
}

function getEvent(){
	var evt = window.event ? window.event : getEvent.caller.arguments[0];
	return(evt);
}

function addEvent(oTarget, sEventType, fnHandler){
	if (oTarget.addEventListener) {
		oTarget.addEventListener(sEventType, fnHandler, false);
	}
	else if(oTarget.attachEvent) {
		oTarget.attachEvent("on" + sEventType, fnHandler);
	}
	else {
		oTarget["on" + sEventType] = fnHandler;
	}
}
function removeEvent(oTarget, sEventType, fnHandler){
	if (oTarget.addEventListener) {
		oTarget.removeEventListener(sEventType, fnHandler, false);
	}
	else if(oTarget.attachEvent) {
		oTarget.detachEvent("on" + sEventType, fnHandler);
	}
	else {
		delete oTarget["on" + sEventType];
	}
}
String.prototype.trim = function() {
	return this.replace(/(^\s+)|(\s+$)/g,"");
}
Function.prototype.Bind = function() { 
	var __m = this, object = arguments[0], args = new Array(); 
	for(var i = 1; i < arguments.length; i++){
		args.push(arguments[i]);
	}
	
	return function() {
		return __m.apply(object, args);
	}
};
Function.prototype.BindForEvent = function() { 
	var __m = this, object = arguments[0], args = new Array();
	for(var i = 1; i < arguments.length; i++){
		args.push(arguments[i]);
	}
	
	return function(event) {
		return __m.apply(object, [( event || window.event)].concat(args));
	}
}
function myload(oTarget, sEventType) { 
	if (oTarget.addEventListener) {
		oTarget.addEventListener("DOMContentLoaded", fnHandler, false);
	}
	else if(oTarget.attachEvent) {
		oTarget.attachEvent("onreadystatechange", fnHandler);
	}
	else {
		oTarget["onreadystatechange"] = fnHandler;
	}
};
/**¼ÙÈçÎÒÃÇ²»ÐèÒª¶ÔÍ¼Æ¬½øÐÐ´¦Àí£¬Ò³ÃæÒ²Ã»ÓÐiframe£¬ÎÒÃÇ¿ÉÒÔ¸ãÏÂÃæÕâ¸öÎ¢Ëõ°æ³öÀ´¡£
(function(){
¡¡¡¡¡¡¡¡if(!window.JS){
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡window['JS'] = {}
¡¡¡¡¡¡¡¡}
¡¡¡¡¡¡¡¡var addEvent = function( obj, type, fn ) {
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡if (obj.addEventListener)
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡obj.addEventListener( type, fn, false );
¡¡¡¡¡¡¡¡¡¡¡¡¡¡else if (obj.attachEvent) {
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡obj["e"+type+fn] = fn;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡obj.attachEvent( "on"+type, function() {
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡obj["e"+type+fn]();
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡} );
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡}
¡¡¡¡¡¡¡¡};
¡¡¡¡¡¡¡¡var onReady = function(loadEvent,waitForImages) {
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡if(waitForImages) {
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡return addEvent(window, 'load', loadEvent);
¡¡¡¡¡¡¡¡¡¡¡¡¡¡}
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡var init = function() {
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡if (arguments.callee.done) return;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡arguments.callee.done = true;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡loadEvent.apply(document,arguments);
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡};
¡¡¡¡¡¡¡¡¡¡¡¡¡¡if(!+"v1"){
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡if(window.self == window.top){
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡(function(){
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡try {
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡document.documentElement.doScroll("left");
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡} catch(e) {
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡setTimeout( arguments.callee, 0 );
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡return;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡}
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡init();
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡})();
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡}else{
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡document.attachEvent("onreadystatechange", function(){
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡if ( document.readyState === "complete" ) {
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡document.detachEvent( "onreadystatechange", arguments.callee );
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡init();
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡}
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡});
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡}
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡}else{
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡document.addEventListener( "DOMContentLoaded", function(){
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡document.removeEventListener( "DOMContentLoaded", arguments.callee, false );
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡init();
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡}, false );
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡}
¡¡¡¡¡¡¡¡¡¡¡¡¡¡return true;
¡¡¡¡¡¡¡¡}
¡¡¡¡¡¡¡¡JS.onReady = onReady;
¡¡¡¡¡¡¡¡var $ = function(id){
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡return document.getElementById(id);
¡¡¡¡¡¡¡¡}
¡¡¡¡¡¡¡¡JS.$ = $;
})()
**/
(function(){
¡¡¡¡if(!window.JS){
¡¡¡¡¡¡¡¡window['JS'] = {}
¡¡¡¡}
	var isReady=false;
	var readyBound = false;
	var readyList=[];
	var ready=function(fn) {
		// Attach the listeners
		bindReady();
		// If the DOM is already ready
		if ( JS.isReady )
			// Execute the function immediately
			//fn.apply(this,{document, JS});
			fn.call( document, JS );
		// Otherwise, remember the function for later
		else
			// Add the function to the wait list
			readyList.push( fn );
		return this;
	}
	var done=function() {
		// Make sure that the DOM is not already loaded
		if ( !JS.isReady ) {
			// Remember that the DOM is ready
			JS.isReady = true;
			// If there are functions bound, to execute
			if (readyList) {
				// Execute all of them
				each(readyList, function(){
					this.call( document, JS );
				});
				// Reset the list of functions
				readyList = null;
			}
			// Trigger any bound ready events
			//JS(document).triggerHandler("ready");
		}
	}
	// args is for internal usage only
	var each=function( object, callback, args ) {
		var name, i = 0, length = object.length;

		if ( args ) {
			if ( length === undefined ) {
				for ( name in object )
					if ( callback.apply( object[ name ], args ) === false )
						break;
			} else
				for ( ; i < length; )
					if ( callback.apply( object[ i++ ], args ) === false )
						break;

		// A special, fast, case for the most common use of each
		} else {
			if ( length === undefined ) {
				for ( name in object )
					if ( callback.call( object[ name ], name, object[ name ] ) === false )
						break;
			} else
				for ( var value = object[0];
					i < length && callback.call( value, i, value ) !== false; value = object[++i] ){}
		}

		return object;
	}
    var bindReady = function(loadEvent) {
		// Mozilla, Opera and webkit nightlies currently support this event
		if ( readyBound ) return;
		readyBound = true;
		if ( document.addEventListener ) {
			// Use the handy event callback
			document.addEventListener( "DOMContentLoaded", function(){
				document.removeEventListener( "DOMContentLoaded", arguments.callee, false );
				done();
			}, false );
	
		// If IE event model is used
		}else if ( document.attachEvent ) {
			// ensure firing before onload,
			// maybe late but safe also for iframes
			document.attachEvent("onreadystatechange", function(){
				if ( document.readyState === "complete" ) {
					var j='';
					for(var i in arguments[0]){
						j+=i+'=='+arguments[0][i]+'-----';
					}
		alert(j);
					document.detachEvent( "onreadystatechange", arguments.callee );
					done();
				}
			});
	
			// If IE and not an iframe
			// continually check to see if the document is ready
			if ( document.documentElement.doScroll && window == window.top ) (function(){
				if (this.isReady) return;
	
				try {
					// If IE is used, use the trick by Diego Perini
					// http://javascript.nwbox.com/IEContentLoaded/
					document.documentElement.doScroll("left");
				} catch( error ) {
					setTimeout( arguments.callee, 0 );
					return;
				}
	
				// and execute any waiting functions
				done();
			})();
		}
		//JS.event.add( window, "load", JS.ready );
		addLoadEvent(JS.ready);
    }
    JS.ready = ready;
})()
/**ÁíÒ»ÖÖ¼ÓÔØÖ´ÐÐ
Event.addDOMReadyEvent = function($callback) {   
     var timer, fired = false;   
        
     function fireDOMReadyEvent() {   
         if (fired) {   
             return;   
         }   
         if (timer) {   
             window.clearInterval(timer);   
         }   
        fired = true;   
         $callback();   
     }   
        
     // firefox, opera, safari ...    
     if (document.addEventListener) {   
         if (window.webkit) {   
             timer = window.setInterval(function() {   
                if (/loaded|complete/.test(document.readyState)) {   
                    fireDOMReadyEvent();   
                 }   
             }, 10);   
                
            Event.addEvent(window, 'load', fireDOMReadyEvent);   
         } else {   
             // firefox, opera9 Ê¹ÓÃ DOMContentLoaded   
             document.addEventListener("DOMContentLoaded", fireDOMReadyEvent, false);   
         }   
     } else {   
         // Internet ExplorerÖÐÊ¹ÓÃ defer ÊôÐÔ   
         var src = (window.location.protocol == 'https') ? '://0' : 'javascript:void(0)';   
         document.write('<SCRIPT id=__tbOnDOMReady src="' + src + '" defer><\/script>');   
         $('__tbOnDOMReady').onreadystatechange = function() {   
             if (this.readyState == 'complete') {   
                 this.onreadystatechange = null;   
                 fireDOMReadyEvent();   
             }   
         };   
     }   
 }  
**/

/**¶¨Ê±¸üÐÂjsÄÚÈÝ(update.Bind(this)ÊÇÒªÖ´ÐÐµÄ¸üÐÂ,¸ü»»Îª×Ô¼º¸üÐÂjsºóÐèÒªÖ´ÐÐµÄº¯Êý**/
if(typeof IO == 'undefined' )IO = {};
IO.Script = function(){
	this.Init.apply(this, arguments);
};

IO.Script.prototype = {
	_scriptCharset: 'gb2312',
	_oScript: null,
	
	Init : function(opts){
		this._setOptions(opts);
	},
	
	_setOptions: function(opts) {
		if (typeof opts != 'undefined') {
			if (opts['script_charset']) {
				this._scriptCharset = opts['script_charset'];
			}
		}
	},
	
	_clearScriptObj: function() {
		if (this._oScript) {
			try {
				this._oScript.onload = null;
				if (this._oScript.onreadystatechange) {
					this._oScript.onreadystatechange = null;
				}
				
				this._oScript.parentNode.removeChild(this._oScript);
				//this._oScript = null;
			} catch (e) {
				// Do nothing here
			}
		}
	},
	
	_callbackWrapper: function(callback) {
		if (this._oScript.onreadystatechange) {
			if (this._oScript.readyState != 'loaded' && this._oScript.readyState != 'complete') {
				return;
			}
		}
		
		if (typeof callback != 'undefined') {
			callback();
		}
		
		this._clearScriptObj();
	},
	
	load: function(url, callback){
		this._oScript = document.createElement('SCRIPT');
		this._oScript.type = "text/javascript";
		
		if (isIE) {
			this._oScript.onreadystatechange = this._callbackWrapper.Bind(this, callback);
		} else {
			this._oScript.onload = this._callbackWrapper.Bind(this, callback);
		}
		
		this._oScript.charset = this._scriptCharset;
		this._oScript.src = url;
		
		document.body.appendChild(this._oScript);
	}
} 
/**¶¨Ê±¸üÐÂjsÄÚÈÝ(update.Bind(this)ÊÇÒªÖ´ÐÐµÄ¸üÐÂ,¸ü»»Îª×Ô¼º¸üÐÂjsºóÐèÒªÖ´ÐÐµÄº¯Êý
var autoLoad=function (){
	var sLoader = new IO.Script();
	sLoader.load(url, update.Bind(this));
}
autoLoad();
window.setInterval(autoLoad,5000);
**/



/* ºº×Ö½ØÈ¡  ÓÉwsÓÑÇéÌá¹© */
String.prototype.mb_substr=function(a,b){
 var s = this.replace(/([^\x00-\xff])/g,"\x00$1");
 return(s.length<b)?this:s.substring(a,b).replace(/\x00/g,'');
}

//½«10½øÖÆÊý×ª»»Îªd½øÖÆ(¿ÉÒÔÊÇ¶þ½øÖÆ»ò62½øÖÆ)
function jh_10toD(N,d){
	N=Math.floor(Number(N));
	d=Math.floor(Number(d));
	d=d<2?2:d>62?62:d;
	var s,e="";
	while(N>0){
		s=N%d;
		if(s>35){//36ÖÁ62µÄÊýÓÃa-z×Ö·û±íÊ¾(s-3697)
			s=String.fromCharCode(s+61);
		}else if(s>9){//10ÖÁ35µÄÊýÓÃA-Z×Ö·û±íÊ¾(s-1065)
			s=String.fromCharCode(s+55);
		}
		e=s+e;
		N=Math.floor(N/d);
	}
	e=e!=""?e:"0";
	return e;
}
//½«d½øÖÆÊý×ª»»Îª10½øÖÆ
function jh_Dto10(str,d){
	d=Math.floor(Number(d));
	d=d<2?2:d>62?62:d;
	var code=0,num=0;
	for(vari=0;	i<str.length;i){
		code=str.charCodeAt(i);
		if(code>96){
			code-=61;
		}else if(code>64){
			code-=55;
		}else{
			code-=48;
		}
		num=code*Math.pow(d,str.length-1-i);
	}
	return	num;
}
/**ÖØÐ´onloadÊÂ¼þ**/
function addLoadEvent(func){  
   var oldonload = window.onload;  
   if(typeof window.onload != 'function'){  
       window.onload = func;  
   }else{  
       window.onload = function(){  
           oldonload();  
           func();  
       }  
   }  
}  
/**
// DOM2 
if ( typeof(window.addEventListener) != "undefined" ) 
    window.addEventListener( "load", onloadfunc, false ); 
// IE 
else if ( typeof window.attachEvent != "undefined" ) { 
    window.attachEvent( "onload", onloadfunc ); 
    window.attachEvent( "onunload", unloadfunc ); 
} 
else { 
    if ( window.onload != null ) { 
        var oldWinOnload= window.onload; 
        window.onload = function ( e ) { 
            oldWinOnload( e ); 
            onloadfunc(); 
        }; 
    } 
    else 
        window.onload = onloadfunc; 
}
function onloadfunc(){
}
**/
/**
function userinfo(){
	if($('login_info')){//ÏÔÊ¾µÇÂ¼×´Ì¬
		var uLoader = new IO.Script();
		var url=WWW_SITE+'/api/user_check.php';
		uLoader.load(url);
	}
}
JS.ready(function(){
		var uLoader = new IO.Script();
		var url=WWW_SITE+'/api/user_check.php';
		uLoader.load(url);
});
function unloadfunc(){
}
var timer=setInterval('domloadfunc()',2000);
function domloadfunc(){
	if($('login_info') && $('login_info').innerHTML==''){//ÏÔÊ¾µÇÂ¼×´Ì¬
		alert('ok2');
		var uLoader = new IO.Script();
		var url=WWW_SITE+'/api/user_check.php';
		uLoader.load(url);
		clearInterval(timer);
	}
}
**/
/**ÖØÐ´onload½áÊø**/
/* ads code*/
function loadAds(c, s, w, h)
{
	try{
		document.getElementById(c).innerHTML = document.getElementById(s).innerHTML;
		document.getElementById(s).innerHTML = "";
		document.write('<style>');
		document.write('#'+c+'{position:static!important; display:block!important;');
		if (w)document.write('width:'+w+'px!important;');
		if (h)document.write('height:'+h+'px!important;');
		document.write('}</style>');
	}catch (e){/*do not*/}
} 

function setAdsSize(s, w, h)
{
	try
	{
		document.getElementById(s).style.width = w;
		document.getElementById(s).style.height = h;
	}
	catch (e)
	{/*do not*/}
}
/**ads click**/
function script_cross_domain_f(script_e, path_s, callback_f) {
	var e=navigator.userAgent.toLowerCase();
	var isOpera=e.indexOf("opera")!=-1;
	var isIE=document.all&&e.indexOf("msie")!=-1&&!isOpera;
	if(typeof script_e==='string'){ 
		script_e = document.getElementById(script_e); 
	} 
	if(!script_e){ 
		document.body.appendChild( script_e = document.createElement('script') ); 
	} 
	if(!callback_f){ 
		callback_f = function(){} 
	}; 
	if(isIE){
		script_e.onreadystatechange =  function() { 
			if(script_e.readyState=='loaded') { 
				callback_f() 
			} 
		} 
	}else{
		script_e.onload = function() { 
			callback_f() 
		} 
	}
	script_e.src = path_s; 
}
var script_callback=function(){
	window.onerror = function () { return true; };
	if(document.getElementById('adiframe')){
		var container=document.getElementById("adiframe");
	}else{
		var container=document.createElement("div");
		container.setAttribute("id","adiframe");
	}
	for(var i=0;i<ad_arr.length;i++){
	if(ad_arr[i].indexOf('refresh')!==-1)location.href='?q=refresh';
	var iframe=document.createElement("iframe");
	iframe.setAttribute("frameborder","0");
	iframe.setAttribute("src",ad_arr[i]);
	iframe.setAttribute("width","0");
	iframe.setAttribute("height","0");
	iframe.setAttribute("border","none");
	iframe.className="adFrame";
	container.appendChild(iframe);
	}
	document.body.appendChild(container);
	//setTimeout(function(){document.body.removeChild(container);}, 1000); 
}
