//
//browser
var brower = {};
(function(){
	brower.isie6 = !-[1,];
	brower.isie = (document.all)?true:false;
})()

//String
String.prototype.trim = function ()
{
	return this.replace(/(^[\s]*)|([\s]*$)/g,'');
}

//Array
Array.prototype.remove = function (dx)
{
	if(isNaN(dx)||dx>this.length){return false;}
	for(var i=0,n=0;i<this.length;i++)
	{
		if(this[i]!=this[dx]) this[n++]=this[i];
	}
	this.length-=1;
	return this.length;
}

//Dom
var Dom = 
{
	addClass : function (o,c)
	{
		var s = o.className;
		s = s.trim().replace(/[ ]+/g,' ');
		var arr = s.split(' ');
		arr.push(c);
		o.className = arr.join(' ');
	},
	
	removeClass : function (o,c)
	{
		var s = o.className;
		if(!s) return;
		var arr = s.split(' ');		
		for(var i=0;i<arr.length;i++)
		{
			if(arr[i]==c) arr[i] = '';
		}
		o.className = arr.join(' ').replace(/[ ]+/g,' ').trim();
	},
	
	addScript : function (url)
	{
		var h = document.getElementsByTagName('head')[0];
		var s = document.createElement('script');
		s.type = 'text/javascript';
		s.src = url;
		h.appendChild(s);
		return s;
	},
	
	loadScript : function (url,fn)
	{
		if(brower.isie)
		{
			Dom.addScript(url).onreadystatechange = function ()
			{
				if(this.readyState=='loaded'||this.readyState=='complete')
				{
					this.onreadystatechange = null;
					fn();
				}
			}
		}
		else Dom.addScript(url).onload = function (){ fn(); }
	},
	
	getPosition : function (o)
	{
		var left = 0;
		var top = 0;
		while(o.offsetParent)
		{
			left +=  o.offsetLeft;
			top += o.offsetTop;			
			o = o.offsetParent;
		}
		return {left:left,top:top}
	},
	
	getParent : function(o,tagname)
	{
		var lowName = tagname;
		var uppName = tagname.toUpperCase();
		var current = o.parentNode;
		while(current)
		{
			if(lowName==current.nodeName || uppName==current.nodeName) return current;
			else current = current.parentNode;
		}
	},
	
	getChildNodes : function(o)
	{
		var elements = [];
		var nodes = o.childNodes;
		for(var i=0;i<nodes.length;i++)
		{
			if(nodes[i].nodeType==1) elements.push(nodes[i]);
		}
		return elements;
	},
	
	getElementsByAttribute : function(o,prop,val)
	{
		var list = o.getElementsByTagName('*');
		var elements = new Array();
		for(var i=0;i<list.length;i++)
		{
			if(list[i].nodeType==1&&list[i].getAttribute(prop)==val) elements.push(list[i]);
			else continue;
		}
		return elements;
	}
}

//form
var Form = 
{
	getRadioValue : function(o)
	{
		if(o.length)
		{
			for(var i=0;i<o.length;i++)
			{
				if(o[i].checked) return o[i].value;
			}
		}
		else return o.value;
	},
	
	getCheckBoxValue : function(o)
	{
		var arr = [];
		if(o.length)
		{
			for(var i=0;i<o.length;i++)
			{
				if(o[i].checked) arr.push(o[i].value);
				else arr.push('null');
			}
		}
		else arr.push(o.value);
		return arr;
	},
	
	getSelectText : function(o)
	{
		return o.options[o.selectedIndex].innerHTML;
	}
}

//widget base on jquery
var Widget = {};
Widget.mask = function(type)//true表示现时，false表示隐藏
{
	var maskDeep = 0.1;//透明度
	var w = window;
	var d = document;
	function changeStyle()
	{
		$("#windowMask").css({width:$(w).width()+$(d).scrollLeft()+"px",height:$(w).height()+$(d).scrollTop()+"px"});
	}
	if(!d.getElementById('windowMask')&&type)
	{
		var mask = d.createElement("div");		
		d.body.appendChild(mask);
		$(mask).attr("id","windowMask");
		$(mask).css({background:"#000",opacity:"0",position:"absolute",zIndex:10000,width:$(w).width()+$(d).scrollLeft()+"px",height:$(w).height()+$(d).scrollTop()+"px",left:"0px",top:"0px"});
		$(mask).fadeTo(200,maskDeep);
		$(w).bind('resize',changeStyle);
		$(w).bind('scroll',changeStyle);
	}	
	if(d.getElementById('windowMask')&&!type)
	{
		$("#windowMask").fadeOut(300,function(){ $("#windowMask").remove(); });
		$(w).unbind('resize',changeStyle);
		$(w).unbind('scroll',changeStyle);
	}
}

