common_screener = function(){
  this.isOpen = false;
  this.bubble = new InfoBubble();
  this.bubble.bubbleWidth = 208;
  this.bubble.SetPoint("none");
  this.bubble.enableRollOutPop = false;
  this.bubble.Init();
  this.section = this.defineSection();
}

common_screener.prototype.toggleScreens = function(){

  el = Element.get("dropScreens");
  button = Element.get("savedScreenButton");

  if (this.isOpen == false){
    Element.setStyle(el,"height: auto;");
    Element.removeClass(button,'plus');
    Element.addClass(button,'minus');
    this.isOpen = true;
  }
  else{ 
    Element.setStyle(el,"height: 18px; _height: 23px;");
    Element.removeClass(button,'minus');
    Element.addClass(button,'plus');
    this.isOpen = false;
  }
}
common_screener.prototype.hideSavedScreens = function(){el = Element.get("hiddenScreens");Element.setVisibility(el,"hidden");}
common_screener.prototype.ShowResetBubble = function(el){
  this.bubble.AttachBubble(Element.get("editContainer"));
  if(!this.bubble.IsBubbleShowing()){
    var inner_stuff = '<p class="reset">Reset Screener</p><p class="reset resetS">';
    inner_stuff += 'Are you sure you want to reset your screening criteria?</p>';
    inner_stuff += '<br/><p><input id="reset_button" type="button" value="Reset" class="resetButton"/>';
    inner_stuff += '&nbsp;<input id="cancel_button" type="button" value="Cancel" class="resetButton"/></p>';
    this.bubble.SetContent(inner_stuff);
    Events.add({element: Element.get("reset_button"),type: "click",handler: this.resetScreener,context:this});
    Events.add({element: Element.get("cancel_button"),type: "click",handler: this.HideBubble,context:this});
    var pos = Element.getXY(el);
    var bodyEl = document.getElementsByTagName("body")[0];
    var bodySize = Element.getSize(bodyEl);          
    this.bubble.MoveBubble(pos.x - 2, pos.y - 8);
    this.bubble.BlowBubble();
  }
}
common_screener.prototype.ShowSaveBubble = function(el,len){
  var inner_stuff = "";
  this.bubble.AttachBubble(Element.get("rightRail"));
  if(!this.bubble.IsBubbleShowing()){   
	  if(len < 10) {
	    var inner_stuff = '<div id="saveScreenDiv"><p class="reset">Save Screen</p><p class="reset resetS">';
	    inner_stuff += 'Name</p>';
	    inner_stuff += '<p><input type="text" maxlength="30" class="saveInput" id="savedScreenName"/></p>';
	    inner_stuff += '<p class="reset resetS">Description</p>';
	    inner_stuff += '<p><textarea class="saveTextArea" maxlength="50" onkeyup="return cscreener.ismaxlength(this)" id="savedScreenDesc"></textarea></p>';
	    inner_stuff += '<br/><p><input id="save_button" type="button" value="Save" onclick="cscreener.checkSettingVals()" class="resetButton"/>';
	    inner_stuff += '&nbsp;<input id="cancel_save_button" type="button" value="Cancel" class="resetButton"/></p></div>';
	  } else {
	    inner_stuff = '<p class="reset">Over limit</p><p class="reset resetS">';
	    inner_stuff += 'You have exceeded the 10 limit maximum for saved screens.  Please remove one of your';
	    inner_stuff += ' existing screens before saving this one.</p>';
	    inner_stuff += '<br/><input id="cancel_save_button" type="button" value="Cancel" class="resetButton"/></p>';
	  }
    this.bubble.SetContent(inner_stuff);
	  Events.add({element: Element.get("cancel_save_button"),type: "click",handler: this.HideBubble,context:this});
    var pos = Element.getXY(el);
    this.bubble.MoveBubble(pos.x - 107, pos.y - 8);
    this.bubble.BlowBubble();
  }
}
common_screener.prototype.ismaxlength = function (obj){
  var mlength=obj.getAttribute? parseInt(obj.getAttribute("maxlength")) : ""
  if (obj.getAttribute && obj.value.length>mlength)
  obj.value=obj.value.substring(0,mlength)
}
common_screener.prototype.checkSettingVals = function() {
    
  var savedScreenName = document.getElementById("savedScreenName");
  var savedScreenDesc = document.getElementById("savedScreenDesc");
  var val = savedScreenName.value;
  var savedDesc = escape(savedScreenDesc.value);
  var valLen = val.length;
  var savedName = escape(val);
  if(val.indexOf("%") > -1) {
    Element.get("saveScreenDiv").innerHTML = '<p class="reset resetS">Please enter a name without<br/> the percent <b>(%)</b> character.</p>';
    this.saveID = window.setTimeout("ShowSaveBubble('savebutton');",1000);
  }
  else if (val && valLen > 2) {
    Element.get("saveScreenDiv").innerHTML = '<p class="reset resetS">Screen has been saved as:<br/> <b>'+savedScreenName.value+'</b></p>';
    this.saveID = window.setTimeout("cscreener.saveAndReload('" + savedName + "','" + savedDesc + "');",500);
  } else if (val) {
    Element.get("saveScreenDiv").innerHTML = '<p class="reset resetS">Please enter a name with<br/> at least <b>3</b> characters.</p>';
    this.saveID = window.setTimeout("cscreener.ShowSaveBubble('savebutton');",1000);
  } else {
    Element.get("saveScreenDiv").innerHTML = '<p class="reset resetS">Please enter a <b>valid</b><br/> name for this setting.</p>';
    this.saveID = window.setTimeout("cscreener.ShowSaveBubble('savebutton');",1000);
  }
}
common_screener.prototype.saveAndReload = function(name, desc) {
  
  switch(this.section){
    case "funds":
      type = "fund";
      break;
    case "stocks":
      type = "stock";
      break;
    case "etf":
      type ="etf";
      break;
    default:
      type = "stock";
      break;  
    }
    
  document.location = type + '_screener_results.asp?saveType='+type+'&savedScreenName='+escape(name)+'&savedDesc='+escape(desc);
}
common_screener.prototype.defineSection = function(){
  var splitter = 4;
  url =  window.location.href;
  if (url.indexOf("dev2.wallst.com") != -1){
    splitter = 5;
  }
  else{
    splitter = 4;
    }
  splits = url.split('/');

  return splits[splitter];
}
common_screener.prototype.resetScreener = function(){Element.get("buffer").src = 'reset_screener.asp';}
common_screener.prototype.HideBubble = function (){this.bubble.PopBubble();}
cscreener = new common_screener();

