google_language = 'da';

function windowonload(fn) {
  if(window.addEventListener) {
    window.addEventListener('load', fn, false);
  } else if(window.attachEvent) {
    window.attachEvent('onload', fn);
  }
}

function ajax() {
  try {
    AJAX = new XMLHttpRequest();
  } catch(e) {
    try {
      AJAX = new ActiveXObject("Msxml2.XMLHTTP");
    } catch(e) {
      try {
        AJAX = new ActiveXObject("Microsoft.XMLHTTP");
      } catch(e) {
        return false;
      }
    }
  }
  AJAX.call = function(callscript, callvars) {
    this.callscript = callscript;
    this.callvars = callvars + (typeof gazeti_token != 'undefined' && gazeti_token.length > 0 ? "&gazeti_token=" + gazeti_token : "");
    this.open("post", this.callscript, true);
    this.setRequestHeader("Content-type", "application/x-www-form-urlencoded; charset=UTF-8");
    this.setRequestHeader("Content-length", this.callvars.length);
    this.setRequestHeader("Connection", "close");
    this.send(this.callvars);
  }
  AJAX.onreadystatechange = function() {
    if(this.readyState == 4 && typeof this.handler == "function") {
      this.handler();
    }
  }
  return AJAX;
}

function quickajax(callscript, callvars) {
  caller = ajax();
  caller.call(callscript, callvars);
}

function getCookie( name ) {
	var start = document.cookie.indexOf( name + "=" );
	var len = start + name.length + 1;
	if ( ( !start ) && ( name != document.cookie.substring( 0, name.length ) ) ) {
		return null;
	}
	if ( start == -1 ) return null;
	var end = document.cookie.indexOf( ';', len );
	if ( end == -1 ) end = document.cookie.length;
	return unescape( document.cookie.substring( len, end ) );
}

function setCookie( name, value, expires, path, domain, secure ) {
	var today = new Date();
	today.setTime( today.getTime() );
	if ( expires ) {
		expires = expires * 1000 * 60 * 60 * 24;
	}
	var expires_date = new Date( today.getTime() + (expires) );
	document.cookie = name+'='+escape( value ) +
		( ( expires ) ? ';expires='+expires_date.toGMTString() : '' ) + //expires.toGMTString()
		( ( path ) ? ';path=' + path : '' ) +
		( ( domain ) ? ';domain=' + domain : '' ) +
		( ( secure ) ? ';secure' : '' );
}

function deleteCookie( name, path, domain ) {
	if ( getCookie( name ) ) document.cookie = name + '=' +
			( ( path ) ? ';path=' + path : '') +
			( ( domain ) ? ';domain=' + domain : '' ) +
			';expires=Thu, 01-Jan-1970 00:00:01 GMT';
}

function number_parse(number) {
  number = number.replace(/[^0-9\.,]/ig, '');
  if(number.match(/\..+,/ig)) {
    number = number.replace('.', '');
    number = number.replace(',', '.');
  } else if(number.match(/,.+\./ig)) {
    number = number.replace(',', '');
  } else if(number.match(/,/ig)) {
    number = number.replace(',', '.');
  }
  number = number.replace(',', ''); // REMOVE MORE DOTS THAN ONE
  return number - 0;
}

function number_format(number, decimals, dec_point, thousands_sep) {
    var n = !isFinite(+number) ? 0 : +number, 
        prec = !isFinite(+decimals) ? 0 : Math.abs(decimals),
        sep = (typeof thousands_sep === 'undefined') ? ',' : thousands_sep,
        dec = (typeof dec_point === 'undefined') ? '.' : dec_point,
        s = '',
        toFixedFix = function (n, prec) {
            var k = Math.pow(10, prec);
            return '' + Math.round(n * k) / k;
        };
    s = (prec ? toFixedFix(n, prec) : '' + Math.round(n)).split('.');
    if (s[0].length > 3) {
        s[0] = s[0].replace(/\B(?=(?:\d{3})+(?!\d))/g, sep);
    }
    if ((s[1] || '').length < prec) {
        s[1] = s[1] || '';
        s[1] += new Array(prec - s[1].length + 1).join('0');
    }
    return s.join(dec);
}

function getkey(e) {
  var c;
  if(e && e.which) {
    c = e.which;
  } else if(event) {
    c = event.keyCode;
  } else {
    c = 0;
  }
  return c;
}