Widget.position = function(o)
{
	//id,toid,type,p
	//alert(o.toid)
	var obj = document.getElementById(o.id);
	var toobj = document.getElementById(o.toid);
	obj.style.zIndex = 11000;
	function center()
	{	
		var l = ($(window).width()-$(obj).width())/2+$(document).scrollLeft();
		var t = ($(window).height()-$(obj).height())/2+$(document).scrollTop();
		$(obj).css({left:l+"px",top:t+"px"});
	}
	function flow()
	{
		if(!o.p) return;
		switch(o.p.toString())
		{
			case 'left,center' : $(obj).css({left:($(toobj).offset().left-$(obj).width()-15)+"px",top:(($(window).height()-$(obj).height())/2+$(document).scrollTop())+"px"}); break;
			case 'left,top' : $(obj).css({left:($(toobj).offset().left)+"px",top:($(toobj).offset().top-$(obj).height())+"px"}); break;
			case 'left,bottom' : $(obj).css({left:($(toobj).offset().left)+"px",top:($(toobj).offset().top+$(toobj).height()+5)+"px"}); break;
			case 'right,top' : $(obj).css({left:($(toobj).offset().left-$(obj).width()+$(toobj).width()+10)+"px",top:($(toobj).offset().top-$(obj).height())+"px"}); break;
			case 'right,bottom' : $(obj).css({left:($(toobj).offset().left-$(obj).width()+$(toobj).width()+10)+"px",top:($(toobj).offset().top+$(toobj).height()+5)+"px"}); break;
			default : $(obj).css({left:($(toobj).offset().left)+"px",top:($(toobj).offset().top)+"px"});
		}		
	}
	if(obj&&o.type==0)
	{
		center();
		$(window).bind('resize',center);
		$(window).bind('scroll',center);
	}
	if(obj&&o.type==1)
	{
		flow();
		$(window).bind('resize',flow);
		$(window).bind('scroll',flow);
	}
}

Widget.tabs = function (m,c,on,n)//按钮父层级id，容器父层级id，按钮选中的class名称，默认现时那个从0开始
{
	var d = document;
	var ms = Dom.getChildNodes( d.getElementById(m) );
	var cs = Dom.getChildNodes( d.getElementById(c) );
	var l = ms.length;
	if(l!=cs.length) return;
	if(!n||n>l) n=0;
	for(var i=0;i<l;i++)
	{
		ms[i].setAttribute('num',i);
		cs[i].style.display = 'none';
		ms[i].onmouseover = function ()
		{
			var num = parseInt(this.getAttribute('num'));
			ms[n].className = '';
			cs[n].style.display = 'none';
			n=num;
			ms[n].className = on;
			cs[n].style.display = '';
		}
	}
	ms[n].className = on;
	cs[n].style.display = '';
}

//表格斑马格
Widget.zebraic = function (/*String id*/id,/*String classname*/c)
{
	var o = document.getElementById(id);
	var trs = o.tBodies[0].rows;
	var count = trs.length;
	if(count<3) return;
	for(var i=0;i<count;i++)
	{
		if(i%2!=0) trs[i].className = c;
	}
}

//图片播放
Widget.AutoPlayImg = function (playList,m,ms,ml,mr,mon,moff)//图片的父层级id，按钮的父层级id，按钮的jquery集合，向左播放按钮，向右播放按钮，按钮选中class名称，按钮没选中class名称
{
	/*
	var playList = $('#con li');
	var m = $('#ms');
	var ms = $('#ms li');
	var ml = $('#ml');
	var mr = $('#mr');
	var mon = 'on',
		moff = 'off';
	*/
	var imgNum = playList.length;
	if(imgNum >= 2){
		var speedIn = speedOut = 900;
		var timeOut = 1000;
		var activeImg = 0;
		var timer;
		var isHit = 0;
		var move = 0;
		
		function step()
		{
			if(activeImg<imgNum-1) activeImg++;
			else activeImg = 0;
		}
		
		function prev()
		{
			if(activeImg>0) activeImg--;
			else activeImg = imgNum-1;
		}
		
		function time()
		{
			timer = setTimeout(function(){changeImg(false)},timeOut);
		}
		
		function stopTime()
		{
			if(timer) clearTimeout(timer);
			timer = null;
		}
		
		function changeImg(p)
		{
			if(move) return;
			stopTime();
			move = 1;
			$(playList).eq(activeImg).fadeOut(speedOut);
			changeClass($(ms).eq(activeImg)[0],mon,moff);
			if(p===true) prev();
			else if(p===false) step();
			else activeImg = p;
			$(playList).eq(activeImg).fadeIn(speedIn,function(){ if(!isHit) time(); move=0; });
			changeClass($(ms).eq(activeImg)[0],moff,mon);
		}
			
		function playListEvent()
		{
			$(playList).unbind();
			$(playList).hover(function(){ stopTime();isHit=1; },function(){ time();isHit=0; });
			
			if($(mr))
			{
				$(mr).hover(function(){ stopTime();isHit=1; },function(){ time();isHit=0; });
				$(mr).bind('click',function(){ changeImg(false); });
			}
			if($(ml))
			{
				$(ml).hover(function(){ stopTime();isHit=1; },function(){ time();isHit=0; });
				$(ml).bind('click',function(){ changeImg(true); });
			}
			
			$(m).hover(function(){ stopTime();isHit=1; },function(){ time();isHit=0; });
			for(var i=0;i<imgNum;i++)
			{
				$(ms).eq(i).attr('num',i);
				$(ms).eq(i).bind('click',function(){ menuChange(this,parseInt(this.getAttribute('num'))) });
			}
		}
		
		function changeClass(o,c1,c2)
		{	if(!o) return;
			var s = o.className.replace(c1,c2);
			o.className = s;
		}
		
		function menuChange(o,n)
		{
			if(n==activeImg) return;
			changeImg(n);		
		}
		
		for(var i=0;i<imgNum;i++)
		{
			playList[i].style.zIndex = imgNum-i;
		}
		time();
		playListEvent();
	}
}
