var Cjs = {
	version:"0.1",
	emptyFunction: function() {}
}

var Class = {
	create: function(proto,extendClass){
		var c = function(){
			
			if(this.init != undefined)
				this.init.apply(this,arguments);
		};
		
		if(extendClass != undefined)
			c.prototype = Class.extend(c.prototype,extendClass.prototype);
					
		if(proto != undefined)
			c.prototype = Class.extend(c.prototype,proto);	
				
		
		return c;
	},
	extend: function(dest,src){
		for(var p in src)
			dest[p] = src[p];
		return dest;
	}
}

var BaseClass = Class.create(
	{
		init: function(){
			
		}
	}
);

var CNumber = Class.create(
	{
		toColorCode: function(){
				var digits = this.toString(16);
				if(this < 16) return "0"+digits;
				return digits;
		}
	}
	,BaseClass
);
Class.extend(Number.prototype,CNumber.prototype);

var CString = Class.create(
	{
		tripTags: function(){
				return this.replace(/<\/?[^>]+>/gi, '');
		}
	}
	,BaseClass
);
Class.extend(String.prototype,CString.prototype);

function $_()
{
		var elements = new Array();
		for(var i=0;i<arguments.length;i++)
		{
				var element = arguments[i];
				if( typeof element == "string")
					element = document.getElementById(arguments[i]);
				if(arguments.length == 1) return element;
				elements.push(element);
		}
		return elements;
}


function $v()
{
	var elements = new Array();
	for(var i=0;i<arguments.length;i++)
	{
			var element = arguments[i];
			if( typeof element == "string")
				element = document.getElementById(arguments[i]);
			if(arguments.length == 1) return element.value;
			elements.push(element.value);
	}
	return elements;
}

function $rv(name)
{
	elements = document.getElementsByName(name);
	for(var i=0;i<elements.length;i++)
		if(elements[i].checked) 
			return elements[i].value;
}

function $cv(name)
{
	var values = new Array();
	elements = document.getElementsByName(name);
	if( elements.length == 1) 
	{
		if(elements[0].checked)
		{
			return elements[0].value;
		}
	}
	for(var i=0;i<elements.length;i++)
		if(elements[i].checked) 
			values.push(elements[i].value);
	return values;
}

function hide()
{
	for(var i=0;i<arguments.length;i++)
	{
				var element = arguments[i];
				if( typeof element == "string")
					element = document.getElementById(arguments[i]);
				element.style.display = "none";
	}		
}

function show()
{
	for(var i=0;i<arguments.length;i++)
	{
				var element = arguments[i];
				if( typeof element == "string")
					element = document.getElementById(arguments[i]);
				element.style.display = "block";
	}	
}

//Try 
var Try = {
	these: function () {
			var rtValue;
			for(var i=0;i<arguments.length;i++)
			{
				func = arguments[i];
				try{
						rtValue = func();
						break;
				}catch(e){}
			}
			return rtValue;
	}
}

//-------------------------------------------Ajax -------------------------------------------

//Ajax
var Ajax = {
		getTransport: function() {
			return Try.these(      
						function() {return new ActiveXObject('Msxml2.XMLHTTP')},
						function() {return new ActiveXObject('Microsoft.XMLHTTP')},
						function() {return new XMLHttpRequest()}    
			);		
		}
}

//AjaxBase
var AjaxBase = Class.create(
	{
		init: function(method,url,asynch,func){
			this.transport = Ajax.getTransport();
			
		}
	}
	
);

