// JavaScript Document
(function(){
if(!window.lq){window['lq']={}}
//function List
function isCompatible(other)
{
	if(other===false||!Array.prototype.push||!Object.hasOwnProperty||!document.createElement||!document.getElementsByTagName)
	{return false;}
	return true;
}
window['lq']['isCompatible']=isCompatible;
function $()
{
	var elements=new Array();
	for(var i=0;i<arguments.length;i++)
	{
		var element=arguments[i];
		//如果该参数是一个字符串那假设它是一个id
		if(typeof element=='string')
		{
			element=document.getElementById(element);
		}   
		if(arguments.length==1)
		{
			return element;
		}
		elements.push(element);
	}
	return elements;
}
window['lq']['$']=$;
function addEvent(node,type,listener)
{
	if(!isCompatible()){return false;}
	if(!(node=$(node))){return false;}
	if(node.addEventListener)
	{
		//W3C方法
		node.addEventListener(type,listener,false);
		return true;
	}
	else if(node.attachEvent)
	{
		//MSIE方法
		node['e'+type+listener]=listener;
		node[type+listener]=function(){
			node['e'+type+listener](window.event);
		}
		node.attachEvent('on'+type,node[type+listener]);
		return true;
	}
	return false;
}
window['lq']['addEvent']=addEvent;
function removeEvent(node,type,listener)
{
	if(!(node=$(node))){return false;}
	if(node.removeEventListener)
	{
		//W3C方法
		node.removeEventListener(type,listener,false);
		return true;
	}
	else if(node.detachEvent)
	{
		//MSIE方法
		node.detachEvent('on'+type,node[type+listener]);
		node[type+listener]=null;
		return true;
	}
	return false;
}
window['lq']['removeEvent']=removeEvent;
function getElementsByClassName(className,tag,parent)
{
	parent=parent||document;
	if(!(parent=$(parent))){return false;}
	//查找所有匹配的标签
	var allTags=(tag=="*"&&parent.all)?parent.all:parent.getElementsByTagName(tag);
	var matchingElements=new Array();
	//创建一个正则表达式。来判断className是否正确。
	className=className.replace(/\-/g,"\\-");
	var regex=new RegExp("(^|\\s)"+className+"(\\s|$)");
	var element;
	for(var i=0;i<allTags.length;i++)
	{
		element=allTags[i];
		if(regex.test(element.className))
		{
			matchingElements.push(element);
		}
	}
	return matchingElements;
}
window['lq']['getElementsByClassName']=getElementsByClassName;
window['lq']['$class']=getElementsByClassName;
//------------------------------------------------------------
function insertAfter(node,referenceNode)
{
	if(!(node=$(node)))return false;
	if(!(referenceNode=$(referenceNode)))return false;
	if(referenceNode.parentNode.lastChild==referenceNode)
	{
		return referenceNode.parentNode.appendChild(node);
	}
	return referenceNode.parentNode.insertBefore(node,referenceNode.nextSibling);
}
window['lq']['insertAfter']=insertAfter;
//function removeChildren(parent)
//{
//	if(!(parent=$(parent))){ return false;}
//	while(parent.firstChild)
//	{
//		parent.firstChild.parentNode.removeChild(parent.firstChild);
//	}
//	return parent;
//}
//window['lq']['removeChildren']=removeChildren;
function bindFunction(obj,func)
{
	return function(){
		func.apply(obj.arguments);
	};
}
window['lq']['bindFunction']=bindFunction;
//--------------------------------------
function camelize(s) {
    return s.replace(/-(\w)/g, function (strMatch, p1){
        return p1.toUpperCase();
    });
}
window['lq']['camelize'] = camelize;
//-----------------------------------
function uncamelize(s, sep) {
    sep = sep || '-';
    return s.replace(/([a-z])([A-Z])/g, function (strMatch, p1, p2){
        return p1 + sep + p2.toLowerCase();
    });
}
window['lq']['camelize'] = camelize;
//-----------------------------getBrowserWindowSize-----------------------------
function getBrowserWindowSize()
{
	var de=document.documentElement;
	return{
		'width':(
				 window.innerWidth
				 ||(de&&de.clientWidth)
				 ||document.body.clientWidth),
		'height':(
				  window.innerHeight
				  ||(de&&de.clientHeight)
				  ||document.body.clientHeight)
	}
}
window['lq']['getBrowserWindowSize']=getBrowserWindowSize;
//---------------------------------------mylogger---------------------------------
function myLogger(id)
{
	id=id||'logWindow';
	var logWindow=null;
	var createWindow=function()
	{
		var browserWindowSize=lq.getBrowserWindowSize();
		var top=((browserWindowSize.height-200)/2)||0;
		var left=((browserWindowSize.width-200)/2)||0;
		logWindow=document.createElement('ul');
		logWindow.setAttribute('id',id);
		logWindow.style.position='absolute';
		logWindow.style.top=top+'px';
		logWindow.style.left=left+'px';
		logWindow.style.width='200px';
		logWindow.style.height='200px';
		logWindow.style.overflow='scroll';
		logWindow.style.padding='0';
		logWindow.style.margin='0';
		logWindow.style.border='1px solid black';
		logWindow.style.backgroundColor='white';
		logWindow.style.listStyle='none';
		logWindow.style.font='10px/10px Verdana,Tahoma,Sans';
		
		document.body.appendChild(logWindow);
	};
	this.writeRaw=function(message)
	{
		if(!logWindow)createWindow();
		var li=document.createElement('li');
		li.style.padding='2px';
		li.style.border='0';
		li.style.borderBottom='1px dotted black';
		li.style.margin='0';
		li.style.color='#000';
		li.style.font='9px/9px Verdana,Tahoma,Sans';
		//为日志节点添加信息
		if(typeof message=='undefined')
		{
			li.appendChild(document.createTextNode('Message was undefined'));
		}
		else if(typeof li.innerHTML!=undefined)
		{
			li.innerHTML=message;
		}
		else
		{
			li.appendChild(document.createTextNode(message));
		}
		logWindow.appendChild(li);
		return true;
	};
}
myLogger.prototype={
	//write:function(message){},
//	header:function(message){};
};
if(!window.lq){window['lq']={};}
window['lq']['log']=new myLogger()
window['lq']['writeRaw']=function(message)
{ 
	var obj=new myLogger;return obj.writeRaw(message);
}
//---------------------------------------mylogger end---------------------------------

//---------------------------------------------------------------------------------------------------------------------------------set css-------------------------------------------
function setStyleById(element,styles)
{
	if(!(element=$(element)))return false;
	for(property in styles)
	{
		if(!styles.hasOwnProperty(property))continue;
		if(element.style.setProperty)
		{
			element.style.setProperty(uncamelize(property,'-'),styles[property],null);
		}
		else
		{
			element.style[camelize(property)]=styles[property];
		}
	}
	return true;
}
window['lq']['setStyle']=setStyleById;
window['lq']['setStyleById']=setStyleById;
//------------------------------------------
function setStyleByClassName(className,tag,parent,styles)
{
	if(!(parent=$(parent)))return false;
	var elements=getElementsByClassName(className,tag,parent);
	for(var e=0;e<elements.length;e++)
	{
		setStyleById(elements[e],styles);
	}
	return true;
}
window['lq']['setStyleByClassName']=setStyleByClassName;
//-----------------------------------------
function setStyleByTagName(tagname,parent,styles)
{
	parent=$(parent)||document;
	var elements=parent.getElementByTagName(tagname);
	for(var e=0;e<elements.length;e++)
	{
		setStyleById(elements[e].styles);
	}
	return true;
}
window['lq']['setStyleByTagName']=setStyleByTagName;
//---------------------------------------------------------------------------------------------------------------------------------set css end------------------------------------------
//function List end
		  }
		  )()
