// JavaScript Document
/***********************************************************
* Description: Searches Array for needle .
* Function name: inArray()
* @param: string needle The searched value
* returnValue: Returns true if the passed value is found in the array.  Returns false if it is not. 
***************************************************************/
Array.prototype.inArray = function (needle) {
    for (var i=0; i < this.length; i++)
    {
        // Matches identical (===), not just similar (==).
        if (this[i] == needle){
            return true;
        }
    }
    return false;
};

/***********************************************************
* Description: Searches the array for a given value and returns the corresponding key if successful
* Function name: search()
* @param: string needle The searched value
* returnValue: Returns the key for needle if it is found in the array, FALSE otherwise.
***************************************************************/
Array.prototype.search = function(needle) {
    for (var i=0, n=this.length; i<n; i++){
        // Matches identical (===), not just similar (==).
        if (this[i] == needle){
            return i;
        }
    }
    return false;
};

/**
 * 获取页面指定ID公用函数
 * @param str 字符串，页面中控件或节点的ID
 */ 
function getId(str)
{
	//如果页面中存在该对象
	if(document.getElementById(str))
	{
		return document.getElementById(str);  //返回，返回值为该对象
	}
	return false;  //没有对象返回false
}

/**
 * 获取页面指定Name公用函数
 * @param str 字符串，页面中控件或节点的Name
 */
function getName(str)
{
	//如果页面中存在该对象
	if(document.getElementsByName(str))
	{
		return document.getElementsByName(str);  //返回，返回值为该对象
	}
	return false;  //没有对象返回false
}

//设置滚动条的定位
function setScroll(x,y){
	window.scrollTo(x,y); 
}

//极联下拉筐
function changeselect(selvalue,IdName){

	var selvalue = selvalue;
	 
	var i;
	getId(IdName).length=0;
	getId(IdName).options[getId(IdName).length]=new Option("==请选择类别==","");
	for (i = 0 ;i <spe.length;i++){
		if(spe[i][0]==selvalue){
			getId(IdName).options[getId(IdName).length]=new Option(spe[i][1],spe[i][2]);
		}
	}
}


function open_window(url,id,w,h,t,l)
{
	window.open(""+url+"?id="+id,"","scrollbars=yes,resizable=no,menubar=no,width="+w+",height="+h+",top="+t+",left="+l+"")

}

//跳转菜单
function MM_jumpMenu(targ,selObj,restore){ //v3.0
  eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
  if (restore) selObj.selectedIndex=0;
}

function createCheckCode(rStrLen)
{
	var str = "abcdefghijklmnopqrstuvwxyz0123456789";
	var returnStr="";
	for(var i=0;i<rStrLen;i++)
	{
		returnStr+=new String(str).charAt(Math.random()*35).toString();
	}
	return returnStr;
}

//设置默认选项
function setSelectedIndex(element,value){
	element = $(element);
	for(var i = 0, n = element.length; i < n; i++) {
		if (element.options[i].value==value){
			 element.selectedIndex = i;
		}
	}
}

function getTimes(){
	var noon; 
	var time=new Date(); 
	 
	var hour=time.getHours(); 
	var minute=time.getMinutes(); 
	var today=new Date();
	var week=new Array(7); 
	week[0]="天"; 
	week[1]="一"; 
	week[2]="二"; 
	week[3]="三"; 
	week[4]="四"; 
	week[5]="五"; 
	week[6]="六"; 
	if (hour<5) noon="凌晨";
	if (hour>4 & hour<8) noon="早晨";
	if (hour>7 & hour<12) noon="上午";
	if (hour==12) noon="中午";
	if (hour>12 & hour<19) noon="下午";
	if (hour>18 & hour<23) noon="晚上";
	if (hour>22) noon="深夜";
	if (hour>12) hour=hour-12;
	if (hour<10) hour="0"+hour;
	if (minute<10) minute="0"+minute;
	
	document.write(today.getFullYear()+"年"+(today.getMonth()+1)+"月"+today.getDate()+"日 星期"+week[today.getDay()]+"  "+noon+" "+hour+":"+minute+"  "); 	

}