var AjaxObj = Class.create(
	{
		init: function(method,url,asynch,func) {
			if(method != undefined)			
				this.method = method;
			if(url != undefined)
				this.url = url;
			
			if(asynch == undefined)
				asynch = true;
			else
				this.asynch = asynch;
			this.setHandle(func);
			this.params = new Array();
		},
		on_readystatechange: function(){
			
		},
		send: function (content){
			this.transport = Ajax.getTransport();
						
			this.transport.onreadystatechange = this.handle;	
			
			var realUrl = this.url;
			if(this.method == "get" || this.method == "GET" )
				if(this.getParamStr() != "")
					realUrl += "?"+this.getParamStr();
			
			this.transport.open(this.method,realUrl, this.asynch);
			
			if(this.method == "post" || this.method == "POST" )
			{
				this.transport.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
				this.transport.setRequestHeader("Content-length", this.getParamStr().length);
				this.transport.setRequestHeader("Connection", "close");	
			}
			
			this.transport.send(content);
		},
		setHandle: function(func){
			this.handle = func;
		},
		setMethod: function(method){
			this.method = method;
		},
		setUrl: function(url){
			this.url = url;
		},
		addParam: function(pName,pValue){
			if(this.params.length >0)
				sep = "&";
			else
				sep = "";
			this.params[this.params.length] = sep+pName+"="+pValue;
		},
		getParamStr: function(){
			var s="";
			for(var i=0;i<this.params.length;i++)
				s += this.params[i];
			return s;
		},
		clearParams: function(){
			this.params.length = 0;
		}
		
	},
	AjaxBase
	
);
//-----------------------------------------End Ajax-----------------------------------------------


//--------------------------------------validate---------------------------------------------

//判断字符串是否为数字，且(长度>min && 长度>max)
function isNumericEx(str,min,max)
{
	var sExp; 
	if(max == -1)	//至少长度为min
		sExp = "^\\d{"+min+",}$";
	else		//(长度>min && 长度>max),如果min==max则表示长度必须为min
		sExp = "^\\d{"+min+","+max+"}$";
	var pattern = new RegExp(sExp);
	return pattern.test(str);
}

function check_id(str)
{
	sExp = "^\\d{15,18}$|^\\d{17}X$|^\\d{17}x$";
	var pattern = new RegExp(sExp);
	return pattern.test(str);
}


function validatemobile(mobile)
{
         if(mobile.length==0)
         {
            //alert('请输入手机号码！');
            //document.form1.mobile.focus();
            return false;
         }    
         if(mobile.length!=11)
         {
             //alert('请输入有效的手机号码！');
             //document.form1.mobile.focus();
             return false;
         }
        
         var myreg = /^(((13[0-9]{1})|(15[0-9]{1}))+\d{8})$/;
         if(!myreg.test(mobile))
         {
             //alert('请输入有效的手机号码！');
             //document.form1.mobile.focus();
             return false;
         }
		 return true;
}

//---------------------------tab box---------------------------------

var over_tab = function(o,i)
{
	return function()
	{		
		o.activeTab.className = o.css_tabNormal;			
		o.tabs[i].className = o.css_tabOver;
		o.activeTab = o.tabs[i];
		
		if(o.tab_contents[i] != undefined )
		{
			o.activeTab_content.style.display = "none";
			o.tab_contents[i].style.display = "block";
			o.activeTab_content = o.tab_contents[i];
		}
	}
}


var over_tab_ajax = function(o,i)
{
	return function()
	{		
		o.activeTab.className = o.css_tabNormal;			
		o.tabs[i].className = o.css_tabOver;
		o.activeTab = o.tabs[i];
		
		if(o.tab_contents[i] != undefined )
		{
			o.activeTab_content.style.display = "none";
			o.tab_contents[i].style.display = "block";
			o.activeTab_content = o.tab_contents[i];
		}
		//alert(i);
		if( o.tab_contents_tag[i] != undefined && o.tab_contents_tag[i] != null)
		{
			
			if( !o.tab_contents_isGet[i] )
			{
				//if( !o.ajax_processing )
				//{
					o.ajax_processing = true;
					o.ajax_obj.setUrl(o.ajax_url);			
					o.ajax_obj.setHandle(function (){
							//o.tab_contents[i].innerHTML = o.ajax_obj.transport.readyState;
							if(o.ajax_obj.transport.readyState == 4 && o.ajax_obj.transport.status == 200)
							{
								o.tab_contents[i].innerHTML = o.ajax_obj.transport.responseText;
								o.ajax_processing = false;
								o.tab_contents_isGet[i] = true;
							}
							
						}
					);
												   
					
					o.ajax_obj.clearParams();
					o.ajax_obj.addParam("tag",o.tab_contents_tag[i]);					
					o.ajax_obj.send(o.ajax_obj.getParamStr());
					o.tab_contents[i].innerHTML = "<img src=/admin/templates/images/loading.gif>加载中...";
				//}
			}
			
		}
	}
}

