addEvent(document, 'keydown', function(event) {
	var event = event || window.event;
	if (!event.ctrlKey) return; 
	var link = '';
	switch (event.keyCode || event.which) {
		case 0x25: link = document.getElementById('page_prev'); break;
		case 0x27: link = document.getElementById('page_next'); break;
	}
	if (link && link.href) document.location = link.href;	
});
	
function is_phone(str) {
   return str.match(/^[\s\-\(\)0-9]{7,}$/)?true:false;
}

function is_email(str) {
   return str.match(/^[a-zA-Z\-\._0-9]+\@[a-zA-Z\.\-_0-9]+$/)?true:false;
}

function write_mail(name, domen1, domen2) {
	document.write('<a href="mailto:'+name+'@'+domen1+'.'+domen2+'">'+name+'@'+domen1+'.'+domen2+'</a>');
}

function addEvent(obj, event, func, cascade) {
	if (obj.addEventListener) obj.addEventListener(event, func, cascade);
	else obj.attachEvent('on'+event, func);
}

function getNowDb() {
	var date = new Date;
	var m = date.getMonth()+1;
	var d = date.getDate();
	var h = date.getHours();
	var i = date.getMinutes();
	return date.getFullYear()+'-'+(m<10?'0':'')+m+'-'+(d<10?'0':'')+d+' '+(h<10?'0':'')+h+':'+(i<10?'0':'')+i;
}

function openWinCentered(loc, winname, widthh, heightt, params) {
    var tp = Math.ceil((screen.height - heightt) / 2);
    var lf = Math.ceil((screen.width - widthh) / 2);
    var win = window.open(loc, winname, "width=" + widthh + ",height=" + heightt + ",top=" + tp + ",left=" + lf + (params?','+params:',scrollbars=yes,resizable=yes,toolbar=no,menubar=no,directories=no,status=yes,location=no'));
    $(win).focus();
    return win;
}

