/**
 * JS公共模块整合
 * Created on 2007-3-11
 * @author jiabin.heng
 *
 */

/*日期年月日级联菜单动态生成模块*/
function DynamicDateSelection(){
	// A function of date Initialize
	this.init = function( int_default_year , int_default_month , int_default_day ){
		if( !this.bln_init ){
			var obj_date = new Date();
			int_start_year = obj_date.getFullYear();
		}
		if( int_default_year == null )
			int_default_year = obj_date.getFullYear();

		document.getElementById('str_year').options[0] = new Option( "请选择" , "" );
		for( i = 1 ; i <= 100 ; i ++ ){
			document.getElementById('str_year').options[i] = new Option( int_start_year - i + 1 , int_start_year - i + 1 );
			if( (int_start_year - i + 1) == int_default_year )
				document.getElementById('str_year').options[i].selected = true;
		}
		document.getElementById('str_month').options[0] = new Option( "请选择" , "" );
		for( i = 1 ; i <= 12 ; i ++ ){
			if( i <= 9 )
				document.getElementById('str_month').options[i] = new Option( '0'+i , i );
			else
				document.getElementById('str_month').options[i] = new Option( i , i );
			if( i == int_default_month )
				document.getElementById('str_month').options[i].selected = true;
		}
		if( !int_default_month || int_default_month == 0 )
			int_default_month = 1;
		this.onChange( int_default_year , int_default_month , int_default_day );
	};

	//A function of Select Button on change
	this.onChange = function( int_year , int_month , int_day ){
		document.getElementById('str_day').length = 0;
		if( int_year % 4 == 0 )
			var array_month = [31,29,31,30,31,30,31,31,30,31,30,31];
		else
			var array_month = [31,28,31,30,31,30,31,31,30,31,30,31];
		document.getElementById('str_day').options[0] = new Option( "请选择" , "" );
		for( i = 1 ; i <= array_month[int_month - 1] ; i ++ ){
			if( i <= 9 )
				document.getElementById('str_day').options[i] = new Option( '0'+ i , i );
			else
				document.getElementById('str_day').options[i] = new Option( i , i );
			if( i == int_day )
				document.getElementById('str_day').options[i].selected = true;
		}
	};
}

function Dataselect(){
//年
this.birthYear=birthYear;
   function birthYear(divid,thisyear) {
    var year = new Date().getYear();
	year+=10;
    if(year<1000){
            year += 1900;
    }
    var selectyear = thisyear ? thisyear : year-10;
    for(var i=0; i<50; i++)
    {
        value=year;
		text=year;
		document.getElementById(divid).options.add(new Option(text,value));
		if(year==selectyear){
		document.getElementById(divid).options[i].selected = true;
		}
        year--;
    }
}

// 月
this.birthMonth=birthMonth;
function birthMonth(divid,thismonth){
	var divid2=document.getElementById(divid);
	divid2.length="";
    var month;
    month = thismonth ? thismonth-1 : 0;

    for(var i=1; i<=12; i++){
	if(i<10){
	value="0"+i
	}else{
	value=i;
	}
		text=i;
		divid2.options.add(new Option(text,value));
    }
	divid2.options[month].selected = true;
}

//日
this.birthDay=birthDay;
function birthDay(divid,thismoon,thisday){
	var divid2=document.getElementById(divid);
	divid2.length="";
    var day;
    day = thisday ? thisday-1 : 0;
	var end=31;
	if(thismoon==4 || thismoon==6 || thismoon==9 || thismoon==11){
	end=30;
	}else if(thismoon==2){
	end=29
	}
    for(var i=1; i<=end; i++){

	if(i<10){
	value="0"+i
	}else{
	value=i;
	}
		text=i;
		divid2.options.add(new Option(text,value));
    }
		divid2.options[day].selected = true;
}
}


