//*******************************************************
//														*
//		Javascript Framework for GR2M ver 2.0_rc0		*
//														*
//		(c) 2007 Jim Yuan <jim.yuan@g2.com>				*
//														*
//		Grmscript.js is freely for G2RM's project.		*
//		For details, contact me by my email.			*
//														*
//*******************************************************

function _$(obj){
	if(typeof obj=="object") return obj
	else return document.getElementById(obj)
}

function _$F(obj){return _$(obj).value;}

GRMobj=function(){
	this.version="2.0_rc0";
	this.author	="Jim Yuan";
};

GRMobj.prototype={
	isIE: function() { 
		return (navigator.appName == "Microsoft Internet Explorer"); 
	},

	request: function(argu){
		var urlstr=location.search.substring(1).split("&");//获取URL参数
		var arguValue="";

		for(i=0;i<urlstr.length;i++){
			if(urlstr[i].indexOf(argu+"=")!=-1){
				subCell=urlstr[i].split("=");
				arguValue=subCell[1];
			}
		}
		return arguValue
	},
	
	createTag: function(obj,tagname,option){
		var _obj=document.createElement(tagname);
		for(i in option){ _obj[i]=option[i] };
		obj.appendChild(_obj)
	},

	//.........................................GRM Cookie manage
	_getCookieVal: function(offset){
		var endstr = document.cookie.indexOf (";", offset);
		if (endstr == -1) endstr = document.cookie.length;
		return unescape(document.cookie.substring(offset, endstr));
	},

	setCookie: function(name,value){
		if(document.cookie) document.cookie=name+"="+value;
		else {
			alert("Error: No cookie support in your Browers!");
			return false;
		}
	},
	
	getCookie: function(name){
		if(name == "path" || name == "expires" || name == "domain" || name == "version") name = "badCookieName";

		var arg = name + "=";
		var alen = arg.length;
		var clen = document.cookie.length;
		var i = 0;
		while (i < clen){
			var j = i + alen;
			if (document.cookie.substring(i, j) == arg) return this._getCookieVal (j);
			i = document.cookie.indexOf(" ", i) + 1;
			if (i == 0) break; 
		}
		return null;
	},

	imgpop: function(imgpath){
		var isIE=this.isIE();
		if(!isIE) openwin=window.open(imgpath,'imagePOP','');
		else{
			openwin=window.open ('','imagePOP','width=100,height=100,top=0,left=0,scrollbars=no');
			with(openwin.document){
				writeln('<html><head>');
				writeln('<title>Image Gallery</title>');
				writeln('</head>');
				writeln('<body style="margin:0;">') ;
				writeln('<a href="javascript:window.close()" onfocus="this.blur()">');
				writeln('<img src="'+imgpath+'" border="0" alt="Loading......" onload="javascript:window.resizeTo(this.width+10,this.height+28);this.alt=\'Click to Close\'"></a>');
				writeln('</body>');
				writeln('</html>');
				close();
			}
		}
		openwin.focus();
	 },

	open: function(url,name,width,height){//need prototype.js framework

		var bodyWidth	=document.documentElement.clientWidth;
		var bodyHeight	=document.documentElement.clientHeight;
		var defaultCSS	=""+
			"width:"+width+"px; height:"+height+"px; position:absolute;"+
			"left:"+(bodyWidth-width)/2+"px;"+
			"top:"+(bodyHeight-height)/2+"px;"

		var divOption	={id:name};
		this.createTag(document.body,"div",divOption);
		$(name).style.cssText=defaultCSS;

		var pars='rdn='+Math.random();
		var myAjax = new Ajax.Updater(
			name, url,
			{method:"get", parameters:pars}
		);
	},

	getDateSelect: function(option){
		/*	
		[eg]option:{
				startYear:1930,endYear:2008,yearOff:0,monthOff:0,dayOff:0,
				oSel:["selYear","selMonth","selDay"],
				setDate:[2005,2,28]
			}
		[option内置对象说明]
			startYear:	起始年份，默认2000年
			endYear:	结束年份，默认当前年份
			yearOff:	为0不显示年份下拉列表，不写则默认显示
			monthOff:	为0不显示月份下拉列表，不写则默认显示
			dayOff：	为0不显示日期下拉列表，不写则默认显示
			oSel：		重置下拉列表的NAME和ID名称，数组形式，默认为["selYear","selMonth","selDay"]
			setDate:	为日期下拉列表附加默认值，格式[yyyy,mm,dd]
		*/
		var _startYear	=	(!option || !option.startYear) ? 2000 : option.startYear;
		var endYear		=	(!option || !option.endYear) ? new Date().getFullYear() : option.endYear;
		var objArray	=	(!option || !option.oSel) ? ["selYear","selMonth","selDay"] : option.oSel;

		var yearOff		=	option && option.yearOff==0;
		var monthOff	=	option && option.monthOff==0;
		var dayOff		=	option && option.dayOff==0;

		var html="";
		if(!yearOff){
			html+='<select style="width:60px" name="'+objArray[0]+'" id="'+objArray[0]+'">'
			html+='<option value="">请选择</option>'
			for(i=endYear;i>=_startYear;i--) html+='<option value="'+i+'">'+i+'</option>'
			html+='</select> 年 '
		}
		if(!monthOff){
			html+='<select style="width:60px" name="'+objArray[1]+'" id="'+objArray[1]+'">'
			html+='<option value="">请选择</option>'
			html+='</select> 月 '
		}
		if(!dayOff){
			html+='<select style="width:60px" name="'+objArray[2]+'" id="'+objArray[2]+'">'
			html+='<option value="">请选择</option>'
			html+='</select> 日 '
		}
		objArray[0].value="";
		document.write(html)

		if(_$(objArray[0])){
			_$(objArray[0]).onchange=function(){
				if(_$(objArray[1])) _$(objArray[1]).options.length=1;
				if(_$(objArray[2])) _$(objArray[2]).options.length=1;

				if(_$F(this)!="" && _$(objArray[1])){
					for(var i=1; i<=12; i++){
						var newOption=document.createElement("OPTION"); 
						newOption.value=i; 
						newOption.text =(i<10) ? "0"+i : i; 
						try{_$(objArray[1]).add(newOption,null);}
						catch(e){_$(objArray[1]).add(newOption,-1);}
					}
				}
			}
		}
		if(_$(objArray[1])){
			_$(objArray[1]).onchange=function(){
				var daysLength	=	[31,(parseInt(_$F(objArray[0])) % 4 ==0) ? 29 : 28,31,30,31,30,31,31,30,31,30,31];
				if(_$(objArray[2])) _$(objArray[2]).options.length=1;
				if(_$F(this)!="" && _$(objArray[2])){
					days=daysLength[parseInt(_$F(this))-1]
					for(var i=1; i<=days; i++){
						var newOption=document.createElement("OPTION"); 
						newOption.value=i; 
						newOption.text =(i<10) ? "0"+i : i;
						try{_$(objArray[2]).add(newOption,null);}
						catch(e){_$(objArray[2]).add(newOption,-1);}
					}
				}
			}
		}
		if(option && option.setDate){
			_$(objArray[0]).value=option.setDate[0]

			if(!monthOff) {
				_$(objArray[0]).onchange();
				_$(objArray[1]).value=option.setDate[1];
			}
			if(!dayOff){
				_$(objArray[1]).onchange();
				_$(objArray[2]).value=option.setDate[2];
			}
		}
	}
}

var GRM=new GRMobj()
