var isDOM=elementById?1:0;
var isIE=document.all?1:0;
var isNS4=navigator.appName=='Netscape'&&!isDOM?1:0;
var isOp=self.opera?1:0;
var isDyn=isDOM||isIE||isNS4;

function init() {
  hideFocusBordersByTag('a');
  var objhead = document.getElementsByTagName('head')[0];
  var objcss = document.createElement('link');
  objcss.type = 'text/css';
  objcss.rel = 'stylesheet';
  objcss.href = 'http://charmforex.com/_css/firefox.css';
  objcss.media = 'screen';
  objhead.appendChild(objcss);

  var mc = document.getElementById('maincontent');
  var nv = document.getElementById('navigation');
  var nl = getLeft(nv);
  //nv.style.position = 'absolute';
  //nv.style.left = nl;
  //mc.style.paddingLeft = '200px';

  var orderobj = document.getElementById('lstpairs');
  if (orderobj!=null) {
    document.getElementById('p0').onclick();
  }
  var ratesobj = document.getElementById('nav9');
  if (ratesobj!=null) {
    UpdateRates();
  }
  ChangeOrder('lite');
  ChangeOrder('personal');
}

function hideFocusBordersByTag(tag) {
  var objects = document.getElementsByTagName(tag);
  if (!objects) {
    return;
  }
  for(var x=0;x!=objects.length;x++) {
    objects[x].onfocus = function stopLinkFocus() {
      this.hideFocus=true;
    };
  }
}

function elementById(id) {
  if (isNS4) {
    return getObjNN4(document, id);
  }
  else if(document.getElementById) {
    return document.getElementById(id);
  }
  else if (document.all) {
    return document.all[id];
  }
}

function SetClass(id, newClass) {
  var obj = elementById(id);
  if (obj!=null) {
    if (obj.className!=newClass) {
      obj.className = newClass;
    }
  }
}

function addLoadCode(code) {
  var oldonload = null;
  if (window.onload) {
    oldonload = window.onload;
  }
  var f = new Function(code);
  window.onload = function(ev) {
    if (oldonload) {
      oldonload(ev);
    }
    try {
      f();
    }
    catch(err) {}
  }
}

function AcceptDisclaimer() {
  objAccept = elementById('disclaimer');
  btnSignUp = elementById('btnsignup');
  if (objAccept!=null && btnSignUp!=null) {
    btnSignUp.disabled = (!objAccept.checked);
  }
}

var dictionarypage = 0;
function ChangePage(pg) {
  var obj = document.getElementById('dictpage'+dictionarypage.toString());
  obj.className = 'hidden';
  obj = document.getElementById('dictpagelink'+dictionarypage.toString());
  obj.className = '';
  obj = document.getElementById('dictpage'+pg.toString());
  obj.className = 'visible';
  obj = document.getElementById('dictpagelink'+pg.toString());
  obj.className = 'selected';
  dictionarypage = pg;
}

function linkhref(obj) {
  if (obj==null) {
    return;
  }
  var charm = ['.', ':', '@', 'a', 'c', 'e', 'f', 'h', 'i', 'l', 'm', 'o', 'r', 't', 'x'];
  var morder = [10, 3, 8, 9, 13, 11, 1];
  var dorder = [2, 4, 7, 3, 12, 10, 6, 11, 12, 5, 14, 0, 4, 11, 10];
  var i, m='', d='';

  for (i=0;i<morder.length;i++) {
    m = m+charm[morder[i]];
  }
  for (i=0;i<dorder.length;i++) {
    d = d+charm[dorder[i]];
  }
  obj.href = m+obj.id+d;
  obj.innerHTML = obj.id+d;
}

function ViewStatement(obj) {
  if (obj==null) {
    return;
  }
  //  obj.href = 'viewstatement.php?file='+obj.href;
  //  obj.onmouseover = null;
  //  obj.onfocus = null;
}

window.onscroll = function () { return;
var obj = document.getElementById('navigation');
if (obj==null) {
  return;
}
var offset = parseInt(document.documentElement.scrollTop) - parseInt(getTop(obj));
offset = Math.max(offset, 0);
if (offset <= 0) {
  //obj.style.top =
}
obj.style.paddingTop = offset.toString()+'px';
}

function getTop(obj) {
  var yPos = obj.offsetTop;
  var tempobj = obj.offsetParent;
  while (tempobj != null) {
    yPos += tempobj.offsetTop;
    tempobj = tempobj.offsetParent;
  }
  return yPos;
}

