﻿

			 ;(function($)
			  {
				$.extend(
				{	
				
					/*
					 options:对象参数
					    comoboxs:下拉框控件 是个$jquery对象列表
					    data:数据 格式应该是
							[
							 {id:"1",
							  text:"广东省",
							  childs:[
									   {id:"2",
									    text:"珠海市",
									    childs:null
									    }
								     ]
							 }
							]	
					    comboboxsVal:默认下拉框控件选中值列表,
					    comboboxsUnsel:需要提示选择信息数组
					*/
					/*二级或三级下拉菜单联动*/
					comboboxLink:function(opts)
					{						
						var settings = {comboboxs:[], data:null, comboboxsVal:["","",""],comboboxsUnsel:['Select','Select','Select']};
						$.extend(settings,opts);
						
						
						if( settings.data == null || settings.comboboxs.length == 0 || settings.comboboxs.length  > 3)
						{
							return;
						}																								
						//填充数据
						buildComboBoxData(0); //建立第一级数据			
						
						if( settings.comboboxs.length == 2)
						{
							buildComboBoxData(1)
							
							settings.comboboxs[0].bind("change", function(){
								buildComboBoxData(1);								
								});	
							
						}
						
						//绑定事件
						if( settings.comboboxs.length == 3)
						{
							
							
							
							buildComboBoxData(1);
							buildComboBoxData(2);
							
							settings.comboboxs[0].bind("change", function(){
								buildComboBoxData(1);
								buildComboBoxData(2);								
								});	
							settings.comboboxs[1].bind("change", function(){buildComboBoxData(2)});	
							
						}			
						
						settings.comboboxs[0].css("border-width",settings.comboboxs[0].css("border-width"));
																												
						//填充下拉框数据,0表示第一级下拉框
						function buildComboBoxData(iLevel)
						{	
							
							var $objComboBox = settings.comboboxs[iLevel];
							var comboboxVal = settings.comboboxsVal[iLevel];
							var comboboxUnsel = settings.comboboxsUnsel[iLevel];
																					
							
							var ar = null;
							
							var step1_flag = 0;
							var step2_flag = 0;
							
							var step1_val = "";
							var step2_val = "";
							
							var hasAdd = true; //继续添加数据
							switch(iLevel)
							{
								case 0:
								  ar = settings.data;
								  break;
								case 1:
								  step1_flag = settings.comboboxs[0].get(0).selectedIndex;
								  
								  //上一级值
								  step1_val = settings.comboboxs[0].get(0).options[step1_flag].value;
								  
								  if( step1_val == "")
								  {
									hasAdd = false;
								  }
								  else
								  {
									if( settings.comboboxsUnsel[0] != "") //添加一个选择项
									{
										step1_flag -= 1;
									}
									ar = settings.data[step1_flag].childs;
								  }
								  break;
								case 2:
									
								 	 
								  step1_flag = settings.comboboxs[0].get(0).selectedIndex;
								  step2_flag = settings.comboboxs[1].get(0).selectedIndex;
								  
								  step2_val = settings.comboboxs[1].get(0).options[step2_flag].value;
								  
								  
								  
								  if(step2_val == "")
								  {
										hasAdd = false;
								  }
								  else
								  {
									if( settings.comboboxsUnsel[0] != "") //添加一个选择项
									{
										step1_flag -= 1;
									}
									  
									if(settings.comboboxsUnsel[1] != "")
									{
										step2_flag -= 1;
									}
									ar = settings.data[step1_flag].childs[step2_flag].childs;								  
								  }
								  break;										
							}
							var sHtml = '';
							
							if(comboboxUnsel != "")
							{
								sHtml = "<option value=''>" + comboboxUnsel  + "</option>";
							}
							
							if(hasAdd)
							{
								for(var i = 0; i < ar.length;i++)
								{
									var sSelected = "";
									if( ar[i].id == comboboxVal)
									{
										sSelected = " selected ";
									}
									sHtml += "<option value='" + ar[i].id + "'" + sSelected + ">" + ar[i].text + "</option>";
								}
							}
							$objComboBox.html(sHtml);
																								
						}//end buildComboBoxData
					}// end comboboxLink
				}
				)
			  }
			  )(jQuery);
