
/* webcore, global functions 2010-02-08 */
var webCore = {
	cookieName: 'nasdaqomxnordicV2',
	baseURL: "/",
    proxyURL: "/webproxy/DataFeedProxy.aspx",
    graphURL: "http://www.nasdaqomxnordic.com/charting/ChartingBin.aspx",
    defaultNodeInstrument: null,
    personalized: {},
    reloadFunctionHandler: {},

    personalizedDefault: {
        preferredMarket: 'NOR',
        myList: [
            { id: 'CSE1596', b: 0, v: 1 },{ id: 'SSE101',  b: 0, v: 1 },{ id: 'ICE5482', b: 0, v: 1 },{ id: 'HEX24311', b: 0, v: 1 }
        ]
    },

    personalizedDefaultFirstNorth: {
        preferredMarket: 'NOR',
        myList: [
            { id: 'SSE5113', b: 0, v: 1 },{ id: 'SSE31153',  b: 0, v: 1 }
        ]
    },
    
    cookies : {
    	/*
    	 * returns a date from (client's) now
    	 */
		expires: function() {
			var expires = new Date();
			expires.setFullYear(expires.getFullYear() + 1, expires.getMonth() + 1, 28);// One year from client's  now..
			return expires;
		},
		
		/*
		 * Simple key value pair for setting a value in a cookie.
		 * @param name the name key
		 * @value the value for a given (name) key
		 * @expires a valid date object; example date 29/05/2008 23:59:00
		 */
		set: function (name, value, expires) {
			document.cookie = name + "=" + escape(value) + "; expires=" + expires.toGMTString();
		},
		/*
		 * returns a value for a given key. See set for more info.
		 */
		get: function (name) {
			var v = document.cookie.match("(^|;)?" + name + "=([^;]*)(;|$)");
			return v != null ? unescape(v[2]) : null;
		}
	},
    
    loadPersonalized: function() {
      var cookie = jQuery.cookie( webCore.cookieName );
      if ( cookie !== null ) {
        webCore.personalized = JSON.parse( cookie );
      } else {
      	if ( webCore.cookieName == 'firstNorth' ) {
        	webCore.personalized = webCore.personalizedDefaultFirstNorth;
        } else {
        	webCore.personalized = webCore.personalizedDefault;
        }
      }
    },
    /* Returns a float or 0.0 */ 
    parseNumber: function ( string ) {
    	var result = "";
      	result = string.replace( webCore.numberFormat[currentLanguage].separator, '' );
      	result = result.replace( webCore.numberFormat[currentLanguage].decimal, '.' );
      	var num = parseFloat( result );
		return (isNaN(num))?0.0:num;  
    },  
    getMyListInstruments: function() {
        var result = { Instrument: [] };
        var list = webCore.personalized.myList;
    
        if ( null === list ) {
            list = webCore.personalizedDefault.myList;
            webCore.personalized.myList = list;
        } 
        for ( var i in list ) {
            result.Instrument.push(list[i].id);
        }
        return result;
    },
	findMyListPrefs: function ( inst ) {
		var list = webCore.personalized.myList;
		var instrument = {};
        for ( var i in list ) {
            if ( list[i].id == inst ) {
                instrument = list[i];
                break;
            }
        }
		return instrument;		
	},
	
	/* Checks if an instrument is in my list, return true if it is else false. */
	isInMyList: function (inst)  {
		var list = webCore.personalized.myList;
        var exists = false;
        for ( var i in list ) {
            if ( list[i].id == inst ) {
                exists = true;
                break;
            }
        }
		return exists;		
	},

	/* Adds a instrument to my list and saves it in the personalized cookie */
    addToMyList: function(inst) {
        var list = webCore.personalized.myList;
        var exists = false;
        for ( var i in list ) {
            if ( list[i].id == inst ) {
                exists = true;
            }
        }
        if ( exists == false ) {
            webCore.personalized.myList.push( { id: inst,b: 0, v: 1 } )
            webCore.savePersonalized();
        }
        // myList.load is in the myList component
        if ( window.myList !== undefined ) {
            myList.load( inst );
        }
        if ( window.myBigList !== undefined ) {
        	myBigList.load( inst );
        } 
    },
    
    /* Removes an instrument from my list and saves the personalized cookie, returns true if removed */
    removeFromMyList: function ( inst ) {
        var list = webCore.personalized.myList;
        var removed = false;
        var result = [];
        for ( var i in list ) {
	        if ( list[i].id != inst ) {
				result.push(list[i]);
				removed = true;
			}
        }
        webCore.personalized.myList = result;
           webCore.savePersonalized();
       	if ( window.myBigList !== undefined ) {
       		myBigList.load();
       	}
        return removed;
    },
    
    /* Adds an instrument if not exists, removes it if exists. */
    addRemoveMyList: function(inst) {
    	if ( webCore.isInMyList( inst ) ) {
    		webCore.removeFromMyList( inst );
    	} else {
    		webCore.addToMyList( inst );
    	}
    },
     
    savePersonalized: function() {
        jQuery.cookie(webCore.cookieName, JSON.stringify(webCore.personalized), { path: '/', expires: 365 } );
    },
    
    goToPage: function( path, instrument, params ) {
    	var url = webCore.baseURL + path;
    	if ( instrument != null ) {
    		url += "?Instrument=" + instrument;
    	}
    	url += (params != null ? params : "");
        document.location = url;
    },
    
    reloadOrGoToSharePage: function( instrument, webCorePage ) {
    	var url = new String(document.location);
    	if ( url.indexOf('Instrument=') != -1 ) {
   			var newUrl = url.substring(0, url.indexOf('?'));
   			document.location = newUrl + "?Instrument=" + instrument;
    	} else {
    		if ( webCorePage ) {
    			webCore.goToPage( webCorePage, instrument );
    		} else {
				webCore.goToPage( webCore.pages.micrositeShare, instrument );
			}    		
    	}
    },
    /* Gets the current date in iso format and adds the values if exists.
       usage: getISODate(); -> todays date in format yyyy-mm-dd
       getISODate(0,-3,0); -> todays date subtracting 3 month in format as above
       getISODate(0,0,-1,true); -> Get latest working day, mon-fri.
     */
    getISODate: function( yearAdd, monthAdd, dateAdd, lastWeekDay ) {
    	var dateString = "";
    	var date = new Date();
    	if ( yearAdd != null || yearAdd != undefined ) {
    		date.setFullYear( date.getFullYear() + yearAdd );
    	}
    	if ( monthAdd != null || monthAdd != undefined ) {
    		date.setMonth( date.getMonth() + monthAdd );
    	}
    	if ( dateAdd != null || dateAdd != undefined ) {
    		date.setDate( date.getDate() + dateAdd );
    	}
		if ( lastWeekDay == true ) {
    		if ( date.getDay() == 0 ) { //sunday
    			date.setDate( date.getDate() -2 );
    		} else if ( date.getDay() == 6 ) {	//satday
    			date.setDate( date.getDate() -1 );
    		}
    	}
    	dateString += date.getFullYear() + "-";
    	dateString += ((date.getMonth()+1) < 10 )?"0":"";
    	dateString += (date.getMonth()+1) + "-";
    	dateString += (date.getDate() < 10 )?"0":"";
    	dateString += date.getDate();
    	return dateString;
    },
    getXMLParams: function(data) {
      var xml = "<post>\n";
      for ( var i in data ) {
        // check if the param is an array, this is to have several of the same name on the parameters
        if (typeof(data[i]) == "object" ) {
          if ("Instrument" == i) {
            for ( var j in data[i]) {
              xml += '<param name="Instrument" value="' + data[i][j] + '"/>\n';
            }
          } else if ("Market" == i) {
            for ( var k in data[i]) {
              xml += '<param name="Market" value="' + data[i][k] + '"/>\n';
            }
          } else if ("List" == i) {
            for ( var l in data[i]) {
              xml += '<param name="List" value="' + data[i][l] + '"/>\n';
            }
          } else if ("Lang" == i) {
            for ( var m in data[i]) {
              xml += '<param name="Lang" value="' + data[i][m] + '"/>\n';
            }
          } else if ("MarketCode" == i) {
            for ( var l in data[i]) {
              xml += '<param name="MarketCode" value="' + data[i][l] + '"/>\n';
            }
          } else if ("LegalEntity" == i) {
            for ( var l in data[i]) {
              xml += '<param name="LegalEntity" value="' + data[i][l] + '"/>\n';
            }
          }
        } else {
          xml += '<param name="' + i + '" value="' + data[i] + '"/>\n';
        }
      }
      xml += "</post>";
      return xml;
    },

    getGraphUrl: function( params, instId, moreParams ) {
        params.instid = instId;
        var result = webCore.graphURL + '?';
        for ( var i in params ) {
            result += i + '=' + params[i] + '&';
        }
        for ( var j in moreParams ) {
            result += j + '=' + moreParams[j] + '&';
        }
        //result += "rnd=" + new Date().getTime() + "&";
        return result.substring( 0, result.length -1 );
    },
    
    getInstrument: function() {
      return (webCore.getParameter("Instrument") != null) ?
      	webCore.getParameter("Instrument"): webCore.defaultNodeInstrument;
    },
    
    getParameter: function(param, fakeURL) {
        var paramMap = {};
        var useFakeURL = fakeURL != null;
        if (useFakeURL) {
        	if (fakeURL.charAt(0) != '?') {
        		fakeURL = "?" + fakeURL;
        	}
        }
        var url = useFakeURL ? fakeURL : new String(document.location);
        if (url.indexOf('?') != -1) {            
            var query = url.substring(url.indexOf('?') + 1);
            query = query.replace(/\&$/, '');
            jQuery.each(query.split('&'), function() {
                    var pair = this.split('=');
                    var key = pair[0];
                    var val = pair[1];
                    paramMap[key] = val;                
                }                
            );
            
        }
        return paramMap[param];
    },

    createQuery: function(action, market, local) {
      var resultObject = {};
      for ( var i in action) {
        resultObject[i] = action[i];
      }
      for ( var j in market) {
        resultObject[j] = market[j];
      }
      for ( var k in local) {
        resultObject[k] = local[k];
      }
      return webCore.getXMLParams(resultObject);
    },
    /* Where attribute is one of, nm,fnm,id,isrid
    Ex: 
    getInstrumentBaseData( "nm", function( result ) {
		loadFlash( result);
    });
     */
	getInstrumentBaseData: function( attribute, callback ) {
		var query = webCore.createQuery(
            webCore.marketAction.getInstrument, {}, {
            inst__a: "0,1,2,3,4,5,114",
            Instrument: webCore.getInstrument(),
            ext_xslt: null
      	});
      	jQuery.post( webCore.proxyURL, { xmlquery: query },
        	function( data, status ) {
            	result = $(data).find("inst").attr(attribute);
            	callback.apply( this, [result] );
        	},'xml' );
	},
	showGraph: function(inst) {
		var graphId = "graph-" + inst;
		var $results = $("#" + graphId);
		if ( $results.size() === 0 ) {
			var grurl = webCore.getGraphUrl( webCore.graphs.intradayVolumeBig, inst, {showdeftitle:true} );
			$results = $( "<div class=\"nasdaqomx-dialog\"></div>" ).attr("id", graphId);
			$graph = $("<img></img>").attr( "src", grurl );
			$results.append( $graph );
			$("body").append($results);
        	$("#" + graphId).dialog({ width: 660, height: 280, hide:'fadeOut'});
        }
        $("#" + graphId).fadeIn('fast');
	},
    showAvista: function (inst) {
        var avistaId = "avista-" + inst;
        var query = webCore.createQuery(
            webCore.marketAction.getInstrument, {}, {
            ext_xslt:"avista_dialog.xsl",
            ext_xslt_lang: currentLanguage,
            ext_xslt_tableId: avistaId + "Table",
            Instrument: inst,
            ext_xslt_options: ",menu,",
            inst__a: "1,2,3,4,5,21,23,24,37"
        });
        var results = $("#" + avistaId);
        // add if not exists
        if ( results.size() === 0 ) {
            results = $( "<div class=\"nasdaqomx-dialog\"></div>" ).attr("id", avistaId);
            $("body").append(results);
        } else {
            $("#" + avistaId).dialog('destroy');
        }
        
        $("#" + avistaId).load( webCore.proxyURL, {xmlquery: query},
        function( responseText, textStatus, XMLHttpRequest) {
          $("#" + avistaId).dialog({ width: 660, height: 280, hide:'fadeOut'});
          $("#" + avistaId).fadeIn('fast');
        });
    },

    showDialog: function ( componentId, marketAction) {
        var tableId = componentId + "TableDialog";
        var query = webCore.createQuery(
        marketAction,
        webCore.markets[ webCore.personalized.preferredMarket ], {
            ext_xslt:"inst_table.xsl",
            ext_xslt_lang: currentLanguage,
            ext_xslt_tableId: tableId,
            ext_xslt_options: ",menu,",
            inst__a: "1,2,3,4,5,6,7,8,9,10,21,37" 
        });

        var dialogId = componentId;
        var results = $("#" + dialogId);
        // add if not exists
        if ( results.size() === 0 ) {
            results = $( "<div class=\"nasdaqomx-dialog\"></div>" ).attr("id", dialogId);
            $("body").append(results);
        } else {
            $("#" + dialogId).dialog('destroy');
        }
    
      $("#" + dialogId ).load( webCore.proxyURL, {xmlquery: query},
        function( responseText, textStatus, XMLHttpRequest) {
          $("#" + tableId).tablesorter({debug:false, widgets: ['zebra']});
          $("#" + dialogId).dialog({ width: 780, height: 480,hide:'fadeOut'});
          $("#" + dialogId).fadeIn('fast');
        });
      },
      
    autoComplete: {
        // not yet fully implemented
    	goToInstrumentPage: function(li) {
          if (li.extra && li.extra[1] != '' ) {
          	if ( li.extra[3] == 'B' ) {
          		if ( li.extra[1].substr(0,3) == 'CSE' ) { 
          			webCore.reloadOrGoToSharePage( li.extra[1], webCore.pages.micrositeBondsDK );
          		} else if ( li.extra[1].substr(0,3) == 'SSE' ) {
          			webCore.reloadOrGoToSharePage( li.extra[1], webCore.pages.micrositeBondsSE );
				} else if ( li.extra[1].substr(0,3) == 'ICE' ) {
          			webCore.reloadOrGoToSharePage( li.extra[1], webCore.pages.micrositeBondsIS );
          		}
          	} else if ( li.extra[3] == 'I' ) {
        		webCore.reloadOrGoToSharePage( li.extra[1], webCore.pages.micrositeIndex );
          	} else if ( li.extra[3] == 'S' ) {
        		webCore.reloadOrGoToSharePage( li.extra[1] );
          	} else {
          		webCore.goToPage( "aktier", null, "?q=" + jQuery.trim(encodeURIComponent($("#smallSearchNordicShares").val())));
          	}
          }
    	},
        goToSharesPage: function (li) {
          if (li.extra && li.extra[1] != '' ) {
          	webCore.reloadOrGoToSharePage( li.extra[1] );
          }
        },
        goToSharesPageFirstNorth: function (li) {
          if (li.extra && li.extra[1] != '' ) {
          	webCore.reloadOrGoToSharePage( li.extra[1], webCore.pages.micrositeShareFirstNorth );
          }
        },
        addToMyList: function(li) {
        	if ( li.extra  && li.extra[1] != '' ) {
				webCore.addToMyList( li.extra[1] );
        	}
        },
        formatItem: function(row, pos, cnt) {
	      var cr = (row[4]!=undefined)?" ("+row[4]+")":"";
	      var result = '<div style="width:100%;"><div style="display:inline;float:left;">' + row[0] + cr +'</div>';
          var chp = row[1];
          var styleClass = 'zero';
          if ( chp > 0 ) {
            styleClass = 'pos';
          } else if ( chp < 0 ) {
            styleClass = 'neg';
          } 
           result += '<div style="float:right;display:inline;padding-right: 8px;" class="' + styleClass+ '">' + row[1] + ' %</div></div>';
           return result;
        }
    },
    
    marketAction: {
      avista: { 
        SubSystem :"Prices", Action :"GetInstrument", inst__a :"0,1,2,5,21,23", ext_xslt: "avista_table.xsl"
      },
      getInstrument: { 
        SubSystem :"Prices", Action :"GetInstrument", inst__a :"0,1,2,5,21,23", Exception: "false", ext_xslt: "inst_table.xsl"
      },
      getPrevTradingDay: { 
        SubSystem :"Prices", Action :"GetInstrument", inst__a :"92", Exception: "false"
      },
      getChangeData: {
      	SubSystem: "History", Action: "GetChangeData", Instrument: null, ext_xslt: "hi_changedata_table.xsl"
      },
      getIndexInstrument: { 
        SubSystem :"Prices", Action :"GetIndexInstruments", inst__a :"0,1,2,5,21,23", ext_xslt: "inst_table.xsl"
      },
      getDerivates: { 
        SubSystem :"Prices", Action :"GetDerivatives", inst__a :"0,1,2,5,21,23", ext_xslt: "inst_table.xsl"
      },
      search: {
        SubSystem :"Prices", Action :"Search", inst__a :"0,1,2,21,23", ext_xslt: "inst_table.xsl"
      },
      getMarket: {
        Exchange: "NMF", SubSystem :"Prices", Action :"GetMarket", inst__a :"0,1,2,5,21,23", ext_xslt: "inst_table.xsl"
      },
      risersAndFallers : {
        SubSystem:"Prices", Action :"WinnersAndLosers", Max : 4 , inst__a :"0,1,2,5,21,23,10", ext_xslt: "inst_table.xsl"
      },
      risers: {
        SubSystem: "Prices", Action :"Winners", Max : 8, inst__a :"0,1,2,5,21,37,10", ext_xslt: "inst_table.xsl"
      },
      fallers: {
        SubSystem:"Prices", Action :"Losers", Max : 8, inst__a :"0,1,2,5,21,37,10", ext_xslt: "inst_table.xsl"
      },
      getHighestTurnover: {
      	SubSystem: "Prices", Action: "GetHighestTurnover", Max: 8, inst__a:"0,1,2,5,21,23,33,34,141,10", ext_xslt: "inst_table.xsl"
      },
      mostTraded: {
        SubSystem :"Prices", Action :"GetMostTraded", Max : 8, inst__a :"0,1,2,21,5,34,33,23,10,108", ext_xslt: "inst_table.xsl"
      },
      unusualVolume: {
        SubSystem : "Prices", Action : "GetUnusualVolume", Max : 8, inst__a :"0,1,2,5,37,34,140,23,10", ext_xslt: "inst_table.xsl"
      },
      getIssuers : { 
        SubSystem : "OMXWeb", Action : "GetIssuers"
      },
      getIndexInstruments: { 
        SubSystem :"Prices", Action :"GetIndexInstruments", inst__a :"0,1,2,5,21,23", ext_xslt: "inst_table.xsl"
      },
      getIssuer : { 
        SubSystem : "Issuer", Action : "GetIssuer", source: 'OMX', issuer__e: "0"
      },
      getOrderDepth: { 
        SubSystem: "Prices", Action: "GetInstrument", Exchange: "NMF",trd__a: "7,8", inst__e: "1,3,6,7,8", inst__a: "0,1,2,3,5,6,7,10,12,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,86,87,88,91,97,98,99,100,108,72,51,68,82,54,115,90,66,84,119,120", ext_xslt: "inst_orderdepth_table.xsl"
      },
      getTrades : {
        SubSystem: "Prices", Action: "GetTrades", Exchange: "NMF" 
      },
      getInstrumentByISIN : {
        SubSystem: "Prices", Action: "GetInstrumentByISIN", Exchange: "NMF", inst__a:"1,2,3,104,23,24,37,21,34,52,5,114", inst__e:"7", ext_xslt:"inst_table.xsl"
      },
      getInstrumentByName : {
        SubSystem: "Prices", Action: "GetInstrumentByName", Exchange: "NMF", inst__a:"1,2,3,104,23,24,37,21,34,52,5,114", inst__e:"7", ext_xslt:"inst_table.xsl"
      },
      getDataSeries : {
        SubSystem: "History", Action: "GetDataSeries", AppendIntraDay: "no",Instrument : null, FromDate : null, ToDate : null, hi__a : "0,1,2,4,21,8,10,11,12,9", ext_xslt: "hi_table.xsl" 
      },
      searchNews: {
        SubSystem: "News", Action: "Search", NewsFeed: "OMXLINK", Lang : "en", LegalEntity: "1", Max: "25", msg__a : "0,1,2,3,4,5,6,7,8,9,10,11", msg__e: "0,2,3,", Issuer: null, Instrument: null, 
        Type: "11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,28,29,30,31,32,142,145,146,147,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,50,51,52,53,54,143,148,149,150,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,75,76,77,78,79,144,151,152,153,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,269,270"    
      },
      getCurrency: {
      	SubSystem: "Prices", Action: "GetMarket", Market: "CURRENCY", Exchange: "NMF", inst__a:"0,1,2,37,86", ext_xslt: "inst_table.xsl"
      },
      getChangeSummary: {
      	SubSystem: "Prices", Action: "GetChangeSummary"
      }
    }, 
    /*
    
    */
    markets_old: {
      NOR:   { Market : [ 'L:3303','L:3306','L:3300','L:822'] },
      NORLC: { Market : [ 'L:3254', 'L:3318', 'L:3294', 'L:3272', 'L:3551' ] },
      NORMC: { Market : [ 'L:3255', 'L:3319', 'L:3295', 'L:3270', 'L:3552' ] },
      NORSC: { Market : [ 'L:3256', 'L:3320', 'L:3296', 'L:3271', 'L:3553' ] },
      CSE:   { Market : [ 'L:3318', 'L:3319', 'L:3320' ] },
      CSELC: { Market : [ 'L:3318' ] },
      CSEMC: { Market : [ 'L:3319' ] },
      CSESC: { Market : [ 'L:3320' ] },
      STO:   { Market : [ 'L:3294', 'L:3295', 'L:3296' ] },
      STOLC: { Market : [ 'L:3294' ] },
      STOMC: { Market : [ 'L:3295' ] },
      STOSC: { Market : [ 'L:3295' ] },
      HEL:   { Market : [ 'L:3272', 'L:3270', 'L:3271' ] },
      HELLC: { Market : [ 'L:3272' ] },
      HELMC: { Market : [ 'L:3270' ] },
      HELSC: { Market : [ 'L:3271' ] },
      ICE:   { Market : [ 'L:3551', 'L:3552', 'L:3553' ] },
      ICELC: { Market : [ 'L:3551' ] },
      ICEMC: { Market : [ 'L:3552' ] },
      ICESC: { Market : [ 'L:3553' ] },
      /* Below is FirstNorth*/
      FN:    { Market : [ '27', '127','136','146'] }
    },

    markets: {
      NOR:   { Market : [ 'L:10214','L:10216','L:10218','L:10150'] },
      NORLC: { Market : [ 'L:3254', 'L:10220', 'L:10208', 'L:10196', 'L:10238' ] },
      NORMC: { Market : [ 'L:3255', 'L:10222', 'L:10210', 'L:10198', 'L:10240' ] },
      NORSC: { Market : [ 'L:3256', 'L:10224', 'L:10212', 'L:10200', 'L:10242' ] },
      CSE:   { Market : [ 'L:10220', 'L:10222', 'L:10224' ] },
      CSELC: { Market : [ 'L:10220' ] },
      CSEMC: { Market : [ 'L:10222' ] },
      CSESC: { Market : [ 'L:10224' ] },
      STO:   { Market : [ 'L:10208', 'L:10210', 'L:10212' ] },
      STOLC: { Market : [ 'L:10208' ] },
      STOMC: { Market : [ 'L:10210' ] },
      STOSC: { Market : [ 'L:10210' ] },
      HEL:   { Market : [ 'L:10196', 'L:10198', 'L:10200' ] },
      HELLC: { Market : [ 'L:10196' ] },
      HELMC: { Market : [ 'L:10198' ] },
      HELSC: { Market : [ 'L:10200' ] },
      ICE:   { Market : [ 'L:10238', 'L:10240', 'L:10242' ] },
      ICELC: { Market : [ 'L:10238' ] },
      ICEMC: { Market : [ 'L:10240' ] },
      ICESC: { Market : [ 'L:10242' ] },
      /* Below is FirstNorth*/
      FN:    { Market : [ '27', '127','136','146'] }
    },
    
   	// INET NEW MARKETS
    markets_inetold: {
      NOR:   { Market : [ 'L:10048','L:10046','L:10042','L:10200'] },
      NORLC: { Market : [ 'L:10214', 'L:10208', 'L:10232', 'L:10238' ] },
      NORMC: { Market : [ 'L:10216', 'L:10210', 'L:10196', 'L:10240' ] },
      NORSC: { Market : [ 'L:10218', 'L:10212', 'L:10198', 'L:10242' ] },

      CSE:   { Market : [ 'L:10048' ] },
      CSELC: { Market : [ 'L:10214' ] },
      CSEMC: { Market : [ 'L:10216' ] },
      CSESC: { Market : [ 'L:10218' ] },

      STO:   { Market : [ 'L:10046' ] },
      STOLC: { Market : [ 'L:10208' ] },
      STOMC: { Market : [ 'L:10210' ] },
      STOSC: { Market : [ 'L:10212' ] },

      HEL:   { Market : [ 'L:10042' ] },
      HELLC: { Market : [ 'L:10232' ] },
      HELMC: { Market : [ 'L:10196' ] },
      HELSC: { Market : [ 'L:10198' ] },

      ICE:   { Market : [ 'L:10200' ] },
      ICELC: { Market : [ 'L:10238' ] },
      ICEMC: { Market : [ 'L:10240' ] },
      ICESC: { Market : [ 'L:10242' ] },
      /* Below is FirstNorth*/
      FN:    { Market : [ '27', '127','136','146'] }
    },
    
    
    marketsFirstNorth: {
    	NOR: { Market : [ '27', '127','136','146'] },
    	CSE: { Market : [ '127' ] },
    	STO: { Market : [ '27' ] },
    	HEL: { Market : [ '146' ] },
    	ICE: { Market : [ '136'] }
    },
    
    /* This is needed for the search instrument */
    lists: {
        NOR:   { List : [ 'L:10214','L:10216','L:10218'] },
        /* first north */
	    FN: { List: [ '127','27','136','146'] }
    },

    instruments: {
      nordicIndexes: {
        Instrument: [ "SE0001809476", "DX0000001376", "SE0000337842", "FI0008900212", "IS0000018885" ]
      },
      firstNorthIndexes: {
        Instrument: [ "SE0002229377", "SE0002229385", "SE0002229393", "SE0002229401", "SE0002229419",
         "SE0002229427", "SE0002229435", "SE0002229443", "SE0002229450", "SE0002229468", "SE0001718719", 
         "SE0001718727", "SE0001910944", "SE0001718701" ]
      },
      sectorIndexes: {
        Instrument: [ "SE0001775834", "SE0001775859", "SE0001775867",
            "SE0001775883", "SE0001776196", "SE0001776212",
            "SE0001776238", "SE0001776253", "SE0001776279",
            "SE0001776295" ]
      },
      morgageRates: {
        Instrument: [ "SE0003077585", "SE0003077593", "SE0003077577","SE0003330687","SE0003332931" ] // [ "OMFSE0001356676", "OMFSE0002324699", "OMFSE0002158881" ] 
      }
    },
    
    graphs: { 
        intradayBig: { width: 320, height: 200, instid: 'SSE101' },
        intradayVolumeBig: { width: 320, height: 200, instid: 'SSE101', dtype: 'intradayvolume' },
        historyBig: { width: 320, height: 200, instid: 'SSE101', dtype: 'history' },
        historyXL: { width: 665, height: 160, instid: 'SSE101', dtype: 'history' },
        intradaySmall: { width: 270, height: 160, instid: 'SSE101', showdeftitle: 'true' },
        historySmall: { width: 280, height: 160, instid: 'SSE101', showdeftitle: 'true', dtype: 'history' }
    },
    pages: {
        micrositeShare: 'aktier/shareinformation',
        micrositeShareFirstNorth: 'firstnorth/shares/shareinformation',
        micrositeSharesHistorical: 'shares/historical_prices',
        micrositeSharesHistoricalFirstNorth: 'firstnorth/shares/historicalprices',
        micrositeIndex: 'index/index_info',
        micrositeIndexHistorical: 'index/historical_prices',
        micrositeBondsDK: 'bonds/denmark/microsite/',
        micrositeBondsSE: 'Bonds/Sweden/microsite',
        micrositeBondsIS: 'Bonds/Iceland/microsite',
        micrositeOptionAndFutures: 'optionsandfutures/microsite',
        micrositeFunds: 'fonder/microsite',
        micrositeWarrant: 'warrants/warrantinformation',
        micrositeFundsHistorical: 'fonder/historical_prices',
        micrositeCertificate: 'certificates/certificate_information',
        micrositeOtherInstruments: 'shares/otherpriceinformation',
        myList: 'shares/mylist',
        myListFirstNorth: 'firstnorth/mylist',
        micrositeIndexFirstNorth: 'firstnorth/index/indexinformation'
    }
    , numberFormat: {
    	en: { decimal: RegExp('\\.'), separator: RegExp(',','g') },  
    	sv: { decimal: RegExp(','), separator: RegExp('\\s','g') }, // \\u00a0 -> nbrsp
    	fi: { decimal: RegExp(','), separator: RegExp('\\s','g') },
    	da: { decimal: RegExp(','), separator: RegExp('\\.','g') },
    	is: { decimal: RegExp(','), separator: RegExp('\\.','g') }
    }
};