var TabBox = Class.create(
	{
		init: function(id,css_tabNormal,css_tabOver,activeTab_index){
			this.TabBox_id = id;
			this.css_tabNormal = (css_tabNormal == undefined)?"tabNormal":css_tabNormal;
			this.css_tabOver = (css_tabOver == undefined)?"tabOver":css_tabOver;	
			
			this.tabs = $_(id).childNodes[0].childNodes;
			this.tab_contents = $_(id).childNodes[1].childNodes;
			
			if(activeTab_index == undefined)
			{
				for(var i=0;i<this.tab_contents.length;i++)
				{
					if( this.tabs[i].className != '') continue;
					this.activeTab_index = i;
					break;
				}
			}
			else
				this.activeTab_index = activeTab_index;
			
			
			
			for(var i=0;i<this.tabs.length;i++)
			{
				if( this.tabs[i].className != '') continue;
				if(this.activeTab_index != i)
					this.tabs[i].className = this.css_tabNormal;
				else
				{
					
					this.tabs[i].className = this.css_tabOver;
					this.activeTab = this.tabs[i];
				}
				this.tabs[i].attachEvent("onmouseover",over_tab(this,i));
			}
			
			
			for(var i=0;i<this.tab_contents.length;i++)
			{
				
				if(this.activeTab_index != i)
					this.tab_contents[i].style.display = "none";
				else
				{
					this.tab_contents[i].style.display = "block";
					this.activeTab_content = this.tab_contents[i];
				}
			}
		},
		over_tab: function(i){

		}
	}
	
);

var TabBox2 = Class.create(
	{
		init: function(id,css_tabNormal,css_tabOver,activeTab_index){
			this.TabBox_id = id;
			this.css_tabNormal = (css_tabNormal == undefined)?"tabNormal":css_tabNormal;
			this.css_tabOver = (css_tabOver == undefined)?"tabOver":css_tabOver;	
			
			this.tabs = $_(id).childNodes[0].childNodes;
			this.tab_contents = $_(id).childNodes[1].childNodes;
			
			if(activeTab_index == undefined)
			{
				for(var i=0;i<this.tab_contents.length;i++)
				{
					if( this.tabs[i].className != '') continue;
					this.activeTab_index = i;
					break;
				}
			}
			else
				this.activeTab_index = activeTab_index;
			
			
			
			for(var i=0;i<this.tabs.length;i++)
			{
				if( this.tabs[i].className != '') continue;
				if(this.activeTab_index != i)
					this.tabs[i].className = this.css_tabNormal;
				else
				{
					this.tabs[i].className = this.css_tabOver;
					this.activeTab = this.tabs[i];
				}
				this.tabs[i].attachEvent("onmousedown",over_tab(this,i));
			}
			
			
			for(var i=0;i<this.tab_contents.length;i++)
			{
				
				if(this.activeTab_index != i)
					this.tab_contents[i].style.display = "none";
				else
				{
					this.tab_contents[i].style.display = "block";
					this.activeTab_content = this.tab_contents[i];
				}
			}
		},
		over_tab: function(i){

		}
	}
	
);

