var s_cleared = false;
var u_cleared = false;
var p_cleared = false;

var monthArr = new Array("января", "февраля", "марта", "апреля", "мая", "июня", "июля", "августа", "сентября", "октября", "ноября", "декабря");

var pos, obj;
var loc, url;
var content = false;
var opened = false;
var w, rn, req, p;
var success = false;
var error="";
var error1 = "";

var opened1 = false;
var content1 = false;
var result = false;

var cu=1;
var pe=1;

var cur = "eurusd";
var per = "10080";

function updateChart(chart, period, tp, oc, op) {
	if(tp<1) {
		//document.images['chart'].src = "/charts/"+chart+"1440_238x170x4.gif";
		if(chart=="") chart = cur;
		if(period=="") period = per;
		var rn = Math.random()*1000;
		document.images['chart'].src = "/charts/"+chart+period+"_238x170x4.gif?rn="+rn.toString();
		var pp;
		if(period=="10080") pp = "W1";
		if(period=="1440") pp = "D1";
		if(period=="240") pp = "H4";
		if(period=="60") pp = "H1";
		if(period=="15") pp = "M15";
		
		cur = chart;
		per = period;
		if(oc=="") oc = cu;
		if(op=="") op = pe;
		cu = oc;
		pe = op;
		var td = MM_findObj("graphtitle");
		td.innerHTML = "График "+chart.toUpperCase()+" "+pp;
		
	} else {
		if(chart=="") chart = cur;
		if(period=="") period = per;
		var rn = Math.random()*1000;
		document.images['chart'].src = "/charts/"+chart+period+"_482x240x4.gif?rn="+rn.toString();
		cur = chart;
		per = period;
		document.all['cur'+cu].style.cssText = "";
		document.all['per'+pe].style.cssText = "";
		if(oc=="") oc = cu;
		if(op=="") op = pe;
		document.all['cur'+oc].style.cssText = "border: 1px #cccccc solid; border-left: none; background-color: #ffffff";
		document.all['per'+op].style.cssText = "border: 1px #cccccc solid; border-left: none; background-color: #ffffff";
		cu = oc;
		pe = op;
	}
}

function clearSearch(){
 if(s_cleared) return;
 else {
 document.forms['searchFrm'].elements['s'].value = "";
 s_cleared = true;
 }
}

function clearUsername(){
 if(u_cleared) return;
 else {
 document.forms['loginFrm'].elements['Username'].value = "";
 u_cleared = true;
 }
}

function clearPassword(){
 if(p_cleared) return;
 else {
 document.forms['loginFrm'].elements['Password'].value = "";
 p_cleared = true;
 }
}

function runActiveContent(what) {
	document.write(what);
}

function doHighlight(obj, src){	
	obj.style.cssText="background: url("+src+") no-repeat top left";
}


function MM_preloadImages() { //v3.0
var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
//  alert("find("+n+")");
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
//    alert("done");
  if(!x && d.getElementById) x=d.getElementById(n); return x;

}

//===================================================================================

function checkLoginInfo(frm) {
  if(!opened1) {
    error = "";
    error1 = "";
    if(document.forms[frm].elements['Password'].value.length<6) error +="Минимальная длина пароля - 6 символов\n";
    if(document.forms[frm].elements['Password'].value!=document.forms[frm].elements['Password1'].value) error +="Пароли не совпадают\n";
    
    var p = new RegExp("[^a-zA-Z0-9]+");
    
    if(p.test(document.forms[frm].elements['Password'].value)) error+="Пароль должен содержать только латинские буквы и цифры\n"; 
    else {
    	var p1 = new RegExp("[a-zA-Z]+", "ig");
    	var p2 = new RegExp("[0-9]+", "ig");
    
    	if(!p1.test(document.forms[frm].elements['Password'].value)||!p2.test(document.forms[frm].elements['Password'].value)) error+="Пароль недостаточно сложный! Он должен содержать и буквы, и цифры\n";
    }
    if(error!="") {
      alert(error);
      return false;
    } else {
      content1 = false;
      rn = Math.random()*1000;
      url = dp+"?action=js&rn="+rn.toString()+"&a=checkLogin&code="+document.forms[frm].elements['code'].value+"&cd2="+document.forms[frm].elements['cd2'].value+"&form="+frm;
      req = new JSHttpRequest();
      req.caching = false;
      req.open('GET', url, true);
      req.send("");
      opened1 = true;
    }
  }
  
  if(content1) {
    opened1 = false;
  }
  return true;
}

//===================================================================================

function validateEmail(str) {

		var at="@"
		var dot="."
		var lat=str.indexOf(at)
		var lstr=str.length
		var ldot=str.indexOf(dot)
		if (str.indexOf(at)==-1){
		   return false
		}

		if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
		   return false
		}

		if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
		    return false
		}

		 if (str.indexOf(at,(lat+1))!=-1){
		    return false
		 }

		 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
		    return false
		 }

		 if (str.indexOf(dot,(lat+2))==-1){
		    return false
		 }
		
		 if (str.indexOf(" ")!=-1){
		    return false
		 }

 		 return true					
}

