Type.registerNamespace("Insp");
Type.registerNamespace("Insp.UI");

Insp.UI.QMStocks = function(element)
{
    Insp.UI.QMStocks.initializeBase(this,[element]);
    this._symbols = "";
    this._FCUrl = "";
	this._resultQuotes = null;
	this._symbolResults = null;
	this._selectedQuote = null;
	this._bSearchInProgress = false;
	
	this._searchPaginator = null;
	this._components = [];
	
    this._callbackDelegate = null;
    this._failureDelegate = null;
    this._quoteClickedDelegate = null;
    this._quoteClosedDelegate = null;
    this._searchClickDelegate = null;
    this._searchEnterKeyDelegate = null;
    this._searchResultSuccessDelegate = null;
    this._searchResultFailureDelegate = null;
    this._closeSearchSymDelegate = null;
    this._closeSearchListDelegate = null;
    this._symbolSelectDelegate = null;
    this._symbolResultFailureDelegate = null;
    this._symbolResultSuccessDelegate = null;
    this._pageChangedDelegate = null;
    this._addStockDelegate = null;
    this._saveSuccessDelegate = null;
    this._saveFailureDelegate = null;
}

Insp.UI.QMStocks.prototype = {
	get_symbols: function(){return this._symbols;},
    set_symbols: function(value){this._symbols = value;this.raisePropertyChanged('symbols');},
    
    get_FCUrl: function(){return this._FCUrl;},
    set_FCUrl: function(value){this._FCUrl = value;},
    
    dispose: function()
    {
		if(this._pageChangedDelegate) delete this._pageChangedDelegate;
		if(this._symbolResultFailureDelegate) delete this._symbolResultFailureDelegate;
		if(this._symbolResultSuccessDelegate) delete this._symbolResultSuccessDelegate;
		if(this._symbolSelectDelegate) delete this._symbolSelectDelegate;
		$removeHandler($get('AddStockDiv',this.get_element()),'click',this._searchClickDelegate);
		if(this._addStockDelegate) delete this._addStockDelegate;
		$removeHandler($get('SymSearchBtn',this.get_element()),'click',this._searchClickDelegate);
		if(this._searchClickDelegate) delete this._searchClickDelegate;
		var sl = $get("SymSearchResults",this.get_element());
        $removeHandler($get('RemoveBtn',sl),'click',this._closeSearchListDelegate);
		if(this._closeSearchListDelegate) delete this._closeSearchListDelegate;
		var ss = $get("SelectedSymbolDiv",this.get_element());
        $removeHandler($get('RemoveBtn',ss),'click',this._closeSearchSymDelegate);
		if(this._closeSearchSymDelegate) delete this._closeSearchSymDelegate;
		$removeHandler($get('txtSymName',this.get_element()),'keydown',this._searchEnterKeyDelegate);
		if(this._searchEnterKeyDelegate) delete this._searchEnterKeyDelegate;
		if(this._searchResultFailureDelegate) delete this._searchResultFailureDelegate;
		if(this._searchResultSuccessDelegate) delete this._searchResultSuccessDelegate;
        if(this._failureDelegate) delete this._failureDelegate;
        if(this._callbackDelegate) delete this._callbackDelegate;
        if(this._quoteClosedDelegate) delete this._quoteClosedDelegate;
        if(this._quoteClickedDelegate) delete this._quoteClickedDelegate;
        if(this._saveSuccessDelegate) delete this._saveSuccessDelegate;
        if(this._saveFailureDelegate) delete this._saveFailureDelegate;
        Insp.UI.QMStocks.callBaseMethod(this,'dispose');
    },
    initialize: function()
    {
        Insp.UI.QMStocks.callBaseMethod(this,'initialize');
		//this.addCssClass("moduleloading");
		
		if (this._saveSuccessDelegate === null) {
            this._saveSuccessDelegate = Function.createDelegate(this, this._saveSuccessHandler);
        }
        if (this._saveFailureDelegate === null) {
            this._saveFailureDelegate = Function.createDelegate(this, this._saveFailureHandler);
        }
		if (this._quoteClickedDelegate === null) {
            this._quoteClickedDelegate = Function.createDelegate(this, this._quoteClickedHandler);
        }
		if (this._quoteClosedDelegate === null) {
            this._quoteClosedDelegate = Function.createDelegate(this, this._quoteClosedHandler);
        }
		if (this._callbackDelegate === null) {
            this._callbackDelegate = Function.createDelegate(this, this._callbackHandler);
        }
		if (this._failureDelegate === null) {
            this._failureDelegate = Function.createDelegate(this, this._failureHandler);
        }
        if (this._searchResultSuccessDelegate === null) {
            this._searchResultSuccessDelegate = Function.createDelegate(this, this._searchResultSuccessHandler);
        }
        if (this._searchResultFailureDelegate === null) {
            this._searchResultFailureDelegate = Function.createDelegate(this, this._searchResultFailureHandler);
        }
        if (this._searchEnterKeyDelegate === null) {
            this._searchEnterKeyDelegate = Function.createDelegate(this, this._searchEnterKeyHandler);
        }
        $addHandler($get('txtSymName',this.get_element()),'keydown',this._searchEnterKeyDelegate);
        if (this._closeSearchSymDelegate === null) {
            this._closeSearchSymDelegate = Function.createDelegate(this, this._closeSearchSymHandler);
        }
        var ss = $get("SelectedSymbolDiv",this.get_element());
        $addHandler($get('RemoveBtn',ss),'click',this._closeSearchSymDelegate);
        if (this._closeSearchListDelegate === null) {
            this._closeSearchListDelegate = Function.createDelegate(this, this._closeSearchListHandler);
        }
        var sl = $get("SymSearchResults",this.get_element());
        $addHandler($get('RemoveBtn',sl),'click',this._closeSearchListDelegate);
        if (this._searchClickDelegate === null) {
            this._searchClickDelegate = Function.createDelegate(this, this._searchClickHandler);
        }
        $addHandler($get('SymSearchBtn',this.get_element()),'click',this._searchClickDelegate);
        if (this._addStockDelegate === null) {
            this._addStockDelegate = Function.createDelegate(this, this._addStockHandler);
        }
        $addHandler($get('AddStockDiv',this.get_element()),'click',this._addStockDelegate);
        if (this._symbolSelectDelegate === null) {
            this._symbolSelectDelegate = Function.createDelegate(this, this._symbolSelectHandler);
        }
        if (this._symbolResultSuccessDelegate === null) {
            this._symbolResultSuccessDelegate = Function.createDelegate(this, this._symbolResultSuccessHandler);
        }
        if (this._symbolResultFailureDelegate === null) {
            this._symbolResultFailureDelegate = Function.createDelegate(this, this._symbolResultFailureHandler);
        }
        if (this._pageChangedDelegate === null) {
            this._pageChangedDelegate = Function.createDelegate(this, this._pageChangedHandler);
        }
        
        this._hideSearchList();
        this._hideSearchSymbol();
    },
    updated: function()
    {   
        Portal.QMStocksSvc.GetQuotes(this.get_symbols(),this._callbackDelegate,this._failureDelegate);
        Insp.UI.QMStocks.callBaseMethod(this,'updated');
    },
    saveCurrentList: function()
    {
		var syms = ""
		if(this._resultQuotes){
			for(var e in this._resultQuotes)
			{
				if(this._resultQuotes[e] && this._resultQuotes[e].symbol)
				{
					if(syms !== "")syms = syms+",";
					syms = syms + this._resultQuotes[e].symbol;
				}
			}
			Portal.QMStocksSvc.s(syms,this.get_module().get_moduleID(),this._saveSuccessDelegate,this._saveFailureDelegate);
		}
    },
    _saveSuccessHandler: function(results)
    {
    },
    _saveFailureHandler: function(results)
    {
    },
    _callbackHandler: function(results)
    {

		this._resultQuotes = results;
		if(results.length > 0 && (results.length!=1 || results[0].symbol !== ""))
		{
		    //this.removeCssClass("moduleloading");
            this._createComponents();  
        }
        if(typeof results.length == 'undefined' || results.length ==0){
            this._failureHandler();
        }
    },
    _failureHandler: function()
    {
		var h = $get("StocksHeader",this.get_element());
		if(h)h.style.display='none';
		var l = $get("StocksList",this.get_element());
		if(l)l.style.display='none';
		var ss = $get("SymbolSearchDiv",this.get_element());
		if(ss)ss.style.display='none';
		var ed = $get("feedErrDiv",this.get_element());
		if(ed)ed.style.display='';
    },
    _createComponents: function()
    {
		for(var i = 0;i<this._resultQuotes.length;i++)
		{
			this._addQuoteToList(this._resultQuotes[i])
		}
		this._deactivateAllComponents();
		this._activateComponent("QMQuote_"+this._resultQuotes[0].symbol);
    },
     _addQuoteToList: function(quote)
    {
		var ul = $get("StocksList",this.get_element());
		var li = document.createElement('LI');
		li.id = "QMQuote_"+quote.symbol;
		ul.appendChild(li);
		var e = $create(Insp.UI.QMQuote,{"quote":quote},{quoteClicked:this._quoteClickedDelegate,closeClicked:this._quoteClosedDelegate},{parent:this.get_id()},li);
		this.addComponent(e);
    },
    _activateComponent: function(compID)
    {
		var c = this.findComponent(compID);
		if(c){c.set_active(true)}
    },
    _deactivateAllComponents: function()
    {
		for(var i in this._components)
		{
			var c = this._components[i];
			if(c.get_active())c.set_active(false);
		}
    },
    _quoteClickedHandler: function(sender,args)
    {
		this._deactivateAllComponents();
		this._activateComponent(args.get_quoteid());
    },
    _quoteClosedHandler: function(sender,args)
    {
		var c =this.findComponent(args.get_quoteid());
		var sym = c.get_quote().symbol;
		if(c){
			var e = c.get_element();
			this.removeComponent(c);
			e.parentNode.removeChild(e);
		}
		var a=[];b= this._resultQuotes;
        for(var e in b)
        {
			if(this._resultQuotes[e].symbol !== sym)
			{
				a[a.length] = b[e];
			}
		}
		this._resultQuotes = a;
		this.saveCurrentList();
    },
    _searchEnterKeyHandler: function(evt)
    {
		if(evt.keyCode == 13)this._searchClickHandler(evt);
    },
    _searchClickHandler: function(sender,args)
    {
		if(!this._bSearchInProgress)
		{
			var t = $get("txtSymName",this.get_element());
			this._hideSearchList();
			this._hideSearchSymbol();
			if(t)
			{
				var sym = t.value.trim();
				if(sym!="")
				{
					LogClient('1174','portal module');
					Portal.QMStocksSvc.GetSymbols(sym,this._searchResultSuccessDelegate);
					this._bSearchInProgress = true;
					t.disabled = true;
				}
			}
			var sn = $get("SearchSymName",this.get_element());
			sn.innerHTML = t.value;
		}
    },
    _closeSearchSymHandler: function(evt)
    {
		this._hideSearchSymbol();
    },
    _closeSearchListHandler: function(evt)
    {
		this._hideSearchList();
    },
    _searchResultSuccessHandler: function(results)
    {
		this._symbolResults = results;
		var t = $get("txtSymName",this.get_element());
		t.value="";
		if(results && results.length>1)
		{
			this._populateSearchList();
		}else{
			if(results.length == 1 && results[0].symbol != null)
			{
				this._showSelectedQuote(results[0].symbol);return;
			}else{
				this._showNoResultsMsg();
			}
		}
		this._bSearchInProgress = false;
		t.disabled = false;
    },
    _searchResultFailureHandler: function(results)
    {
		var t = $get("txtSymName",this.get_element());
		this._bSearchInProgress = false;
		t.disabled = false;
		this._showNoResultsMsg();
    },
    _symbolSelectHandler: function(evt)
    {
		this._showSelectedQuote(evt.target.id);
    },
    _showSearchList: function()
    {
		var e = $get('SymSearchResults',this.get_element());
		if(e)e.style.display='';
    },
    _hideSearchList: function()
    {
		var e = $get('SymSearchResults',this.get_element());
		if(e)e.style.display='none';
		this._hideSearchError();
    },
    _showSearchSymbol: function()
    {
		var e = $get('SelectedSymbolDiv',this.get_element());
		if(e)e.style.display='';
    },
    _hideSearchSymbol: function()
    {
		var e = $get('SelectedSymbolDiv',this.get_element());
		if(e)e.style.display='none';
		this._hideSearchError();
    },
    _showSearchError: function()
    {
		var e = $get('ErrorDiv',this.get_element());
		if(e)e.style.display='';
    },
    _hideSearchError: function()
    {
		var e = $get('ErrorDiv',this.get_element());
		if(e)e.style.display='none';
    },
    _populateSearchList: function()
    {
		this._showSearchList();
		var l = $get("SearchSymbolList",this.get_element());
		l.innerHTML = "";
		
		if(this._symbolResults)
		{
			for(var i=0;i<this._symbolResults.length;i++)
			{
				var li = document.createElement('LI');
				li.id = this._symbolResults[i].symbol;
				li.innerHTML = this._symbolResults[i].symbol +  " " + this._symbolResults[i].longname;
				l.appendChild(li);
				$addHandler(li,'click',this._symbolSelectDelegate);
			}
		}
		this._setSearchResultsPage(1);
		this._initSearchPagination(this._symbolResults.length);
    },
    _initSearchPagination: function(numitems)
    {
		if(this._searchPaginator)delete this._searchPaginator;
		var e = $create(Insp.UI.Paginator,{currentPage:1, itemsPerPage:10,totalItems:numitems,numPageLinks:5},{pageChanged:this._pageChangedDelegate},{parent:this.get_id()},$get('SearchPagerDiv',this.get_element()));
		this._searchPaginator = e;
    },
    _setSearchResultsPage: function(pn)
    {
		var l = $get("SearchSymbolList",this.get_element());
		for(var i=0;i<l.childNodes.length;i++)
		{
			var e = l.childNodes[i];
			if(i>=(10*(pn-1)) && i<(10*pn))
				e.style.display='';
			else
				e.style.display='none';
		}
    },
    _pageChangedHandler: function(sender,args)
    {
		this._setSearchResultsPage(args.get_currentPage());
    },
    _showSelectedQuote: function(symbol)
    {
		if(symbol!='')
		{
			this._hideSearchList();
			Portal.QMStocksSvc.GetQuotes(symbol,this._symbolResultSuccessDelegate,this._symbolResultFailureDelegate);
		}
    },
    _symbolResultSuccessHandler: function(results)
    {
		if(results.length > 0 && (results.length!=1 || results[0].symbol != null))
		{
			this._showSearchSymbol();
			this._selectedQuote = results[0];
		    var e = $get('SelectedSymbolDiv',this.get_element());
			if(e)
			{
				var sn = $get('SymbolName',e);
				if(sn){sn.innerHTML = results[0].symbol;}
				
				var sp = $get('SymbolPrice',e);
				if(sp){sp.innerHTML = results[0].pi.lastprice;}
				
				var sc = $get('PriceChange',e);
				if(sc){sc.innerHTML = results[0].pi.pricechange;}
				
				var pc = $get('PercentChange',e);
				if(pc){pc.innerHTML = '(' + results[0].pi.changepercent + ')';}
				
				var cs = $get('SymbolChange',e);
				if(cs)
				{
					if(results[0].pi.pricechange < 0)cs.className="ptQMChangeRed";
					else cs.className="ptQMChangeGreen";
				}
				var an = $get('AddSymbolName',this.get_element());
				if(an){an.innerHTML = results[0].symbol;}
			}
        }
        var t = $get("txtSymName",this.get_element());
        this._bSearchInProgress = false;
		t.disabled = false;
    },
    _symbolResultFailureHandler: function(results)
    {
		var t = $get("txtSymName",this.get_element());
		this._bSearchInProgress = false;
		t.disabled = false;
    },
    _addStockHandler: function(evt)
    {
		if(this._selectedQuote)this._addStockQuote();
    },
    _addStockQuote: function()
    {
        for(var i = 0;i<this._resultQuotes.length;i++)
	    {
		    if(this._resultQuotes[i].symbol == this._selectedQuote.symbol)return;
	    }
		LogClient('1175','portal module');
		this._resultQuotes[this._resultQuotes.length] = this._selectedQuote;
		this._addQuoteToList(this._selectedQuote);
		
		this._hideSearchList();
        this._hideSearchSymbol();
        this.saveCurrentList();
    },
    _showNoResultsMsg: function()
    {
		this._showSearchError();
    },
    addComponent:function(e)
    {
        if(Sys.Component.isInstanceOfType(e))this._components[e.get_id()] = e;
    },
    getComponents:function()
    {
        var a=[];b= this._components;
        for(var c in b)a[a.length] = b[c];
        return a;
    },
    findComponent:function(id)
    {
        return this._components[id];
    },
    removeComponent:function(b)
    {
        var a = b.get_id();
        if(a){delete this._components[a];}
    }
}
Insp.UI.QMStocks.registerClass('Insp.UI.QMStocks',Insp.UI.ModuleContentCtl,Sys.IContainer);


