// JavaScript Document
(function(){

//ADS命名空间
if(!window.ads){window['ads'] = {}}

//检查js是否能正确运行
function runCheck(other){
	if(other===false 
	   || !Array.prototype.push
	   || !Object.hasOwnProperty
	   || !document.createElement
	   || !document.getElementsByTagName
	   ){
		return false;
		}
	return true;
	}
window['ads']['runCheck'] = runCheck;

//根据ID获取元素，可同时获取多个
function $(){
	var elements = new Array();
	
	for(var i = 0; i<arguments.length; i++){
		var element=arguments[i];
		if(typeof arguments[i] == 'string'){
			element = document.getElementById(element);
			}
		if(arguments.length == 1){
			return element;
			}
		elements.push(element);		
		}
	return elements;
	}
window['ads']['$'] = $;

//根据Class获取元素
function $c(className,tag,parent){
	parent = parent || document;
	tag = tag || '*';
	if(!(parent = $(parent))){return false;}
	
	//查找匹配标签
	var allTags = (tag == "*" && parent.all) ? parent.all : parent.getElementsByTagName(tag);
	
	var elements = 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)){
			elements.push(element);
			}
		}
	if(elements.length == 1) return elements[0];
	return elements;
	}
window['ads']['$c'] = $c;

//根据html标签获取元素
function $t(tag,parent){
	parent = parent || document;
	tag = tag || '*';
	if(!(parent = $(parent))){return false;}
	
	//查找匹配标签
	var allTags = (tag == "*" && parent.all) ? parent.all : parent.getElementsByTagName(tag);
	
	var elements = new Array();
	
	if(allTags.length == 1){return allTags[0]};
	
	for(var i=0;i<allTags.length;i++){
		elements.push(allTags[i]);
		}
	return elements;
	}
window['ads']['$t'] = $t;

function getBrowserSize() {
    var de = document.documentElement;
	
    return {
        'width':(
            window.innerWidth 
            || (de && de.clientWidth ) 
            || document.body.clientWidth),
        'height':(
            window.innerHeight 
            || (de && de.clientHeight ) 
            || document.body.clientHeight)
    }
};
window['ads']['getBrowserSize'] = getBrowserSize;

