/**
* @author	wangzp
* @name	jQuery.Stock
* @date	2010-09-29
* @Version	1.0
* @Contact 
*		Email:	wazhpi@qq.com
* @Remarks
* 		股票代码输入搜索下拉框,在原来搜索模型上进行jQuery插件封装
*/
(function($){jQuery.Stock=function(options){var opts={};opts.inputName="input_stock"+Math.random();opts.panelWidth=168;opts.enter=true;opts.listCount=10;opts.strQueryLength=1;opts.stockData=[];opts.openUrl='http://www.shenguang.com/F10/{0}.html';if(options==null){opts.divName="div_"+opts.inputName;opts.tableName="table_"+opts.inputName;options=$.extend(options,opts);}else{options=$.extend(true,opts,options);options.divName="div_"+options.inputName;options.tableName="table_"+options.inputName;};var _htList=new jQuery.Hashtable();$.each(options.stockData,function(i,o){_htList.add(o['code'],o);});options.htList=_htList;$("<div id=\""+options.divName+"\" class='mydiv'></div>").appendTo("body");var dw=parseInt($("#"+options.inputName).width());$("#"+options.divName).width(dw<options.panelWidth?options.panelWidth:dw);$("#"+options.divName).css({"top":parseInt($("#"+options.inputName).offset().top)+parseInt($("#"+options.inputName).height()+5),"left":$("#"+options.inputName).offset().left});$("#"+options.divName).hide();$("#"+options.inputName).focus(function(){dw=parseInt($("#"+options.inputName).width());$("#"+options.divName).width(dw<options.panelWidth?options.panelWidth:dw);$("#"+options.divName).css({"top":parseInt($("#"+options.inputName).offset().top)+parseInt($("#"+options.inputName).height()+5),"left":$("#"+options.inputName).offset().left});});$("#"+options.inputName).keyup(function(e){if((e.which>=48&&e.which<=57&&e.ctrlKey==false&&e.shiftKey==false)||e.which==0){jQuery.Stock.Query(options);}else if((e.which>=65&&e.which<=77&&e.ctrlKey==false&&e.shiftKey==false)||e.which==0){jQuery.Stock.Query(options);}else if((e.which>=96&&e.which<=105&&e.ctrlKey==false&&e.shiftKey==false)||e.which==0){jQuery.Stock.Query(options);}else if((e.which>=65&&e.which<=90&&e.ctrlKey==false&&e.shiftKey==false)||e.which==0){jQuery.Stock.Query(options);}else if(e.which==32){jQuery.Stock.Query(options);}else if(e.which==8){jQuery.Stock.Query(options);}else if(e.which==13){jQuery.Stock.GoOpen(options);}else if(e.which==38){if($("#"+options.divName).css('display')=='none'){return;};var index=$("#"+options.tableName+" tr").size();if(index>0){index--;};var count=index;for(var i=index;i>0;i--){if($("#"+options.tableName+" tr:eq("+i+")").attr("class")=="mySelecttr"){count=i;count--;break;};};for(var i=index;i>0;i--){if(i==count&&count>0){$("#"+options.tableName+" tr:eq("+count+")").attr("class","mySelecttr");$("#"+options.inputName).val($("#"+options.tableName+" tr:eq("+count+")").attr("id"));}else{$("#"+options.tableName+" tr:eq("+i+")").attr("class","mytr");};};}else if(e.which==40){if($("#"+options.divName).css('display')=='none'){return;};var index=$("#"+options.tableName+" tr").size();var count=1;for(var i=1;i<index;i++){if($("#"+options.tableName+" tr:eq("+i+")").attr("class")=="mySelecttr"){count=i;count++;break;};};for(var i=1;i<index;i++){if(i==count){$("#"+options.tableName+" tr:eq("+count+")").attr("class","mySelecttr");$("#"+options.inputName).val($("#"+options.tableName+" tr:eq("+count+")").attr("id"));}else{$("#"+options.tableName+" tr:eq("+i+")").attr("class","mytr");};};};});$(document).click(function(){$("#"+options.divName).hide();});};jQuery.Stock.GoOpen=function(options){var codeValue=$("#"+options.inputName).val();if(options.htList.containsKey(codeValue)&&options.enter){$("#"+options.divName).hide();window.open(options.openUrl.replace('{0}',codeValue));}else if(codeValue.length!=6){$("#"+options.inputName).val('');}else{$("#"+options.divName).hide();};};jQuery.Stock.Query=function(options){var value=$("#"+options.inputName).val();if(value.length<options.strQueryLength){$("#"+options.divName).hide();return;};var reg=value.toUpperCase();var regcode=new RegExp(reg);var data=new jQuery.Hashtable();var maxcount=options.listCount;var index=0;for(var c in options.htList.items){var _o=options.htList.get(c);if(regcode.test(c)||regcode.test(_o['abc'])||regcode.test(_o['name'])){data.add(c,options.htList.get(c));index++;if(index==maxcount){break;};};};var html="<table id=\""+options.tableName+"\" width=\"100%\" cellpadding=\"1\" cellspacing=\"0\">";html+="<tr class=\"topRow\">";html+="<td class=\"mytd\">股票代码</td>";html+="<td class=\"mytd\">股票名称</td>";html+="<td class=\"mytd\">股票拼音</td>";html+="</tr>";var isDiv=false;for(var c in data.items){var v=data.get(c);html+="<tr class=\"mytr\" id=\""+v['code']+"\">";html+="<td class=\"mytd\">"+v['code'].replace(reg,'<font color="red">'+reg+'</font>')+"</td>";html+="<td class=\"mytd\">"+v['name'].replace(reg,'<font color="red">'+reg+'</font>')+"</td>";html+="<td class=\"mytd\">"+v['abc'].replace(reg,'<font color="red">'+reg+'</font>')+"</td>";html+="</tr>";isDiv=true;};html+="</table>";if(isDiv){$("#"+options.divName).show();$("#"+options.divName).html(html);$("#"+options.divName+" tr").hover(function(){if(!$(this).hasClass("topRow")){$("#"+options.tableName+" tr[class = mySelecttr]").attr("class","mytr");$(this).attr("class","mySelecttr");$("#"+options.inputName).val($(this).attr("id"));};},function(){if(!$(this).hasClass("topRow")){$(this).attr("class","mytr");};});}else{$("#"+options.divName).hide();};};})(jQuery);