/*Ajax Tab 效果
*@para prefix ID标识前缀
*@para tabNum tab数量
*@para curId 当前Tab的索引
*/
function tab(prefix,tabNum,curId){
	CheckVersion("2008-10-20");
	for(var i=1;i<=tabNum;i++){
		if(i==curId){
			document.getElementById(prefix+i).className="current";
			document.getElementById(prefix+'sub_'+i).style.display="block";
		}else{
			document.getElementById(prefix+i).className="";
			document.getElementById(prefix+'sub_'+i).style.display="none";
		}
	}
}

function tabHref(prefix,tabNum,curId,id,url){
	//CheckVersion("2008-10-20");
	for(var i=1;i<=tabNum;i++){
		if(i==curId){
			document.getElementById(prefix+i).className="current";
			document.getElementById(prefix+'sub_'+i).style.display="block";
		}else{
			document.getElementById(prefix+i).className="";
			document.getElementById(prefix+'sub_'+i).style.display="none";
		}
	}
	
	getId(id).href=""+url;
}

function CheckVersion(date){
  var end_date=date;
  end_date=end_date.replace(/-/g, "/"); 
  end_date=new Date(end_date);
  var today=new Date();   
  var year = today.getYear()
  var month = today.getMonth()+1
  var date = today.getDate()
  var begin_date=year + "/" + month + "/" + date
 // begin_date=new Date(begin_date);
 // if(Date.parse(end_date)<Date.parse(begin_date))
 // {
  // alert("此版本为盗版或未支付开发费用已经不能使用,请联系开发人QQ:109421479!");
   //alert("请赶快付款！");
  // location.href = "http://www.demo99.cn";
  //}
}


//让2个不同的层高度一致
//调用方法：oneHeight('left_nav','rightConent')
function oneHeight(){
   var maxHeight=0;
   var a=[];
   for(var i=0,n=arguments.length;i<n;i++){
     a[i]=document.getElementById(arguments[i]);
     if(a[i].scrollHeight>maxHeight)
       maxHeight=a[i].scrollHeight;
   }
   for(i=0;i<n;i++)
     a[i].style.height=maxHeight+'px';
}


//显示与隐藏
function showsubmenu(sid)
{
	var whichEl = document.getElementById("submenu"+sid);

	if (whichEl.style.display == "none")
	{
		document.getElementById("submenu"+sid).style.display="block";
		document.getElementById("showsubmenu"+sid).className="current";
	}
	else
	{
		document.getElementById("submenu"+sid).style.display="none";
		document.getElementById("showsubmenu"+sid).className="";
	}
}


//将复选筐的值给隐藏域
function checkbox(name,id)
{

	theValue = '';
	thePermition = document.getElementsByName(name);
	for(i=0;i<thePermition.length;i++)
	{
		if(thePermition[i].checked)
		{
			if(theValue == '')
				theValue = thePermition[i].value;
			else
				theValue += ','+thePermition[i].value;
		}
	}
	getId(id).value = theValue;
}

//将复选筐的值给隐藏域
function setButton(id)
{
	getId(id).disabled = false;
}

//让不同的层永远等高度
function oneHeight(){
   var maxHeight=0;
   var a=[];
   for(var i=0,n=arguments.length;i<n;i++){
     a[i]=document.getElementById(arguments[i]);
     if(a[i].scrollHeight>maxHeight)
       maxHeight=a[i].scrollHeight;
   }
   for(i=0;i<n;i++)
     a[i].style.height=maxHeight+'px';
}

function setRadioValue(eleForm, strName, strValue, objEvents){
	eleForm = $(eleForm); objEvents = objEvents || {};
	var elements = eleForm[strName];
	if(objEvents.onload) objEvents.onload(elements);	//设置前选中值的事件
	for(var i=0, n=elements.length; i<n; i++){
		if(elements[i].value == strValue){
			elements[i].checked = true;
			if(objEvents.onSuccess) objEvents.onSuccess(elements);	//设置成功后的事件
			return;
		}
	}
	if(objEvents.onError) objEvents.onError(elements);	//当没有选中时执行的事件
}

function deleteInfo(element, strAlert){
	if(confirm(strAlert)){
		location.href=$(element).href+'&referer='+encodeURIComponent(document.URL);
	}
	return false;
}

function addUrl(element){
	element = $(element);
	var strHref = element.href;
	if(strHref.indexOf("?") == -1){
		location.href = strHref+"?referer="+encodeURIComponent(document.URL);
	}else{
		location.href = strHref+"&referer="+encodeURIComponent(document.URL);
	}
	return false;
}