//===================================================================================

function runRequest(url) {
  if(!opened) {
    content = false;
    rn = Math.random()*1000;
    url = dp+"?rn="+rn.toString()+"&action=js&"+url;
    req = new JSHttpRequest();
    req.caching = false;
    req.open('GET', url, true);
    req.send("");      
    opened = true;
  }
  
  if(content) {
    opened = false;
  } else setTimeout("runRequest()", 200);
}

//===================================================================================

function changeCSS(objName, css) {
  obj = MM_findObj(objName);
  obj.style.cssText = css;
}


//===================================================================================

function runActiveContent(what) {
	document.write(what);
}


//===================================================================================
//===================================================================================
//===================================================================================

//
// JSHttpRequest v1.12. (C) Dmitry Koterov, 2005-01-27. 
// http://forum.dklab.ru/users/DmitryKoterov/
//
// Do not remove this comment if you want to use script!
// Не удаляйте данный комментарий, если вы хотите использовать скрипт!
//
function JSHttpRequest() {}
(function() {
  var count       = 0;
  var pending     = {};
  var cache       = {};
  var spanReuse   = null;
  
  // Uncomment if you want to switch on <SCRIPT> reusing.
  // But be carefull: seems FireFox does not work with reusing correctly
  // (long delay on fast data reloading via existed <SCRIPT>).
  //spanReuse   = [];

  // Called by server script on data load.
  JSHttpRequest.dataReady = function(id, text, js) {
    var undef;
    var th = pending[id];
    if (th) {
      if (th.caching) cache[th.hash] = [text, js];
      th._dataReady(text, js);
    } else if (typeof(th) != typeof(undef)) {
      alert("ScriptLoader: unknown pending id: "+id);
    }
  }
  
  JSHttpRequest.prototype = {
    // Standard properties.
    onreadystatechange: null,
    readyState: 0,
    responseText: null,
    responseXML: null,
    status: 200,
    statusText: "OK",
    // Additional properties.
    responseJS: null, 
    caching: false,
    SID: null,
    // Internals.
    _span: null,
    _id: null,
      
    abort: function() { with (this) {
      readyState = 0;
      if (onreadystatechange) onreadystatechange();
      _cleanupScript();
      delete pending[_id];
    }},
      
    open: function(method, url, asyncFlag, username, password) {
      if ((""+method).toLowerCase() != 'get') {
        alert('Only GET method is supported!');
        return false;
      }
      this.url = url;
      return true;
    },
    
    send: function(content) {
      var id = count++;
      
      var query = [];
      if (content instanceof Object) {
        for (var k in content) {
          query[query.length] = escape(k) + "=" + escape(content[k]);
        }
      } else {
        query = [content];
      }
      
      var qs = query.join('&');
      query = id + ':' + (this.SID || '') + ':' + qs;
      
      var href = this.url + (this.url.indexOf('?')>=0? '&' : '?') + query;
      var hash = this.url + '?' + qs;
      this.hash = hash;
      
      if (this.caching && cache[hash]) {
        var c = cache[hash];
        this._dataReady(c[0], c[1]);
        return false;
      }
      
      this._obtainScript(id, href);
      return true;
    },

    getAllResponseHeaders: function() {
      return '';
    },
      
    getResponseHeader: function(label) {
      return '';
    },

    setRequestHeader: function(label, value) {
    },
    
    //
    // Internal functions.
    //

    _dataReady: function(text, js) { with (this) {
      if (text !== null || js !== null) {
        readyState = 4;
        responseText = responseXML = text;
        responseJS = js;
      } else {
        readyState = 0;
        responseText = responseXML = responseJS = null;
      }
      if (onreadystatechange) onreadystatechange();
      _cleanupScript();
    }},

    _obtainScript: function(id, href) { with (document) {
      
      var span = null;
      if (spanReuse == null || !spanReuse.length) {
        span = body.appendChild(createElement("SPAN"));
        span.style.display = 'none';
        span.innerHTML = 'Text for stupid IE.<s'+'cript></' + 'script>';
        //span.innerHTML = 'Text for stupid IE.<s'+'cript language="JavaScript" src="'+href+'"></' + 'script>';
      } else {
        span = spanReuse[spanReuse.length-1];
        spanReuse[spanReuse.length-1] = null;
        spanReuse.length--;
      }
      
      pending[id] = this;
      
      setTimeout(function() {
        var s = span.getElementsByTagName("script")[0];
        s.language = "JavaScript";
        //alert("href="+href);
        if (s.setAttribute) s.setAttribute('src', href); else s.src = href;
      }, 10);
      this._id = id;
      this._span = span;
    }},

    _cleanupScript: function() {
      var span = this._span;
      if (span) {
        this._span = null;
        setTimeout(function() {
          if (spanReuse != null) {
            spanReuse[spanReuse.length] = span;
          } else {
            // without setTimeout - crash in IE 5.0!
            span.parentNode.removeChild(span);
          }
        }, 50);
      }
      //window.status = document.body.childNodes.length + " - " + (spanReuse? spanReuse.length : 'no span reusing')
      return false;
    }
  }
})();