var ViewSaves = function(){
	var container = Element.get("dropScreens");
	var img = Element.get("dropOpenClose");
	var list = Element.get("dropList");
        if(list != null && !list.style.display)
        {
            list.style.display = "none";
        }
	
	if(container){
		Events.add({element:container,type:"click",handler:OpenClose});
	}
	
	function OpenClose(){
		if(list.style.display == "none"){
			img.src = "../../common/img/icons/collapse.png";
			list.style.display = "block";
		}
		else{
			img.src = "../../common/img/icons/expand.png";
			list.style.display = "none";
		}
	}
}
function InitViewSaves(){vs = new ViewSaves();}
Events.add({element:window,type:"load",handler:InitViewSaves});


function excelVersion(sortby,sortorder) {
  var src_url = "excel_version.asp?sortBy=" + sortby + "&sortOrder=" + sortorder;
  window.open(src_url, 'excel_popup', 'toolbar=0,scrollbars=1,location=0,statusbar=0,menubar=0,resizable=1,width=800,height=600');
}

function newExcelVersion(view) {
    
  var src_url = "excel_version.asp?myView="+view;
  window.open(src_url, 'excel_popup', 'toolbar=0,scrollbars=1,location=0,statusbar=0,menubar=0,resizable=1,width=800,height=600');
}