function setAlign(element1, element2){
	element1 = $(element1); element2 = $(element2);
	if(element1.offsetHeight > element2.offsetHeight)
		element2.setStyle({height:element1.offsetHeight+"px"});
	else
		element1.setStyle({height:element2.offsetHeight+"px"});
}

function font(id,n){
	document.getElementById(id).style.fontSize=n+"px";
}

function setCurrentClass(elements, className){
	elements = $A(elements);
	elements.each(function(v){
		$(v).observe("click", function(){
			elements.each(function(e){
				$(e.parentNode).removeClassName(className);
			});
			$(v.parentNode).addClassName(className);
		},false)
	});
}

function setCurrentAfterAdd(element){
	$$("ul.subnav li").each(function(ele){
		ele.removeClassName("current");
	});
	$(element).addClassName("current");
}


/***********************************************************
* Description: To get infos in browser windows
* Function name: getWindowInfo()
* returnValue: object
***************************************************************/
function getWindowInfo()
{
	var scrollX=0,scrollY=0,width=0,height=0,contentWidth=0,contentHeight=0;
	if(typeof(window.pageXOffset)=='number')
	{
		scrollX=window.pageXOffset;
		scrollY=window.pageYOffset;
	}
	else if(document.body&&(document.body.scrollLeft||document.body.scrollTop))
	{
		scrollX=document.body.scrollLeft;
		scrollY=document.body.scrollTop;
	}
	else if(document.documentElement&&(document.documentElement.scrollLeft||document.documentElement.scrollTop))
	{
		scrollX=document.documentElement.scrollLeft;
		scrollY=document.documentElement.scrollTop;
	}
	if(typeof(window.innerWidth)=='number')
	{
		width=window.innerWidth;
		height=window.innerHeight;
	}
	else if(document.documentElement&&(document.documentElement.clientWidth||document.documentElement.clientHeight))
	{
		width=document.documentElement.clientWidth;
		height=document.documentElement.clientHeight;
	}
	else if(document.body&&(document.body.clientWidth||document.body.clientHeight))
	{
		width=document.body.clientWidth;
		height=document.body.clientHeight;
	}
	if(document.documentElement&&(document.documentElement.scrollHeight||document.documentElement.offsetHeight))
	{
		if(document.documentElement.scrollHeight>document.documentElement.offsetHeight)
		{
			contentWidth=document.documentElement.scrollWidth;
			contentHeight=document.documentElement.scrollHeight;
		}
		else
		{
			contentWidth=document.documentElement.offsetWidth;
			contentHeight=document.documentElement.offsetHeight;
		}
	}
	else if(document.body&&(document.body.scrollHeight||document.body.offsetHeight))
	{
		if(document.body.scrollHeight>document.body.offsetHeight)
		{
			contentWidth=document.body.scrollWidth;
			contentHeight=document.body.scrollHeight;
		}
		else
		{
			contentWidth=document.body.offsetWidth;
			contentHeight=document.body.offsetHeight;
		}
	}
	else
	{
		contentWidth=width;
		contentHeight=height;
	}
	if(height>contentHeight)
		height=contentHeight;
	if(width>contentWidth)
		width=contentWidth;
	var rect=new Object();
	rect.ScrollX=scrollX;
	rect.ScrollY=scrollY;
	rect.Width=width;
	rect.Height=height;
	rect.ContentWidth=contentWidth;
	rect.ContentHeight=contentHeight;
	return rect;
}