function stockgraphupdate(stock) {
  caller = new ajax();
  document.getElementById('stockgraph').src = 'http://static.gearing.dk/base/loading.gif';
  caller.handler = function() {
    document.getElementById('stockgraph').src = this.responseText.length ? this.responseText : 'http://static.gearing.dk/base/loading.gif';
  }
  caller.call('/stockgraph', 'stock=' + encodeURIComponent(stock) + '&days=' + encodeURIComponent(document.getElementById('stockgraph_days').value) + 
                             '&compare_country=' + encodeURIComponent(document.getElementById('stockgraph_compare_country') && document.getElementById('stockgraph_compare_country').checked ? 1 : 0) +
                             '&compare_cap=' + encodeURIComponent(document.getElementById('stockgraph_compare_cap') && document.getElementById('stockgraph_compare_cap').checked ? 1 : 0) +
                             '&compare_sector=' + encodeURIComponent(document.getElementById('stockgraph_compare_sector') && document.getElementById('stockgraph_compare_sector').checked ? 1 : 0) +
                             '&compare_exact=' + encodeURIComponent(document.getElementById('stockgraph_compare_exact') && document.getElementById('stockgraph_compare_exact').checked ? 0 : 1));
}

function curgraphupdate(cur1, cur2) {
  caller = new ajax();
  document.getElementById('curgraph').src = 'http://static.gearing.dk/base/loading.gif';
  caller.handler = function() {
    document.getElementById('curgraph').src = this.responseText.length ? this.responseText : 'http://static.gearing.dk/base/loading.gif';
  }
  caller.call('/curgraph', 'cur1=' + encodeURIComponent(cur1) + '&cur2=' + encodeURIComponent(cur2) + '&days=' + encodeURIComponent(document.getElementById('curgraph_days').value));
}

function stockhistory(stock) {
  caller = new ajax();
  document.getElementById('quotehistory_container').innerHTML = '<div class="doublepaddingvert textcenter"><img src="http://static.gearing.dk/base/loading.gif" class="automargin"></div>';
  caller.handler = function() {
    document.getElementById('quotehistory_container').innerHTML = this.responseText;
  }
  caller.call('/stockhistory', 'stock=' + encodeURIComponent(stock) + '&date=' + encodeURIComponent(document.getElementById('quotehistory_date').value));
}

function curhistory(cur1, cur2) {
  caller = new ajax();
  document.getElementById('quotehistory_container').innerHTML = '<div class="doublepaddingvert textcenter"><img src="http://static.gearing.dk/base/loading.gif" class="automargin"></div>';
  caller.handler = function() {
    document.getElementById('quotehistory_container').innerHTML = this.responseText;
  }
  caller.call('/curhistory', 'cur1=' + encodeURIComponent(cur1) + '&cur2=' + encodeURIComponent(cur2) + '&date=' + encodeURIComponent(document.getElementById('quotehistory_date').value));
}

function sorttable() {
  if(!(sbody = document.getElementById('sortbody'))) {
    return false;
  }
  srows = sbody.getElementsByTagName('tr');
  scols = new Array();
  sobjs = new Array();
  for(i = 0; i < srows.length; i++) {
    sindex = srows[i].getElementsByTagName('td')[document.getElementById('sortby').selectedIndex].getAttribute('sortindex');
    if(document.getElementById('sortby').value == 'numeric') {
      sindex -= 0;
    }
    while(in_array(sindex, scols)) {
      if(document.getElementById('sortby').value == 'numeric') {
        sindex += 0.00001;
      } else {
        sindex += '_';
      }
    }
    scols[i] = sindex;
    sobjs[sindex] = srows[i];
  }
  if(document.getElementById('sortby').value == 'numeric') {
    scols.sort(sortnumeric);
  } else {
    scols.sort();
  }
  if(document.getElementById('sortorder').value == 'DESC') {
    scols.reverse();
  }
  var even = 0;
  for(i = 0; i < scols.length; i++) {
    sobj = sobjs[scols[i]];
    sobj.className = (!(i % 2) ? 'trlightgrey' : 'trlightwhite');
    sbody.appendChild(sobj);
  }
  document.getElementById('sortby').blur();
  document.getElementById('sortorder').blur();
  cname = location.href.replace(/^http:\/\/gearing\.dk\/([^\/]+).+$/ig, '$1');
  setCookie('gearing_' + location.href.replace(/^http:\/\/gearing\.dk\/([^\/]+).+$/ig, '$1') + '_order', document.getElementById('sortby').selectedIndex + ',' + document.getElementById('sortorder').selectedIndex, 365, '/', '.gearing.dk');
}

function in_array(value, array) {
  for(i = 0; i < array.length; i++) {
    if(value == array[i]) {
      return true;
    }
  }
  return false;
}

function sortnumeric(a, b) {
  return (a - b);
}

function initorder() {
  if(!(c = getCookie('gearing_' + location.href.replace(/^http:\/\/gearing\.dk\/([^\/]+).+$/ig, '$1') + '_order'))) {
    return false;
  }
  if(!(sby = document.getElementById('sortby'))) {
    return false;
  }
  if(!(sorder = document.getElementById('sortorder'))) {
    return false;
  }
  c = c.split(',');
  sby.selectedIndex = parseInt(c[0]);
  sorder.selectedIndex = parseInt(c[1]);
  sorttable();
}

windowonload(initorder);
