﻿

/*
http://www.JSON.org/json2.js
2009-09-29

Public Domain.

NO WARRANTY EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK.

See http://www.JSON.org/js.html
*/
if (!this.JSON) { this.JSON = {}; } (function() { function l(c) { return c < 10 ? '0' + c : c } if (typeof Date.prototype.toJSON !== 'function') { Date.prototype.toJSON = function(c) { return isFinite(this.valueOf()) ? this.getUTCFullYear() + '-' + l(this.getUTCMonth() + 1) + '-' + l(this.getUTCDate()) + 'T' + l(this.getUTCHours()) + ':' + l(this.getUTCMinutes()) + ':' + l(this.getUTCSeconds()) + 'Z' : null }; String.prototype.toJSON = Number.prototype.toJSON = Boolean.prototype.toJSON = function(c) { return this.valueOf() } } var o = /[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, p = /[\\\"\x00-\xreqf\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, h, m, r = { '\b': '\\b', '\t': '\\t', '\n': '\\n', '\f': '\\f', '\r': '\\r', '"': '\\"', '\\': '\\\\' }, j; function q(a) { p.lastIndex = 0; return p.test(a) ? '"' + a.replace(p, function(c) { var f = r[c]; return typeof f === 'string' ? f : '\\u' + ('0000' + c.charCodeAt(0).toString(16)).slice(-4) }) + '"' : '"' + a + '"' } function n(c, f) { var a, e, d, i, k = h, g, b = f[c]; if (b && typeof b === 'object' && typeof b.toJSON === 'function') { b = b.toJSON(c) } if (typeof j === 'function') { b = j.call(f, c, b) } switch (typeof b) { case 'string': return q(b); case 'number': return isFinite(b) ? String(b) : 'null'; case 'boolean': case 'null': return String(b); case 'object': if (!b) { return 'null' } h += m; g = []; if (Object.prototype.toString.apply(b) === '[object Array]') { i = b.length; for (a = 0; a < i; a += 1) { g[a] = n(a, b) || 'null' } d = g.length === 0 ? '[]' : h ? '[\n' + h + g.join(',\n' + h) + '\n' + k + ']' : '[' + g.join(',') + ']'; h = k; return d } if (j && typeof j === 'object') { i = j.length; for (a = 0; a < i; a += 1) { e = j[a]; if (typeof e === 'string') { d = n(e, b); if (d) { g.push(q(e) + (h ? ': ' : ':') + d) } } } } else { for (e in b) { if (Object.hasOwnProperty.call(b, e)) { d = n(e, b); if (d) { g.push(q(e) + (h ? ': ' : ':') + d) } } } } d = g.length === 0 ? '{}' : h ? '{\n' + h + g.join(',\n' + h) + '\n' + k + '}' : '{' + g.join(',') + '}'; h = k; return d } } if (typeof JSON.stringify !== 'function') { JSON.stringify = function(c, f, a) { var e; h = ''; m = ''; if (typeof a === 'number') { for (e = 0; e < a; e += 1) { m += ' ' } } else if (typeof a === 'string') { m = a } j = f; if (f && typeof f !== 'function' && (typeof f !== 'object' || typeof f.length !== 'number')) { throw new Error('JSON.stringify'); } return n('', { '': c }) } } if (typeof JSON.parse !== 'function') { JSON.parse = function(i, k) { var g; function b(c, f) { var a, e, d = c[f]; if (d && typeof d === 'object') { for (a in d) { if (Object.hasOwnProperty.call(d, a)) { e = b(d, a); if (e !== undefined) { d[a] = e } else { delete d[a] } } } } return k.call(c, f, d) } o.lastIndex = 0; if (o.test(i)) { i = i.replace(o, function(c) { return '\\u' + ('0000' + c.charCodeAt(0).toString(16)).slice(-4) }) } if (/^[\],:{}\s]*$/.test(i.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, '@').replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, ']').replace(/(?:^|:|,)(?:\s*\[)+/g, ''))) { g = eval('(' + i + ')'); return typeof k === 'function' ? b({ '': g }, '') : g } throw new SyntaxError('JSON.parse'); } } } ());


// jXHR.js (JSON-P XHR)
// v0.1 (c) Kyle Simpson
// MIT License

(function(global) {
    var SETTIMEOUT = global.setTimeout, // for better compression
		doc = global.document,
		callback_counter = 0;

    global.jXHR = function() {
        var script_url,
			script_loaded,
			jsonp_callback,
			scriptElem,
			publicAPI = null;

        function removeScript() { try { scriptElem.parentNode.removeChild(scriptElem); } catch (err) { } }

        function reset() {
            script_loaded = false;
            script_url = "";
            removeScript();
            scriptElem = null;
            fireReadyStateChange(0);
        }

        function ThrowError(msg) {
            try { publicAPI.onerror.call(publicAPI, msg, script_url); } catch (err) { throw new Error(msg); }
        }

        function handleScriptLoad() {
            if ((this.readyState && this.readyState !== "complete" && this.readyState !== "loaded") || script_loaded) { return; }
            this.onload = this.onreadystatechange = null; // prevent memory leak
            script_loaded = true;
            if (publicAPI.readyState !== 4) {ThrowError("Script loading failed [" + script_url + "].");}
            removeScript();
        }

        function fireReadyStateChange(rs, args) {
            args = args || [];
            publicAPI.readyState = rs;
            if (typeof publicAPI.onreadystatechange === "function") {publicAPI.onreadystatechange.apply(publicAPI, args);}
        }

        publicAPI = {
            onerror: null,
            onreadystatechange: null,
            readyState: 0,
            open: function(method, url) {
                reset();
                internal_callback = "cb" + (callback_counter++);
                (function(icb) {
                    global.jXHR[icb] = function() {
                        try { fireReadyStateChange.call(publicAPI, 4, arguments); }
                        catch (err) {
                            publicAPI.readyState = -1;
                            ThrowError("Script failed to run [" + script_url + "].");
                            alert(err);console.log(err);
                        }
                        global.jXHR[icb] = null;
                    };
                })(internal_callback);
                script_url = url.replace(/=\?/, "=jXHR." + internal_callback);
                fireReadyStateChange(1);
            },
            send: function() {
                SETTIMEOUT(function() {
                    scriptElem = doc.createElement("script");
                    scriptElem.setAttribute("type", "text/javascript");
                    scriptElem.onload = scriptElem.onreadystatechange = function() { handleScriptLoad.call(scriptElem); };
                    scriptElem.setAttribute("src", script_url);
                    doc.getElementsByTagName("head")[0].appendChild(scriptElem);
                }, 0);
                fireReadyStateChange(2);
            },
            setRequestHeader: function() { }, // noop
            getResponseHeader: function() { return ""; }, // basically noop
            getAllResponseHeaders: function() { return []; } // ditto
        };

        reset();

        return publicAPI;
    };
})(window);

var ua = navigator.userAgent.toLowerCase();
if (ua.indexOf(" chrome/") >= 0 || ua.indexOf(" firefox/") >= 0 || ua.indexOf(' gecko/') >= 0) {
    var StringMaker = function() {
        this.str = "";
        this.length = 0;
        this.append = function(s) {
            this.str += s;
            this.length += s.length;
        };
        this.prepend = function(s) {
            this.str = s + this.str;
            this.length += s.length;
        };
        this.toString = function() {
            return this.str;
        };
    };
} else {
    var StringMaker = function() {
        this.parts = [];
        this.length = 0;
        this.append = function(s) {
            this.parts.push(s);
            this.length += s.length;
        };
        this.prepend = function(s) {
            this.parts.unshift(s);
            this.length += s.length;
        };
        this.toString = function() {
            return this.parts.join('');
        };
    };
}

var keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_.";
//var keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
function encode64(input) {
    var output = new StringMaker();
    var chr1, chr2, chr3;
    var enc1, enc2, enc3, enc4;
    var i = 0;

    while (i < input.length) {
        chr1 = input.charCodeAt(i++);
        chr2 = input.charCodeAt(i++);
        chr3 = input.charCodeAt(i++);

        enc1 = chr1 >> 2;
        enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
        enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
        enc4 = chr3 & 63;

        if (isNaN(chr2)) {
            enc3 = enc4 = 64;
        } else if (isNaN(chr3)) {
            enc4 = 64;
        }

        output.append(keyStr.charAt(enc1) + keyStr.charAt(enc2) + keyStr.charAt(enc3) + keyStr.charAt(enc4));
    }

    return output.toString();
}

function decode64(input) {
    var output = new StringMaker();
    var chr1, chr2, chr3;
    var enc1, enc2, enc3, enc4;
    var i = 0;

    // remove all characters that are not A-Z, a-z, 0-9, +, /, or =
    input = input.replace(/[^A-Za-z0-9\-\_\.]/g, "");
    //input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");

    while (i < input.length) {
        enc1 = keyStr.indexOf(input.charAt(i++));
        enc2 = keyStr.indexOf(input.charAt(i++));
        enc3 = keyStr.indexOf(input.charAt(i++));
        enc4 = keyStr.indexOf(input.charAt(i++));

        chr1 = (enc1 << 2) | (enc2 >> 4);
        chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
        chr3 = ((enc3 & 3) << 6) | enc4;

        output.append(String.fromCharCode(chr1));

        if (enc3 != 64) {
            output.append(String.fromCharCode(chr2));
        }
        if (enc4 != 64) {
            output.append(String.fromCharCode(chr3));
        }
    }

    return output.toString();
}

function getReqObjPrice(strSymbol, strProvider, boolMonitor) {
	var newReqId = ++globalCurrentReqId;
	var tempReqObj = {
		t: 1, // unsigned byte for message type (REQUEST_MONITOR_PRICE = 1)
		i: newReqId, // int indicating the request id
		m: boolMonitor?1:0, // byte indicating subscription mode (SUBSCRIPTION_MODE_SNAPSHOT=0, SUBSCRIPTION_MODE_MONITOR=1)
		s: strSymbol,
		p: strProvider
	};
	return tempReqObj;
}

function getReqObjInstrumentLookup(strMarketId, byteSearchField, strSearch, byteMode, arrInstrTypes, intMax, strProvider) {
	var newReqId = ++globalCurrentReqId;
	var tempReqObj = {
		t: 9, // unsigned byte for message type (REQUEST_MARKET_INSTRUMENTS = 9)
		i: newReqId, // int indicating the request id
		p: strProvider,
		mkt: strMarketId, // A String for market id
		fid: byteSearchField, // A byte for search field (SEARCH_ALL = 0, SEARCH_NAME = 1, SEARCH_SYMBOL = 2)
		str: strSearch, // String for string to search for
		mode: byteMode, // byte for search mode (MODE_STARTS_WITH = 1, MODE_CONTAINS = 2, MODE_ENDS_WITH = 3)
		it: arrInstrTypes, // byte for instrument type (in fact this is an array of instrument-types/bytes - extended compared to binary protocol v1)
		max: intMax // int for maximum number of results
	};
	return tempReqObj;
}

function getXReqPageSize(){
	return 4;
}

Netdania = {};
arrRequests = [];
globalCurrentReqId = 0;
globalCurrentCmp = 0;
cbfunctions = [];
sessionId = undefined;

function appendRequests(v,remove){
	if(window.xreq === undefined || xreq.appending === true || sessionId === '?'){
		arrRequests = arrRequests.concat(v);
		return;
	}
		xreq.appending = true;
		var treq = new jXHR();
		var i = 0;
		var tmpv = v.slice(0, xreqPageSize);
		var a = encode64(JSON.stringify(tmpv));
		i = i + xreqPageSize;
		var url = globalConnectHost + "?" +
				"dt=" + byteDeliveryType + "&" +
				"sessid=" + sessionId + "&" +
				"xcmd=" + a + "&" +
				"cb=?";	
		treq.onreadystatechange = function(data) {
			if (treq.readyState === 4) {
				if( i < v.length){
					tmpv = v.slice(i, i+xreqPageSize);
					a = encode64(JSON.stringify(tmpv));
					
					url = globalConnectHost + "?" +
						"dt=" + byteDeliveryType + "&" +
						"sessid=" + sessionId + "&" +
						"xcmd=" + a + "&" +
						"cb=?";
					
					i = i + xreqPageSize;
					openAjaxCall = function(){
						treq.open("GET", url);
						treq.send();
					};
					setTimeout(openAjaxCall, 10);
				}else{
					xreq.appending = false;
					if(arrRequests.length > 0){
						var temp = arrRequests.concat([]);
						arrRequests = [];
						appendRequests(temp);
					}
				}
			}
		};
		treq.open("GET", url);
		treq.send();
}

function handleError(msg, url) {
    //alert(msg);
}

function startConnection(){ //window 
	var g = window;
	
	g.xreqPageSize = getXReqPageSize();
	g.sessionId ='?';
	g.pollingInterval = 1000;
	g.globalConnectHost = "http://balancer.netdania.dk/StreamingServer/StreamingServer";
	g.byteConnBehavior = 3; // CONNECTION_STREAMING = 1, CONNECTION_POLLING = 2, CONNECTION_LONG_POLLING = 3
	g.byteDeliveryType = 1; // Delivery-type (JSON/0, JSONP/1, SCRIPT-TAG/2).
	g.handshake = {
		g: "www.ftanalysis.com",
		ai: "MyAppId",
		au: "http://www.ftanalysis.com",
		pr: byteConnBehavior // CONNECTION_STREAMING = 1, CONNECTION_POLLING = 2, CONNECTION_LONG_POLLING = 3
	};
	
	//initXReq();
	
	//var strArrRequests = encode64(JSON.stringify(arrRequests.slice(0, xreqPageSize)));
	var strHandshake = encode64(JSON.stringify(handshake));

    var url = globalConnectHost + "?" +
                    "xstream=1&" +
                    "v=1&" +
                    "dt=1&" +
                    "h=" + strHandshake + "&" +
                   // "xcmd=" + strArrRequests + "&" +
                    "cb=?" +
                    "&ts=" + Math.random();
	g.xreq = new jXHR();
	xreq.pending = false;
	xreq.appending = false;
	xreq.totalCount = -1;
    xreq.onerror = handleError;
    xreq.onreadystatechange = function(data) {
        if (xreq.readyState === 4){
			sessionId = data[1].m;
			appendRequests(arrRequests);
			arrRequests = [];
			xreq.url = globalConnectHost + "?" +
					"dt=" + byteDeliveryType + "&" +
					"sessid=" + sessionId + "&" +
					"cb=?&" +
					"xpoll&" +
					"&ts=" + Math.random();
			
            xreq.onreadystatechange = function(data) {
				if (xreq.readyState === 4) {
					if (data !== '' && data !== undefined) {
						for(var kk = 0; kk < cbfunctions.length; kk++){
							//console.log(cbfunctions[kk].hasOwnProperty('win'));
							if(cbfunctions[kk].hasOwnProperty('win'))
							{
							    if(cbfunctions[kk].hasOwnProperty('win')!== null)
							    {
							        cbfunctions[kk].update(data, cbfunctions[kk].cmp, cbfunctions[kk].win);
							    }
							}
							else
							{
							    cbfunctions[kk].update(data, cbfunctions[kk].cmp);
							}
							
						}
					}
					xreq.pending = false;
				}
			};

            if(g.byteConnBehavior === 2)
            {
                pollingIntv = setInterval("doPolling(" + byteDeliveryType + ")", 500);
                setTimeout("clearIntervals(" + byteDeliveryType + ","+ pollingInterval +")", pollingInterval);
            }
            else
            {
                pollingIntv = setInterval("doPolling(" + byteDeliveryType + ")", pollingInterval);
            }
            
        }
    };
	xreq.open("GET", url);
    xreq.send();
}

function clearIntervals(byteDeliveryType, pollingInterval)
{
    window.clearInterval(pollingIntv);
    pollingIntv = setInterval("doPolling(" + byteDeliveryType + ")", pollingInterval);
}


function removeCallback(c, f){
	for(var i = 0; i<cbfunctions.length; i++){
		if(cbfunctions[i].cmp.id === c.id){
			cbfunctions.splice(i,1, {update: f,cmp: c});
			break;
		}
	}
}

function removeArrayItem(arr, v){
	for(var i = 0; i<arr.length; i++){
		if(arr[i] === v){
			arr.splice(i,1);
			break;
		}
	}
}

function doPolling(byteDeliveryType) {
	if (sessionId === null) {
		//alert("TODO: We cannot poll as we do not have a session-id from the server!");
		return;
	}
	
	if(xreq.pending === false){
		xreq.pending = true;
		xreq.open("GET", xreq.url);
		xreq.send();
	}
}

function getBidAsk(bid, ask, decimals) {
	
    if (bid === "N/A" || ask === "N/A") {
        return bid;
    }

    if (decimals !== null && decimals !== undefined) {
	    try {
	        bid = parseFloat(bid).toFixed(decimals);
	    }
	    catch (ex) {
	    }
	    try {
	        ask = parseFloat(ask).toFixed(decimals);
	    }
	    catch (ex_) {
	    }
    }

    var charsChanged = false;
    subBid = bid.substring(0, 1);
    subAsk = ask.substring(0, 1);
    finishAsk = "/";
    var i = 0;
    while (i < bid.length && i < ask.length) {
        subBid = bid.substring(i, i + 1);
        subAsk = ask.substring(i, i + 1);
        if (charsChanged || (subBid !== subAsk)) {
            charsChanged = true;
            finishAsk = finishAsk + subAsk;
        }
        i++;
    }
    if (finishAsk !== "/") {
        return bid/* + finishAsk*/;
    } else {
        return bid;
    }
}

function getLast(value, bid, ask, decimals) {
	
	if (decimals !== null && decimals !== undefined ) {
	    if (value !== "N/A") {
	        try {
	            value = parseFloat(value).toFixed(decimals);
	        }
	        catch (ex) {
	        }
	    }
	}

    var val = value;
    if (val === "N/A") {
        val = getBidAsk(bid, ask, decimals);
    }
    return val;
}

function computeChange(last, close){
	return parseFloat(last-close).toFixed(2);
}

function computePctChange(last, close){
	if(close!=="" && close !==0){
		return parseFloat((last-close)*100/close).toFixed(2);
	}
	return 'NaN';
}

function computeYChange(last, yclose){
	return parseFloat(last-yclose).toFixed(2);
}

function computePctYChange(last, yclose){
	if(yclose!=="" && yclose !==0){
		return parseFloat((last-yclose)*100/yclose).toFixed(2);
	}
	return 'NaN';
}

/**
 * Gets the current time in milliseconds from 1970.
 */
function getCurrentDateTime() {
	var date = new Date();
	return Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds());
}


/**
 * Gets the current time in milliseconds from 1970.
 */
function getCurrentDateTime() {
	var date = new Date();
	return Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds());
}

function getDate(val){
		dtArray = val.split(" ");
        dt = dtArray[0];
        time = dtArray[1];

        timeArray = time.split(":");
        hour = timeArray[0];
        min = timeArray[1];
        sec = timeArray[2];

        diff = calculate_time_zone();

        tzArray = diff.split(":");

        hoursDiff = parseInt(tzArray[0], 10);
        minDiff = parseInt(tzArray[1], 10);

        dtArray = dt.split("-");

        today = new Date();
        today.setFullYear(dtArray[0], dtArray[1] - 1, dtArray[2]);
        today.setHours(hour, min, sec);
        newDate = today.add(Date.HOUR, hoursDiff);
        
		return newDate;
}

var dateFormat = function() {
    var token = /d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[LloSZ]|"[^"]*"|'[^']*'/g,
		timezone = /\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[\-+]\d{4})?)\b/g,
		timezoneClip = /[^\-+\dA-Z]/g,
		pad = function(val, len) {
		    val = String(val);
		    len = len || 2;
		    while (val.length < len) {val = "0" + val;}
		    return val;
		};

    // Regexes and supporting functions are cached through closure
    return function(date, mask, utc) {
        var dF = dateFormat;

        // You can't provide utc if you skip other args (use the "UTC:" mask prefix)
        if (arguments.length == 1 && (typeof date == "string" || date instanceof String) && !/\d/.test(date)) {
            mask = date;
            date = undefined;
        }

        // Passing date through Date applies Date.parse, if necessary
        date = date ? new Date(date) : new Date();
        if (isNaN(date)){ throw new SyntaxError("invalid date");}

        mask = String(dF.masks[mask] || mask || dF.masks["default"]);

        // Allow setting the utc argument via the mask
        if (mask.slice(0, 4) == "UTC:") {
            mask = mask.slice(4);
            utc = true;
        }

        var _ = utc ? "getUTC" : "get",
			d = date[_ + "Date"](),
			D = date[_ + "Day"](),
			m = date[_ + "Month"](),
			y = date[_ + "FullYear"](),
			H = date[_ + "Hours"](),
			M = date[_ + "Minutes"](),
			s = date[_ + "Seconds"](),
			L = date[_ + "Milliseconds"](),
			o = utc ? 0 : date.getTimezoneOffset(),
			flags = {
			    d: d,
			    dd: pad(d),
			    ddd: dF.i18n.dayNames[D],
			    dddd: dF.i18n.dayNames[D + 7],
			    m: m + 1,
			    mm: pad(m + 1),
			    mmm: dF.i18n.monthNames[m],
			    mmmm: dF.i18n.monthNames[m + 12],
			    yy: String(y).slice(2),
			    yyyy: y,
			    h: H % 12 || 12,
			    hh: pad(H % 12 || 12),
			    H: H,
			    HH: pad(H),
			    M: M,
			    MM: pad(M),
			    s: s,
			    ss: pad(s),
			    l: pad(L, 3),
			    L: pad(L > 99 ? Math.round(L / 10) : L),
			    t: H < 12 ? "a" : "p",
			    tt: H < 12 ? "am" : "pm",
			    T: H < 12 ? "A" : "P",
			    TT: H < 12 ? "AM" : "PM",
			    Z: utc ? "UTC" : (String(date).match(timezone) || [""]).pop().replace(timezoneClip, ""),
			    o: (o > 0 ? "-" : "+") + pad(Math.floor(Math.abs(o) / 60) * 100 + Math.abs(o) % 60, 4),
			    S: ["th", "st", "nd", "rd"][d % 10 > 3 ? 0 : (d % 100 - d % 10 != 10) * d % 10]
			};

        return mask.replace(token, function($0) {
            return $0 in flags ? flags[$0] : $0.slice(1, $0.length - 1);
        });
    };
} ();