Insp.UI.QMQuote = function(element)
{
    Insp.UI.QMQuote.initializeBase(this,[element]);
    this._quote = null;
    this._active = false;
    this._hoverTimer = null;
    this._bDoHover=false;
    
    this._quoteClickDelegate = null;
    this._closeClickDelegate = null;
    this._hoverDelegate =null;
    this._unhoverDelegate = null;
}

Insp.UI.QMQuote.prototype = {
	get_quote: function(){return this._quote;},
    set_quote: function(value){this._quote = value;this.raisePropertyChanged('quote');},
    
    get_active: function(){return this._active;},
    set_active: function(value){this._active = value;this.raisePropertyChanged('active');this._activate(this._active);},
    
    add_quoteClicked: function(handler){this.get_events().addHandler('quoteClicked',handler);},
    remove_quoteClicked: function(handler){this.get_events().removeHandler('quoteClicked',handler);},
    
    add_closeClicked: function(handler){this.get_events().addHandler('closeClicked',handler);},
    remove_closeClicked: function(handler){this.get_events().removeHandler('closeClicked',handler);},
    
    dispose: function()
    {
		$removeHandler(this.get_element(),'mouseover',this._hoverDelegate);
		$removeHandler(this.get_element(),'mouseout',this._unhoverDelegate);
    	$removeHandler($get('RemoveBtn',this.get_element()),'click',this._closeClickDelegate);
		if(this._closeClickDelegate) delete this._closeClickDelegate;
		if(this._quoteClickDelegate) delete this._quoteClickDelegate;
        Insp.UI.QMQuote.callBaseMethod(this,'dispose');
    },
    initialize: function()
    {
        Insp.UI.QMQuote.callBaseMethod(this,'initialize');
        
        if (this._closeClickDelegate === null) {
            this._closeClickDelegate = Function.createDelegate(this, this._closeClickHandler);
        }
        if (this._quoteClickDelegate === null) {
            this._quoteClickDelegate = Function.createDelegate(this, this._quoteClickHandler);
        }
        if (this._hoverDelegate === null) {
            this._hoverDelegate = Function.createDelegate(this, this._hoverHandler);
        }
        if (this._unhoverDelegate === null) {
            this._unhoverDelegate = Function.createDelegate(this, this._unhoverHandler);
        }
        this._hoverTimer = new Sys.Timer();
        this._hoverTimer.set_interval(500);
        this._hoverTimer.add_tick(this._quoteClickDelegate);
        
        this.get_element().innerHTML = "<div id='Details' title='"+strQMS_StockDetails+"' class='ptQMDetails'><span id='SymbolName'><a id='SymNameLnk' onclick=\"LogClient('1172','portal module');\"></a></span><span id='SymbolPrice'></span><span id='SymbolChange'><span id='PriceChange'></span><span id='PercentChange'></span></span><span title='"+strQMS_removeStock+"' id='RemoveBtn'></span></div>"+
			"<iframe height='140px' width='298px' frameborder='0' scrolling='no' id='ChartFrame'></iframe>"+
			"<div id='FCLinks' class='ptQMLinks'><a id='QuoteLnk' onclick=\"LogClient('1173','portal module');\">"+strQMS_QuoteLink+"</a><span>|</span><a id='ChartLnk' onclick=\"LogClient('1173','portal module');\">"+strQMS_ChartLink+"</a><span>|</span><a id='NewsLnk' onclick=\"LogClient('1173','portal module');\">"+strQMS_NewsLink+"</a><span>|</span><a id='CompLnk' onclick=\"LogClient('1173','portal module');\">"+strQMS_CompLink+"</a><span>|</span><a id='FinLnk' onclick=\"LogClient('1173','portal module');\">"+strQMS_FinLink+"</a></div>";
		this.set_active(false);
		$addHandler($get('RemoveBtn',this.get_element()),'click',this._closeClickDelegate);
		$addHandler(this.get_element(),'mouseover',this._hoverDelegate);
		$addHandler(this.get_element(),'mouseout',this._unhoverDelegate);
    },
    updated: function()
    {   
		this._updateDetails();	
        Insp.UI.QMQuote.callBaseMethod(this,'updated');
    },
    _hoverHandler: function(evt)
    {
		this._bDoHover = true;
		this._hoverTimer.set_enabled(true);
    },
    _unhoverHandler: function(evt)
    {
		this._hoverTimer.set_enabled(false);
		this._bDoHover = false;
    },
    _activate: function(active)
    {
		if(active)
		{
			this.get_element().className = "ptQMQuoteActive";
		}
		else
		{
			this.get_element().className = "ptQMQuoteInactive";
		}
    },
    _quoteClickHandler: function()
    {
		if(this._bDoHover)
		{
			var args = new Insp.UI.QuoteArg(this.get_id());
			var f = this.get_events().getHandler('quoteClicked');
			if(f)f(this,args);
        }
        this._hoverTimer.set_enabled(false);
		this._bDoHover = false;
    },
    _closeClickHandler: function()
    {
		var args = new Insp.UI.QuoteArg(this.get_id());
        var f = this.get_events().getHandler('closeClicked');
        if(f)f(this,args);
    },
    _updateDetails: function()
    {
		var sn = $get('SymNameLnk',this.get_element());
		if(sn){sn.innerHTML = this.get_quote().symbol;sn.href = "http://app.quotemedia.com/quotetools/clientForward?action=showDetailedQuote&symbol="+this.get_quote().symbol+"&targetURL="+this.get_parent().get_FCUrl();}
		
		var sp = $get('SymbolPrice',this.get_element());
		if(sp){sp.innerHTML = this.get_quote().pi.lastprice;}
		
		var sc = $get('PriceChange',this.get_element());
		if(sc){sc.innerHTML = this.get_quote().pi.pricechange;}
		
		var pc = $get('PercentChange',this.get_element());
		if(pc){pc.innerHTML = '(' + this.get_quote().pi.changepercent + ')';}
		
		var cs = $get('SymbolChange',this.get_element());
		if(cs)
		{
			if(this.get_quote().pi.pricechange < 0)cs.className="ptQMChangeRed";
			else cs.className="ptQMChangeGreen";
		}
		
		var cf = $get("ChartFrame",this.get_element());
		if(cf)cf.src="QMChart.aspx?symbol="+this.get_quote().symbol;
		
		var ql = $get("QuoteLnk",this.get_element());
		if(ql){ql.href = "http://app.quotemedia.com/quotetools/clientForward?action=showDetailedQuote&symbol="+this.get_quote().symbol+"&targetURL="+this.get_parent().get_FCUrl()+"%3Fsymbol="+this.get_quote().symbol+"%26tabAction=showDetailedQuote";}
		
		var cl = $get("ChartLnk",this.get_element());
		if(cl){cl.href = "http://app.quotemedia.com/quotetools/clientForward?action=showCharts&symbol="+this.get_quote().symbol+"&targetURL="+this.get_parent().get_FCUrl()+"%3Fsymbol="+this.get_quote().symbol+"%26tabAction=showCharts";}
		
		var nl = $get("NewsLnk",this.get_element());
		if(nl){nl.href = "http://app.quotemedia.com/quotetools/clientForward?action=showNews&symbol="+this.get_quote().symbol+"&targetURL="+this.get_parent().get_FCUrl()+"%3Fsymbol="+this.get_quote().symbol+"%26tabAction=showNews";}
		
		var Cl = $get("CompLnk",this.get_element());
		if(Cl){Cl.href = "http://app.quotemedia.com/quotetools/clientForward?action=showProfile&symbol="+this.get_quote().symbol+"&targetURL="+this.get_parent().get_FCUrl()+"%3Fsymbol="+this.get_quote().symbol+"%26tabAction=showProfile";}
		
		var fl = $get("FinLnk",this.get_element());
		if(fl){fl.href = "http://app.quotemedia.com/quotetools/clientForward?action=showFinancials&symbol="+this.get_quote().symbol+"&targetURL="+this.get_parent().get_FCUrl()+"%3Fsymbol="+this.get_quote().symbol+"%26tabAction=showFinancials";}
    }
}
Insp.UI.QMQuote.registerClass('Insp.UI.QMQuote',Sys.UI.Control);

Insp.UI.QuoteArg = function(id)
{
    Insp.UI.QuoteArg.initializeBase(this);
    this._quoteid = id;
}
Insp.UI.QuoteArg.prototype = 
{
    get_quoteid: function(){return this._quoteid;},
    set_quoteid:function(value){this._quoteid = value;}
}
Insp.UI.QuoteArg.registerClass("Insp.UI.QuoteArg", Sys.EventArgs);