/*区域级联菜单动态生成模块(需要后台ajax,php辅助级数据库支持)*/
var var_id = null;
var mod = null;
function DynamicAreaSelection( method, url, type ){
	var ajax = new HttpRequest(method,url);
	var request;

	function post(callback, param) {
		request = ajax.init();
		ajax.post(request, callback, param);
	}

	this.getArea=function (AreaID){
		var_id = type % 4;
		mod = parseInt( type / 4 );

		if( 0 == AreaID ){
			for( i = var_id ; i < 4 ; i ++  ){
				ajax.$('str_area.' + (i + mod * 4)).style.display = 'none';
			}
			return ;
		}

		if(!/^[0-9]+$/.test(AreaID)){
			return ;
		}
		if( var_id != 0 ){
			ajax.$( 'hid_str_area.' + mod ).value=AreaID;
			for( i = var_id ; i < 4 ; i ++  ){
				ajax.$('str_area.' + (i + mod * 4)).style.display = 'none';
			}
			var param = "str_mod=area_xml&area_id=" + AreaID;
			post(getAreaResult, param);
		}else{
			ajax.$( 'hid_str_area.' + (mod-1) ).value=AreaID;
		}
	};

	var getAreaResult = function (){
		if( request.readyState == 4 ){
			node = request.responseXML.getElementsByTagName('Subarea');
			counts = node.length;
			var ElementID = var_id + mod * 4;
			ajax.$( 'str_area.' + ElementID ).length = 0;
			if( counts > 0 ){
				ajax.$( 'str_area.' + ElementID ).options[0] = new Option( "---请选择---", "0" );
				for( i = 0 ; i < counts ; i++){
					ajax.$( 'str_area.' + ElementID ).options[i+1] = new Option( node[i].firstChild.data , node[i].getAttribute( 'id' ) );
				}
				ajax.$( 'str_area.' + ElementID ).style.display = 'block';
			}
		}
	};
}



/*行业目录级联菜单动态生成模块(需要后台ajax,php辅助级数据库支持)*/
function DynamicCategorySelection( method, url, type ){
	var ajax = new HttpRequest(method,url);
	var request;

	function post(callback, param) {
		request = ajax.init();
		ajax.post(request, callback, param);
	}

	this.getCategory=function (int_cat_id){

		ajax.$( 'hid_str_cat_id').value=int_cat_id;

		if( type=="1" ){
			if( int_cat_id == 0 ){
				ajax.$( 'str_cat_id_2' ).style.display = 'none';
				return false;
			}

			var param = "str_mod=show_category&int_cat_id=" + int_cat_id;
			post(getCategoryResult, param);
		}
	};

	var getCategoryResult = function (){
		if( request.readyState == 4 ){
			node = request.responseXML.getElementsByTagName('SubCategory');
			counts = node.length;
			ajax.$( 'str_cat_id_2' ).length = 0;
			if( counts > 0 ){
				ajax.$( 'str_cat_id_2' ).options[0] = new Option( "---请选择---", "0" );
				for( i = 0 ; i < counts ; i++){
					ajax.$( 'str_cat_id_2' ).options[i+1] = new Option( node[i].firstChild.data , node[i].getAttribute( 'id' ) );
				}
				ajax.$( 'str_cat_id_2' ).style.display = 'block';
			}
		}
	};
}