// Some common format strings
dateFormat.masks = {
    "default": "ddd mmm dd yyyy HH:MM:ss",
    shortDate: "m/d/yy",
    mediumDate: "mmm d, yyyy",
    longDate: "mmmm d, yyyy",
    fullDate: "dddd, mmmm d, yyyy",
    shortTime: "h:MM TT",
    mediumTime: "h:MM:ss TT",
    longTime: "h:MM:ss TT Z",
    isoDate: "yyyy-mm-dd",
    isoTime: "HH:MM:ss",
    isoDateTime: "yyyy-mm-dd'T'HH:MM:ss",
    isoUtcDateTime: "UTC:yyyy-mm-dd'T'HH:MM:ss'Z'"
};

// Internationalization strings
dateFormat.i18n = {
    dayNames: [
		"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat",
		"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"
	],
    monthNames: [
		"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec",
		"Januar", "Februar", "Marts", "April", "Maj", "Juni", "Juli", "August", "September", "Oktober", "November", "December"
	]
};

// For convenience...
Date.prototype.format = function(mask, utc) {
    return dateFormat(this, mask, utc);
};

function isInArray(val, arr) {
    var isInArr = false;
    for (i = 0; i < arr.length; i++) {
        if (arr[i] == val) {
            isInArr = true;
            break;
        }
    }
    return isInArr;
}

var chartWin;
var chartLocationInteractive = 'interactiveChart.html?symbol=';
var chartLocation = 'fta-currencies.html?userId=EURUSD';
var chartName = 'FinanceChart';

function openChartCookie(instrumentInteractive) {
     
  if (chartWin !== null && chartWin !== undefined && chartWin.closed) {
    chartWin = null;
  }

  if (chartWin === null || chartWin === undefined) {
  
    //javascript:open('/Products/live-realtime-streaming-currency-exchange-rates-charts/chart-forex-charts/NetStationFullWindow.aspx','NS', 'alwaysRaised=yes,resizable=yes,directories=no,location=no,menubar=no,toolbar=no,status=no,scrollbars=no, fullscreen=yes')
    //chartWin = window.open(chartLocation + instrumentInteractive, chartName, 'alwaysRaised=yes,resizable=0,directories=no,location=no,menubar=no,toolbar=no,status=no,scrollbars=no,width=770,height=480');
    chartWin = window.open(chartLocation/* + instrumentInteractive*/, chartName, 'alwaysRaised=yes,resizable=yes,directories=no,location=yes,menubar=yes,toolbar=yes,status=yes,scrollbars=yes, fullscreen=yes');
    chartWin.focus();
  }
  else{
    chartWin.location = chartLocation + instrumentInteractive;
  }
}


function openChartInteractive(instrumentInteractive) {
     
  if (chartWin !== null && chartWin !== undefined && chartWin.closed) {
    chartWin = null;
  }

  if (chartWin === null || chartWin === undefined) {
  
    //javascript:open('/Products/live-realtime-streaming-currency-exchange-rates-charts/chart-forex-charts/NetStationFullWindow.aspx','NS', 'alwaysRaised=yes,resizable=yes,directories=no,location=no,menubar=no,toolbar=no,status=no,scrollbars=no, fullscreen=yes')
    //chartWin = window.open(chartLocation + instrumentInteractive, chartName, 'alwaysRaised=yes,resizable=0,directories=no,location=no,menubar=no,toolbar=no,status=no,scrollbars=no,width=770,height=480');
    chartWin = window.open(chartLocationInteractive + instrumentInteractive, chartName, 'alwaysRaised=yes,resizable=yes,directories=no,location=yes,menubar=yes,toolbar=yes,status=yes,scrollbars=yes, fullscreen=yes');
    chartWin.focus();
  }
  else{
    chartWin.location = chartLocation + instrumentInteractive;
  }
}


function openChartUserId(userId)
{
    var chartLocation = 'fta-currencies.html?userId=';
    window.open(chartLocation + userId, 'CSC', 'alwaysRaised=yes,resizable=yes,directories=no,location=yes,menubar=yes,toolbar=yes,status=yes,scrollbars=yes, fullscreen=yes');
}

function stripHeadline(headline, length) {

        if (headline.length < length) {
            return headline;
        }
        else {
            return headline.substring(0, length) + '...';
        }
    }
    


function getRecordById(records, id){
	for (var k = 0; k < records.length; k++) {
		if(records[k].id === id){
			return records[k];
		}
	}
	return undefined;
}

function reset_color(spanid){
	var span = document.getElementById(spanid);
//	var img = document.getElementById('img_' + spanid);
//	if(img !== null)
//	{
//	    img.style.visibility = 'hidden';
//	}
	span.firstChild.style.color = '';
}

function reset_highlight(spanid){
	var span = document.getElementById(spanid);
	if (span !== null) {
	    span.firstChild.style.backgroundColor = 'transparent';
	    setTimeout('reset_color("' + spanid + '")', 500);
	}else
	{
	    //console.log(spanid);
	}
}

function refreshCell(grid, rec, cellid, val, oldval, fxy){
	var torender = '<span>'+ val +'</span>';
	if(grid.renderers[fxy]!== undefined){
		torender = grid.renderers[fxy].fn(grid, rec, cellid, val, oldval, fxy);
	}
	var cell = document.getElementById(cellid);
	
	if(cell !== null){
		cell.innerHTML = torender;
	}
	if(grid.renderers[fxy]!== undefined && grid.renderers[fxy].hightlightInterval !== undefined){
		setTimeout('reset_highlight("' + cellid + '")', grid.renderers[fxy].hightlightInterval);
	}
}

function receiveQuotesJsonData_light(data,grid){
	var recs = grid.records;
	for (var k = 0; k < data.length; k++) {
		if (data[k].f) {
			var r = getRecordById(grid.records, "recid-"+data[k].i);
			if(r === undefined){
				continue;
			}
			var last = "notdirty";
			var bid = "notdirty";
			var ask = "notdirty";
			var close = "notdirty";
			var yclose = "notdirty";
			var name = "notdirty";var name2 = "notdirty";
			var realSymbol = "notdirty";
			var tempOldValue = '';
			var tempOldName = r.data.f25;
			
			for(var i = 0; data[k] && i< data[k].f.length; i++){
				var field = data[k].f[i];
				if(field.f === 6){
					r.last = parseFloat(field.v).toFixed(4);
					last = "dirty";
				}
				if(field.f === 10){r.bid = field.v; bid = 'dirty';}
				if(field.f === 11){r.ask = field.v; ask = 'dirty';}
				if(field.f === 1){r.close = field.v; close = 'dirty';}
				if(field.f === 19){r.yclose = field.v; yclose = 'dirty';}
				if (field.f === 1003) {
					if(r.realSymbol !== undefined){
						realSymbol = "dirty";
					}
					r.realSymbol = field.v;
				}
				if (field.f === 39) { r.isin = field.v;}
				
				if("f"+field.f in grid.columns){
					tempOldValue = r.data["f"+field.f];
					r.data["f"+field.f] = field.v;
					if(field.f === 6){
						r.data.f6 = r.last;
					}
					if(field.f === 25){
						if(tempOldValue === undefined){
							r.data.f25 = field.v;
							name = "dirty";
						}
					}else if(field.f === 5013){
						r.data.f5013 = field.v;
						name2 = "dirty";
					}else{
						refreshCell(grid,r, r.id+'-f'+field.f, field.v,tempOldValue, 'f'+field.f);
					}
				}
				
			}
			if(r.realSymbol!== undefined){
				last = "dirty";
			}
			if(name === "dirty" || realSymbol === "dirty"){
				refreshCell(grid,r, r.id+'-f25', r.data.f25,tempOldName, 'f25');
			}
			if(name2 === "dirty"){
				refreshCell(grid,r, r.id+'-f5013', r.data.f5013,'', 'f5013');
			}
			if(grid.contentType === 'indexes' && last === "notdirty" && (bid ==="dirty" || ask==="dirty")){
				r.last = getLast("N/A", r.bid, r.ask,4);
				last = "dirty";
				if('f6' in grid.columns){
					tempOldValue = r.data.f6;
					r.data.f6 = r.last;
					refreshCell(grid,r,r.id+'-f6', r.last, tempOldValue, 'f6');
				}
			}
			
			if(last!== "notdirty" || close !== "notdirty"){
				if('f15' in grid.columns){
					tempOldValue = r.data.f15;
					r.data.f15 = computePctChange(r.last, r.close);
					refreshCell(grid,r,r.id+'-f15', r.data.f15, tempOldValue,'f15');
				}
				if('f14' in grid.columns){
					tempOldValue = r.data.f14;
					r.data.f14 = computeChange(r.last, r.close);
					refreshCell(grid,r,r.id+'-f14', r.data.f14, tempOldValue,'f14');
				}
				
			}
			
			if(last!== "notdirty" || yclose !== "notdirty"){
				if('f32' in grid.columns){
					tempOldValue = r.data.f32;
					r.data.f32 = computePctYChange(r.last, r.yclose);
					refreshCell(grid,r,r.id+'-f32', r.data.f32, tempOldValue,'f32');
				}
				if('f31' in grid.columns){
					tempOldValue = r.data.f31;
					r.data.f31 = computeYChange(r.last, r.yclose);
					refreshCell(grid,r,r.id+'-f31', r.data.f31, tempOldValue,'f31');
				}
				
			}
		}
	}
}

function cbf_lookup(data, cmp) {
	if (cmp.type !== 'quoteslookup' || cmp.loaded === 'loaded') { return; }
	var instr = [];

	for (var i = 0, len = data.length; i < len; i++) {
		if (isInArray(data[i].i, cmp.requests)) {
			if (data[i].a) {
				for (var lj = 0, lenlj = data[i].a.length; lj < lenlj; lj++) {
					var req = getReqObjPrice(data[i].a[lj].s, cmp.provider, true);
					var r = {
						id: "recid-" + req.i,
						data: {}
					};
					r.symbol = data[i].a[lj].s;
					cmp.records.push(r);
					cmp.requestItems.push(req);
				}
			}
			removeArrayItem(cmp.requests, data[i].i);
		}
	}

	if (cmp.requests.length === 0) {
		cmp.loaded = 'loaded'; cbfunctions.push({ cmp: cmp, update: cbf_update });
		appendRequests(cmp.requestItems);
		renderTable(cmp.tableConfig, cmp.tableConfig.startFrame, cmp.tableConfig.endFrame);
	}
}

function cbf_update(xdata, cmp) {
	receiveQuotesJsonData_light(xdata, cmp);
}