$(document).ready(function() {
	// Формы
	$('div.form_error').each(function() {add_error(this)});
	function add_error(el) {
		$(el).show();
		field_id = el.id.substr(0,el.id.length-6);
		$('#'+field_id).parent().parent().parent().parent().addClass('error_text');
		$('#'+field_id).one('focus', function() {
		    $(this).parent().parent().parent().parent().removeClass('error_text');
		    $('#'+this.id+'_error').hide();
		});
	}
	function add_error2(el) {
		$(el).show();
		field_id = el.id.substr(0,el.id.length-6);
		$('#'+field_id).addClass('error_text').one('focus', function() {
		    $(this).removeClass('error_text');
		    $('#'+this.id+'_error').hide();
		});
	}
	// Форма обратной связи
	$('#back_form').submit(function() {
		if ($('#back_name').val()=='Ваше имя') {
			add_error($('#back_name_error').get(0));
			return false;
		}
		if ($('#back_mbox').val()!='E-mail' && !is_email($('#back_mbox').val())) {
			add_error($('#back_mbox_error').get(0));
			return false;
		}
		return true;
	});
	// Форма партнерки
	$('#friend_form2').submit(function() {
		if ($('#friend_selfname').length && $('#friend_selfname').val()=='') {
			add_error2($('#friend_selfname_error').get(0));
			return false;
		}
		if ($('#friend_name').val()=='') {
			add_error2($('#friend_name_error').get(0));
			return false;
		}
		if (!is_email($('#friend_mbox').val())) {
			add_error2($('#friend_mbox_error').get(0));
			return false;
		}
		return true;
	});
	// Поля
	$('.rz').each(function() {this.rz = $(this).val();});
	$('#accessp').blur(function() {if ($(this).val()=='') {$(this).hide(); $('#password2').show();}});
	$('#password2').bind('focus', function() {$(this).hide(); $('#accessp').show().focus();});
	$('.rz')
		.bind('focus', function() {if ($(this).val()==this.rz) $(this).val('');})
		.blur(function() {if ($(this).val()=='') $(this).val(this.rz);});
	// checkbox
	$('.input_checkbox').each(function() {
		var checkbox_id = this.id.substr(0, this.id.length-4);
		$(this).click(function() {
			var hidden = $('#'+checkbox_id);
			if ($(this).hasClass('input_checkbox_checked')) {
				$(this).removeClass('input_checkbox_checked');
				hidden.val('');
			} else {
				$(this).addClass('input_checkbox_checked');
				hidden.val(this.alt);
			}
			if ($(this).attr('rel')) eval($(this).attr('rel'));
		});
		$('label[for='+checkbox_id+']').click(function() {
			$('#'+checkbox_id+'_img').click();
		});
	});
	// Котировки
	if ($('#rate').length) {
		setInterval(
			function() {
				var query = "/rate.php?time="+((new Date).getTime())+
					(typeof open_signals_ids!='undefined'?'&open_signals_ids='+open_signals_ids.join(','):'');
				$.getJSON(query, function(data) {
					$.each(data.rates, function(i,d) {
						var old = $('#bid'+i).html();
						if (old>d[0]) {
							if ($('#rate'+i).hasClass('up'))
								$('#rate'+i).removeClass('up').addClass('down');
						} else if (old<d[0]) {
							if ($('#rate'+i).hasClass('down'))
								$('#rate'+i).removeClass('down').addClass('up');
						}
						$('#bid'+i).html(fillEndZero(d[0],d[2]));
						$('#ask'+i).html(fillEndZero(d[1],d[2]));
					});
					if (typeof data.signals!='undefined') {
						var new_open_signals_ids = [];
						$.each(data.signals, function(i,s) {
							var rate = data.rates[s.pair_id];
							$('#signal_rate_'+i).html(s.now);//fillEndZero(s.operation=="Buy"?rate[0]:rate[1],rate[2]));
							setSignClass($('#signal_result_'+i), s.result);
							$('#signal_result_'+i).html(s.result+' pt');
							setSignClass($('#signal_result_money_'+i), s.result_money);
							$('#signal_result_money_'+i).html(s.result_money+' $');
							if ($('#signal_sl_'+i).html()!=s.sl) {
								$('#signal_sl_'+i).html(fillEndZero(s.sl,rate[2]));
								$('#signal_sl_change_'+i).show();
							}
							if ($('#signal_tp_'+i).html()!=s.tp) {
								$('#signal_tp_'+i).html(fillEndZero(s.tp,rate[2]));
								$('#signal_tp_change_'+i).show();
							}
							if ($('#signal_blink_'+i).length && !s.blink) {
								$('#signal_blink_'+i).remove();
							}
							if (s.work) {
								new_open_signals_ids.push(i);
							} else {
								$('#signal_'+i).css('opacity', 0.3);
							}
						});
						open_signals_ids = new_open_signals_ids;
					}
				});
			},
			5000
		);
	}
});

function fillEndZero(num, count) {
	//return num;
	var point = num.toString().indexOf('.');
	if (point==-1) {
	num += '.';
	point = 0;
	} else {
	point = count-num.length-(point+1);
	}
	while (point>0) {
	num += '0';
	point--;
	}
	return num;
}
function setSignClass(obj, val) {
	if (val.substr(0,1)=='-') {
		if (obj.hasClass!='n') {obj.removeClass('p'); obj.addClass('n');}
	} else {
		if (obj.hasClass!='p') {obj.removeClass('n'); obj.addClass('p');}
	}
}

function pr(obj, first) {
	if (typeof(first) == 'undefined') {
		var win = window.open('', 'js_object', 'left=300,top=100,width=600,height=550,scrollbars=yes');
		win.document.write('<html><head><title>SHOW OBJ</title></head><body style="font: 12px tahoma">');
	}
	var out = '';
	for(i in obj) {
		out += '<b>' + i + '</b> (' + typeof(obj[i]) + '): ';
		if (typeof(obj[i])=='object')
			out += '<div style="border-left: 2px solid; margin: 3px 5px 3px 20px; padding-left: 10px;">'+pr(obj[i],1)+'</div>';
		else
			out += obj[i]+'<br>';
	}
	if (typeof(first) == 'undefined') {
		win.document.write('<h1>Object:</h1>'+out+'</body></html>');
		win.focus();
	} else {
		return out;
	}
}