function getLeft(obj) {
  var xPos = obj.offsetLeft;
  var tempobj = obj.offsetParent;
  while (tempobj != null) {
    xPos += tempobj.offsetLeft;
    tempobj = tempobj.offsetParent;
  }
  return xPos;
}

function LoginIDPrompt(democheck) {
  var objloginid = document.getElementById('mtloginid');
  if (objloginid==null) {
    alert('Please type your MetaTrader Login ID.');
    objloginid.focus();
    return false;
  }
  if (objloginid.value=='') {
    alert('Please type your MetaTrader Login ID.');
    objloginid.focus();
    return false;
  }
  var msg = 'You will pay for Expert Advisor that will run only on MetaTrader account with LoginID: '+objloginid.value;
  if (democheck) {
    msg = 'You will recieve Expert Advisor that will run only on MetaTrader demo account with LoginID: '+objloginid.value;
  }

  if (confirm(msg)) {
    return true;
  }
  else {
    objloginid.focus();
    return false;
  }
}

function ConfirmMTLoginID() {
  var rslt = LoginIDPrompt();
  if (!rslt) {
    return false;
  }
  var obj, iobj, name;
  var objloginid = document.getElementById('mtloginid');
  if (objloginid==null) {
    return false;
  }
  for (var i=0; i<5; i++) {
    obj = document.getElementById('pp'+i.toString());
    if (obj!=null) {
      name = obj.name;
      iobj = document.getElementById('ppitemname'+i.toString());
      if (iobj!=null) {
        iobj.value = name+' | LoginID: '+objloginid.value;
        obj.className = 'ivisible';
      }
    }
  }
  for (var i=0; i<5; i++) {
    obj = document.getElementById('mb'+i.toString());
    if (obj!=null) {
      name = obj.name;
      iobj = document.getElementById('mbitemname'+i.toString());
      if (iobj!=null) {
        iobj.value = name+' | LoginID: '+objloginid.value;
        obj.className = 'ivisible';
      }
    }
  }
  for (var i=0; i<5; i++) {
    obj = document.getElementById('ap'+i.toString());
    if (obj!=null) {
      name = obj.name;
      iobj = document.getElementById('apitemname'+i.toString());
      if (iobj!=null) {
        iobj.value = name+' | LoginID: '+objloginid.value;
        obj.className = 'ivisible';
      }
    }
  }
  return true;
}

function RequestDemo() {
  var rslt = LoginIDPrompt(true);
  if (!rslt) {
    return;
  }
  var frm = document.getElementById('requestdemo');
  if (frm==null) {
    return;
  }
  frm.submit();
}

String.prototype.trim = function() {
  return this.replace(/^\s+|\s+$/g, '');
}

function xmlExtractContents(xmlString) {
  var spErr = xmlString.indexOf('<error>');
  var epErr = xmlString.indexOf('</error>');
  var xmlCont;
  if (spErr>=0 && epErr>=0) {
    var xmlCont = xmlString.substr(0, spErr) + xmlString.substr(epErr+8);
  }
  else {
    xmlCont = xmlString;
  }
  var spCont = xmlString.indexOf('<content>');
  var epCont = xmlString.indexOf('</content>');
  if (spCont==-1 || epCont==-1) {
    return '';
  }
  xmlCont = xmlCont.substr(spCont+9, epCont-spCont-9);
  return xmlCont;
}

function UpdateRates() {
  http = 'http://charmforex.com/gethtmlrates.php';

  var xmlHttpReq = false;
  var self = this;
  // Mozilla/Safari
  if (window.XMLHttpRequest) {
    self.xmlHttpReq = new XMLHttpRequest();
  }
  // IE
  else if (window.ActiveXObject) {
    self.xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
  }

  self.xmlHttpReq.open('POST', http, true);
  self.xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
  self.xmlHttpReq.onreadystatechange = function() {
    if (self.xmlHttpReq.readyState == 4) {
      var txtResponse = self.xmlHttpReq.responseText.trim();
      var xmlDoc = self.xmlHttpReq.responseXML; //self.xmlHttpReq.responseText;
      var objError = xmlDoc.getElementsByTagName('error');
      var objContent = xmlDoc.getElementsByTagName('content');
      if (objError.length>0) {
      }
      else if (objContent.length>0) {
        var obj = document.getElementById('nav9');
        if (obj!=null) {
          //alert(xmlExtractContents(txtResponse));
          obj.innerHTML = xmlExtractContents(txtResponse);
        }
      }
      setTimeout('UpdateRates()', 60000);
    }
  }
  self.xmlHttpReq.send('');
}