function renderTable(tableConfig, startFrame, endFrame) {

    var headerClass, contentClass, contentOddClass, width, fields, instr;

    fields = tableConfig.fields;
    var cmp = tableConfig.instr;
	instr = cmp.records;
	var tableWidth = 0;
	var headerHtml = '';
	var colsHtml = '';
	var lastField = '';
	
    if (tableConfig.contentClass === undefined || tableConfig.contentClass === null || tableConfig.contentClass === '') {
        contentClass = "gridDefaultContentClass";
    }

    if (tableConfig.contentOddClass === undefined || tableConfig.contentOddClass === null || tableConfig.contentOddClass === '') {
        contentOddClass = "gridDefaultContentOddClass";
    }

    if (tableConfig.width !== undefined && tableConfig.width !== null) {
        tableWidth = width;
    }
    for (var prop in fields) {
		lastField = prop;
	}
	
    for (var prop in fields) {
        if (fields.hasOwnProperty(prop)) {
			colsHtml += '<col width='+fields[prop].width+'>';
			tableWidth += parseInt(fields[prop].width);
			var lc = '';
			if(lastField === prop){
				lc = ' lastColCls';
			}
			headerHtml += '<td class="' + fields[prop].hdTDcls +lc+ '"><span class="' + fields[prop].hdCellCls +'"><span>' + fields[prop].name + '</span></span></td>';
		}
    }
	
    var align = '';
    if(tableConfig.align === '')
    {
        align = "center";
    }
    else
    {
        align = tableConfig.align;
    }
    
    if(startFrame !== undefined)
    {
        jshtml = startFrame + '<table width='+ tableWidth +' style="table-layout:auto;" border="0" cellspacing="0" cellpadding="0" align="'+ align +'">';
    }
    else
    {
        jshtml = '<table width='+ tableWidth +' style="table-layout:auto;" border="0" cellspacing="0" cellpadding="0">';
    }
	jshtml += colsHtml;
    jshtml += '<tr>';
	jshtml += headerHtml;
    jshtml += '</tr>';
    
    for (var ii = 0; ii < instr.length; ii++) {
        
        if(tableConfig.rowOpenChart === true)
        {
            if (ii % 2 === 0) {
                jshtml += '<tr onclick="openChartCookie(\''+ instr[ii].symbol +'\', \''+ instr[ii].symbol +'\')" onmouseover="this.className=\'mouseOverClsHand\'" onmouseout="this.className=\''+ contentClass +'\';" class="' + contentClass + '">';
            }
            else {
                jshtml += '<tr onclick="openChartCookie(\''+ instr[ii].symbol +'\', \''+ instr[ii].symbol +'\')" onmouseover="this.className=\'mouseOverClsHand\'" onmouseout="this.className=\''+ contentOddClass +'\';" class="' + contentOddClass + '">';
            }
        }
        else
        {
             if (ii % 2 === 0) {
                jshtml += '<tr onclick="openChartUserId(\''+ instr[ii].symbol +'\');" onmouseover="this.className=\'mouseOverClsHand\'" onmouseout="this.className=\''+ contentClass +'\';" class="' + contentClass + '">';
            }
            else {
                jshtml += '<tr onclick="openChartUserId(\''+ instr[ii].symbol +'\');" onmouseover="this.className=\'mouseOverClsHand\'" onmouseout="this.className=\''+ contentOddClass +'\';" class="' + contentOddClass + '">';
            }
        }
        
        var recid = instr[ii].id;

        for (var prop1 in fields) {
			if (fields.hasOwnProperty(prop1)) {
				var cellid = recid + '-' + prop1;
				var value = instr[ii].data[prop1];
				if(value === undefined){
					value = '';
				}
				if(cmp.renderers[prop1]!== undefined){
					value = cmp.renderers[prop1].fn(cmp, instr[ii], cellid, value, value, prop1);
				}else{
					value = '<span>'+value+'</span>';
				}
				var lc = '';
				if(lastField === prop1){
					lc = ' lastColCls';
				}
				jshtml += '<td  style="overflow: hidden;" class="' + fields[prop1].TDCls +lc+'"><span id="' + cellid + '" class="' + fields[prop1].cellCls + '" >' + value + '</span></td>';
			}
        }
        jshtml += '</tr>';
    }

    jshtml += '</table>';
    
    if(endFrame !== undefined)
    {
        jshtml+=endFrame;
    }
    
    if (tableConfig.renderTo !== undefined && tableConfig.renderTo !== null) {
        document.getElementById(tableConfig.renderTo).innerHTML = jshtml;
    }
    else {
        window.document.write(jshtml);
    }
}




defaultRenderers = {
	f14: function(grid, rec, cellid, val, oldval, fxy) {
		val = parseFloat(val).toFixed(2);
		if(val === "NaN"){
			return '<span></span>';
		}
		return '<span>' + val +'</span>';
	},
	f6: function(grid, rec, cellid, val, oldval, fxy) {
		var upImagePath = "images/up.gif";
		var downImagePath = "images/down.gif";
		var value = '<span>' + val + '&nbsp;&nbsp;</span>';
		if (val > oldval) {
			value = '<span style="color:blue; background-color:#C8C8C8;">' + val + '</span>';//<img id="img_' + cellid+ '" style="margin-top:-1px" align="ABSMIDDLE" src="' + upImagePath + '"/>';
		} else if (val < oldval) {
			value = '<span style="color:red; background-color:#C8C8C8;">' + val + '</span>';//<img id="img_' + cellid+ '" style="margin-top:-1px" align="ABSMIDDLE" src="' + downImagePath + '"/>';
		}
		else{
		    value = '<span>' + val + '</span>';//'&nbsp;&nbsp;</span>';
		}
		return value;
	},
	f15: function(grid, rec, cellid, val, oldval, fxy) {
		var upImagePath = "images/up.gif";
		var downImagePath = "images/down.gif";
		val = parseFloat(val).toFixed(2);
		val = val.replace("NaN", "");
		if(val === ""){
			return '<span></span>';
		}
		val = val.replace("-0.00", "0.00");
		var value = '<span>' + val + '</span>';//'%&nbsp; &nbsp;</span>';
		if (val > 0) {
			value = '<span style="color:blue;">' + val + '% </span>';//<img id="img_' + cellid+ '" style="margin-top:-1px" align="ABSMIDDLE" src="' + upImagePath + '"/>';
		} else if (val < 0) {
			value = '<span style="color:red;">' + val + '% </span>';//<img id="img_' + cellid + '" style="margin-top:-1px" align="ABSMIDDLE" src="' + downImagePath + '"/>';
		}
		return value;
	},
	f17: function(grid, rec, cellid, val, oldval, fxy) {
			if (val === "N/A" || val === undefined) {
				return "N/A";
			}
			var dateUnf = new Date(val * 1000);
			return '<span>' + dateFormat(dateUnf, "dd-HH:MM:ss")+'</span>';
		}
};

//------------------------------------BLOCKS---------------------------------------------//


Netdania.renderFrontPageAllCurrenciesBox = function(){
	globalCurrentCmp++;
	window['frontPageAllCurrenciesBox'+globalCurrentCmp] = {
		id: 'gridid-frontPageAllCurrenciesBox',
		contentType: 'indexes',
		renderers: {
			f10: {
				fn :defaultRenderers.f6,
				hightlightInterval: 1000
			},
			f11: {
				fn :defaultRenderers.f6,
				hightlightInterval: 1000
			},
			f15: {
				fn: defaultRenderers.f15,
				hightlightInterval: 1000
			},
			f17: {
				fn: defaultRenderers.f17
			},
			f25: {
				fn: function(grid, rec, cellid, val, oldval, fxy) {
						var realSymbol = rec.realSymbol;
						if(rec.realSymbol === undefined){
							realSymbol = rec.symbol;
						}
						var srclink = Drupal.settings.isinPath.replace('###ISIN###', rec.isin).replace('####SYMBOL####', realSymbol) + '&t=c';
						if (val === undefined) { val = ""; }
						//var shortval = stripHeadline(val, 15);
						return '<span style="font-family: Arial; font-size: 11px;color: #000" title="' + val + '">' + val + '</span>';
					}
			}
		},
		records: [],
		columns: { f25: 0, f10: 0, f11: 0, f2: 0, f3: 0, f15: 0}
	};
	var provider = "netdania_fxa";
	 var instr = [
		getReqObjPrice("EURUSD",provider, true),
		getReqObjPrice("USDJPY",provider, true),
		getReqObjPrice("GBPUSD",provider, true),
		getReqObjPrice("USDCHF",provider, true),
		getReqObjPrice("AUDUSD",provider, true),
		getReqObjPrice("USDCAD",provider, true)
		
	];

	var cmp = window['frontPageAllCurrenciesBox'+globalCurrentCmp];

	for (var ii = 0; ii < instr.length; ii++) {
		cmp.records.push({
			id: 'recid-' + instr[ii].i,
			symbol: instr[ii].s,
			data: {}
		});
		arrRequests.push(instr[ii]);
	}

	cbfunctions.push({
		update: cbf_update,
		cmp: cmp
	});

	var fields = {
			f25: { name: 'Name', value: 'wait..', width: 80, hdTDcls: 'hdTDcls', TDCls: 'TDCls', cellCls: 'nameColumn', hdCellCls: 'nameHeaderClass'},
			f10: { name: 'Bid', value: 'wait..', width: 65,hdTDcls: 'TDClsRight', TDCls: 'TDClsRight', cellCls: 'kursColumn', hdCellCls: 'gridDefaultHeader'},
			f11: { name: 'Ask', value: 'wait..', width: 65, hdTDcls: 'TDClsRight', TDCls: 'TDClsRight', cellCls: 'changeColumn', hdCellCls: 'gridChangeHeader' },
			f2: { name: 'High', value: 'wait..', width: 60, hdTDcls: 'TDClsRight', TDCls: 'TDClsRight', cellCls: 'changeColumn', hdCellCls: 'gridChangeHeader'},
			f3: { name: 'Low', value: 'wait..', width: 65, hdTDcls: 'TDClsRight', TDCls: 'TDClsRight', cellCls: 'changeColumn', hdCellCls: 'gridChangeHeader'},
			f15: { name: '%Change', value: 'wait..', width: 75, hdTDcls: 'TDClsRight', TDCls: 'TDClsRight', cellCls: 'changeColumn', hdCellCls: 'gridChangeHeader' }
			
	};

	var tableConfig = {
		instr: cmp,
		fields: fields,
		contentClass: '',
		contentOddClass: '',
		rowOpenChart: false
	};
	renderTable(tableConfig);
	if (sessionId === undefined) {
		startConnection();
	}
};





Netdania.renderFrontPageAllCurrenciesBoxRight = function(){
	globalCurrentCmp++;
	window['frontPageAllCurrenciesBox'+globalCurrentCmp] = {
		id: 'gridid-frontPageAllCurrenciesBox',
		contentType: 'indexes',
		renderers: {
			f10: {
				fn :defaultRenderers.f6,
				hightlightInterval: 1000
			},
			f11: {
				fn :defaultRenderers.f6,
				hightlightInterval: 1000
			},
			f15: {
				fn: defaultRenderers.f15,
				hightlightInterval: 1000
			},
			f17: {
				fn: defaultRenderers.f17
			},
			f25: {
				fn: function(grid, rec, cellid, val, oldval, fxy) {
						var realSymbol = rec.realSymbol;
						if(rec.realSymbol === undefined){
							realSymbol = rec.symbol;
						}
						var srclink = Drupal.settings.isinPath.replace('###ISIN###', rec.isin).replace('####SYMBOL####', realSymbol) + '&t=c';
						if (val === undefined) { val = ""; }
						//var shortval = stripHeadline(val, 15);
						return '<span style="font-family: Arial; font-size: 11px;color: #000" title="' + val + '">' + val + '</span>';
					}
			}
		},
		records: [],
		columns: { f25: 0, f10: 0, f11: 0, f2: 0, f3: 0, f15: 0}
	};
	var provider = "netdania_fxa";
	 var instr = [
		getReqObjPrice("EURJPY",provider, true),
		getReqObjPrice("EURGBP",provider, true),
		getReqObjPrice("EURCHF",provider, true),
		getReqObjPrice("EURCAD",provider, true),
		getReqObjPrice("GBPJPY",provider, true),
		getReqObjPrice("NZDUSD",provider, true)
		
	];

	var cmp = window['frontPageAllCurrenciesBox'+globalCurrentCmp];

	for (var ii = 0; ii < instr.length; ii++) {
		cmp.records.push({
			id: 'recid-' + instr[ii].i,
			symbol: instr[ii].s,
			data: {}
		});
		arrRequests.push(instr[ii]);
	}

	cbfunctions.push({
		update: cbf_update,
		cmp: cmp
	});

	var fields = {
			f25: { name: 'Name', value: '', width: 80, hdTDcls: 'hdTDcls', TDCls: 'TDCls', cellCls: 'nameColumn', hdCellCls: 'nameHeaderClass'},
			f10: { name: 'Bid', value: '', width: 65,hdTDcls: 'TDClsRight', TDCls: 'TDClsRight', cellCls: 'kursColumn', hdCellCls: 'gridDefaultHeader'},
			f11: { name: 'Ask', value: '', width: 65, hdTDcls: 'TDClsRight', TDCls: 'TDClsRight', cellCls: 'changeColumn', hdCellCls: 'gridChangeHeader' },
			f2: { name: 'High', value: '', width: 60, hdTDcls: 'TDClsRight', TDCls: 'TDClsRight', cellCls: 'changeColumn', hdCellCls: 'gridChangeHeader'},
			f3: { name: 'Low', value: '', width: 65, hdTDcls: 'TDClsRight', TDCls: 'TDClsRight', cellCls: 'changeColumn', hdCellCls: 'gridChangeHeader'},
			f15: { name: '%Change', value: '', width: 75, hdTDcls: 'TDClsRight', TDCls: 'TDClsRight', cellCls: 'changeColumn', hdCellCls: 'gridChangeHeader' }
			
	};

	var tableConfig = {
		instr: cmp,
		fields: fields,
		contentClass: '',
		contentOddClass: '',
		rowOpenChart: true
	};
	renderTable(tableConfig);
	if (sessionId === undefined) {
		startConnection();
	}
};



function getValue(data, f) {
    if (data.f) {
        for (var i = 0; data && i < data.f.length; i++) {
            var field = data.f[i];
            if (field.f === f) {
                return field.v;
            }
        }
    }
}


function getSymbolByISIN(isins, isin) {
    var symbol = '';
    for (var currentisin in isins) {
        if (isins.hasOwnProperty(currentisin)) {
            if (isins[currentisin].isin === isin) {
                symbol = isins[currentisin].symbol;
                break;                
            }
        }
    }
    return symbol;
}