/*常用正则验证*/
function RegexValidation(){
/*E-mail正则表达式*/
	this.ValidateEmail = ValidateEmail;
	function ValidateEmail(email){
		str=/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/;
		return str.test(email);
	};
	/*英文大小写字符正则验证*/
	this.ValidateEngCode = ValidateEngCode;
	function ValidateEngCode(code){
		str=/^[A-Za-z]+$/;
		return str.test(name);
	};
	/*身份证正则表达式*/
	this.ValidateIDCard = ValidateIDCard;
	function ValidateIDCard (idcard){
		isIDCard1=/^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$/;
		isIDCard2=/^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}[0-9xX]{1}$/;
		return isIDCard1.test(idcard)||isIDCard2.test(idcard);
	};
	/*日期正则表达式 Exp: 年-月-日*/
	this.ValidateDate = ValidateDate;
	function ValidateDate(date){
		str=/^[1|2][0-9]{3}\-[0|1]?[0-9]\-[0|1|2|3]?[0-9]$/;
		return str.test(date)
	};

	/*验证数字0-9*/
	is_numeric
	this.is_numeric = is_numeric;
	function is_numeric(num){
		str = str1=/^[0-9]+$/;
		var num_length = num.length;
		var final_num = "";
		var charNum = "";
		for(i=0;i<num_length;i++){
			var charNum = num.charAt(i);
			if(!str1.test(charNum)){
				switch(charNum){
					case '１':
						final_num=final_num+1;
						break;
					case '２':
						final_num=final_num+2;
						break;
					case '３':
						final_num=final_num+3;
						break;
					case '４':
						final_num=final_num+4;
						break;
					case '５':
						final_num=final_num+5;
						break;
					case '６':
						final_num=final_num+6;
						break;
					case '７':
						final_num=final_num+7;
						break;
					case '８':
						final_num=final_num+8;
						break;
					case '９':
						final_num=final_num+9;
						break;
					case '０':
						final_num=final_num+0;
						break;
					default:
						//alert(charTelno+charTelno);
						return false;
						break;
				}
			}else{
				final_num=final_num+charNum;
			}
		}
		num = final_num;
		return str.test(num)
	};
	/*---------------------------------------*/

	/*验证数字0-9*/
	this.is_numeric2 = is_numeric2;
	function is_numeric2(num){
		str = str1=/^[0-9]+$/;
		var num_length = num.length;
		var final_num = "";
		var charNum = "";
		for(i=0;i<num_length;i++){
			var charNum = num.charAt(i);
			if(!str1.test(charNum)){
				switch(charNum){
					case '１':
						final_num=final_num+1;
						break;
					case '２':
						final_num=final_num+2;
						break;
					case '３':
						final_num=final_num+3;
						break;
					case '４':
						final_num=final_num+4;
						break;
					case '５':
						final_num=final_num+5;
						break;
					case '６':
						final_num=final_num+6;
						break;
					case '７':
						final_num=final_num+7;
						break;
					case '８':
						final_num=final_num+8;
						break;
					case '９':
						final_num=final_num+9;
						break;
					case '０':
						final_num=final_num+0;
						break;
					default:
						//alert(charTelno+charTelno);
						return false;
						break;
				}
			}else{
				final_num=final_num+charNum;
			}
		}
		num = final_num;
		return num;
	};
	/*---------------------------------------*/

	/*数字正则表达式*/
	this.ValidateNum = ValidateNum;
	function ValidateNum(num){
		//str=/^\d+$/;
		str = str1=/^[0-9\-\ ]+$/;
		var num_length = num.length;
		var final_num = "";
		var charNum = "";
		for(i=0;i<num_length;i++){
			var charNum = num.charAt(i);
			if(!str1.test(charNum)){
				switch(charNum){
					case '１':
						final_num=final_num+1;
						break;
					case '２':
						final_num=final_num+2;
						break;
					case '３':
						final_num=final_num+3;
						break;
					case '４':
						final_num=final_num+4;
						break;
					case '５':
						final_num=final_num+5;
						break;
					case '６':
						final_num=final_num+6;
						break;
					case '７':
						final_num=final_num+7;
						break;
					case '８':
						final_num=final_num+8;
						break;
					case '９':
						final_num=final_num+9;
						break;
					case '０':
						final_num=final_num+0;
						break;
					case '－':
						final_num=final_num+"-";
						break;
					default:
						//alert(charTelno+charTelno);
						return false;
						break;
				}
			}else{
				final_num=final_num+charNum;
			}
		}
		num = final_num;
		return str.test(num)
	};
	/*电话传真正则表达式*/
	this.ValidateTeleNum = ValidateTeleNum;
	function ValidateTeleNum(telenum){
		//str=/^[0-9A-Za-z]+[\-]?[0-9A-Za-z]+[\-]?[0-9A-Za-z]+$/;
		var str = str1=/^[0-9\-\ ]+$/;
		var telno_length = telenum.length;
		var final_telno = "";
		var charTelno = "";
		for(i=0;i<telno_length;i++){
			var charTelno = telenum.charAt(i);
			if(!str1.test(charTelno)){
				var temp_telno = "";
				switch(charTelno){
					case '１':
						final_telno=final_telno+1;
						break;
					case '２':
						final_telno=final_telno+2;
						break;
					case '３':
						final_telno=final_telno+3;
						break;
					case '４':
						final_telno=final_telno+4;
						break;
					case '５':
						final_telno=final_telno+5;
						break;
					case '６':
						final_telno=final_telno+6;
						break;
					case '７':
						final_telno=final_telno+7;
						break;
					case '８':
						final_telno=final_telno+8;
						break;
					case '９':
						final_telno=final_telno+9;
						break;
					case '０':
						final_telno=final_telno+0;
						break;
					case '－':
						final_telno=final_telno+"-";
						break;
					default:
						//alert(charTelno+charTelno);
						return false;
						break;
				}
			}else{
				final_telno=final_telno+charTelno;
			}

		}
		telenum = final_telno;
		//alert(telenum);return false;
		return str.test(telenum)	;
	};
	/**英文和数字的正则表达式**/
	this.IsEnglighAndNumber = IsEnglighAndNumber;
	function IsEnglighAndNumber(str){
		var patten=/^[a-zA-Z0-9]*$/;
		return patten.test(str);
	};
	/**注册资本的正则表达式**/
	this.IsCurrencyNumber = IsCurrencyNumber;
	function IsCurrencyNumber(str){
		var patten=/^([0-9])([0-9\,])*([0-9])$/;
		return patten.test(str);
	};
	/*验证正文中是否有email*/
	this.EmailInContent = EmailInContent;
	function EmailInContent(str){
		var patten=/\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/;
		return patten.test(str);
	};
	/*验证中文输入中是否有空格*/
	this.IsblankInChinese = IsblankInChinese;
	function IsblankInChinese(str){
		var patten=/\w+([-+.]\w+)*([ +])\w+([-.]\w+)*\.\w+([-.]\w+)*/;
		var patten1=/\w+([-+.]\w+)*([,])\w+([-.]\w+)*\.\w+([-.]\w+)*/;
		var patten2=/\w+([-+.]\w+)*([.])\w+([-.]\w+)*\.\w+([-.]\w+)*/;
		return patten.test(str) && patten1.test(str) && patten2.test(str);
	}
	/*验证网址*/
	this.ValidateUrl = ValidateUrl;
	function ValidateUrl( str ){
		//var patten = /^(http\:\/\/)?(\w+\.)+\w+(\/\w+)*((\/)|(\/\w+\.\w+))?$/;
		var patten1 = /^(http|https|ftp|HTTP|HTTPS|FTP):\/\/([A-Z0-9][A-Z0-9_-]*)(:(\d+))?\/?/i;
		var patten2 = /^([A-Z0-9][A-Z0-9_-]*)(:(\d+))?\/?/i;
		if ( patten1.test( str ) ){
			return patten1.test( str );
		}else{
			return patten2.test( str );
		}
	}
	//是否只输入空格
	this.is_filled = is_filled;
	function is_filled( input_blank ){
    	while(input_blank.indexOf(" ") == 0 )
        input_blank = input_blank.substring(1,input_blank.length);
    	if( input_blank == ""  ||  input_blank == null ){
        	return false;
    	}else{
        	return true;
    	}
	};
	//去掉字符串 的左边 空格
	this.LTrim = LTrim ;
	function LTrim(str){
		var i;
		for(i=0;i<str.length;i++)  {
			if( str.charAt(i)!=" " && str.charAt(i)!=null && str.charAt(i)!="　")
			break;
		}
		str = str.substring(i,str.length);
		return str;
	};
	//去掉字符串 的右边 空格
	this.RTrim = RTrim ;
	function RTrim(str){
		var i;
		for( i=str.length-1;i>=0;i-- ){
			if( str.charAt(i)!=" " && str.charAt(i)!=null && str.charAt(i)!="　")
			break;
		}
		str = str.substring(0,i+1);
		return str;
	};
	//去掉字符串 的 左右边 空格
	this.Trim = Trim ;
	function Trim(str){
		var trimRe = /^\s+|\s+$/g;
		str = String(str).replace(trimRe,"");
		return LTrim(RTrim(str));
	};


}



