// JavaScript Document
var xhr;
var stack = [];
var elem_stack = [];

bindReady();

function g(o){return document.getElementById(o);}
function HoverLi(n,m,q,p){
	for(var i=1;i<=m;i++)
	{
	g(q +i).className='normaltab';
	g(p+i).className='undis';
	}
	g(p+n).className='dis';
	g(q+n).className='hovertab';
}

function ready(fn)
{
	if (document.isReady) {
		if (typeof fn == 'function') {
			fn();
		}
		for (var f in stack) {
			stack[f]();
		}
	} else {
		stack.push(fn);
	}
}

var readyBound = false;
function bindReady()
{
	if (readyBound) return;	
	readyBound = true;
	document.isReady = false;
	//if mozilla, opera support this event
	if (document.addEventListener) {
		document.addEventListener("DOMContentLoaded", function(){document.isReady=true;ready();}, false);
	} 
	if (document.attachEvent) {
		document.attachEvent('onreadystatechange', function(){
			if (document.readyState == 'complete') {
				//document.detachEvent("onreadystatechange", arguments.callee);
				document.isReady = true;
				ready();
			}
		});
	}
}

function createRequest()
{
		if(window.XMLHttpRequest) {
			xhr = new XMLHttpRequest();
			if(xhr.overrideMimeType) {
				xhr.overrideMimeType('text/xml');
			}
		} else if(window.ActiveXObject) {
			var versions = ['Microsoft.XMLHTTP', 'MSXML.XMLHTTP', 'Microsoft.XMLHTTP', 'Msxml2.XMLHTTP.7.0', 'Msxml2.XMLHTTP.6.0', 'Msxml2.XMLHTTP.5.0', 'Msxml2.XMLHTTP.4.0', 'MSXML2.XMLHTTP.3.0', 'MSXML2.XMLHTTP'];
			for(var i=0; i<versions.length; i++) {
				try {
					xhr = new ActiveXObject(versions[i]);					
				} catch(e) {}
			}
		}		
}

function get(url, callback)
{
	createRequest();		
	xhr.onreadystatechange = function(){		
		if (xhr.readyState == 4){	
			if (xhr.status == 200) {				
				callback(xhr.responseText);
			}
		}
	}
	xhr.open("GET", url);
	xhr.send(null);		
}

function x_speed(obj, start, end, speed, duration, callback)
{
	var timeId = setInterval(function(){
			obj.style.marginTop = start + speed + 'px'; 
			start += speed;
			if (pos==1 && start > end) {
				clearInterval(timeId);
				callback();
			} else if (pos == 0 && start < end ) {
				clearInterval(timeId);			
				callback();
			}
		}, duration);
}

function animate(obj, params, duration, callback) {
	//将对象的某个属性值进行渐进的改变，改变时长为duration
	//改变的速率为params的属性除以duration
	//完成后的调用callback
	var start; //当前值
	var end; //最终值
	var sdistance; //差值.
	var name;
	
	for (var i in elem_stack) {
		if (elem_stack[i] == obj) {
			return;
		}
	}
	elem_stack.push(obj);
	for (var p in params) {			
		start = parseFloat(obj.style[p]);
		end = parseFloat(params[p]);				
		name = p;
	}
	if (end - start > 0) {
		pos = 1;
	} else {
		pos = 0;
	}
	obj.style.overflow = 'hidden';
	distance = end - start;
	var speed = distance/24;
	duration = duration/24;
	x_speed(obj, start, end, speed, duration, callback);
	for (var i in elem_stack) {
		if (elem_stack[i] == obj) {
			elem_stack[i] = null;
		}
	}		
}

function child(obj, tag) {
	for (var i in obj.childNodes) {
		if (obj.childNodes[i].tagName == tag.toUpperCase()) {
			return obj.childNodes[i];
		}
	}
}
	
function add(obj, type, callback) {
		if (obj.addEventListener) {
			obj.addEventListener(type, callback, false);
		} else if (obj.attachEvent) {
			obj.attachEvent("on"+ type, callback);
		}
}

function getChild(obj, classname) {
	traverse(obj, classname);	
	var tmp = elems;
	elems = [];
	return tmp;
}

function getChildByTag(obj, tag, index) {
	var elems = [];
	for (var i=0; i < obj.children.length; i++) {
		if (obj.children[i].tagName == tag.toUpperCase()) {
			elems.push(obj.children[i]);
		}
	}
	if (index != null) {
		return elems[index];
	}
	return elems;
}

var elems = [];
function traverse(obj, classname) {
	if (obj.nodeType == 1) {
		if (obj.className) {
			var tmp = obj.className.split(' ');
			for (var i=0;i<tmp.length;i++) {
				if (tmp[i] == classname) {
					elems.push(obj);
				}
			}
		}		
		if (obj.children.length == 0) {
			return;
		}
	}
	if (obj.nodeType == 1 && obj.children.length != 0) {
		for (var i=0; i < obj.children.length; i++) {		
			traverse(obj.children[i], classname);
		}
	}
	return;
}

function hasClass(obj, classname) {
	if (obj.className) {
			var tmp = obj.className.split(' ');
			for (var i=0;i<tmp.length;i++) {
				if (tmp[i] == classname) {
					return true;
				}
			}
		}
	return false;
}

function removeClass(obj, classname) {
	if (hasClass(obj, classname)) {
		obj.className = obj.className.replace(classname, '');
	}
	return obj;
}

function addClass(obj, classname) {
	if (!obj.className) {
		obj.className = classname;
	} else {
		obj.className = obj.className + ' ' + classname;
	}
}

function trigger(obj) {
	if (document.createEvent) { //DOM
		var e = document.createEvent('MouseEvents');
		e.initEvent('click', false, false);
	} else if (document.createEventObject) { //IE
		var e = document.createEventObject();
	}	else return;
	
	if (obj.dispatchEvent) {
		obj.dispatchEvent(e); //DOM
	} else if (obj.fireEvent) {
		obj.fireEvent("onclick", e);
	}
}

function monitorad(nid)
{
    var amark = document.getElementsByTagName('a');
    var count = amark.length - 1;
    for (var i = 0; i <= count; i++) {
        if (amark[i].getAttribute("rel") == 'ad') {
            var dom = amark[i];
            dom.onclick = function(){
                (new Image()).src='http://lm.5258.net/analytics/link?nid=' + nid + '&link=' + encodeURIComponent(dom.getAttribute("href"));
            }
        }
    }
}