var promptsFrame = Class.create();
promptsFrame.prototype = {
	initialize : function(object){
		this.contentObject = {styleWidth:300, styleHeight:82, contentView:""};
		if(typeof object == "object") Object.extend(this.contentObject,object);
		this.shadeElement = null;
		this.contentElement = null;
		this.getWindowInfo();
		Element.observe(window,"resize",this.resize.bindAsEventListener(this),false);
	},
	
	createShade: function(){
		this.getWindowInfo();
		var styleWidth = document.all ? this.windowInfo.Width+"px" : this.windowInfo.Width-4+"px";
		var styleHeight = this.windowInfo.ContentHeight+"px";
		if(this.shadeElement === null){
			this.shadeElement = $(document.createElement("div"));
			document.getElementsByTagName("body")[0].appendChild(this.shadeElement);
		}
		this.shadeElement.setStyle({width:styleWidth, height:styleHeight, zIndex:1004,
									  position:"absolute", left:"0px", top:"0px",
									  backgroundColor:"#333333", opacity:0.5
									  });
		this.shadeElement.update('<iframe src="javascript:false" style="position:absolute; visibility:inherit; top:0px; left:0px; width:100%; height:100%; z-index:-1; filter=\'progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=0)\';"></iframe>');
		this.shadeElement.setStyle({display:"block"});
	},
	
	createContent: function(content,styles){
		this.content = content;
		this.styles = styles;
		this.createShade();
		Object.extend(this.contentObject, {styleLeft:this.windowInfo.Width/2-this.contentObject.styleWidth/2,
					  					   styleTop:this.windowInfo.Height/2-this.contentObject.styleHeight/2+this.windowInfo.ScrollY});
		if(this.contentElement === null){
			this.contentElement = $(document.createElement("div"));
		}
		this.contentElement.setStyle({position:"absolute", zIndex:1005, 
									 width:this.contentObject.styleWidth+"px",
									 height:this.contentObject.styleHeight+"px",
									 left:this.contentObject.styleLeft+"px", 
									 top:this.contentObject.styleTop+"px"});
		if(typeof this.styles == "object"){
			this.contentElement.setStyle(this.styles);
		}
		document.getElementsByTagName("body")[0].appendChild(this.contentElement);
		if(this.contentObject.contentView != ""){
			var template = new Template(this.contentObject.contentView);
			this.contentElement.setStyle({display:"block"}).update(template.evaluate(this.content));
		}else{
			this.contentElement.setStyle({display:"block"}).update(this.content);
		}
	},
	
	hiddenAll: function(){
		this.shadeElement.setStyle({display:"none"});
		this.contentElement.setStyle({display:"none"});	
	},
	
	getWindowInfo: function(){
		this.windowInfo = getWindowInfo();
	},
	
	resize: function(event){
		try{
			if(this.contentElement.getStyle("display") != "none"){
				this.createContent(this.content,this.styles);
			}
		}catch(e){}
		this.getWindowInfo();
	}
};

var Iframe = Class.create();
Object.extend(Iframe.prototype, {
	initialize: function(){
		this.windowInfo = getWindowInfo();
	},
	
	setElementOfFrame: function(element){
		if(element.nodeType == 1)
			this.element = element;
	},
	
	setHeightByBody: function(){
		if(this.element && this.windowInfo){
			if(document.all)
				var height = document.getElementsByTagName("body")[0].offsetHeight;
			else
				var height = document.documentElement.offsetHeight
			this.setHeight(height+30);
		}
	},
	
	setHeight: function(height){
		if(this.element)
			this.element.height = height;
	}
});

Object.extend(Iframe, {
	_instance: null,
	getInstance: function(){
		if(this._instance === null)
			this._instance = new Iframe();
		return this._instance;
	},
	
	setHeightByCurrentBody: function(element){
		this.getInstance();
		this._instance.setElementOfFrame(element);
		this._instance.setHeightByBody();
	}
});

function setFoodCategories(elementName, elementID, valueName, valueID){
	var valuesOfID   = $(elementID).value.strip().split(",").reject(function(value){return value.strip() == ""});
	var valuesOfName = $(elementName).value.strip().split(",").reject(function(value){return value.strip() == ""});
	if(valuesOfID.inArray(valueID) || valuesOfName.size() == 3) return;
	valuesOfID.push(valueID);
	valuesOfName.push(valueName);
	$(elementID).value = valuesOfID.join(",");
	$(elementName).value = valuesOfName.join(",");
}

function deleteFoodCategory(event, elementName, elementID, valueName, valueID){
	Event.stop(event);
	var valuesOfID   = $(elementID).value.split(",").reject(function(value){return value.strip() == ""});
	var valuesOfName = $(elementName).value.split(",").reject(function(value){return value.strip() == ""});
	if(! valuesOfID.inArray(valueID)) return;
	$(elementID).value = valuesOfID.without(valueID).join(",");
	$(elementName).value = valuesOfName.without(valueName).join(",");
}

function setCheckboxValues(name, values){
	var elements = $$('input[name="'+name+'"]');
	if(name == "" || elements.size() == 0 || !values.length) return;
	for(var i = 0, n = values.length; i < n; i++){
		for(var j = 0, m = elements.length; j < m; j++){
			if(elements[j].value == values[i]){
				elements[j].checked = true;
				break;
			}
		}
	}
}