function ChangeSMSCountry() {
  var sobj = document.getElementById('countryselect');
  if (sobj==null) {
    return;
  }
  var obj;
  for (var i=0; i<sobj.length; i++) {
    obj = document.getElementById('c'+sobj.options[i].value.toString());
    if (obj!=null) {
      if (i==sobj.selectedIndex) {
        obj.style.display = 'inline';
      }
      else {
        obj.style.display = 'none';
      }
    }
  }
}

function init_listbox_checkbox(el) {
  el.runtimeStyle.behavior="none";
  if (window.navigator.userAgent.indexOf("MSIE 7")>=0) {
    return ;
  }

  if(el.id=="") {
    el.id = "listbox_label" + el.sourceIndex +Math.ceil (Math.random() * 10000 )
  }

  el.parentNode.htmlFor = el.id;
  el.onpropertychange = function() {
    var span = this.parentNode.all.tags("span")[0];
    span.className = this.checked?"checked":"";
  }
  el.parentNode.onmouseover = function() {
    if (this.id=='title' || this.id=='bottom') {
      return false;
    }
    this.className="hover";
    window.event.returnValue=false;
    window.event.cancelBubble=true;
    return false;
  }
  el.parentNode.onmouseout = function() {
    if (this.id=='title' || this.id=='bottom') {
      return false;
    }
    this.className="";
    window.event.returnValue=false;
    window.event.cancelBubble=true;
    return false;
  }
}

function SetAllPairCheckbox(b) {
  var obj = document.getElementById('p0');
  var i=0;
  while (obj!=null) {
    obj.checked = b;
    i = i+1;
    obj = document.getElementById('p'+i.toString());
  }
  document.getElementById('p0').onclick();
}

function UpdatePairInfo(pc, cd) {
  var obj = document.getElementById('p0');
  var cobj, acobj;
  var i=0;
  var cc = pc;
  var pcl = new Array();
  var tc = 0;
  while (obj!=null) {
    if (obj.checked) {
      cobj = document.getElementById('pcredits'+obj.value.toString());
      if (cobj!=null) {
        cobj.innerHTML = cc.toString();
        pcl.push(obj.value);
        tc = tc + cc;
        cc = cc - cd;
      }
    }
    else {
      cobj = document.getElementById('pcredits'+obj.value.toString());
      if (cobj!=null) {
        cobj.innerHTML = '&nbsp;';
      }
      cobj = document.getElementById('avgcredits'+obj.value.toString());
      if (cobj!=null) {
        cobj.innerHTML = '&nbsp;';
      }
      cobj = document.getElementById('discountcredits'+obj.value.toString());
      if (cobj!=null) {
        cobj.innerHTML = '&nbsp;';
      }
    }
    i = i+1;
    obj = document.getElementById('p'+i.toString());
  }
  var avgc = tc/pcl.length;
  for (i=0;i<pcl.length;i++) {
    acobj = document.getElementById('avgcredits'+pcl[i].toString());
    if (acobj!=null) {
      acobj.innerHTML = avgc.toString();
    }
  }
  for (i=0;i<pcl.length;i++) {
    acobj = document.getElementById('discountcredits'+pcl[i].toString());
    if (acobj!=null) {
      acobj.innerHTML = (i*cd*100/pc).toString()+'%';
    }
  }
  obj = document.getElementById('totalcredits');
  if (obj!=null) {
    obj.innerHTML = tc.toString();
  }
  obj = document.getElementById('dailytotalcredits');
  if (obj!=null) {
    obj.innerHTML = tc.toString();
  }
  obj = document.getElementById('totaldiscount');
  if (obj!=null) {
    if (pcl.length>0) {
      obj.innerHTML = ((pc-avgc)*100/pc).toString()+'%';
    }
    else {
      obj.innerHTML = '0%';
    }
  }
  obj = document.getElementById('totalpairs');
  if (obj!=null) {
    if (pcl.length>0) {
      obj.innerHTML = 'Total ('+pcl.length.toString()+')';
    }
    else {
      obj.innerHTML = 'Total';
    }
  }
  OrderDaysChanged();
}

function OrderDaysChanged() {
  var obj = document.getElementById('orderdays');
  if (obj==null) {
    return;
  }
  var days = Math.max(parseInt(obj.value) | 0, 5);
  obj.value = days.toString();
  var objc = document.getElementById('dailytotalcredits');
  if (objc==null) {
    return;
  }
  var objtc = document.getElementById('totalordercredits');
  if (objtc==null) {
    return;
  }
  var totalcredits = parseInt(objc.innerHTML)*days;
  var usercredits = parseInt(document.getElementById('usercredits').innerHTML);
  var btn = document.getElementById('btnorder');
  if (usercredits<totalcredits) {
    objtc.innerHTML = "<span class='lred'>"+(parseInt(objc.innerHTML)*days).toString()+"</span>";
    btn.disabled = true;
    alert('You do not have enough credits!');
  }
  else {
    objtc.innerHTML = (parseInt(objc.innerHTML)*days).toString();
    btn.disabled = false;
  }
}