function getInstrBySymbol(instrs, symbol, field) {
    for (var ci in instrs) {
        if (instrs.hasOwnProperty(ci)) {
            if (instrs[ci][field] === symbol) {
                return instrs[ci];
            }
        }
    }
}



    function getEndUserID(appkey) {
        var endUserID = getCookie(appkey);
        if (endUserID == null) {
            endUserID = generateUniqueID();
            // Create a date far into the future
            var today = new Date();
            today.setTime(today.getTime() + (86400000 * 18000));
            setCookie(appkey, endUserID, today);
        }
        return endUserID;
    }

    function generateUniqueID() {
        var strId = "";
        for (i = 0; i < 5; i++) {
            strId += String.fromCharCode(getRandomValue(90, 65));
        }
        var today = new Date();
        strId += today.getTime()
        return strId;
    }

    function getRandomValue(max, min) {
        var span = max - min;
        var d = span * Math.random();
        return d + min;
    }

    function setCookie(name, value, expire) {
        document.cookie = name + "=" + escape(value) + ((expire == null) ? "" : ("; expires=" + expire.toGMTString()));
    }

    function getCookie(check_name) {
        var a_all_cookies = document.cookie.split(';');
        var a_temp_cookie = '';
        var cookie_name = '';
        var cookie_value = '';
        var b_cookie_found = false; // set boolean t/f default f

        for (i = 0; i < a_all_cookies.length; i++) {
            a_temp_cookie = a_all_cookies[i].split('=');
            cookie_name = a_temp_cookie[0].replace(/^\s+|\s+$/g, '');
            if (cookie_name == check_name) {
                b_cookie_found = true;
                if (a_temp_cookie.length > 1) {
                    cookie_value = unescape(a_temp_cookie[1].replace(/^\s+|\s+$/g, ''));
                }
                return cookie_value;
                break;
            }
            a_temp_cookie = null;
            cookie_name = '';
        }
        if (!b_cookie_found) {
            return null;
        }
    }

    var BrowserDetect = {
        init: function() {
            this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
            this.version = this.searchVersion(navigator.userAgent)
			|| this.searchVersion(navigator.appVersion)
			|| "an unknown version";
            this.OS = this.searchString(this.dataOS) || "an unknown OS";
        },
        searchString: function(data) {
            for (var i = 0; i < data.length; i++) {
                var dataString = data[i].string;
                var dataProp = data[i].prop;
                this.versionSearchString = data[i].versionSearch || data[i].identity;
                if (dataString) {
                    if (dataString.indexOf(data[i].subString) != -1)
                        return data[i].identity;
                }
                else if (dataProp)
                    return data[i].identity;
            }
        },
        searchVersion: function(dataString) {
            var index = dataString.indexOf(this.versionSearchString);
            if (index == -1) return;
            return parseFloat(dataString.substring(index + this.versionSearchString.length + 1));
        },
        dataBrowser: [
		{ string: navigator.userAgent,
		    subString: "OmniWeb",
		    versionSearch: "OmniWeb/",
		    identity: "OmniWeb"
		},
		{
		    string: navigator.vendor,
		    subString: "Apple",
		    identity: "Safari"
		},
		{
		    prop: window.opera,
		    identity: "Opera"
		},
		{
		    string: navigator.vendor,
		    subString: "iCab",
		    identity: "iCab"
		},
		{
		    string: navigator.vendor,
		    subString: "KDE",
		    identity: "Konqueror"
		},
		{
		    string: navigator.userAgent,
		    subString: "Firefox",
		    identity: "Firefox"
		},
		{
		    string: navigator.vendor,
		    subString: "Camino",
		    identity: "Camino"
		},
		{		// for newer Netscapes (6+)
		    string: navigator.userAgent,
		    subString: "Netscape",
		    identity: "Netscape"
		},
		{
		    string: navigator.userAgent,
		    subString: "MSIE",
		    identity: "Explorer",
		    versionSearch: "MSIE"
		},
		{
		    string: navigator.vendor,
		    subString: "Google",
		    identity: "Google"
		},
		{
		    string: navigator.userAgent,
		    subString: "Gecko",
		    identity: "Mozilla",
		    versionSearch: "rv"
		},
		{ 		// for older Netscapes (4-)
		    string: navigator.userAgent,
		    subString: "Mozilla",
		    identity: "Netscape",
		    versionSearch: "Mozilla"
		}
	],
        dataOS: [
		{
		    string: navigator.platform,
		    subString: "Win",
		    identity: "Windows"
		},
		{
		    string: navigator.platform,
		    subString: "Mac",
		    identity: "Mac"
		},
		{
		    string: navigator.platform,
		    subString: "Linux",
		    identity: "Linux"
		}
	]};    function openChart(instrument, instrumentName){        document.applets[0].setInstrument(instrument, instrumentName);}function reloadChart(userId, instrument, instrumentName){    //document.applets[0].setInstrument(instrument, instrumentName);    var appletContainer = document.getElementById('currencyApplet');    appletContainer.innerHTML = loadApplet(userId);}function reloadAdminChart(userId, instrument, instrumentName){    //document.applets[0].setInstrument(instrument, instrumentName);    var appletContainer = document.getElementById('adminApplet');    appletContainer.innerHTML = loadAdminApplet(userId);}function loadApplet(userId){      BrowserDetect.init();
                                var appletTagStart = "";
                                if (BrowserDetect.browser == "Safari" || BrowserDetect.browser == "Explorer")
                                    appletTagStart = "<object id=\"ChartStation\" codetype=\"application/java\" type=\"application/x-java-applet\" classid=\"clsid:8AD9C840-044E-11D1-B3E9-00805F499D93\" WIDTH = \"960\" HEIGHT = \"450\" MAYSCRIPT>";
                                else {
                                    if (BrowserDetect.OS == 'Mac')
                                        appletTagStart = "<applet valign=\"middle\" code =  \"com.netdania.chartstation.ChartStationApplet.class\" id=\"ChartStation\" name=\"ChartStation\" archive = \"ChartStation-3_0.zip\" codebase=\"http://balancer.netdania.com/Streaming/\" width=\"960\" height=\"450\" id=\"ChartStation\" MAYSCRIPT>";
                                    else
                                        appletTagStart = "<applet valign=\"middle\" code =  \"com.netdania.chartstation.ChartStationApplet.class\" id=\"ChartStation\" name=\"ChartStation\" archive = \"ChartStation-3_0.zip\" codebase=\"https://balancer.netdania.com/Streaming/\" width=\"960\" height=\"450\" id=\"ChartStation\" MAYSCRIPT>";

                                }
                                appletTagStart += "<param name='user_id' value='" + userId + "'>";
                                //appletTagStart +=appletTagStart);

                                if (BrowserDetect.browser == 'Safari' || BrowserDetect.OS == 'Mac')
                                    appletTagStart +='<param name = "CODEBASE" VALUE = "https://balancer.netdania.com/Streaming/"/>';
                                else
                                    appletTagStart +='<param name = "CODEBASE" VALUE = "https://balancer.netdania.com/Streaming/"/>';
                                appletTagStart +='<param name = "CODE" VALUE = "com.netdania.chartstation.ChartStationApplet.class"/>';
                                appletTagStart +='<param name = "ARCHIVE" VALUE = "ChartStation-3_0.zip"/>';
                                appletTagStart +='<param name = "host" value = "http://balancer.netdania.com/StreamingServer/StreamingServer"/>';
                                appletTagStart +='<param name = "NAME" VALUE = "ChartStation"/>';
                                appletTagStart +='<param name = "MAYSCRIPT" VALUE = "true"/>';
                                appletTagStart +='<param name= "type" VALUE="application/x-java-applet;version=1.5.0"/>';
                                appletTagStart +='<param name= "scriptable" VALUE="true"/>';
                                appletTagStart +='<param name= "provider" value= "netdania_fxa"/>';
                                appletTagStart +='<param name= "provider_time_scales_1" value="netdania:1440|10080|43200"/>';
                                appletTagStart +='<param name="language" value="english;english"/>';
                                appletTagStart +='<param name="force_menu_default_texts" value="805,803,804,701,711"/>';
                                appletTagStart +='<param name="expand_points" value="30"/>';
                                appletTagStart +='<param name="protocol" value="1"/>';
                                appletTagStart +='<param name="allow_saving" value="true"/>';
                                appletTagStart +='<param name="max_wkspaces" value="20"/>';
                                appletTagStart +='<param name="max_windows" value="10"/>';
                                appletTagStart +='<param name="lnf_property_1" value="InternalFrame.inactiveTitleForeground=color{000000}" />';
                                appletTagStart +='<param name="decimals" value="0"/>';
                                appletTagStart +='<param name="LNF_2" value="Metal;-1000;javax.swing.plaf.metal.MetalLookAndFeel"/>';
                                appletTagStart +='<param name="quotes_chart_url" value="javascript:openChart"/>';

                                if (BrowserDetect.OS == "Mac") {
                                    appletTagStart +='<param name="LNF_1" value="Aqua;-1000;apple.laf.AquaLookAndFeel"/>';
                                    appletTagStart +='<param name="default_lnf" value="com.netdania.lnf.NetDaniaMetalLookAndFeel"/>';
                                }
                                else {
                                    appletTagStart +='<param name="LNF_1" value="Windows;-1000;com.sun.java.swing.plaf.windows.WindowsLookAndFeel"/>';
                                    appletTagStart +='<param name="default_lnf" value="com.sun.java.swing.plaf.windows.WindowsLookAndFeel"/>';
                                }

                                appletTagStart +='<param name="use_menu_bar" value="false"/>';
                                appletTagStart +='<param name="use_toolbar" value="false"/>';
                                appletTagStart +='<param name="popup_1" value="-"/>';
                                appletTagStart +='<param name="allow_saving" value="false"/>';
                                appletTagStart +='<param name="chart_context_menu" value="false"/>';

                                appletTagStart +='<param name="window_0" value="EURUSD;EUR/USD;60;300"/>';
                                appletTagStart +='<param name="toolbar_position" value="North"/>';
                                appletTagStart +='<param name="continuous_layout" value="true"/>';
                                appletTagStart +='<param name="antialias" value="false"/>';
                                appletTagStart +='<param name="copyright_notice"  value="true"/>';
                                appletTagStart +='<param name="desktop_background" value="FFFFFF"/>';
                                appletTagStart +='<param name="desktop_font" value="Dialog;11;BOLD"/>';
                                appletTagStart +='<param name="study_area_weight" value="33"/>';
                                appletTagStart +='<param name="chart_bottom" value="6"/>';
                                appletTagStart +='<param name="help_address" value="http://www.netdania.com/Downloads/guides/ChartStation/english/index.html"/>';
                                appletTagStart +='<param name="menu_bar" value="Workspaces;WKS;Instruments;INS;Chart Type;CT;Time Scale;TS;View;VW;Edit;ET;Lines;LN;Studies,333;Zoom;ZM;Settings;SET;Window;WIN;Help;HLP">';
                                appletTagStart +='<param name="WKS_1" value="New;3001"/>';
                                appletTagStart +='<param name="WKS_2" value="Save;3002"/>';
                                appletTagStart +='<param name="WKS_3" value="Save As;3003"/>';
                                appletTagStart +='<param name="WKS_4" value="-"/>';
                                appletTagStart +='<param name="WKS_5" value="POPUP;Open;OPN"/>';
                                appletTagStart +='<param name="WKS_6" value="POPUP;Delete;DEL"/>';
                                appletTagStart +='<param name="WKS_7" value="Delete all except this;3005"/>';
                                appletTagStart +='<param name="WKS_8" value="Delete all;3004"/>';
                                appletTagStart +='<param name="WKS_9" value="-"/>';
                                appletTagStart +='<param name="WKS_10" value="POPUP;Set Default Workspace;DEF"/>';

                                appletTagStart +='<param name="INS_1" value="EUR/USD;805;EUR/USD;EURUSD;0"/>';
                                appletTagStart +='<param name="INS_2" value="USD/JPY;805;USD/JPY;USDJPY;0"/>';
                                appletTagStart +='<param name="INS_3" value="USD/CHF;805;USD/CHF;USDCHF;0"/>';
                                appletTagStart +='<param name="INS_5" value="USD/CAD;805;USD/CAD;USDCAD;0"/>';
                                appletTagStart +='<param name="INS_4" value="GBP/USD;805;GBP/USD;GBPUSD;0"/>';
                                appletTagStart +='<param name="INS_6" value="GBP/CHF;805;GBP/CHF;GBPCHF;0"/>';
                                appletTagStart +='<param name="INS_7" value="GBP/JPY;805;GBP/JPY;GBPJPY;0"/>';
                                appletTagStart +='<param name="INS_8" value="AUD/USD;805;AUD/USD;AUDUSD;0"/>';
                                appletTagStart +='<param name="INS_9" value="AUD/CHF;805;AUD/CHF;AUDCHF;0"/>';
                                appletTagStart +='<param name="INS_10" value="AUD/JPY;805;AUD/JPY;AUDJPY;0"/>';
                                appletTagStart +='<param name="INS_11" value="AUD/NZD;805;AUD/NZD;AUDNZD;0"/>';
                                appletTagStart +='<param name="INS_12" value="AUD/CAD;805;AUD/CAD;AUDCAD;0"/>';
                                appletTagStart +='<param name="INS_13" value="CAD/JPY;805;CAD/JPY;CADJPY;0"/>';
                                appletTagStart +='<param name="INS_14" value="NZD/USD;805;NZD/USD;NZDUSD;0"/>';
                                appletTagStart +='<param name="INS_15" value="NZD/JPY;805;NZD/JPY;NZDJPY;0"/>';
                                appletTagStart +='<param name="INS_16" value="EUR/GBP;805;EUR/GBP;EURGBP;0"/>';
                                appletTagStart +='<param name="INS_17" value="EUR/CZK;805;EUR/CZK;EURCZK;0"/>';
                                appletTagStart +='<param name="INS_18" value="EUR/CAD;805;EUR/CAD;EURCAD;0"/>';
                                appletTagStart +='<param name="INS_19" value="EUR/CHF;805;EUR/CHF;EURCHF;0"/>';
                                appletTagStart +='<param name="INS_20" value="EUR/JPY;805;EUR/JPY;EURJPY;0"/>';
                                appletTagStart +='<param name="INS_21" value="CHF/JPY;805;CHF/JPY;CHFJPY;0"/>';

                                appletTagStart +='<param name="decimals_1" value="AUD/CAD;AUDCAD|netdania_fxa;4;4;5"/>';
                                appletTagStart +='<param name="decimals_2" value="AUD/CHF;AUDCHF|netdania_fxa;4;4;5"/>';
                                appletTagStart +='<param name="decimals_3" value="AUD/JPY;AUDJPY|netdania_fxa;2;2;3"/>';
                                appletTagStart +='<param name="decimals_4" value="AUD/NZD;AUDNZD|netdania_fxa;4;4;5"/>';
                                appletTagStart +='<param name="decimals_5" value="AUD/USD;AUDUSD|netdania_fxa;4;4;5"/>';
                                appletTagStart +='<param name="decimals_6" value="CAD/JPY;CADJPY|netdania_fxa;2;2;3"/>';
                                appletTagStart +='<param name="decimals_7" value="CHF/JPY;CHFJPY|netdania_fxa;2;2;3"/>';
                                appletTagStart +='<param name="decimals_8" value="EUR/CHF;EURCHF|netdania_fxa;4;4;5"/>';
                                appletTagStart +='<param name="decimals_9" value="EUR/CZK;EURCZK|netdania_fxa;2;2;3"/>';
                                appletTagStart +='<param name="decimals_10" value="EUR/GBP;EURGBP|netdania_fxa;4;4;5"/>';
                                appletTagStart +='<param name="decimals_11" value="EUR/JPY;EURJPY|netdania_fxa;2;2;3"/>';
                                appletTagStart +='<param name="decimals_12" value="EUR/USD;EURUSD|netdania_fxa;4;4;5"/>';
                                appletTagStart +='<param name="decimals_13" value="GBP/CHF;GBPCHF|netdania_fxa;4;4;5"/>';
                                appletTagStart +='<param name="decimals_14" value="GBP/JPY;GBPJPY|netdania_fxa;2;2;3"/>';
                                appletTagStart +='<param name="decimals_15" value="GBP/USD;GBPUSD|netdania_fxa;4;4;5"/>';
                                appletTagStart +='<param name="decimals_16" value="NZD/JPY;NZDJPY|netdania_fxa;2;2;3"/>';
                                appletTagStart +='<param name="decimals_17" value="NZD/USD;NZDUSD|netdania_fxa;4;4;5"/>';
                                appletTagStart +='<param name="decimals_18" value="EUR/CAD;EURCAD|netdania_fxa;4;4;5"/>';
                                appletTagStart +='<param name="decimals_19" value="USD/CAD;USDCAD|netdania_fxa;4;4;5"/>';
                                appletTagStart +='<param name="decimals_20" value="USD/CHF;USDCHF|netdania_fxa;4;4;5"/>';
                                appletTagStart +='<param name="decimals_21" value="USD/JPY;USDJPY|netdania_fxa;2;2;3"/>';

                                appletTagStart +='<param name="CT_1" value="CandleStick;-106"/>';
                                appletTagStart +='<param name="CT_2" value="BarOHLC;-104"/>';
                                appletTagStart +='<param name="CT_3" value="Line Chart;-101"/>';
                                appletTagStart +='<param name="CT_4" value="Heikin Ashi;-109"/>';
                                appletTagStart +='<param name="CT_5" value="Dot Chart;-102"/>';
                                appletTagStart +='<param name="CT_6" value="LineDot Chart;-103"/>';
                                appletTagStart +='<param name="CT_7" value="Forest Chart;-107"/>';
                                appletTagStart +='<param name="CT_8" value="BarHLC;-105"/>';

                                appletTagStart +='<param name="TS_1"  value="Ticks;-200"/>';
                                appletTagStart +='<param name="TS_2"  value="1 minute;-201"/>';
                                appletTagStart +='<param name="TS_3"  value="5 minutes;-202"/>';
                                appletTagStart +='<param name="TS_4"  value="10 minutes;-203"/>';
                                appletTagStart +='<param name="TS_5"  value="15 minutes;-204"/>';
                                appletTagStart +='<param name="TS_6"  value="30 minutes;-205"/>';
                                appletTagStart +='<param name="TS_7"  value="1 hour;-206"/>';
                                appletTagStart +='<param name="TS_8"  value="2 hours;-207"/>';
                                appletTagStart +='<param name="TS_9" value="4 hours;-208"/>';
                                appletTagStart +='<param name="TS_10" value="8 hours;-209"/>';
                                appletTagStart +='<param name="TS_11" value="Daily;-210"/>';
                                appletTagStart +='<param name="TS_12" value="Weekly;-211"/>';
                                appletTagStart +='<param name="TS_13" value="Monthly;-212"/>';

                                appletTagStart +='<param name="VW_1" value="Periods;301"/>';
                                appletTagStart +='<param name="VW_2" value="Information;302"/>';
                                appletTagStart +='<param name="VW_3" value="Expand Points;308"/>';
                                appletTagStart +='<param name="VW_4" value="Logaritmic price scale;-350"/>';
                                appletTagStart +='<param name="VW_5" value="Crosshair;-303"/>';
                                appletTagStart +='<param name="VW_6" value="-"/>';
                                appletTagStart +='<param name="VW_7" value="Volume;-330"/>';
                                appletTagStart +='<param name="VW_8" value="Open Interest;-340"/>';
                                appletTagStart +='<param name="VW_9" value="-"/>';
                                appletTagStart +='<param name="VW_10" value="Toolbar;-310"/>';

                                appletTagStart +='<param name="ET_1" value="Drag&drop;-304"/>';
                                appletTagStart +='<param name="ET_2" value="-"/>';

                                appletTagStart +='<param name="ET_3" value="Add Annotation;-510"/>';
                                appletTagStart +='<param name="ET_4" value="Add Arrow;-511"/>';
                                appletTagStart +='<param name="ET_5" value="-"/>';

                                appletTagStart +='<param name="ET_6" value="Edit Object;-440"/>';
                                appletTagStart +='<param name="ET_7" value="Duplicate Object;-450"/>';
                                appletTagStart +='<param name="ET_8" value="Move Object;-460"/>';
                                appletTagStart +='<param name="ET_9" value="Delete Object;-420"/>';
                                appletTagStart +='<param name="ET_10" value="Delete All Objects;430"/>';
                                appletTagStart +='<param name="ET_11" value="-"/>';

                                appletTagStart +='<param name="ET_12" value="Delete;-306"/>';
                                appletTagStart +='<param name="ET_13" value="Delete All;307"/>';
                                appletTagStart +='<param name="LN_1" value="POPUP;Add Lines;ADD"/>';

                                appletTagStart +='<param name="ADD_1" value="Close;-512;1"/>';
                                appletTagStart +='<param name="ADD_2" value="High/Low;-512;2"/>';
                                appletTagStart +='<param name="ADD_3" value="FreeHand;-512;4"/>';
                                appletTagStart +='<param name="ADD_4" value="Horizontal Close;-513;1"/>';
                                appletTagStart +='<param name="ADD_5" value="Horizontal High/Low;-513;2"/>';
                                appletTagStart +='<param name="ADD_6" value="Horizontal FreeHand;-513;4"/>';


                                appletTagStart +='<param name="LN_2" value="POPUP;Add Fibonacci Fans;FIB"/>';
                                appletTagStart +='<param name="FIB_1" value="Close;-516;1"/>';
                                appletTagStart +='<param name="FIB_2" value="High/Low;-516;2"/>';
                                appletTagStart +='<param name="FIB_3" value="FreeHand;-516;4"/>';

                                appletTagStart +='<param name="LN_3" value="POPUP;Add Fibonacci Retracements;SUP"/>';
                                appletTagStart +='<param name="SUP_1" value="Close;-517;1"/>';
                                appletTagStart +='<param name="SUP_2" value="High/Low;-517;2"/>';
                                appletTagStart +='<param name="SUP_3" value="FreeHand;-517;4"/>';

                                appletTagStart +='<param name="LN_4" value="POPUP;Add Fibonacci Arcs;ARC"/>';
                                appletTagStart +='<param name="ARC_1" value="Close;-515;1"/>';
                                appletTagStart +='<param name="ARC_2" value="High/Low;-515;2"/>';
                                appletTagStart +='<param name="ARC_3" value="FreeHand;-515;4"/>';

                                appletTagStart +='<param name="LN_5" value="Add Fibonacci Time Zones;-518;4"/>';

                                appletTagStart +='<param name="ZM_1" value="Zoom In;-601"/>';
                                appletTagStart +='<param name="ZM_2" value="Zoom Out;602"/>';

                                appletTagStart +='<param name="SET_1" value="Chart;711"/>';
                                appletTagStart +='<param name="SET_2" value="-"/>';

                                appletTagStart +='<param name="SET_3" value="English;-1002;english"/>';
                                appletTagStart +='<param name="SET_4" value="日本語;-1002;japanese"/>';
                                appletTagStart +='<param name="SET_5" value="Deutsch;-1002;german"/>';
                                appletTagStart +='<param name="SET_6" value="Français;-1002;french"/>';
                                appletTagStart +='<param name="SET_7" value="Italiano;-1002;italian"/>';
                                appletTagStart +='<param name="SET_8" value="Español;-1002;spanish"/>';
                                appletTagStart +='<param name="SET_9" value="中文;-1002;chinese"/>';
                                appletTagStart +='<param name="SET_10" value="Türkçe;-1002;turkish"/>';
                                appletTagStart +='<param name="SET_11" value="Polish;-1002;polish"/>';
                                appletTagStart +='<param name="SET_12" value="Português;-1002;portuguese"/>';

                                appletTagStart +='<param name="SET_13" value="-"/>';
                                appletTagStart +='<param name="SET_14" value="Time Zone;370"/>';
                                appletTagStart +='<param name="SET_15" value="Protocol;1001"/>';
                                appletTagStart +='<param name="SET_16" value="-"/>';
                                appletTagStart +='<param name="SET_17" value="POPUP;Look & Feels;LNF"/>';


                                appletTagStart +='<param name="WIN_1" value="Cascade;1010"/>';
                                appletTagStart +='<param name="WIN_2" value="Tile Horizontal;1011"/>';
                                appletTagStart +='<param name="WIN_3" value="Tile Vertical;1012"/>';
                                appletTagStart +='<param name="WIN_4" value="-"/>';

                                appletTagStart +='<param name="WIN_5" value="Print;361"/>';
                                appletTagStart +='<param name="WIN_6" value="Print preview;360"/>';

                                appletTagStart +='<param name="WIN_7" value="-"/>';

                                appletTagStart +='<param name="WIN_8" value="Restore all;1013"/>';
                                appletTagStart +='<param name="WIN_9" value="Close all;1014"/>';

                                appletTagStart +='<param name="HLP_1" value="User Guide;701"/>';
                                appletTagStart +='<param name="HLP_2" value="About;702"/>';

                                appletTagStart +='<param name="applet_detached_text" value="Chart is detached..." />';
                                appletTagStart +='<param name="detach_window_title" value="ChartStation" />';

                                appletTagStart +='<param name="button_1" value="new.gif,3001"/>';
                                appletTagStart +='<param name="button_tip_1" value="New workspace"/>';
                                appletTagStart +='<param name="button_2" value="save.gif,3002"/>';
                                appletTagStart +='<param name="button_tip_2" value="Save workspace"/>';
                                appletTagStart +='<param name="button_3" value="saveAs.gif,3003"/>';
                                appletTagStart +='<param name="button_tip_3" value="Save workspace as ..."/>';
                                appletTagStart +='<param name="separator_4" value=""/>';
                                appletTagStart +='<param name="button_5" value="candles.gif,-106"/>';
                                appletTagStart +='<param name="button_tip_5" value="Candlestick chart"/>';
                                appletTagStart +='<param name="button_6" value="ohlc.gif,-104"/>';
                                appletTagStart +='<param name="button_tip_6" value="OHLC chart"/>';
                                appletTagStart +='<param name="button_7" value="line.gif,-101"/>';
                                appletTagStart +='<param name="button_tip_7" value="Line chart"/>';
                                appletTagStart +='<param name="separator_8" value="-"/>';
                                appletTagStart +='<param name="button_9" value="ticks.gif,-200"/>';
                                appletTagStart +='<param name="button_tip_9" value="Ticks"/>';
                                appletTagStart +='<param name="button_10" value="1m.gif,-201"/>';
                                appletTagStart +='<param name="button_tip_10" value="1 minute"/>';
                                appletTagStart +='<param name="button_11" value="5m.gif,-202"/>';
                                appletTagStart +='<param name="button_tip_11" value="5 minutes"/>';
                                appletTagStart +='<param name="button_12" value="10m.gif,-203"/>';
                                appletTagStart +='<param name="button_tip_12" value="10 minutes"/>';
                                appletTagStart +='<param name="button_13" value="15m.gif,-204"/>';
                                appletTagStart +='<param name="button_tip_13" value="15 minutes"/>';
                                appletTagStart +='<param name="button_14" value="30m.gif,-205"/>';
                                appletTagStart +='<param name="button_tip_14" value="30 minutes"/>';
                                appletTagStart +='<param name="button_15" value="1h.gif,-206"/>';
                                appletTagStart +='<param name="button_tip_15" value="1 hour"/>';
                                appletTagStart +='<param name="button_16" value="2h.gif,-207"/>';
                                appletTagStart +='<param name="button_tip_16" value="2 hour"/>';
                                appletTagStart +='<param name="button_17" value="4h.gif,-208"/>';
                                appletTagStart +='<param name="button_tip_17" value="4 hour"/>';
                                appletTagStart +='<param name="button_18" value="8h.gif,-209"/>';
                                appletTagStart +='<param name="button_tip_18" value="8 hour"/>';
                                appletTagStart +='<param name="button_19" value="d.gif,-210"/>';
                                appletTagStart +='<param name="button_tip_19" value="Daily"/>';
                                appletTagStart +='<param name="button_20" value="w.gif,-211"/>';
                                appletTagStart +='<param name="button_tip_20" value="Weekly"/>';
                                appletTagStart +='<param name="button_21" value="m.gif,-212"/>';
                                appletTagStart +='<param name="button_tip_21" value="Monthly"/>';
                                appletTagStart +='<param name="separator_22" value="-"/>';
                                appletTagStart +='<param name="button_23" value="cross.gif,-303" />';
                                appletTagStart +='<param name="button_tip_23" value="Show/hide crosshair" />';
                                appletTagStart +='<param name="button_24" value="periods.gif,301"/>';
                                appletTagStart +='<param name="button_tip_24" value="Period"/>';
                                appletTagStart +='<param name="button_25" value="info.gif,302,F"/>';
                                appletTagStart +='<param name="button_tip_25" value="Information Window"/>';
                                appletTagStart +='<param name="button_26" value="expand.gif,308"/>';
                                appletTagStart +='<param name="button_tip_26" value="Expand"/>';
                                appletTagStart +='<param name="button_27" value="volume.gif,-330"/>';
                                appletTagStart +='<param name="button_tip_27" value="Show/hide volume chart"/>';
                                appletTagStart +='<param name="separator_28" value="-"/>';
                                appletTagStart +='<param name="button_29" value="lineClose.gif,-411"/>';
                                appletTagStart +='<param name="button_30" value="lineHighLow.gif,-412"/>';
                                appletTagStart +='<param name="button_31" value="lineHorizontal.gif,-413"/>';
                                appletTagStart +='<param name="button_32" value="lineFree.gif,-414"/>';
                                appletTagStart +='<param name="separator_33" value=""/>';
                                appletTagStart +='<param name="button_34" value="dnd.gif,-304"/>';
                                appletTagStart +='<param name="button_tip_34" value="Activate/deactivate Drag&drop"/>';
                                appletTagStart +='<param name="button_35" value="lineParallel.gif,-450"/>';
                                appletTagStart +='<param name="button_tip_35" value="Duplicate object"/>';
                                appletTagStart +='<param name="separator_36" value=""/>';
                                appletTagStart +='<param name="button_37" value="delete.gif,-306"/>';
                                appletTagStart +='<param name="button_tip_37" value="Delete an object or a study"/>';
                                appletTagStart +='<param name="button_38" value="deleteAll.gif,307"/>';
                                appletTagStart +='<param name="button_tip_38" value="Delete all objects and studies"/>';
                                appletTagStart +='<param name="separator_39" value=""/>';
                                appletTagStart +='<param name="button_40" value="zoomIn.gif,-601"/>';
                                appletTagStart +='<param name="button_tip_40" value="Zoom in"/>';
                                appletTagStart +='<param name="button_41" value="zoomOut.gif,602"/>';
                                appletTagStart +='<param name="button_tip_41" value="Zoom out"/>';
                                appletTagStart +='<param name="separator_42" value=""/>';
                                appletTagStart +='<param name="glue_43" value=""/>';
                                appletTagStart +='<param name="label_44" value="2001,.,0:plug.gif;1:blink.gif;2:blinkRed.gif,0:Trying to connect;1:Connected;2:Disconnected"/>';
                                appletTagStart +='<param name="button_45" value="atached.gif;detached.gif,-900,F"/>';
                                appletTagStart +='<param name="button_tip_45" value="Detach chart;Attach chart"/>';
                                appletTagStart +='<param name="window_icon" value="miniLogo2.gif"/>';
                                appletTagStart +='<param name="title_icon" value="miniLogo2.gif"/>';
                                appletTagStart +='<param name="copyright" value="http://www.netdania.com"/>';

                                if (BrowserDetect.browser == 'Safari' || BrowserDetect.browser == 'Explorer')
                                    appletTagStart +='</object>';
                                else
                                    appletTagStart +='</applet>';                                                                        return appletTagStart;}function loadApplet2(userId){      BrowserDetect.init();
                                var appletTagStart = "";
                                if (BrowserDetect.browser == "Safari" || BrowserDetect.browser == "Explorer")
                                    appletTagStart = "<object id=\"ChartStation\" codetype=\"application/java\" type=\"application/x-java-applet\" classid=\"clsid:8AD9C840-044E-11D1-B3E9-00805F499D93\" WIDTH = \"964\" HEIGHT = \"450\" MAYSCRIPT>";
                                else {
                                    if (BrowserDetect.OS == 'Mac')
                                        appletTagStart = "<applet valign=\"middle\" code =  \"com.netdania.chartstation.ChartStationApplet.class\" id=\"ChartStation\" name=\"ChartStation\" archive = \"ChartStation-3_0.zip\" codebase=\"http://balancer.netdania.com/Streaming/\" width=\"964\" height=\"450\" id=\"ChartStation\" MAYSCRIPT>";
                                    else
                                        appletTagStart = "<applet valign=\"middle\" code =  \"com.netdania.chartstation.ChartStationApplet.class\" id=\"ChartStation\" name=\"ChartStation\" archive = \"ChartStation-3_0.zip\" codebase=\"https://balancer.netdania.com/Streaming/\" width=\"964\" height=\"450\" id=\"ChartStation\" MAYSCRIPT>";

                                }
                                appletTagStart += "<param name='user_id' value='" + userId + "'>";
                                document.writeln(appletTagStart);

                                if (BrowserDetect.browser == 'Safari' || BrowserDetect.OS == 'Mac')
                                    document.writeln('<param name = "CODEBASE" VALUE = "https://balancer.netdania.com/Streaming/"/>');
                                else
                                    document.writeln('<param name = "CODEBASE" VALUE = "https://balancer.netdania.com/Streaming/"/>');
                                document.writeln('<param name = "CODE" VALUE = "com.netdania.chartstation.ChartStationApplet.class"/>');
                                document.writeln('<param name = "ARCHIVE" VALUE = "ChartStation-3_0.zip"/>');
                                document.writeln('<param name = "host" value = "http://balancer.netdania.com/StreamingServer/StreamingServer"/>');
                                document.writeln('<param name = "NAME" VALUE = "ChartStation"/>');
                                document.writeln('<param name = "MAYSCRIPT" VALUE = "true"/>');
                                document.writeln('<param name= "type" VALUE="application/x-java-applet;version=1.5.0"/>');
                                document.writeln('<param name= "scriptable" VALUE="true"/>');
                                document.writeln('<param name= "provider" value= "netdania_fxa"/>');
                                document.writeln('<param name= "provider_time_scales_1" value="netdania:1440|10080|43200"/>');
                                document.writeln('<param name="language" value="english;english"/>');
                                document.writeln('<param name="force_menu_default_texts" value="805,803,804,701,711"/>');
                                document.writeln('<param name="expand_points" value="30"/>');
                                document.writeln('<param name="protocol" value="1"/>');
                                document.writeln('<param name="allow_saving" value="true"/>');
                                document.writeln('<param name="max_wkspaces" value="20"/>');
                                document.writeln('<param name="max_windows" value="10"/>');
                                document.writeln('<param name="lnf_property_1" value="InternalFrame.inactiveTitleForeground=color{000000}" />');
                                document.writeln('<param name="decimals" value="0"/>');
                                document.writeln('<param name="LNF_2" value="Metal;-1000;javax.swing.plaf.metal.MetalLookAndFeel"/>');
                                document.writeln('<param name="quotes_chart_url" value="javascript:openChart"/>');

                                if (BrowserDetect.OS == "Mac") {
                                    document.writeln('<param name="LNF_1" value="Aqua;-1000;apple.laf.AquaLookAndFeel"/>');
                                    document.writeln('<param name="default_lnf" value="com.netdania.lnf.NetDaniaMetalLookAndFeel"/>');
                                }
                                else {
                                    document.writeln('<param name="LNF_1" value="Windows;-1000;com.sun.java.swing.plaf.windows.WindowsLookAndFeel"/>');
                                    document.writeln('<param name="default_lnf" value="com.sun.java.swing.plaf.windows.WindowsLookAndFeel"/>');
                                }

                                document.writeln('<param name="use_menu_bar" value="false"/>');
                                document.writeln('<param name="use_toolbar" value="false"/>');
                                document.writeln('<param name="popup_1" value="-"/>');
                                document.writeln('<param name="allow_saving" value="false"/>');
                                document.writeln('<param name="chart_context_menu" value="false"/>');

                                document.writeln('<param name="window_0" value="EURUSD;EUR/USD;60;300"/>');
                                document.writeln('<param name="toolbar_position" value="North"/>');
                                document.writeln('<param name="continuous_layout" value="true"/>');
                                document.writeln('<param name="antialias" value="false"/>');
                                document.writeln('<param name="copyright_notice"  value="true"/>');
                                document.writeln('<param name="desktop_background" value="FFFFFF"/>');
                                document.writeln('<param name="desktop_font" value="Dialog;11;BOLD"/>');
                                document.writeln('<param name="study_area_weight" value="33"/>');
                                document.writeln('<param name="chart_bottom" value="6"/>');
                                document.writeln('<param name="help_address" value="http://www.netdania.com/Downloads/guides/ChartStation/english/index.html"/>');
                                document.writeln('<param name="menu_bar" value="Workspaces;WKS;Instruments;INS;Chart Type;CT;Time Scale;TS;View;VW;Edit;ET;Lines;LN;Studies,333;Zoom;ZM;Settings;SET;Window;WIN;Help;HLP">');
                                document.writeln('<param name="WKS_1" value="New;3001"/>');
                                document.writeln('<param name="WKS_2" value="Save;3002"/>');
                                document.writeln('<param name="WKS_3" value="Save As;3003"/>');
                                document.writeln('<param name="WKS_4" value="-"/>');
                                document.writeln('<param name="WKS_5" value="POPUP;Open;OPN"/>');
                                document.writeln('<param name="WKS_6" value="POPUP;Delete;DEL"/>');
                                document.writeln('<param name="WKS_7" value="Delete all except this;3005"/>');
                                document.writeln('<param name="WKS_8" value="Delete all;3004"/>');
                                document.writeln('<param name="WKS_9" value="-"/>');
                                document.writeln('<param name="WKS_10" value="POPUP;Set Default Workspace;DEF"/>');

                                document.writeln('<param name="INS_1" value="EUR/USD;805;EUR/USD;EURUSD;0"/>');
                                document.writeln('<param name="INS_2" value="USD/JPY;805;USD/JPY;USDJPY;0"/>');
                                document.writeln('<param name="INS_3" value="USD/CHF;805;USD/CHF;USDCHF;0"/>');
                                document.writeln('<param name="INS_5" value="USD/CAD;805;USD/CAD;USDCAD;0"/>');
                                document.writeln('<param name="INS_4" value="GBP/USD;805;GBP/USD;GBPUSD;0"/>');
                                document.writeln('<param name="INS_6" value="GBP/CHF;805;GBP/CHF;GBPCHF;0"/>');
                                document.writeln('<param name="INS_7" value="GBP/JPY;805;GBP/JPY;GBPJPY;0"/>');
                                document.writeln('<param name="INS_8" value="AUD/USD;805;AUD/USD;AUDUSD;0"/>');
                                document.writeln('<param name="INS_9" value="AUD/CHF;805;AUD/CHF;AUDCHF;0"/>');
                                document.writeln('<param name="INS_10" value="AUD/JPY;805;AUD/JPY;AUDJPY;0"/>');
                                document.writeln('<param name="INS_11" value="AUD/NZD;805;AUD/NZD;AUDNZD;0"/>');
                                document.writeln('<param name="INS_12" value="AUD/CAD;805;AUD/CAD;AUDCAD;0"/>');
                                document.writeln('<param name="INS_13" value="CAD/JPY;805;CAD/JPY;CADJPY;0"/>');
                                document.writeln('<param name="INS_14" value="NZD/USD;805;NZD/USD;NZDUSD;0"/>');
                                document.writeln('<param name="INS_15" value="NZD/JPY;805;NZD/JPY;NZDJPY;0"/>');
                                document.writeln('<param name="INS_16" value="EUR/GBP;805;EUR/GBP;EURGBP;0"/>');
                                document.writeln('<param name="INS_17" value="EUR/CZK;805;EUR/CZK;EURCZK;0"/>');
                                document.writeln('<param name="INS_18" value="EUR/CAD;805;EUR/CAD;EURCAD;0"/>');
                                document.writeln('<param name="INS_19" value="EUR/CHF;805;EUR/CHF;EURCHF;0"/>');
                                document.writeln('<param name="INS_20" value="EUR/JPY;805;EUR/JPY;EURJPY;0"/>');
                                document.writeln('<param name="INS_21" value="CHF/JPY;805;CHF/JPY;CHFJPY;0"/>');

                                document.writeln('<param name="decimals_1" value="AUD/CAD;AUDCAD|netdania_fxa;4;4;5"/>');
                                document.writeln('<param name="decimals_2" value="AUD/CHF;AUDCHF|netdania_fxa;4;4;5"/>');
                                document.writeln('<param name="decimals_3" value="AUD/JPY;AUDJPY|netdania_fxa;2;2;3"/>');
                                document.writeln('<param name="decimals_4" value="AUD/NZD;AUDNZD|netdania_fxa;4;4;5"/>');
                                document.writeln('<param name="decimals_5" value="AUD/USD;AUDUSD|netdania_fxa;4;4;5"/>');
                                document.writeln('<param name="decimals_6" value="CAD/JPY;CADJPY|netdania_fxa;2;2;3"/>');
                                document.writeln('<param name="decimals_7" value="CHF/JPY;CHFJPY|netdania_fxa;2;2;3"/>');
                                document.writeln('<param name="decimals_8" value="EUR/CHF;EURCHF|netdania_fxa;4;4;5"/>');
                                document.writeln('<param name="decimals_9" value="EUR/CZK;EURCZK|netdania_fxa;2;2;3"/>');
                                document.writeln('<param name="decimals_10" value="EUR/GBP;EURGBP|netdania_fxa;4;4;5"/>');
                                document.writeln('<param name="decimals_11" value="EUR/JPY;EURJPY|netdania_fxa;2;2;3"/>');
                                document.writeln('<param name="decimals_12" value="EUR/USD;EURUSD|netdania_fxa;4;4;5"/>');
                                document.writeln('<param name="decimals_13" value="GBP/CHF;GBPCHF|netdania_fxa;4;4;5"/>');
                                document.writeln('<param name="decimals_14" value="GBP/JPY;GBPJPY|netdania_fxa;2;2;3"/>');
                                document.writeln('<param name="decimals_15" value="GBP/USD;GBPUSD|netdania_fxa;4;4;5"/>');
                                document.writeln('<param name="decimals_16" value="NZD/JPY;NZDJPY|netdania_fxa;2;2;3"/>');
                                document.writeln('<param name="decimals_17" value="NZD/USD;NZDUSD|netdania_fxa;4;4;5"/>');
                                document.writeln('<param name="decimals_18" value="EUR/CAD;EURCAD|netdania_fxa;4;4;5"/>');
                                document.writeln('<param name="decimals_19" value="USD/CAD;USDCAD|netdania_fxa;4;4;5"/>');
                                document.writeln('<param name="decimals_20" value="USD/CHF;USDCHF|netdania_fxa;4;4;5"/>');
                                document.writeln('<param name="decimals_21" value="USD/JPY;USDJPY|netdania_fxa;2;2;3"/>');

                                document.writeln('<param name="CT_1" value="CandleStick;-106"/>');
                                document.writeln('<param name="CT_2" value="BarOHLC;-104"/>');
                                document.writeln('<param name="CT_3" value="Line Chart;-101"/>');
                                document.writeln('<param name="CT_4" value="Heikin Ashi;-109"/>');
                                document.writeln('<param name="CT_5" value="Dot Chart;-102"/>');
                                document.writeln('<param name="CT_6" value="LineDot Chart;-103"/>');
                                document.writeln('<param name="CT_7" value="Forest Chart;-107"/>');
                                document.writeln('<param name="CT_8" value="BarHLC;-105"/>');

                                document.writeln('<param name="TS_1"  value="Ticks;-200"/>');
                                document.writeln('<param name="TS_2"  value="1 minute;-201"/>');
                                document.writeln('<param name="TS_3"  value="5 minutes;-202"/>');
                                document.writeln('<param name="TS_4"  value="10 minutes;-203"/>');
                                document.writeln('<param name="TS_5"  value="15 minutes;-204"/>');
                                document.writeln('<param name="TS_6"  value="30 minutes;-205"/>');
                                document.writeln('<param name="TS_7"  value="1 hour;-206"/>');
                                document.writeln('<param name="TS_8"  value="2 hours;-207"/>');
                                document.writeln('<param name="TS_9" value="4 hours;-208"/>');
                                document.writeln('<param name="TS_10" value="8 hours;-209"/>');
                                document.writeln('<param name="TS_11" value="Daily;-210"/>');
                                document.writeln('<param name="TS_12" value="Weekly;-211"/>');
                                document.writeln('<param name="TS_13" value="Monthly;-212"/>');

                                document.writeln('<param name="VW_1" value="Periods;301"/>');
                                document.writeln('<param name="VW_2" value="Information;302"/>');
                                document.writeln('<param name="VW_3" value="Expand Points;308"/>');
                                document.writeln('<param name="VW_4" value="Logaritmic price scale;-350"/>');
                                document.writeln('<param name="VW_5" value="Crosshair;-303"/>');
                                document.writeln('<param name="VW_6" value="-"/>');
                                document.writeln('<param name="VW_7" value="Volume;-330"/>');
                                document.writeln('<param name="VW_8" value="Open Interest;-340"/>');
                                document.writeln('<param name="VW_9" value="-"/>');
                                document.writeln('<param name="VW_10" value="Toolbar;-310"/>');

                                document.writeln('<param name="ET_1" value="Drag&drop;-304"/>');
                                document.writeln('<param name="ET_2" value="-"/>');

                                document.writeln('<param name="ET_3" value="Add Annotation;-510"/>');
                                document.writeln('<param name="ET_4" value="Add Arrow;-511"/>');
                                document.writeln('<param name="ET_5" value="-"/>');

                                document.writeln('<param name="ET_6" value="Edit Object;-440"/>');
                                document.writeln('<param name="ET_7" value="Duplicate Object;-450"/>');
                                document.writeln('<param name="ET_8" value="Move Object;-460"/>');
                                document.writeln('<param name="ET_9" value="Delete Object;-420"/>');
                                document.writeln('<param name="ET_10" value="Delete All Objects;430"/>');
                                document.writeln('<param name="ET_11" value="-"/>');

                                document.writeln('<param name="ET_12" value="Delete;-306"/>');
                                document.writeln('<param name="ET_13" value="Delete All;307"/>');
                                document.writeln('<param name="LN_1" value="POPUP;Add Lines;ADD"/>');

                                document.writeln('<param name="ADD_1" value="Close;-512;1"/>');
                                document.writeln('<param name="ADD_2" value="High/Low;-512;2"/>');
                                document.writeln('<param name="ADD_3" value="FreeHand;-512;4"/>');
                                document.writeln('<param name="ADD_4" value="Horizontal Close;-513;1"/>');
                                document.writeln('<param name="ADD_5" value="Horizontal High/Low;-513;2"/>');
                                document.writeln('<param name="ADD_6" value="Horizontal FreeHand;-513;4"/>');


                                document.writeln('<param name="LN_2" value="POPUP;Add Fibonacci Fans;FIB"/>');
                                document.writeln('<param name="FIB_1" value="Close;-516;1"/>');
                                document.writeln('<param name="FIB_2" value="High/Low;-516;2"/>');
                                document.writeln('<param name="FIB_3" value="FreeHand;-516;4"/>');

                                document.writeln('<param name="LN_3" value="POPUP;Add Fibonacci Retracements;SUP"/>');
                                document.writeln('<param name="SUP_1" value="Close;-517;1"/>');
                                document.writeln('<param name="SUP_2" value="High/Low;-517;2"/>');
                                document.writeln('<param name="SUP_3" value="FreeHand;-517;4"/>');

                                document.writeln('<param name="LN_4" value="POPUP;Add Fibonacci Arcs;ARC">');
                                document.writeln('<param name="ARC_1" value="Close;-515;1">');
                                document.writeln('<param name="ARC_2" value="High/Low;-515;2">');
                                document.writeln('<param name="ARC_3" value="FreeHand;-515;4">');

                                document.writeln('<param name="LN_5" value="Add Fibonacci Time Zones;-518;4">');

                                document.writeln('<param name="ZM_1" value="Zoom In;-601"/>');
                                document.writeln('<param name="ZM_2" value="Zoom Out;602"/>');

                                document.writeln('<param name="SET_1" value="Chart;711"/>');
                                document.writeln('<param name="SET_2" value="-"/>');

                                document.writeln('<param name="SET_3" value="English;-1002;english"/>');
                                document.writeln('<param name="SET_4" value="日本語;-1002;japanese"/>');
                                document.writeln('<param name="SET_5" value="Deutsch;-1002;german"/>');
                                document.writeln('<param name="SET_6" value="Français;-1002;french"/>');
                                document.writeln('<param name="SET_7" value="Italiano;-1002;italian"/>');
                                document.writeln('<param name="SET_8" value="Español;-1002;spanish"/>');
                                document.writeln('<param name="SET_9" value="中文;-1002;chinese"/>');
                                document.writeln('<param name="SET_10" value="Türkçe;-1002;turkish"/>');
                                document.writeln('<param name="SET_11" value="Polish;-1002;polish"/>');
                                document.writeln('<param name="SET_12" value="Português;-1002;portuguese"/>');

                                document.writeln('<param name="SET_13" value="-"/>');
                                document.writeln('<param name="SET_14" value="Time Zone;370"/>');
                                document.writeln('<param name="SET_15" value="Protocol;1001"/>');
                                document.writeln('<param name="SET_16" value="-"/>');
                                document.writeln('<param name="SET_17" value="POPUP;Look & Feels;LNF"/>');


                                document.writeln('<param name="WIN_1" value="Cascade;1010"/>');
                                document.writeln('<param name="WIN_2" value="Tile Horizontal;1011"/>');
                                document.writeln('<param name="WIN_3" value="Tile Vertical;1012"/>');
                                document.writeln('<param name="WIN_4" value="-"/>');

                                document.writeln('<param name="WIN_5" value="Print;361"/>');
                                document.writeln('<param name="WIN_6" value="Print preview;360"/>');

                                document.writeln('<param name="WIN_7" value="-"/>');

                                document.writeln('<param name="WIN_8" value="Restore all;1013"/>');
                                document.writeln('<param name="WIN_9" value="Close all;1014"/>');

                                document.writeln('<param name="HLP_1" value="User Guide;701"/>');
                                document.writeln('<param name="HLP_2" value="About;702"/>');

                                document.writeln('<param name="applet_detached_text" value="Chart is detached..." />');
                                document.writeln('<param name="detach_window_title" value="ChartStation" />');

                                document.writeln('<param name="button_1" value="new.gif,3001"/>');
                                document.writeln('<param name="button_tip_1" value="New workspace"/>');
                                document.writeln('<param name="button_2" value="save.gif,3002"/>');
                                document.writeln('<param name="button_tip_2" value="Save workspace"/>');
                                document.writeln('<param name="button_3" value="saveAs.gif,3003"/>');
                                document.writeln('<param name="button_tip_3" value="Save workspace as ..."/>');
                                document.writeln('<param name="separator_4" value=""/>');
                                document.writeln('<param name="button_5" value="candles.gif,-106">');
                                document.writeln('<param name="button_tip_5" value="Candlestick chart">');
                                document.writeln('<param name="button_6" value="ohlc.gif,-104">');
                                document.writeln('<param name="button_tip_6" value="OHLC chart">');
                                document.writeln('<param name="button_7" value="line.gif,-101">');
                                document.writeln('<param name="button_tip_7" value="Line chart">');
                                document.writeln('<param name="separator_8" value="-">');
                                document.writeln('<param name="button_9" value="ticks.gif,-200">');
                                document.writeln('<param name="button_tip_9" value="Ticks">');
                                document.writeln('<param name="button_10" value="1m.gif,-201">');
                                document.writeln('<param name="button_tip_10" value="1 minute">');
                                document.writeln('<param name="button_11" value="5m.gif,-202">');
                                document.writeln('<param name="button_tip_11" value="5 minutes">');
                                document.writeln('<param name="button_12" value="10m.gif,-203">');
                                document.writeln('<param name="button_tip_12" value="10 minutes">');
                                document.writeln('<param name="button_13" value="15m.gif,-204">');
                                document.writeln('<param name="button_tip_13" value="15 minutes">');
                                document.writeln('<param name="button_14" value="30m.gif,-205">');
                                document.writeln('<param name="button_tip_14" value="30 minutes">');
                                document.writeln('<param name="button_15" value="1h.gif,-206">');
                                document.writeln('<param name="button_tip_15" value="1 hour">');
                                document.writeln('<param name="button_16" value="2h.gif,-207">');
                                document.writeln('<param name="button_tip_16" value="2 hour">');
                                document.writeln('<param name="button_17" value="4h.gif,-208">');
                                document.writeln('<param name="button_tip_17" value="4 hour">');
                                document.writeln('<param name="button_18" value="8h.gif,-209">');
                                document.writeln('<param name="button_tip_18" value="8 hour">');
                                document.writeln('<param name="button_19" value="d.gif,-210">');
                                document.writeln('<param name="button_tip_19" value="Daily">');
                                document.writeln('<param name="button_20" value="w.gif,-211">');
                                document.writeln('<param name="button_tip_20" value="Weekly">');
                                document.writeln('<param name="button_21" value="m.gif,-212">');
                                document.writeln('<param name="button_tip_21" value="Monthly">');
                                document.writeln('<param name="separator_22" value="-">');
                                document.writeln('<param name="button_23" value="cross.gif,-303" />');
                                document.writeln('<param name="button_tip_23" value="Show/hide crosshair" />');
                                document.writeln('<param name="button_24" value="periods.gif,301"/>');
                                document.writeln('<param name="button_tip_24" value="Period"/>');
                                document.writeln('<param name="button_25" value="info.gif,302,F"/>');
                                document.writeln('<param name="button_tip_25" value="Information Window"/>');
                                document.writeln('<param name="button_26" value="expand.gif,308"/>');
                                document.writeln('<param name="button_tip_26" value="Expand"/>');
                                document.writeln('<param name="button_27" value="volume.gif,-330"/>');
                                document.writeln('<param name="button_tip_27" value="Show/hide volume chart"/>');
                                document.writeln('<param name="separator_28" value="-">');
                                document.writeln('<param name="button_29" value="lineClose.gif,-411"/>');
                                document.writeln('<param name="button_30" value="lineHighLow.gif,-412"/>');
                                document.writeln('<param name="button_31" value="lineHorizontal.gif,-413"/>');
                                document.writeln('<param name="button_32" value="lineFree.gif,-414"/>');
                                document.writeln('<param name="separator_33" value=""/>');
                                document.writeln('<param name="button_34" value="dnd.gif,-304"/>');
                                document.writeln('<param name="button_tip_34" value="Activate/deactivate Drag&drop"/>');
                                document.writeln('<param name="button_35" value="lineParallel.gif,-450"/>');
                                document.writeln('<param name="button_tip_35" value="Duplicate object"/>');
                                document.writeln('<param name="separator_36" value=""/>');
                                document.writeln('<param name="button_37" value="delete.gif,-306"/>');
                                document.writeln('<param name="button_tip_37" value="Delete an object or a study"/>');
                                document.writeln('<param name="button_38" value="deleteAll.gif,307"/>');
                                document.writeln('<param name="button_tip_38" value="Delete all objects and studies"/>');
                                document.writeln('<param name="separator_39" value=""/>');
                                document.writeln('<param name="button_40" value="zoomIn.gif,-601"/>');
                                document.writeln('<param name="button_tip_40" value="Zoom in"/>');
                                document.writeln('<param name="button_41" value="zoomOut.gif,602"/>');
                                document.writeln('<param name="button_tip_41" value="Zoom out"/>');
                                document.writeln('<param name="separator_42" value=""/>');
                                document.writeln('<param name="glue_43" value=""/>');
                                document.writeln('<param name="label_44" value="2001,.,0:plug.gif;1:blink.gif;2:blinkRed.gif,0:Trying to connect;1:Connected;2:Disconnected"/>');
                                document.writeln('<param name="button_45" value="atached.gif;detached.gif,-900,F"/>');
                                document.writeln('<param name="button_tip_45" value="Detach chart;Attach chart"/>');
                                document.writeln('<param name="window_icon" value="miniLogo2.gif"/>');
                                document.writeln('<param name="title_icon" value="miniLogo2.gif"/>');
                                document.writeln('<param name="copyright" value="http://www.netdania.com"/>');

                                if (BrowserDetect.browser == 'Safari' || BrowserDetect.browser == 'Explorer')
                                    document.writeln('</object>');
                                else
                                    document.writeln('</applet>');}function loadAdminApplet(userId){       BrowserDetect.init();
                                var appletTagStart = "";
                                if (BrowserDetect.browser == "Safari" || BrowserDetect.browser == "Explorer")
                                    appletTagStart = "<object id=\"ChartStation\" codetype=\"application/java\" type=\"application/x-java-applet\" classid=\"clsid:8AD9C840-044E-11D1-B3E9-00805F499D93\" WIDTH = \"964\" HEIGHT = \"450\" MAYSCRIPT>";
                                else {
                                    if (BrowserDetect.OS == 'Mac')
                                        appletTagStart = "<applet valign=\"middle\" code =  \"com.netdania.chartstation.ChartStationApplet.class\" id=\"ChartStation\" name=\"ChartStation\" archive = \"ChartStation-3_0.zip\" codebase=\"http://balancer.netdania.com/Streaming/\" width=\"964\" height=\"450\" id=\"ChartStation\" MAYSCRIPT>";
                                    else
                                        appletTagStart = "<applet valign=\"middle\" code =  \"com.netdania.chartstation.ChartStationApplet.class\" id=\"ChartStation\" name=\"ChartStation\" archive = \"ChartStation-3_0.zip\" codebase=\"https://balancer.netdania.com/Streaming/\" width=\"964\" height=\"450\" id=\"ChartStation\" MAYSCRIPT>";

                                }
                                appletTagStart += "<param name='user_id' value='" + userId + "'>";
                                //appletTagStart +=appletTagStart);

                                if (BrowserDetect.browser == 'Safari' || BrowserDetect.OS == 'Mac')
                                    appletTagStart +='<param name = "CODEBASE" VALUE = "https://balancer.netdania.com/Streaming/"/>';
                                else
                                    appletTagStart +='<param name = "CODEBASE" VALUE = "https://balancer.netdania.com/Streaming/"/>';
                                appletTagStart +='<param name = "CODE" VALUE = "com.netdania.chartstation.ChartStationApplet.class"/>';
                                appletTagStart +='<param name = "ARCHIVE" VALUE = "ChartStation-3_0.zip"/>';
                                appletTagStart +='<param name = "host" value = "http://balancer.netdania.com/StreamingServer/StreamingServer"/>';
                                appletTagStart +='<param name = "NAME" VALUE = "ChartStation"/>';
                                appletTagStart +='<param name = "MAYSCRIPT" VALUE = "true"/>';
                                appletTagStart +='<param name= "type" VALUE="application/x-java-applet;version=1.5.0"/>';
                                appletTagStart +='<param name= "scriptable" VALUE="true"/>';
                                appletTagStart +='<param name= "provider" value= "netdania_fxa"/>';
                                appletTagStart +='<param name= "provider_time_scales_1" value="netdania:10080|43200"/>';
                                appletTagStart +='<param name="language" value="english;english"/>';
                                appletTagStart +='<param name="force_menu_default_texts" value="805,803,804,701,711"/>';
                                appletTagStart +='<param name="expand_points" value="30"/>';
                                appletTagStart +='<param name="protocol" value="1"/>';
                                appletTagStart +='<param name="allow_saving" value="true"/>';
                                appletTagStart +='<param name="max_wkspaces" value="20"/>';
                                appletTagStart +='<param name="max_windows" value="10"/>';
                                appletTagStart +='<param name="lnf_property_1" value="InternalFrame.inactiveTitleForeground=color{000000}"/>';
                                appletTagStart +='<param name="decimals" value="0"/>';
                                appletTagStart +='<param name="LNF_2" value="Metal;-1000;javax.swing.plaf.metal.MetalLookAndFeel"/>';
                                appletTagStart +='<param name="time_scale" value="10080"/>';


                                if (BrowserDetect.OS == "Mac") {
                                    appletTagStart +='<param name="LNF_1" value="Aqua;-1000;apple.laf.AquaLookAndFeel"/>';
                                    appletTagStart +='<param name="default_lnf" value="com.netdania.lnf.NetDaniaMetalLookAndFeel"/>';
                                }
                                else {
                                    appletTagStart +='<param name="LNF_1" value="Windows;-1000;com.sun.java.swing.plaf.windows.WindowsLookAndFeel"/>';
                                    appletTagStart +='<param name="default_lnf" value="com.sun.java.swing.plaf.windows.WindowsLookAndFeel"/>';
                                }

                                appletTagStart +='<param name="window_0" value="EURUSD;EUR/USD;60;300"/>';
                                appletTagStart +='<param name="toolbar_position" value="North"/>';
                                appletTagStart +='<param name="continuous_layout" value="true"/>';
                                appletTagStart +='<param name="antialias" value="false"/>';
                                appletTagStart +='<param name="copyright_notice"  value="true"/>';
                                appletTagStart +='<param name="desktop_background" value="FFFFFF"/>';
                                appletTagStart +='<param name="desktop_font" value="Dialog;11;BOLD"/>';
                                appletTagStart +='<param name="study_area_weight" value="33"/>';
                                appletTagStart +='<param name="chart_bottom" value="6"/>';
                                appletTagStart +='<param name="help_address" value="http://www.netdania.com/Downloads/guides/ChartStation/english/index.html"/>';
                                appletTagStart +='<param name="menu_bar" value="Workspaces;WKS;Instruments;INS;Chart Type;CT;Time Scale;TS;View;VW;Edit;ET;Lines;LN;Studies,333;Zoom;ZM;Settings;SET;Window;WIN;Help;HLP">';
                                appletTagStart +='<param name="WKS_1" value="New;3001"/>';
                                appletTagStart +='<param name="WKS_2" value="Save;3002"/>';
                                appletTagStart +='<param name="WKS_3" value="Save As;3003"/>';
                                appletTagStart +='<param name="WKS_4" value="-"/>';
                                appletTagStart +='<param name="WKS_5" value="POPUP;Open;OPN"/>';
                                appletTagStart +='<param name="WKS_6" value="POPUP;Delete;DEL"/>';
                                appletTagStart +='<param name="WKS_7" value="Delete all except this;3005"/>';
                                appletTagStart +='<param name="WKS_8" value="Delete all;3004"/>';
                                appletTagStart +='<param name="WKS_9" value="-"/>';
                                appletTagStart +='<param name="WKS_10" value="POPUP;Set Default Workspace;DEF"/>';

                                appletTagStart +='<param name="INS_1" value="EUR/USD;805;EUR/USD;EURUSD;0"/>';
                                appletTagStart +='<param name="INS_2" value="USD/JPY;805;USD/JPY;USDJPY;0"/>';
                                appletTagStart +='<param name="INS_3" value="USD/CHF;805;USD/CHF;USDCHF;0"/>';
                                appletTagStart +='<param name="INS_5" value="USD/CAD;805;USD/CAD;USDCAD;0"/>';
                                appletTagStart +='<param name="INS_4" value="GBP/USD;805;GBP/USD;GBPUSD;0"/>';
                                appletTagStart +='<param name="INS_6" value="GBP/CHF;805;GBP/CHF;GBPCHF;0"/>';
                                appletTagStart +='<param name="INS_7" value="GBP/JPY;805;GBP/JPY;GBPJPY;0"/>';
                                appletTagStart +='<param name="INS_8" value="AUD/USD;805;AUD/USD;AUDUSD;0"/>';
                                appletTagStart +='<param name="INS_9" value="AUD/CHF;805;AUD/CHF;AUDCHF;0"/>';
                                appletTagStart +='<param name="INS_10" value="AUD/JPY;805;AUD/JPY;AUDJPY;0"/>';
                                appletTagStart +='<param name="INS_11" value="AUD/NZD;805;AUD/NZD;AUDNZD;0"/>';
                                appletTagStart +='<param name="INS_12" value="AUD/CAD;805;AUD/CAD;AUDCAD;0"/>';
                                appletTagStart +='<param name="INS_13" value="CAD/JPY;805;CAD/JPY;CADJPY;0"/>';
                                appletTagStart +='<param name="INS_14" value="NZD/USD;805;NZD/USD;NZDUSD;0"/>';
                                appletTagStart +='<param name="INS_15" value="NZD/JPY;805;NZD/JPY;NZDJPY;0"/>';
                                appletTagStart +='<param name="INS_16" value="EUR/GBP;805;EUR/GBP;EURGBP;0"/>';
                                appletTagStart +='<param name="INS_17" value="EUR/CZK;805;EUR/CZK;EURCZK;0"/>';
                                appletTagStart +='<param name="INS_18" value="EUR/CAD;805;EUR/CAD;EURCAD;0"/>';
                                appletTagStart +='<param name="INS_19" value="EUR/CHF;805;EUR/CHF;EURCHF;0"/>';
                                appletTagStart +='<param name="INS_20" value="EUR/JPY;805;EUR/JPY;EURJPY;0"/>';
                                appletTagStart +='<param name="INS_21" value="CHF/JPY;805;CHF/JPY;CHFJPY;0"/>';

                                appletTagStart +='<param name="decimals_1" value="AUD/CAD;AUDCAD|netdania_fxa;4;4;5"/>';
                                appletTagStart +='<param name="decimals_2" value="AUD/CHF;AUDCHF|netdania_fxa;4;4;5"/>';
                                appletTagStart +='<param name="decimals_3" value="AUD/JPY;AUDJPY|netdania_fxa;2;2;3"/>';
                                appletTagStart +='<param name="decimals_4" value="AUD/NZD;AUDNZD|netdania_fxa;4;4;5"/>';
                                appletTagStart +='<param name="decimals_5" value="AUD/USD;AUDUSD|netdania_fxa;4;4;5"/>';
                                appletTagStart +='<param name="decimals_6" value="CAD/JPY;CADJPY|netdania_fxa;2;2;3"/>';
                                appletTagStart +='<param name="decimals_7" value="CHF/JPY;CHFJPY|netdania_fxa;2;2;3"/>';
                                appletTagStart +='<param name="decimals_8" value="EUR/CHF;EURCHF|netdania_fxa;4;4;5"/>';
                                appletTagStart +='<param name="decimals_9" value="EUR/CZK;EURCZK|netdania_fxa;2;2;3"/>';
                                appletTagStart +='<param name="decimals_10" value="EUR/GBP;EURGBP|netdania_fxa;4;4;5"/>';
                                appletTagStart +='<param name="decimals_11" value="EUR/JPY;EURJPY|netdania_fxa;2;2;3"/>';
                                appletTagStart +='<param name="decimals_12" value="EUR/USD;EURUSD|netdania_fxa;4;4;5"/>';
                                appletTagStart +='<param name="decimals_13" value="GBP/CHF;GBPCHF|netdania_fxa;4;4;5"/>';
                                appletTagStart +='<param name="decimals_14" value="GBP/JPY;GBPJPY|netdania_fxa;2;2;3"/>';
                                appletTagStart +='<param name="decimals_15" value="GBP/USD;GBPUSD|netdania_fxa;4;4;5"/>';
                                appletTagStart +='<param name="decimals_16" value="NZD/JPY;NZDJPY|netdania_fxa;2;2;3"/>';
                                appletTagStart +='<param name="decimals_17" value="NZD/USD;NZDUSD|netdania_fxa;4;4;5"/>';
                                appletTagStart +='<param name="decimals_18" value="EUR/CAD;EURCAD|netdania_fxa;4;4;5"/>';
                                appletTagStart +='<param name="decimals_19" value="USD/CAD;USDCAD|netdania_fxa;4;4;5"/>';
                                appletTagStart +='<param name="decimals_20" value="USD/CHF;USDCHF|netdania_fxa;4;4;5"/>';
                                appletTagStart +='<param name="decimals_21" value="USD/JPY;USDJPY|netdania_fxa;2;2;3"/>';

                                appletTagStart +='<param name="CT_1" value="CandleStick;-106"/>';
                                appletTagStart +='<param name="CT_2" value="BarOHLC;-104"/>';
                                appletTagStart +='<param name="CT_3" value="Line Chart;-101"/>';
                                appletTagStart +='<param name="CT_4" value="Heikin Ashi;-109"/>';
                                appletTagStart +='<param name="CT_5" value="Dot Chart;-102"/>';
                                appletTagStart +='<param name="CT_6" value="LineDot Chart;-103"/>';
                                appletTagStart +='<param name="CT_7" value="Forest Chart;-107"/>';
                                appletTagStart +='<param name="CT_8" value="BarHLC;-105"/>';

                                appletTagStart +='<param name="TS_1"  value="Ticks;-200"/>';
                                appletTagStart +='<param name="TS_2"  value="1 minute;-201"/>';
                                appletTagStart +='<param name="TS_3"  value="5 minutes;-202"/>';
                                appletTagStart +='<param name="TS_4"  value="10 minutes;-203"/>';
                                appletTagStart +='<param name="TS_5"  value="15 minutes;-204"/>';
                                appletTagStart +='<param name="TS_6"  value="30 minutes;-205"/>';
                                appletTagStart +='<param name="TS_7"  value="1 hour;-206"/>';
                                appletTagStart +='<param name="TS_8"  value="2 hours;-207"/>';
                                appletTagStart +='<param name="TS_9" value="4 hours;-208"/>';
                                appletTagStart +='<param name="TS_10" value="8 hours;-209"/>';
                                appletTagStart +='<param name="TS_11" value="Daily;-210"/>';
                                appletTagStart +='<param name="TS_12" value="Weekly;-211"/>';
                                appletTagStart +='<param name="TS_13" value="Monthly;-212"/>';

                                appletTagStart +='<param name="VW_1" value="Periods;301"/>';
                                appletTagStart +='<param name="VW_2" value="Information;302"/>';
                                appletTagStart +='<param name="VW_3" value="Expand Points;308"/>';
                                appletTagStart +='<param name="VW_4" value="Logaritmic price scale;-350"/>';
                                appletTagStart +='<param name="VW_5" value="Crosshair;-303"/>';
                                appletTagStart +='<param name="VW_6" value="-"/>';
                                appletTagStart +='<param name="VW_7" value="Volume;-330"/>';
                                appletTagStart +='<param name="VW_8" value="Open Interest;-340"/>';
                                appletTagStart +='<param name="VW_9" value="-"/>';
                                appletTagStart +='<param name="VW_10" value="Toolbar;-310"/>';

                                appletTagStart +='<param name="ET_1" value="Drag&drop;-304"/>';
                                appletTagStart +='<param name="ET_2" value="-"/>';

                                appletTagStart +='<param name="ET_3" value="Add Annotation;-510"/>';
                                appletTagStart +='<param name="ET_4" value="Add Arrow;-511"/>';
                                appletTagStart +='<param name="ET_5" value="-"/>';

                                appletTagStart +='<param name="ET_6" value="Edit Object;-440"/>';
                                appletTagStart +='<param name="ET_7" value="Duplicate Object;-450"/>';
                                appletTagStart +='<param name="ET_8" value="Move Object;-460"/>';
                                appletTagStart +='<param name="ET_9" value="Delete Object;-420"/>';
                                appletTagStart +='<param name="ET_10" value="Delete All Objects;430"/>';
                                appletTagStart +='<param name="ET_11" value="-"/>';

                                appletTagStart +='<param name="ET_12" value="Delete;-306"/>';
                                appletTagStart +='<param name="ET_13" value="Delete All;307"/>';
                                appletTagStart +='<param name="LN_1" value="POPUP;Add Lines;ADD"/>';

                                appletTagStart +='<param name="ADD_1" value="Close;-512;1"/>';
                                appletTagStart +='<param name="ADD_2" value="High/Low;-512;2"/>';
                                appletTagStart +='<param name="ADD_3" value="FreeHand;-512;4"/>';
                                appletTagStart +='<param name="ADD_4" value="Horizontal Close;-513;1"/>';
                                appletTagStart +='<param name="ADD_5" value="Horizontal High/Low;-513;2"/>';
                                appletTagStart +='<param name="ADD_6" value="Horizontal FreeHand;-513;4"/>';


                                appletTagStart +='<param name="LN_2" value="POPUP;Add Fibonacci Fans;FIB"/>';
                                appletTagStart +='<param name="FIB_1" value="Close;-516;1"/>';
                                appletTagStart +='<param name="FIB_2" value="High/Low;-516;2"/>';
                                appletTagStart +='<param name="FIB_3" value="FreeHand;-516;4"/>';

                                appletTagStart +='<param name="LN_3" value="POPUP;Add Fibonacci Retracements;SUP"/>';
                                appletTagStart +='<param name="SUP_1" value="Close;-517;1"/>';
                                appletTagStart +='<param name="SUP_2" value="High/Low;-517;2"/>';
                                appletTagStart +='<param name="SUP_3" value="FreeHand;-517;4"/>';

                                appletTagStart +='<param name="LN_4" value="POPUP;Add Fibonacci Arcs;ARC">';
                                appletTagStart +='<param name="ARC_1" value="Close;-515;1">';
                                appletTagStart +='<param name="ARC_2" value="High/Low;-515;2">';
                                appletTagStart +='<param name="ARC_3" value="FreeHand;-515;4">';

                                appletTagStart +='<param name="LN_5" value="Add Fibonacci Time Zones;-518;4">';

                                appletTagStart +='<param name="ZM_1" value="Zoom In;-601"/>';
                                appletTagStart +='<param name="ZM_2" value="Zoom Out;602"/>';

                                appletTagStart +='<param name="SET_1" value="Chart;711"/>';
                                appletTagStart +='<param name="SET_2" value="-"/>';

                                appletTagStart +='<param name="SET_3" value="English;-1002;english"/>';
                                appletTagStart +='<param name="SET_4" value="日本語;-1002;japanese"/>';
                                appletTagStart +='<param name="SET_5" value="Deutsch;-1002;german"/>';
                                appletTagStart +='<param name="SET_6" value="Français;-1002;french"/>';
                                appletTagStart +='<param name="SET_7" value="Italiano;-1002;italian"/>';
                                appletTagStart +='<param name="SET_8" value="Español;-1002;spanish"/>';
                                appletTagStart +='<param name="SET_9" value="中文;-1002;chinese"/>';
                                appletTagStart +='<param name="SET_10" value="Türkçe;-1002;turkish"/>';
                                appletTagStart +='<param name="SET_11" value="Polish;-1002;polish"/>';
                                appletTagStart +='<param name="SET_12" value="Português;-1002;portuguese"/>';

                                appletTagStart +='<param name="SET_13" value="-"/>';
                                appletTagStart +='<param name="SET_14" value="Time Zone;370"/>';
                                appletTagStart +='<param name="SET_15" value="Protocol;1001"/>';
                                appletTagStart +='<param name="SET_16" value="-"/>';
                                appletTagStart +='<param name="SET_17" value="POPUP;Look & Feels;LNF"/>';


                                appletTagStart +='<param name="WIN_1" value="Cascade;1010"/>';
                                appletTagStart +='<param name="WIN_2" value="Tile Horizontal;1011"/>';
                                appletTagStart +='<param name="WIN_3" value="Tile Vertical;1012"/>';
                                appletTagStart +='<param name="WIN_4" value="-"/>';

                                appletTagStart +='<param name="WIN_5" value="Print;361"/>';
                                appletTagStart +='<param name="WIN_6" value="Print preview;360"/>';

                                appletTagStart +='<param name="WIN_7" value="-"/>';

                                appletTagStart +='<param name="WIN_8" value="Restore all;1013"/>';
                                appletTagStart +='<param name="WIN_9" value="Close all;1014"/>';

                                appletTagStart +='<param name="HLP_1" value="User Guide;701"/>';
                                appletTagStart +='<param name="HLP_2" value="About;702"/>';

                                appletTagStart +='<param name="applet_detached_text" value="Chart is detached..." />';
                                appletTagStart +='<param name="detach_window_title" value="ChartStation" />';

                                appletTagStart +='<param name="button_1" value="new.gif,3001"/>';
                                appletTagStart +='<param name="button_tip_1" value="New workspace"/>';
                                appletTagStart +='<param name="button_2" value="save.gif,3002"/>';
                                appletTagStart +='<param name="button_tip_2" value="Save workspace"/>';
                                appletTagStart +='<param name="button_3" value="saveAs.gif,3003"/>';
                                appletTagStart +='<param name="button_tip_3" value="Save workspace as ..."/>';
                                appletTagStart +='<param name="separator_4" value=""/>';
                                appletTagStart +='<param name="button_5" value="candles.gif,-106"/>';
                                appletTagStart +='<param name="button_tip_5" value="Candlestick chart"/>';
                                appletTagStart +='<param name="button_6" value="ohlc.gif,-104"/>';
                                appletTagStart +='<param name="button_tip_6" value="OHLC chart"/>';
                                appletTagStart +='<param name="button_7" value="line.gif,-101"/>';
                                appletTagStart +='<param name="button_tip_7" value="Line chart"/>';
                                appletTagStart +='<param name="separator_8" value="-"/>';
                                appletTagStart +='<param name="button_9" value="ticks.gif,-200"/>';
                                appletTagStart +='<param name="button_tip_9" value="Ticks"/>';
                                appletTagStart +='<param name="button_10" value="1m.gif,-201"/>';
                                appletTagStart +='<param name="button_tip_10" value="1 minute"/>';
                                appletTagStart +='<param name="button_11" value="5m.gif,-202"/>';
                                appletTagStart +='<param name="button_tip_11" value="5 minutes"/>';
                                appletTagStart +='<param name="button_12" value="10m.gif,-203"/>';
                                appletTagStart +='<param name="button_tip_12" value="10 minutes"/>';
                                appletTagStart +='<param name="button_13" value="15m.gif,-204"/>';
                                appletTagStart +='<param name="button_tip_13" value="15 minutes"/>';
                                appletTagStart +='<param name="button_14" value="30m.gif,-205"/>';
                                appletTagStart +='<param name="button_tip_14" value="30 minutes"/>';
                                appletTagStart +='<param name="button_15" value="1h.gif,-206"/>';
                                appletTagStart +='<param name="button_tip_15" value="1 hour"/>';
                                appletTagStart +='<param name="button_16" value="2h.gif,-207"/>';
                                appletTagStart +='<param name="button_tip_16" value="2 hour"/>';
                                appletTagStart +='<param name="button_17" value="4h.gif,-208"/>';
                                appletTagStart +='<param name="button_tip_17" value="4 hour"/>';
                                appletTagStart +='<param name="button_18" value="8h.gif,-209"/>';
                                appletTagStart +='<param name="button_tip_18" value="8 hour"/>';
                                appletTagStart +='<param name="button_19" value="d.gif,-210"/>';
                                appletTagStart +='<param name="button_tip_19" value="Daily"/>';
                                appletTagStart +='<param name="button_20" value="w.gif,-211"/>';
                                appletTagStart +='<param name="button_tip_20" value="Weekly"/>';
                                appletTagStart +='<param name="button_21" value="m.gif,-212"/>';
                                appletTagStart +='<param name="button_tip_21" value="Monthly"/>';
                                appletTagStart +='<param name="separator_22" value="-"/>';
                                appletTagStart +='<param name="button_23" value="cross.gif,-303" />';
                                appletTagStart +='<param name="button_tip_23" value="Show/hide crosshair" />';
                                appletTagStart +='<param name="button_24" value="periods.gif,301"/>';
                                appletTagStart +='<param name="button_tip_24" value="Period"/>';
                                appletTagStart +='<param name="button_25" value="info.gif,302,F"/>';
                                appletTagStart +='<param name="button_tip_25" value="Information Window"/>';
                                appletTagStart +='<param name="button_26" value="expand.gif,308"/>';
                                appletTagStart +='<param name="button_tip_26" value="Expand"/>';
                                appletTagStart +='<param name="button_27" value="volume.gif,-330"/>';
                                appletTagStart +='<param name="button_tip_27" value="Show/hide volume chart"/>';
                                appletTagStart +='<param name="separator_28" value="-"/>';
                                appletTagStart +='<param name="button_29" value="lineClose.gif,-411"/>';
                                appletTagStart +='<param name="button_30" value="lineHighLow.gif,-412"/>';
                                appletTagStart +='<param name="button_31" value="lineHorizontal.gif,-413"/>';
                                appletTagStart +='<param name="button_32" value="lineFree.gif,-414"/>';
                                appletTagStart +='<param name="separator_33" value=""/>';
                                appletTagStart +='<param name="button_34" value="dnd.gif,-304"/>';
                                appletTagStart +='<param name="button_tip_34" value="Activate/deactivate Drag&drop"/>';
                                appletTagStart +='<param name="button_35" value="lineParallel.gif,-450"/>';
                                appletTagStart +='<param name="button_tip_35" value="Duplicate object"/>';
                                appletTagStart +='<param name="separator_36" value=""/>';
                                appletTagStart +='<param name="button_37" value="delete.gif,-306"/>';
                                appletTagStart +='<param name="button_tip_37" value="Delete an object or a study"/>';
                                appletTagStart +='<param name="button_38" value="deleteAll.gif,307"/>';
                                appletTagStart +='<param name="button_tip_38" value="Delete all objects and studies"/>';
                                appletTagStart +='<param name="separator_39" value=""/>';
                                appletTagStart +='<param name="button_40" value="zoomIn.gif,-601"/>';
                                appletTagStart +='<param name="button_tip_40" value="Zoom in"/>';
                                appletTagStart +='<param name="button_41" value="zoomOut.gif,602"/>';
                                appletTagStart +='<param name="button_tip_41" value="Zoom out"/>';
                                appletTagStart +='<param name="separator_42" value=""/>';
                                appletTagStart +='<param name="glue_43" value=""/>';
                                appletTagStart +='<param name="label_44" value="2001,.,0:plug.gif;1:blink.gif;2:blinkRed.gif,0:Trying to connect;1:Connected;2:Disconnected"/>';
                                appletTagStart +='<param name="button_45" value="atached.gif;detached.gif,-900,F"/>';
                                appletTagStart +='<param name="button_tip_45" value="Detach chart;Attach chart"/>';
                                appletTagStart +='<param name="window_icon" value="miniLogo2.gif"/>';
                                appletTagStart +='<param name="title_icon" value="miniLogo2.gif"/>';
                                appletTagStart +='<param name="use_menu_bar" value="true"/>';
                                appletTagStart +='<param name="submenu_background" value = "FFFFFF"/>';
                                appletTagStart +='<param name="menu_horizontal_spacing" value="2"/>';
                                appletTagStart +='<param name="menu_height" value="23"/>';
                                appletTagStart +='<param name="use_toolbar" value="true"/>';
                                appletTagStart +='<param name="toolbar_buttons_height" value="32"/>';
                                appletTagStart +='<param name="copyright" value="http://www.netdania.com"/>';

                                if (BrowserDetect.browser == 'Safari' || BrowserDetect.browser == 'Explorer')
                                    appletTagStart +='</object>';
                                else
                                    appletTagStart +='</applet>';                                return appletTagStart;}function PageQuery(q) {
    if (q.length > 1)
        this.q = q.substring(1, q.length);
    else this.q = null;
    this.keyValuePairs = new Array();
    if (q) {

        for (var i = 0; i < this.q.split("&").length; i++) {
            this.keyValuePairs[i] = this.q.split("&")[i];
        }
    }

    this.getKeyValuePairs = function() { return this.keyValuePairs; }

    this.getValue = function(s) {
        for (var j = 0; j < this.keyValuePairs.length; j++) {
            if (this.keyValuePairs[j].split("=")[0] == s)
                return this.keyValuePairs[j].split("=")[1];
        }
        return false;
    }

    this.getParameters = function() {

        var a = new Array(this.getLength());

        for (var j = 0; j < this.keyValuePairs.length; j++) {
            a[j] = this.keyValuePairs[j].split("=")[0];
        }
        return a;
    }

    this.getLength = function() { return this.keyValuePairs.length; }
}
function queryString(key) {
    var page = new PageQuery(window.location.search);
    return unescape(page.getValue(key));
}