/*
	@param objectName: dom对象id
	@param method: get/post
	@param url: 处理页面地址
	@param npg1,npg2,npg3:文本框,单选框div,下拉列表div的id号
	@param pg3_prefix:下拉列表id前缀
*/

function comboSelection(method, url, npg1, npg2, npg3, pg3_prefix ){
	var ajax = new HttpRequest(method,url);
	var request;
	var responseObject;
	var pg1_name=npg1;
	var pg2_name=npg2;
	var pg3_name=npg3;
	var pg1=ajax.$(npg1);
	var pg2=ajax.$(npg2);
	var pg3=ajax.$(npg3);
	var ppg3=pg3_prefix;
	var dealer=url;

	//如果参数数量等于7则认为第7个参数是对于可选级别的限制，大于该级别的选项将不再出现
	var cat_level_limit=0;
	if(arguments.length==7){
		cat_level_limit=arguments[6];
	}

	function post(callback, param) {
		request = ajax.init();
		ajax.post(request, callback, param);
	}

	this.sendTextChange=function(){
		if(ajax.Trim(pg1.value)==""){
			pg2.style.display="none";
			pg3.style.display="block";
			return;
		}
		var param = "str_mod=category_pg1_xml&cat_str=" + pg1.value;
		//该参数通过调用时获得，现改为在初始化中获得
		/*
		if(arguments.length==1){
			param+="&cat_lvl_limit="+arguments[0];
		}//*/
		if(cat_level_limit>0){
			param+="&cat_lvl_limit="+cat_level_limit;
		}
		pg2.style.display="none";
		pg3.style.display="none";
		post(getTextChangeResult, param);
	};

	var getTextChangeResult=function(){
		if( request.readyState == 4 ){
//			alert(request.responseText);
			node = request.responseXML.getElementsByTagName('Subcategory');
			counts = node.length;

			pg2.innerHTML="";

			if( counts > 0 ){
				var str_lvl_limit="";
				for( i = 0 ; i < counts ; i++){
					str_lvl_limit=cat_level_limit>0?","+cat_level_limit:"";
					pg2.innerHTML+="<input name=\"company_major_select\" value=\""+node[i].getAttribute( 'id' )+"\" type=\"radio\" onClick=\"new comboSelection('post','"+dealer+"','"+pg1_name+"','"+pg2_name+"','"+pg3_name+"','"+ppg3+"'"+str_lvl_limit+").sendRadioSelect("+node[i].getAttribute( 'id' )+")\">"+node[i].firstChild.data+"<br>";
				}
				pg2.style.display = 'block';
			}else{
				pg3.style.display = 'block';
			}
		}
	};

	this.sendRadioSelect=function(selectId){
		if(selectId==0){	//选择0的情况只可能发生在首级菜单中，此时将所有下级菜单隐藏即可
			var counter=2;
			while(dwMenu=ajax.$(ppg3+counter)){
				dwMenu.style.display="none";
				counter++;
			}
			return;
		}
		var param = "str_mod=category_pg2_xml&cat_id=" + selectId;
		pg3.style.display="none";
		post(getRadioSelectResult, param);
	};

	var getRadioSelectResult=function(){
		if( request.readyState == 4 ){
//			alert(request.responseText);
			node = request.responseXML.getElementsByTagName('CategoryPath');
			limitLevel=request.responseXML.getElementsByTagName('CategoryLimitLevel');
			limitNodes=request.responseXML.getElementsByTagName('CategoryLimit');

			counts = node.length;
			if( counts > 0 ){
				var categoryLimitNodes=new Array();
				if(limitNodes.length>0){
					categoryLimitNodes=limitNodes[0].firstChild.data.split(",");
				}
				var categoryLimitLevel=limitLevel[0].firstChild.data;


				numCategory=node.length;
				for(i=0;i<numCategory;i++){
					var dwIndex=i+1;

					//隐藏多余的选项v3/*
					if(dwIndex<=categoryLimitLevel && dwIndex>1){
						counts = limitNodes.length;
						ajax.$( ppg3+dwIndex ).options.length=0;
						if(dwIndex==categoryLimitLevel){
							ajax.$( ppg3+dwIndex ).options[0] = new Option( "---请选择---", "0" );
						}

						//添加选项
						if( counts > 0 ){
							var itemIndex=ajax.$( ppg3+dwIndex ).options.length;
							for( ct = 0 ; ct < counts ; ct++){
								if(parseInt(limitNodes[ct].getAttribute( 'level' ))==dwIndex){
									ajax.$( ppg3+dwIndex ).options[itemIndex] = new Option( limitNodes[ct].firstChild.data , limitNodes[ct].getAttribute( 'id' ) );
									itemIndex++;

								}
							}

							ajax.$( ppg3+dwIndex ).style.display = 'block';
						}
					}

					if(dwIndex>(categoryLimitLevel+1)){
						ajax.$( ppg3+dwIndex ).options.length=0;
						ajax.$( ppg3+dwIndex ).style.display = 'none';
					}

					ajax.$(ppg3+dwIndex).value=node[i].firstChild.data;


					//隐藏多余的选单/*
					if((parseInt(node[i].firstChild.data)==0) && (parseInt(node[i-1].firstChild.data)==0) ){
						ajax.$(ppg3+dwIndex).style.display="none";
					}else{
						ajax.$(ppg3+dwIndex).style.display="block";
					}//*/

					//如果最有一级选单为空则隐藏/*
					if(ajax.$( ppg3+dwIndex ).options.length==1){
						ajax.$( ppg3+dwIndex ).style.display = 'none';
					}
					//*/

					//如果有显示级别限制，则只显示该级别及之上级别的选项/*
					if(cat_level_limit>0 && dwIndex>cat_level_limit){
						ajax.$( ppg3+dwIndex ).style.display = 'none';
					}
					//*/
				}

				pg3.style.display = '';
				ajax.$(ppg3+"1").focus();
			}
		}
	};
}