//---------使用ajax 获取 tab面板的内容----------------
var TabBox3 = Class.create(
	{
		init: function(id,css_tabNormal,css_tabOver,activeTab_index){
			this.TabBox_id = id;
			this.css_tabNormal = (css_tabNormal == undefined)?"tabNormal":css_tabNormal;
			this.css_tabOver = (css_tabOver == undefined)?"tabOver":css_tabOver;	
			
			this.tabs = $_(id).childNodes[0].childNodes;
			this.tab_contents = $_(id).childNodes[1].childNodes;
			this.tab_contents_tag = new Array();
			this.tab_contents_isGet = new Array();
			this.ajax_url = '';
			this.ajax_processing = false;
			this.ajax_obj = new AjaxObj("post","",true,function() {} );
			
			if(activeTab_index == undefined)
			{
				for(var i=0;i<this.tab_contents.length;i++)
				{
					if( this.tabs[i].className != '') continue;
					this.activeTab_index = i;
					break;
				}
			}
			else
				this.activeTab_index = activeTab_index;
			
			
			
			for(var i=0;i<this.tabs.length;i++)
			{
				if( this.tabs[i].className != '') continue;
				if(this.activeTab_index != i)
					this.tabs[i].className = this.css_tabNormal;
				else
				{
					
					this.tabs[i].className = this.css_tabOver;
					this.activeTab = this.tabs[i];
				}
				this.tabs[i].attachEvent("onmouseover",over_tab_ajax(this,i));
				this.tab_contents_isGet[i] = false;
				this.tab_contents_tag[i] = null;
			}
			
			
			for(var i=0;i<this.tab_contents.length;i++)
			{
				
				if(this.activeTab_index != i)
					this.tab_contents[i].style.display = "none";
				else
				{
					this.tab_contents[i].style.display = "block";
					this.activeTab_content = this.tab_contents[i];
				}
			}
		},
		over_tab: function(i){

		}
	}
	
);

//ajax form
var CForm = Class.create(
	{
		init: function(title,el,className,width,height,left,top){
			
			this.el = el;
		
			//遮罩
			this.back_div = document.createElement("div");
			
			this.back_div.style.position = "absolute";
			this.back_div.style.top = 0;
			this.back_div.style.left = 0;
			
			if(document.documentElement.clientWidth == 0)
				this.back_div.style.width = document.body.scrollWidth;
			else
				this.back_div.style.width = document.documentElement.clientWidth;
		
			if(document.documentElement.clientHeight == 0)
				this.back_div.style.height = document.body.scrollHeight;
			else
				this.back_div.style.height = document.documentElement.clientHeight;
			
			
			this.back_div.className = "back_div";
			document.body.appendChild(this.back_div);
			
			this.container = document.createElement("div");
			
			this.container.style.position = "absolute";
			if( top != undefined && top != null)
				this.container.style.top = top;
			else
				this.container.style.top = 100;		
			if( left != undefined && left != null)	
				this.container.style.left = left;
			else
				this.container.style.left = 50;
			if( width != undefined && width != null)
				this.container.style.width = width;
			else
				this.container.style.width = 400;
			if( height != undefined && height != null)
				this.container.style.height = height;	
			else
				this.container.style.height = 20;
			
			
					
			this.container.className = className;
			
			var titleBar = document.createElement("div");
			titleBar.className = "titleBar";
			titleBar.innerHTML = "<span>"+title+"</span>";
			
			
			//关闭按钮
			var closeBtn = document.createElement("span");
			closeBtn.className = "closeBtn";
			closeBtn.innerHTML = "关闭";
			closeBtn.parent = this;
			closeBtn.onclick = function(){
				this.parent.closeForm();
			};
			
			titleBar.appendChild(closeBtn);	
			this.container.appendChild(titleBar);
			
			var main = document.createElement("div");
			main.className = "main"	
			main.innerHTML = document.getElementById(el).innerHTML;
			this.main = main;
			this.container.appendChild(main);
			document.body.appendChild(this.container);
			document.getElementById(el).innerHTML = '';
			
			if(	( left == null || left == undefined ) && (top == null || top == undefined) )
			{
				rt = this.container.getBoundingClientRect();
				var h = rt.bottom-rt.top;
				var w = rt.right-rt.left;
				var left2 = (parseInt(document.body.clientWidth)-w)/2;
				var top2 = (parseInt(document.body.clientHeight)-h)/2;
				//alert(document.body.clientHeight+'---'+h+'@@@@'+top2);
				this.container.style.left = left2;
				this.container.style.top = top2;
			}
		},
		closeForm: function(){
			if( this.onCloseForm() )
			{
				document.getElementById(this.el).innerHTML = this.main.innerHTML;
				document.getElementById(this.el).style.display = "none";
				document.body.removeChild(this.container);
				document.body.removeChild(this.back_div);
			}
		},
		onCloseForm: function() {
			return true;
		}
	}
);




