	var ns4 = (document.layers)? true:false
	var ns6 = (!document.all && document.getElementById)? true:false
	var ie4 = (document.all)? true:false
    var v_fields_array      = new Array();
    var v_fields_name_array = new Array();
	var imgPlayOff, imgPlayDown, sqlQuery = "", collumn_name = "", v_leverage = "", n_with_leverage="" , n_without_leverage ="";
	var  flag   = 0, slider_flag_x = 0,  slider_flag = -1, v_no_move = -1; //0 --  left; 1 -- right
	var  v_category_flag = 0; /// 1 -- show category or famility. -1 none
	var  v_exposure = 0, v_exp_list = "";
	var  v_slider   = 0;
	var  data_min   =100, data_max= 200
	var  v_dx = 300;

   	function changeBackground(strURL, col) 
	{ 
        document.getElementById("div" + col).style.backgroundImage = "url("+strURL+")";
	} 
	
	function changeBackground_1(strURL, info, col) 
	{ 
        document.getElementById("div" + col).style.backgroundImage = "url("+strURL+info +")";
	} 
	function getColumnIndex(col)
	{
	   for (var i=0; i<v_fields_array.length; i++)
	   {
	     if (v_fields_array[i] == col)
	        return i+4;
	   }
	   return -1;
	}
	
	function getColumnIndex_1(col)
	{
	
	   for (var i=0; i<v_fields_array.length; i++)
	   {
	     if (v_fields_array[i] == col)
	        return i;
	   }
	   return -1;
	}
	function IsInCriteria(col)
	{
	  for (var i=0; i< v_criteria.length; i++)
	  {
		 if (col == v_criteria[i].ColumnName)
		 {
		    return 1;
		  }
	  }
	  return -1;
	}
	function getCriteriaIndex(col)
	{
	  for (var i=0; i< v_criteria.length; i++)
	  {
		 if (col == v_criteria[i].ColumnName)
		 {
		    return i;
		  }
	  }
	  return -1;
	}
	function resetCriteriaIndex(n)
	{
	  var ar  = new Array();
	  var k   = 0;
	  for (var i=0; i< v_criteria.length; i++)
	  {
	      
		  if (n == i)
		    continue;
		 else
		    ar[k++] = v_criteria[i];
	  }
	  return ar;
	}
	
    function setDaysByX(x)
    {
      var t = collumn_name;
      v_slider = getCriteriaIndex(collumn_name)
      v_slider = parseInt(v_slider)
      if (flag == 0 )
         x+= 10;
      var d = v_criteria[v_slider].min + v_criteria[v_slider].scale * x;
      d     = d+"";
      if (d.indexOf(".")>= 0)
      {
         d = d+"0000";
         d = d.substring(0, d.indexOf(".")+3)
      }
      if( t.toUpperCase().indexOf("RATING")>=0 ||  t.toUpperCase().indexOf("BOX")>=0)
         d =  parseInt(d);
  
      var num = 0;
      if (x >=0 && x <= 300)
      {
		if (flag == 0 ) 
		{    
		    if (x < 2 )
              d =  v_criteria[v_slider].min;
    
		    v_criteria[v_slider].x_l  = x; 
		    v_criteria[v_slider].low  = d
		    v_criteria[v_slider].low  = d; 
			findObj("left"+t).value   = d;
		//	num = getNumOfETF(v_criteria[v_slider].info, x, v_criteria[v_slider].x_r)
		}else{
		    if (x >= 298  )
              d =  v_criteria[v_slider].max;  
		    v_criteria[v_slider].x_r  = x; 
		   if( collumn_name.toUpperCase().indexOf("RATING")>=0 || collumn_name.toUpperCase().indexOf("BOX")>=0)
		      v_criteria[v_slider].high = (d+1); 
		    else
		        v_criteria[v_slider].high = d; 
			findObj("right"+t).value  = d;
		//	num = getNumOfETF(v_criteria[v_slider].info,  v_criteria[v_slider].x_l, x)
		}
		//alert(v_criteria[v_slider].info)
	  //	findObj("numOf"+ v_criteria[v_slider]).innerHTML   = '<span class="nr_ii"> ('+num+')</span>';
       }
    }
    function getNumOfETF(info, x1, x2)
    {
        var ss = info.split('|');
        var k = 0; 
        x1 = parseInt(parseInt(x1)/6 +"");
        x2 = parseInt(parseInt(x2)/6 +"");
        for (var i= x1; i<= x2; i++)
        {
           if (ss[i] != "")
           k += parseInt(ss[i])
        }
        return k;
    }
    function toNumber(s)
    {
       var n= s.replace("px", "")
       return parseInt(n)+3;
    }
    function down(s, key, v)
    {
      flag         = v;
      collumn_name = s;
      v_slider = parseInt(key);
      if (v  == 0)
      {
         slider_flag = 0;
         slider_flag_x =  toNumber(findObj("rright"+s).style.left)
     } else{
         slider_flag = 1;
         slider_flag_x =  toNumber(findObj("lleft"+s).style.left)
      }
    }
    function getXOfValue(v, min, scale, dx)
    {
       var x =   (parseFloat(v) - parseFloat(min))/ parseFloat(scale) - parseInt(dx); 
       return x;
    }

    function gen_slider(sname,colname, v_bars, v_info, v_bars_mx, min, max,  low, high)
    {
       var key   = v_criteria.length;
       var ind   =  getColumnIndex(colname);
       var scale = (parseFloat(max) - parseFloat(min))/v_dx;
       if( colname.toUpperCase().indexOf("RATING")>=0) 
           scale = (parseFloat(max) - parseFloat(min) + 1)/v_dx;
       else if( colname.toUpperCase().indexOf("BOX")>=0)
           scale = (parseFloat(max) - parseFloat(min) + 1)/v_dx;
       v_criteria[v_criteria.length] = {index:ind, name:sname, min: parseFloat(min), max: parseFloat(max), low: parseFloat(low), high: parseFloat(high),scale: scale, ColumnName: colname, info: v_info, sort:-1, x_l:0, x_r: 300, num:0};
       var div = '<div id="div'+colname+'" style="position:relative;left:10px;top:-5px;width:300px;height:40px;Z-INDEX:2000;background-repeat:no-repeat;">'//<div style="position:relative;">'
       div += '<div  id="histogram_'
       div += colname
       div += '">'
       if( colname.toUpperCase().indexOf("BOX")>=0)
          div += generate_StyleBox_histogram(colname, v_bars, v_bars_mx
          , 1)
       else if( colname.toUpperCase().indexOf("RATING")>=0) 
          div += generate_starRating_histogram(colname, v_bars, v_bars_mx, 1)
       else
          div += generate_histogram(colname, v_bars, v_bars_mx, 1)
       div += '</div>'
       if (low < min )
          low = min;
	   var obj = '<img id="left_img'+colname+'" onmousedown=down("'+colname+'","'+ key +'",0) src="img/slider_left.png" >'
	   var x   = getXOfValue(low, min, scale, 10)
	   div += 	createDragableLayer_2('lleft' +colname,
				obj, //contents of dragable layer (can contain HTML etc.)
				x,                       //left coordinate of dragable layer
				5,                      //top coordinate of dragable layer
				1,                      //width of dragable layer
				1,                       //optional: height of dragable layer (use null for default)
				'null',                 //optional: background colour of dragable layer (use null for default)
				-45,
				50	
			);
		
	     obj = '<img id="right_img'+colname+ '" onmousedown=down("' + colname +'","' +key + '",1) src="img/slider_right.png" >'
	     x   = getXOfValue(high, min, scale, 0)
	     if( colname.toUpperCase().indexOf("BOX")>=0 || colname.toUpperCase().indexOf("RATING")>=0)
	        x = getXOfValue( parseInt(high)+1, min, scale, 0)
		 div += createDragableLayer_2('rright' +colname,
				obj, //contents of dragable layer (can contain HTML etc.)
				x,                       //left coordinate of dragable layer
				5,                      //top coordinate of dragable layer
				1,                      //width of dragable layer
				1,                       //optional: height of dragable layer (use null for default)
				'null',                 //optional: background colour of dragable layer (use null for default)
				0,
				100
			);

		div += '</div>'
        return  div;
       
     
    }
    function changeCriteria(colname, mx, v)
    {

     //  findObj("numOf"+colname).innerHTML   = '<span class="nr_ii">'+v+'</span>';
       document.body.style.cursor = 'wait';
       var s = mx.split('|');
       var k = getCriteriaIndex(colname)
       v_criteria[k].low  = s[0];
       v_criteria[k].high = s[1];
       findObj("left"+ colname).value  = s[0];
       if( colname.toUpperCase().indexOf("RATING")>=0 || colname.toUpperCase().indexOf("BOX")>=0) 
       {
         if (s[1] == "10" || s[1] == "6")
            findObj("right"+colname).value  = parseInt(s[1]) -1;
         else
            findObj("right"+colname).value  = s[1];
       }else
	     findObj("right"+colname).value  = s[1];
       var x = (parseFloat(s[0]) - parseFloat(v_criteria[k].min))/parseFloat(v_criteria[k].scale);
       findObj('lleft'+ colname).style.left = x-9;    
       x = (parseFloat(s[1]) - parseFloat(v_criteria[k].min))/parseFloat(v_criteria[k].scale);
       if( colname.toUpperCase().indexOf("RATING")>=0) 
         x = x -  6;
	   findObj('rright'+ colname).style.left = x;
	   n_begin_page = 1;
	   curRowCount = (maxCol*(n_begin_page -1 ));
	   iTo = curRowCount + maxCol;
	   resetResults_Data()

    }
    function changeColor_1(x,  col)
    {
       x.lastChild.style.background ="#dedede"; 
    }
    function revertColor_1(x,col)
    {
       x.lastChild.style.background ="#c5c5c5";
    }
    function changeColor(x, col)
    {
       x.style.background ="#dedede"; 
    }
    function revertColor(x,col)
    {
       x.style.background ="#c5c5c5";
    }
    function test(t, col , v)
    {
      alert(t.id +"  "+ col)
    }
	function generate_histogram(col, bar_height, mnmx, n)
	{
		var mnmx_ar   = mnmx.split('^');
		var bar_h_ar  = bar_height.split('!');

		var w = 29;
	    var	div ='<table class="inner_tb" cellspacing="0" cellpadding="0" border="0"'
		div += ' style="position:relative; top:3px;">'
		div +='<tbody>'
		div +='<tr>'
		for (var i=0; i< bar_h_ar.length;i++)
		{
		    var temp = bar_h_ar[i].split('|');
		   	var value =  temp[1];
			div +='<td><div style="background-color: rgb(255, 255, 255); width: 1px;"></div></td>'
			div += '<td style="vertical-align: bottom; padding-left: 0px;  height: 30px;">'
			div += '<div style="text-align: center;" id="id'  /// container of bar
			div += col
			div += i
			div += '"  OnMouseUp=changeCriteria("'
			div += col
			div += '","'
			div += mnmx_ar[i]
			div += '","'
			div += value
		//	div += '") OnMouseOut=revertColor_1(this,"'
		 	div += '"); OnMouseOver=changeColor_1(this,"'
			div += col
			div += i
			div += '") OnMouseOut=revertColor_1(this,"'
			div += col
			div += i
			div += '")>'
		 	div += '<span class="nr_ii">'+value+'</span>';	
			/// bars
			if (parseInt(temp[0]) == 0){
				div += '<div style="overflow: hidden; background-color: rgb(255, 255, 255); width:'
				div += w
				div += 'px; height:'
				div += '1'
			}else{
				div += '<div  style="overflow: hidden; background-color: #c5c5c5; width:'
				div += w
				div += 'px; height:'
			    div += temp[0]
			}
		    
			div += 'px;" '
			div += 'OnMouseOver=changeColor(this,"'
			div += col
			div += i
			div += '") OnMouseOut=revertColor(this,"'
			div += col
			div += i
			div += '")></div>'  // end of bars
			div += '</div>'     // end of container
			div += '</td>'
		}
		div +='</TR>'
		div +='</TABLE>'
		return div;
   } 
    function generate_StyleBox_histogram(col, bar_height, mnmx, n)
	{
	 	var mnmx_ar   = mnmx.split('^');
		var bar_h_ar  = bar_height.split('!');

		var w = 32;
	    var	div ='<table class="inner_tb" cellspacing="0" cellpadding="0" border="0"'
		div += ' style="position:relative; top:3px; height:60px;">'
		div +='<tbody>'
		div +='<tr>'
		for (var i=0; i< 9;i++)
		{
		    var temp = bar_h_ar[i].split('|');
		   	var value =  temp[1];
			div +='<td><div style="background-color: rgb(255, 255, 255); width: 1px;"></div></td>'
			div += '<td style="vertical-align: bottom; padding-left: 0px;  height: 30px;">'
			div += '<div style="text-align: center;" id="id'  /// container of bar
			div += col
			div += i
			div += '"  OnMouseUp=changeCriteria("'
			div += col
			div += '","'
			div += mnmx_ar[i]
			div += '"); OnMouseOver=changeColor_1(this,"'
			div += col
			div += i
			div += '") OnMouseOut=revertColor_1(this,"'
			div += col
			div += i
			div += '")>'
		 	div += '<span class="nr_ii">'+value+'</span>';	
			/// bars
			if (parseInt(temp[0]) == 0){
				div += '<div style="overflow: hidden; background-color: rgb(255, 255, 255); width:'
				div += w
				div += 'px; height:'
				div += '1'
			}else{
				div += '<div  style="overflow: hidden; background-color: #c5c5c5; width:'
				div += w
				div += 'px; height:'
			    div += temp[0]
			}
		    
			div += 'px;" '
			div += 'OnMouseOver=changeColor(this,"'
			div += col
			div += i
			div += '") OnMouseOut=revertColor(this,"'
			div += col
			div += i
			div += '")>'
	
			div += '</div>'  // end of bars
			
			div += '</div>'     // end of container
			div += '</td>'
		}
		div +='</TR>'
		div +='<tr>'
		div +='<td colspan = "10" heigth="2px">'
		div +='</TR>'
		div +='<tr>'
		for (var i=0; i< 9;i++)
		{
		  div +='<td><div style="background-color: rgb(255, 255, 255); width: 1px;"></div></td>'
		  div +='<td align="center" height="15" valign="bottom">'
		   if( col.toUpperCase().indexOf("BOX")>=0)
			  div += '<img width="13" height="13" src='+getStyleBox_1((i+1))  +'>'
		   div +='</td>'
		}
		div +='</TR>'
		div +='</TABLE>'
		return div;
   } 
  function generate_starRating_histogram(col, bar_height, mnmx, n)
	{
		var mnmx_ar   = mnmx.split('^');
		var bar_h_ar  = bar_height.split('!');

		var w = 58;
	    var	div ='<table class="inner_tb" cellspacing="0" cellpadding="0" border="0"'
		div += ' style="position:relative; top:3px;height:60px;">'
		div +='<tbody>'
		div +='<tr>'
		for (var i=0; i< 5;i++)
		{
		    var temp = bar_h_ar[i].split('|');
		   	var value =  temp[1];
			div +='<td><div style="background-color: rgb(255, 255, 255); width: 1px;"></div></td>'
			div += '<td style="vertical-align: bottom; padding-left: 0px;  height: 42px;">'
			div += '<div style="text-align: center;" id="id'  /// container of bar
			div += col
			div += i
			div += '"  OnMouseUp=changeCriteria("'
			div += col
			div += '","'
			div += mnmx_ar[i]
			div += '"); OnMouseOver=changeColor_1(this,"'
			div += col
			div += i
			div += '") OnMouseOut=revertColor_1(this,"'
			div += col
			div += i
			div += '")>'
		 	div += '<span class="nr_ii">'+value+'</span>';	
			/// bars
			if (parseInt(temp[0]) == 0){
				div += '<div style="top:10;overflow: hidden; background-color: rgb(255, 255, 255); width:'
				div += w
				div += 'px; height:'
				div += '1'
			}else{
				div += '<div  style="top:10;overflow: hidden; background-color: #c5c5c5; width:'
				div += w
				div += 'px; height:'
			    div += temp[0]
			}
		    
			div += 'px;" '
			div += 'OnMouseOver=changeColor(this,"'
			div += col
			div += i
			div += '") OnMouseOut=revertColor(this,"'
			div += col
			div += i
			div += '")>'
			div += '</div>'  // end of bars
			div += '</div>'     // end of container
			div += '</td>'
		}
		div +='</TR>'
		div +='<tr>'
		div +='<td colspan = "10" heigth="2px">'
		div +='</TR>'
		div +='<tr>'
		for (var i=0; i< 5;i++)
		{
		  div +='<td><div style="background-color: rgb(255, 255, 255); width: 1px;"></div></td>'
		  div +='<td align="center">'
		  if( col.toUpperCase().indexOf("RATING")>=0)
			  div += '<img  src='+getStarRating_small((i+1))  +'>'
		   div +='</td>'
		}
		div +='</TR>'
		div +='</TABLE>'
		return div;
   }
   function getStarRating_small(v)
   {
		v = parseInt(v)
		var starRating ="http://im.morningstar.com/im/1stars.gif"
		switch(v) 
		{
			case 1:
				starRating ="img/1stars.gif"
				break;
			case 2:
				starRating ="img/2stars.gif"
				break;
			case 3:
				starRating ="img/3stars.gif"
				break;
			case 4:
				starRating ="img/4stars.gif"
				break;
			case 5:
				starRating ="img/5stars.gif"
				break;		
			default:
				starRating ="http://im.morningstar.com/im/dot_clear.gif"
				break;
		}
		return starRating;
	}
	function toScatterplot()
	{
	    nScatter = 1;
	    onProcessData(v_data);
	    flashMovie("chart").onSetData(v_flash_data);
	 //   findObj("f_div").style.left = 10;
	  //  showT("f_div")
	    hide("comp_table")
	    hide("detail_table");
		resetXY_select("SelectX_Data")
		resetXY_select("SelectY_Data")
     //   hide("waitting");
	}
	function toDetailView()
	{
	   nScatter = 0;
	   findObj("detail_table").innerHTML = getTable_view(v_results); 
	   hide("comp_table")
	//   hide("f_div");
	   showT("detail_table");
	 //  showT("pn")
	 //  showT("rs")
	}
	function toCompareView()
	{
	   if (selected_data == "|")
	   {
	     alert("Please select ETF to compare");
	     return;
	   }
	   nScatter = 0;
	   findObj("comp_table").innerHTML = getCompare_view()
	   showT("comp_table")
	   hide("detail_table");
	//   hide("f_div");
	}
	
    function update_scatterplot()
    { 
        loading();
        n_begin_page = 1;
		curRowCount = (maxCol*(n_begin_page -1 ));
		iTo = curRowCount + maxCol;
 	    resetResults_Data()
    }
	
    function ChangeCategory(v)
    {
		update_scatterplot()
    }
    
    function ChangeFundFamily()
    {
        update_scatterplot()
    }
    function ChangeX_Data()
    {
      var index    = findObj("SelectX_Data").selectedIndex;     
      var n = findObj("SelectX_Data").options[index].value;

      toPlot(n, 0)
    }
    function ChangeY_Data()
    {
      var index    = findObj("SelectY_Data").selectedIndex;     
      var n = findObj("SelectX_Data").options[index].value;
      toPlot(n, 1)
    }
   //name, col_name, bars, info,  min, max, low, high)
	function addRowToTable(name, num, col_name, bars, info, bars_mx, min, max, low, high)
	{
	  //  while (name.indexOf(" ") >= 0)
      //  {
      //     name = name.replace(" ", "&nbsp;");
      // }
        last_k++;
		var tbl = document.getElementById('tblSample');
		var lastRow = tbl.rows.length;
		if (v_slider < lastRow)
		     v_slider = lastRow -1;
		// if there's no header row in the table, then iteration = lastRow + 1
		var iteration = lastRow;
		var row = tbl.insertRow(lastRow);
	 	row.className = "bt_line";
		//  cell 0
		
	
		var cellLeft = row.insertCell(0);
		var el = document.createElement('div');
		el.className = "msSmall";
		el.innerHTML = name;
		cellLeft.appendChild(el);
		//  cell 1	 
		var cellLeft = row.insertCell(1);
		var el = document.createElement('div');
		el.className = "nr_ii";
		el.id = 'numOf' + col_name;
	 	el.innerHTML = num;
		cellLeft.appendChild(el);
		 
	    // cell 1
		/// left minimum 
		var cellRightSel = row.insertCell(2);
		var sel = document.createElement('input');
		sel.className ="range";
		sel.id = 'left' + col_name;
		sel.value = low
		sel.width = 80;
		sel.onkeydown = onEnter;     
		cellRightSel.appendChild(sel);
		

		 // cell 2		 
		var span = document.createElement('span');
		span.className = "dash";
		span.innerHTML = "&nbsp;&mdash;&nbsp;";
	
		cellRightSel.appendChild(span);
		/// right minimum 

		var sel = document.createElement('input');
		sel.className ="range";
		sel.id = 'right' + col_name;
		sel.width = 80;
		sel.value = high
	    sel.onkeydown = onEnter;      
		cellRightSel.appendChild(sel);
		
		 // cell 3
		var cellRight = row.insertCell(3);
		var el = document.createElement('div');
		el.id = 'txtRow' + iteration;
		
		if( col_name.toUpperCase().indexOf("RATING")>=0 ||  col_name.toUpperCase().indexOf("BOX")>=0)
		el.className="c_height";
		
		el.innerHTML = gen_slider(name,col_name,bars, info, bars_mx, min, max, low, high);
		  
		// el.onkeypress = keyPressTest;
		cellRight.appendChild(el);
       // cell 4
		//
		var cellRightSel = row.insertCell(4);
		var sel     = document.createElement('img');
		sel.src     = "img/x_remove.gif";
		sel.name    = col_name 
	    sel.onclick = onDelete;
		cellRightSel.appendChild(sel);
	 // Jquery change text field background
			
		$(".range").hover(function () {
			$(this).siblings().not('.dash').css(  {'background-color' : '#E6F2F9'});
			$(this).css(  {'background-color' : '#E6F2F9'});
			}, function () {
			$(this).siblings().not('.dash').css({'background-color' : ''});
			$(this).css({'background-color' : ''});
		});
	 
	}
	
	function onEnter(e)
	{   
		if(e == undefined)
		{
			e = event;
		}
		if(e.keyCode == 13)
		{			    
			if(ie4)
				e.returnValue = false;		// cancel event for IE
			else	
				e.preventDefault();			// cancel event for Firefox and others
		  var col = this.id;
	
		  if (col.indexOf("left")>=0)
		  {
		      collumn_name = col.substring(col.indexOf("left") +4);
		      v_slider = getCriteriaIndex(collumn_name)
              v_slider = parseInt(v_slider)
		      v_criteria[v_slider].low  = this.value; 
		      var x = (parseFloat(this.value) - parseFloat(v_criteria[v_slider].min))/parseFloat(v_criteria[v_slider].scale);	
		      if (x < 0) x = 0;	     
		      findObj('lleft'+ collumn_name).style.left = x;
		  }else{
		      collumn_name = col.substring(col.indexOf("right") +5);
		      v_slider = getCriteriaIndex(collumn_name)
              v_slider = parseInt(v_slider)
		      v_criteria[v_slider].high  = this.value; 
		      var x = (parseFloat(this.value) - parseFloat(v_criteria[v_slider].min))/parseFloat(v_criteria[v_slider].scale);
               if (x > 300) x = 300;
		      findObj('rright'+ collumn_name).style.left = x;
		  }
		   update_scatterplot()
		}
	}
	function initialize_cri()
	{

	   var s= "PriceChange|MMC|PriceChangePct52Wk|PriceOverFairValue"
	   var cri = s.split('|')
	   for (var i=0; i< cri.length; i++)
	   {
	     var v = cri[i];
	     var dym= '#'+ v +'1 .added_bt'
	     var dym_ii= '#'+ v +'1 .add_bt'
		 $(dym).fadeIn();
		 $(dym_ii).hide();
		
	   }
	}
	function clear_all()
	{	

			$("#my_win_ii").slideUp("fast");
			$("#my_edit_ii").removeClass('xsel8');
			$("#my_edit_ii").addClass('sel8');
			$("#screen_name_display").html("");
			
			$('#cat_level_two .added_bt').hide();
			$('#cat_level_two .add_bt').fadeIn();

	   for (var i=0; i<v_fields_array.length; i++)
	   {
	        var v = v_fields_array[i];
			$("#"+v).html("Add Criteria");
			$("#"+v).removeClass('added_bt'); 
			$("#"+v).addClass('add_bt');	
	   }
    //   findObj("screen_name").value ="";
		l_clear();
	    var tbl = document.getElementById('tblSample');
	  	var lastRow = tbl.rows.length;
	    while ( lastRow >1)
	    {
			lastRow = tbl.rows.length -1 ;
			tbl.deleteRow(lastRow);
		}
	    v_results   = new Array();
	    v_criteria  = new Array();
	    v_results_ar      = new Array();
	    v_stock_exposure  = new Array();
	    n_sort_col = -1;
	    n_sort_field =-1;
	    findObj("added_cat_list").HTML = "";
	    
	    total_rows  = 0;
	    v_category  = "";
	    v_family    = "";
	    v_leverage  = "";
	    findObj("rs").innerHTML  = total_rows;
		findObj("detail_table").innerHTML = getTable_view(v_results); 

	}	
	function onDelete()
	{
		last_k--;
	    var v = this.name;
	    $("#"+v).html("Add Criteria")
        $("#"+v).removeClass('added_bt'); 
		$("#"+v).addClass('add_bt');	
      //  reset_Weighting_list(v)
	    var n = getCriteriaIndex(v)	 
	    removeRowFromTable(n)
	    n_begin_page  = 1;
	    if (n <= 0 && v_criteria.length == 1)
	    {	
	       total_rows   = 0;
	       v_criteria   = new Array();  
	       if (v_category != "")
	         unselect_categories(v_category )
	       if (v_family != "")
	         unselect_categories(v_family )
	       findObj("added_cat_list").innerHTML = "";
	       resetResults_Data()
	       return;
	    }

	    v_criteria = resetCriteriaIndex(n)
	    if (v_criteria.length == 0)
	        findObj("screen_name").value = ""
	  //  else
	 //   	findObj("screen_name").value = findObj("screen_name").value +"*";
		if (n ==  v_criteria.length)
		    n = n-1;
	    resetResults_Data();
	}
	
	function unselect_categories(tmp)
	{   
		if (tmp != "")
		{
			var temp = tmp.split('|')
			for (var i=0; i< temp.length; i++)
			{
				v = temp[i];
				var j_v= toDash(v.toLowerCase())
				$('#cat_'+ j_v +' .added_bt').hide();
				$('#cat_'+ j_v +' .add_bt').fadeIn();
			}
		}
	}
	function onDeleteAll()
	{
	    var tbl = document.getElementById('tblSample');
	  	var lastRow = tbl.rows.length;
	    while ( lastRow >1)
	    {
			lastRow = tbl.rows.length -1 ;
			tbl.deleteRow(lastRow);
		}
		defaultCriteria()
		findObj("detail_table").innerHTML = getTable_view(v_results); 
	}
	function removeRowFromTable(v)
	{
		var tbl = document.getElementById('tblSample');
		var lastRow = tbl.rows.length;
		if (lastRow > 0) tbl.deleteRow(parseInt(v)+1);
	}
    function Change_Exposure(col_name)
	{   
	     last_k++;
	     var index = get_weighting_index(col_name)
	     if ( index >= 0)
	     {
	        //dan chen
	         //has been added message
			$("#exp_msg_title").html('<span class="alert_msg">% Exposure to '+col_name+' has already beed selected.</span>')
			$("#exp_msg_title, #exp_msg").fadeIn();
					
			$.timer(4000, function (timer) {
			$("#exp_msg").fadeOut("" );
				 
			timer.stop();
			}); 
					//message end
	        return "y";
	     }
	     //has been added message
		 $("#exp_msg_title").html('<span class="okay_msg">% Exposure to '+col_name+' has been added</span>')
		 $("#exp_msg_title, #exp_msg").fadeIn();
					
		 $.timer(4000, function (timer) {
		 $("#exp_msg").fadeOut("" );
				 
		 timer.stop();
	
		 }); 
		 return "";
		 //message end
	}

	function ChangeCriteria_Child_1(v)
	{
       var  col_name = v.id;
     ///   alert(col_name)  exposure -- is weightings
       if (debug < 1)
       {
		if (v_UserType != "P" &&  (col_name == "PriceOverFairValue" ||  col_name == "FairValue" || col_name == "ConsiderBuy" ||
			col_name == "ConsiderSell" || col_name == "CoverageRate" || col_name == "MoatPercentWide" || col_name == "MoatPercentNarrow" ||
			col_name == "MoatPercentNone" ))
		{
			//    alert("check_member()")
				check_member()
				return;
		}
       }

       var  thisText = v.innerHTML;
       if (thisText.indexOf("ed") >=0)
       {
          var index = getColumnIndex_1(col_name)
         //  find column name and etf name
           var txt_name  = v_fields_name_array[ parseInt(index)];
           while (txt_name.indexOf("<br>") >=0 )
           {
             txt_name = txt_name.replace("<br>", " ")
           }
          // alert(txt_name + " has already selected.")
           return;           
       }else  if (col_name != "exposure"){
		
			if (findObj("screen_name").value == "" )
			    {
					findObj("screen_name").value = "My Screen";
				}
			else if(v_criteria.length > 10)
			{
				alert("Only allow 10 maximum criterias.");
				return;
			}
		//	else
		//	    findObj("screen_name").value =findObj("screen_name").value +"*";
			
		    v.innerHTML  ="Criteria Added";   
	        $("#"+col_name).removeClass('add_bt'); 
			$("#"+col_name).addClass('added_bt');
				
       }
       // get collumn  index   
       n_begin_page = 1;
       if (col_name == "exposure")
       {
       // loading message
		  $("#exp_msg_title").html('<span class="proc">Processing ...</span>')
		  $("#exp_msg_title, #exp_msg").fadeIn();
					
		  $.timer(2000, function (timer) {
		  $("#exp_msg").fadeOut("" );				 
					timer.stop();
		  }); 
						
		//loading message end       
          hideSmartInputFloater();
		  v_exposure_ticker = findObj("tb").value.toUpperCase();
		  findObj("tb").value = "";		
		  getETF_Weightings(v_exposure_ticker)
	   }else if (col_name.indexOf("leverage")>=0)
       {
		   if (col_name.indexOf("yes")>=0)
		   {
		      n_with_leverage = findObj("yes_leverage2").innerHTML;
		      total_rows      = n_with_leverage.replace("(", "");
		      total_rows      = total_rows.replace(")", "");
		   }else if (col_name.indexOf("no")>=0)
		   {
		      n_without_leverage  =   findObj("no_leverage2").innerHTML  
		      total_rows = n_without_leverage.replace("(", "");
		      total_rows = total_rows.replace(")", ""); 
		   }
		   if (	  v_leverage == "") 	      
		       v_leverage =  col_name ;
		   else
		       v_leverage =  v_leverage +"|"+  col_name;
	       curRowCount = 0;
	       iTo  = maxCol;
	       n_begin_page  = 1;	       
	       reset_leverageResults_Data(getParameters(1))
       }else{
			var db_pt_index = getColumnIndex_1(col_name)
				//  find column name and etf name
			var txt_name  = v_fields_name_array[ parseInt(db_pt_index)];
			Change_Crritereia(txt_name, col_name, db_pt_index) 
       } 

	}

	function Change_Crritereia(txt_name, col_name, index)
	{
	     //   min and max v_min_max
	     var mx          = v_min_max[parseInt(index)];
	     var mx_ar       = mx.split('|');
         num = getNumberOfETF(v_back_info[parseInt(index)]);
         addRowToTable(txt_name,num, col_name, v_back_bars[index], v_back_info[parseInt(index)], v_back_mnmx[parseInt(index)], mx_ar[0],  mx_ar[1], mx_ar[0],  mx_ar[1]);
         resetResults_Data()
	}
    function calculate_category()
	{
	    var k = 0;
	    if (v_category == "")
	       return k;
	    var cat = "|"+ v_category +"|";
	    var fat = "|"+ v_family +"|";
	    if (v_category == "")
	      cat = "";
	    if (v_family == "")
	      fat = "";
        
	    for (var i = 0; i< v_results.length;i++)
		{
		    if (v_category != "" && v_family != "")
		    {
		      if (fat.indexOf("|"+v_results[i].family +"|")< 0 || cat.indexOf("|"+v_results[i].category +"|") < 0)
		         continue;
		    }else if (v_category != "" && cat.indexOf("|"+v_results[i].category +"|") < 0)
		         continue;
		    else if (v_family != "" && fat.indexOf("|"+v_results[i].family +"|")< 0)
		         continue;
		    k++;
		}
		return k;
	}
	function calculate_family()
	{
	    var k = 0;	
	    if (v_family == "")
	       return k;
	    var cat = "|"+ v_family +"|";
	    for (var i = 0 ; i< v_results.length;i++)
		{   
		   if (v_family != "" && cat.indexOf("|"+v_results[i].family +"|")< 0)
		       continue;
		    k++;
		}
		return k;
	}
	function getCNumber(v)
	{
	
        var index = getIndexOfCategory(v)
        return v_category_number[index].number
   
	}	
	function Change_Category(v)
	{
       
	    if (v== "" || v_category == "")
	    {
	        findObj("added_cat_list").innerHTML = "";
	        v_category = v;
	    }else
	        v_category = CheckCategory(v_category, v)
	    var s = v_category.split('|')
	    if (s.length <11)
	    {
			// make the button add or added
				var v = v.toLowerCase() 
				v     = toDash(v)
				
				var d ="#cat_"+v +" .add_bt";
				$(d).hide(); 

				$(d).parent().children().not(".add_bt").css( 'display', 'block');
	
			//end
		  }	else{
		  	alert ("You may only add maximum of 10 categories.")
		    return;
		 }
		  
         try{
       		n_begin_page  = 1
       		curRowCount = 0;
			iTo  = maxCol;
			v_category_flag = 1;
		
		    resetRCategory_Data()
	     }catch(ex)
		{
			alert(ex + "Change_Category()");
		}
	}
	
	function Change_Family(v)
	{
	    loading()
	    if (v_family == "")
	    {
	        v_family = v;
	    }else
	       v_family = CheckCategory(v_family, v)	
	   	n_begin_page  = 1
      	curRowCount = 0;
		iTo  = maxCol;
	    resetRCategory_Data()
	}
	function toDash(vi)
	{
	    var v= vi;
	    while (v.indexOf(" ") >= 0)
        {
           v = v.replace(' ', '_');
        }
        while (v.indexOf("/") >= 0)
        {
           v = v.replace('/', '_');
        }
        return v
	}
	function CheckLeverage(temp, leverage)
	{	
		var v = "|"+ leverage +"|";
		var lev = "|"+ temp +"|";
	    if (lev.indexOf(v)>= 0)
			lev = lev.replace(v, "|");		
	    else
	       lev = "|"+ temp +  "|"+ leverage;
	 
	   if (lev == "|") lev = ""; 
	   if (lev.indexOf("|") == 0) 
	      lev = lev.substring(1);
	   if (lev.lastIndexOf("|")+ 1 == lev.length) 
	      lev = lev.substring(0, lev.length-1);
	   return lev;
	}
	function CheckCategory(temp, category)
	{	
	   var v   = "|"+ category +"|";
	   var cat = "|"+ temp +"|";
	   var j_v = category.toLowerCase() 
	   j_v     = toDash(j_v)

	   if (cat.indexOf(v)>= 0)
	   {
			cat = cat.replace(v, "|");
	   }else{
	       cat = "|"+ temp +  "|"+ category;
	   }
	   if (cat == "|") cat = ""; 
	   if (cat.indexOf("|") == 0) 
	      cat = cat.substring(1);
	   if (cat.lastIndexOf("|")+ 1 == cat.length) 
	      cat = cat.substring(0, cat.length-1);
	   return cat;
	}
	function onClickAll_category()
	{
	   // resetToEmpty();
	    v_category = "";
	    v_family = "";
	    findObj("detail_table").innerHTML = getTable_view(v_results); 
	}
	
	 function removeAllRowsFromTable()
	{
		var tbl = document.getElementById('tblSample');
		while (tbl.rows.length > 1)
		{
		  var lastRow = tbl.rows.length;
		   tbl.deleteRow(lastRow-1);
		}
	}