//添加、移除事件
function addEvent(node,type,listener){
	if(!runCheck()){return false;}
	if(!(node = $(node))){return false;}
	
	//W3C添加事件方法
	if(node.addEventListener){
		node.addEventListener(type,listener,false);
		return true;
		}
	//MSIE添加事件方法
	else if(node.attachEvent){
		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['ads']['addEvent'] = addEvent;

function removeEvent(node,type,listener){
	if(!runCheck()){return false;}
	if(!(node = $(node))){return false;}
	
	//W3C添加事件方法
	if(node.removeEventListener){
		node.removeEventListener(type,listener,false);
		return true;
		}
	//MSIE添加事件方法
	else if(node.detachEvent){
		node.detachEvent('on'+type,node[type+listener]);
		node[type+listener] = null;	
		return true;
		}
	return false;
	}
window['ads']['removeEvent'] = removeEvent;

//取消默认动作
function preventDefault(eventObject){
	eventObject = eventObject || getEventObject(eventObject);
	if(eventObject.preventDefault){
		eventObject.preventDefault();
		}
	else{
		eventObject.returnValue = false;
		}
	}
window['ads']['preventDefault'] = preventDefault;

function Cookies(){};
Cookies.prototype = {
	set:function(name,value,expiresDate){
		expiresDate = expiresDate || 1; 
		var date = new Date();
		date.setTime(date.getTime() + expiresDate*24*60*60*1000);
		document.cookie = name + '=' + value + ";expires=" + date.toGMTString();		
		},
	get:function(name){
		var cookiesValue = document.cookie.match(new RegExp("(^| )"+name+"=([^;]*)(;|$)")) || 'null';
		if(cookiesValue != null) return unescape(cookiesValue[2]);
		return cookiesValue;
		}
	}
window['ads']['Cookies'] = Cookies;

function setCookies(name,value,expiresDate){
	expiresDate = expiresDate || 1; 
	var date = new Date();
	date.setTime(date.getTime() + expiresDate*24*60*60*1000);
	document.cookie = name + '=' + value + ";expires=" + date.toGMTString();
	}
window['ads']['setCookies'] = setCookies;
	
function getCookies(name){
	var cookiesValue = document.cookie.match(new RegExp("(^| )"+name+"=([^;]*)(;|$)")) || 'null';
	if(cookiesValue != null) return unescape(cookiesValue[2]); 
//  var cookiesStr = document.cookie;
//	cookiesStr = cookiesStr.split(';');
//	for(var i = 0;i<cookiesStr.length;i++){
//		if(cookiesStr[i].indexOf(name) != 0){
//			continue;
//			}
//		return cookiesStr[i].substring(cookiesStr[i].indexOf(name) + name.length + 1,cookiesStr[i].length);
//		}
	return cookiesValue;	
	}
window['ads']['getCookies'] = getCookies;

//遮罩窗口
function LightWindow(id){
	id = id || 'lightWindow';
	var lightWin = null;
	var createWin = function(){
		var browserSize = ads.getBrowserSize();
		
		lightWin = document.createElement('div');
		lightWin.setAttribute('id',id);
		lightWin.style.position = 'absolute';
		lightWin.style.top = 0;
		lightWin.style.left = 0;		
		lightWin.style.width = browserSize.width + 'px';
		lightWin.style.height = browserSize.height + 'px';
		lightWin.style.backgroundColor = '#000';
		
		document.body.appendChild(lightWin);
		
		content = document.createElement('div');
		content.style.margin = '20px;';
		content.style.padding = '5px'
		content.style.border = '1px solid #fff';
		content.style.backgroundColor = '#999';
		content.style.textAlign = 'center';
		
		lightWin.appendChild(content);
		}
	this.set=function(content){
		if(!lightWin) createWin();
		lightWin.appendChild(content);
		}
	}
window['ads']['LightWin'] = LightWindow;


//JS调试日记对象
function Log(id){
	id =  id || 'LogWindow';
	var logWindow = null;
	var createWindow = function(){
		
		//建立窗口
		var browserSize = ads.getBrowserSize();
		var top = (browserSize.height - 235) || 0;
		var left = (browserSize.width - 235) || 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 = logWindow.style.height = '200px';
		logWindow.style.overflow = 'scroll';
		
		logWindow.style.padding = '5px';
		logWindow.style.margin = '0';
		logWindow.style.border = '1px solid #000';
		logWindow.style.backgroundColor = '#fff';
		logWindow.style.listStyle = 'none';
		
		document.body.appendChild(logWindow);
		
		}
	this.writeMSG = function(msg){
		if(!logWindow) createWindow();
		
		var li = document.createElement('li');
		li.style.padding = '2px';
		li.style.border = 'none';
		li.style.borderBottom = '1px dotted #000';
		li.style.margin = '0';
		li.style.color = '#000';
		
		if(typeof msg == 'undefined'){
			li.appendChild(document.createTextNode('Message was undefined'));
			}
		else if(typeof li.innerHTML != undefined){
			li.innerHTML = msg;
			}
		else{
			li.appendChild(document.createTextNode(msg));
			}
		
		logWindow.appendChild(li);
		
		return true;	
		}
	}
Log.prototype = {
	write:function(msg){
		if(typeof msg == 'string' && msg.length == 0){
			return this.writeMSG('null message');
			}
		if(typeof msg != 'string'){
			if(msg.toString) return this.writeMSG(msg.toString());
			else return this.writeMSG(typeof msg);
			}
		
		msg = msg.replace(/</g,'&lt;').replace(/>/g,'&gt;');
		return this.writeMSG(msg);
		},
	
	header:function(msg){
		msg = '<span style="color:#fff;background-color:#000;padding:0px 5px;">' + msg + '</span>';
		return this.writeMSG(msg);
		}
	}
window['ads']['Log'] = Log;

})();