function PaymentMethodChange(select) {
  var methods = new Array('fortumo', 'moneybookers', 'alertpay');
  var obj, iobj;
  if (select) {
    obj = document.getElementById('rb'+select);
    if (obj!=null) {
      obj.checked = true;
    }
  }
  for(var i=0; i<methods.length; i++) {
    obj = document.getElementById('rb'+methods[i]);
    iobj = document.getElementById('info'+methods[i]);
    if (obj!=null && iobj!=null) {
      if (obj.checked) {
        iobj.style.display = 'block';
      }
      else {
        iobj.style.display = 'none';
      }
    }
  }
}

function ChangeOrder(id) {
  var dbprice = document.getElementById(id+'price');
  if (dbprice==null) {
    return;
  }
  dbprice = parseInt(dbprice.innerHTML);
  var objlicenses = document.getElementById(id+'licenses');
  if (objlicenses==null) {
    return;
  }
  var slicenses = objlicenses.value;
  var licenses = parseInt(slicenses);
  licenses = (licenses || -1);
  if (licenses < 1 || licenses.toString() != slicenses.toString()) {
    licenses = 1;
    objlicenses.value = licenses.toString();
  }
  var objperiod = document.getElementById(id+'period');
  if (objperiod==null) {
    return;
  }
  period = parseInt(objperiod.options[objperiod.selectedIndex].value);
  var price = 0;
  switch (period) {
    case 1: {
      price = Math.ceil(dbprice*0.11/10)*10-1;
      break;
    }
    case 3: {
      price = Math.ceil(dbprice*0.33/10)*10-1;
      break;
    }
    case 6: {
      price = Math.ceil(dbprice*0.6/10)*10-1;
      break;
    }
    case 12: {
      price = Math.ceil(dbprice/10)*10-1;
      break;
    }
    case 24: {
      price = Math.ceil(dbprice*2*0.9/10)*10-1;
      break;
    }
    case 36: {
      price = Math.ceil(dbprice*3*0.8/10)*10-1;
      break;
    }
  }
  var discount = 0;
  if (licenses == 1) {
    discount = 0;
  }
  else if (licenses > 1 && licenses < 5) {
    discount = 10;
  }
  else if (licenses > 4 && licenses < 10) {
    discount = 20;
  }
  else if (licenses > 9 && licenses < 50) {
    discount = 30;
  }
  else if (licenses > 49 && licenses < 100) {
    discount = 40;
  }
  else if (licenses > 99) {
    discount = 50;
  }
  price = Math.ceil(price * licenses * (100-discount)/1000)*10-1;

  objproductprice = document.getElementById('product'+id+'price');
  if (objproductprice==null) {
    return;
  }
  objproductprice.innerHTML = price.toString()+'.00 USD';

  var idx = -1;
  if (id=='lite') {
    idx = 0;
  }
  else if (id=='personal') {
    idx = 1;
  }

  var obj, name, iobj;
  obj = document.getElementById('ppprice'+idx.toString());
  if (obj!=null) {
    obj.value = price;
    obj = document.getElementById('pp'+idx.toString());
    if (obj!=null) {
      name = obj.name;
      iobj = document.getElementById('ppitemname'+idx.toString());
      if (iobj!=null) {
        iobj.value = name+' | Licenses: '+licenses.toString()+' | Period: '+period.toString()+' months';
      }
    }
  }
  obj = document.getElementById('mbprice'+idx.toString());
  if (obj!=null) {
    obj.value = price;
    obj = document.getElementById('mb'+idx.toString());
    if (obj!=null) {
      name = obj.name;
      iobj = document.getElementById('mbitemname'+idx.toString());
      if (iobj!=null) {
        iobj.value = name+' | Licenses: '+licenses.toString()+' | Period: '+period.toString()+' months';
      }
    }
  }
  obj = document.getElementById('apprice'+idx.toString());
  if (obj!=null) {
    obj.value = price;
    obj = document.getElementById('ap'+idx.toString());
    if (obj!=null) {
      name = obj.name;
      iobj = document.getElementById('apitemname'+idx.toString());
      if (iobj!=null) {
        iobj.value = name+' | Licenses: '+licenses.toString()+' | Period: '+period.toString()+' months';
      }
    }
  }
}