var firstSubmit = 1;
//
var uPasswordRegExp = /^[A-Za-z0-9]{1,16}$/;
var uPassword2RegExp = /^[A-Za-z0-9]{1,16}$/;
var ufioRegExp = /^[A-Za-zА-Яа-я\s\.\-]{1,50}$/;
var uorgRegExp = /^[A-Za-z\d\s-,\.]{1,100}$/;
var uPassportNumberRegExp = /^[A-Za-z\d\s]{1,30}$/;
var uAddressRegExp = /^[A-Za-z\d\s-,\.]{1,500}$/;
var uTownRegExp = /^[A-Za-z\d\s-,\.]{1,100}$/;
var uPhoneRegExp = /^(\+)?([\d\s()-]){10,12}$/;
var uEmailRegExp = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;


// шаблонизатор (типа String.Format)
String.prototype.format = function()
{
	var str = this;
	for(var i = 0; i < arguments.length; i++)
	{
		var re = new RegExp('\\{' + (i) + '\\}','gm');
		str = str.replace(re, arguments[i]);
	}
	return str;
}

function doSubmit()
{
	var result = true;

	if(firstSubmit == 0)
	{
		result = false;
		alert("Request is send. Please wait...");
	}
	else {firstSubmit = 0}
	return result;
}

function FormatNumber(num, decimalNum, bolLeadingZero, bolParens, bolCommas, bolSign) { 
	if (isNaN(parseInt(num))) return "NaN";
	var tmpNum = num;
	var iSign = num < 0 ? -1 : 1;
	tmpNum *= Math.pow(10,decimalNum);
	tmpNum = Math.round(Math.abs(tmpNum));
	tmpNum /= Math.pow(10,decimalNum);
	tmpNum *= iSign;
	var tmpNumStr = new String(tmpNum);
	if (tmpNumStr.lastIndexOf(".") >= 0) {
		var integerPart = tmpNumStr.substring(0, tmpNumStr.lastIndexOf(".") + 1);
		var decimalPart = tmpNumStr.substring(tmpNumStr.lastIndexOf(".") + 1);
	} else {
		var integerPart = tmpNumStr + ".";
		var decimalPart = "";
	}
	var decimalPartLength = decimalPart.length;
	
	for (var i = 0; i < decimalNum - decimalPartLength; i++) {
		decimalPart += "0";
	}
	tmpNumStr = "" + integerPart + decimalPart;

	if (!bolLeadingZero && num < 1 && num > -1 && num != 0)
		if (num > 0)
			tmpNumStr = tmpNumStr.substring(1,tmpNumStr.length);
		else
			tmpNumStr = "-" + tmpNumStr.substring(2,tmpNumStr.length);

	if (bolCommas && (num >= 1000 || num <= -1000)) {
		var iStart = tmpNumStr.indexOf(".");
		if (iStart < 0)
			iStart = tmpNumStr.length;

		iStart -= 3;
		while (iStart >= 1) {
			tmpNumStr = tmpNumStr.substring(0,iStart) + "," + tmpNumStr.substring(iStart,tmpNumStr.length);
			iStart -= 3;
		}		
	}
	if (bolParens && num < 0)
		tmpNumStr = "(" + tmpNumStr.substring(1,tmpNumStr.length) + ")";
	
	if(bolSign && num > 0) { tmpNumStr = "+" + tmpNumStr; }
	
	return tmpNumStr;
}

function MM_preloadImages() { //v2.0
  if (document.images) {
    var imgFiles = MM_preloadImages.arguments;
    if (document.preloadArray==null) document.preloadArray = new Array();
    var i = document.preloadArray.length;
    with (document) for (var j=0; j<imgFiles.length; j++) if (imgFiles[j].charAt(0)!="#"){
      preloadArray[i] = new Image;
      preloadArray[i++].src = imgFiles[j];
  } }
}

//MM_preloadImages('<% = Application("images_URL") %>about_menu_arrow_over.gif','<% = Application("images_URL") %>about_menu_arrow.gif');

function MM_swapImage() { //v2.0
  var i,j=0,objStr,obj,swapArray=new Array,oldArray=document.MM_swapImgData;
  for (i=0; i < (MM_swapImage.arguments.length-2); i+=3) {
    objStr = MM_swapImage.arguments[(navigator.appName == 'Netscape')?i:i+1];
    if ((objStr.indexOf('document.layers[')==0 && document.layers==null) ||
        (objStr.indexOf('document.all[')   ==0 && document.all   ==null))
      objStr = 'document'+objStr.substring(objStr.lastIndexOf('.'),objStr.length);
    obj = eval(objStr);
    if (obj != null) {
      swapArray[j++] = obj;
      swapArray[j++] = (oldArray==null || oldArray[j-1]!=obj)?obj.src:oldArray[j];
      obj.src = MM_swapImage.arguments[i+2];
  } }
  document.MM_swapImgData = swapArray; //used for restore
}

function MM_swapImgRestore() { //v2.0
  if (document.MM_swapImgData != null)
    for (var i=0; i<(document.MM_swapImgData.length-1); i+=2)
      document.MM_swapImgData[i].src = document.MM_swapImgData[i+1];
}

function getBannerCode(image, width, height, partner_id, appURL)
{
	var bannerStr;
	var nl = String.fromCharCode(13, 10);
	if (width == 0)
	{
		bannerStr =	"<!-- Exchanger banner code -->" + nl + "<a href=\"" + appURL + "partner.asp?pid=" + partner_id + "\">" + image + "</a>" + nl + "<!-- /Exchanger banner code -->";
	} 
	else
	{
		bannerStr =	"<!-- Exchanger banner code -->" + nl + "<a href=\"" + appURL + "partner.asp?pid=" + partner_id + "\"><img src=\"" + image + "\" width=\"" + width + "\" height=\"" + height + "\" alt=\"\" border=\"0\"></a>" + nl + "<!-- /Exchanger banner code -->";
	}
	document.getElementById("partner_banner").value = bannerStr;
	return;
}

function trim(s)	{ return IsNull(s) ? "" : String(s).replace( /(^\s+)|(\s+$)/g,"" ); }

function IsNull(x) { return !x || (typeof(x) == "object" && String(x) == "null"); }

function Wrong(obj, msg) {
	if (msg > "") { alert(msg); }
	if (obj > "") { obj.focus(); }
	return false;
}

function checkEmail(email) {
	var myRegExp = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	return myRegExp.test(email);
}

/** Some usefull utils **/

function checkIsIE()
{
	var ver = navigator.appVersion;
	var agent = navigator.userAgent;

	var opera = agent.indexOf("Opera") > -1;

	return (document.all && !window.dom && !opera) || (ver.indexOf("MSIE 5") > -1 && window.dom && !window.opera5) || (ver.indexOf("MSIE 6") > -1 && window.dom && !window.opera5);
}

/*
	Начало блока описания функций для работы с событиями
*/
function getEventTarget(e) 
{
	var e = e || window.event;
	var targ = e.target || e.srcElement;		
	while (targ.nodeType == 3) { // боремся с Safari и вложенностью
		targ = targ.parentNode;
	}
	return targ;
}
function setGlobalOnLoad(f) 
{
	var root = window.addEventListener || window.attachEvent ? window : document.addEventListener ? document : null;
	if (root)
	{
		if(root.addEventListener) root.addEventListener("load", f, false)
		else if(root.attachEvent) root.attachEvent("onload", f)
	} 
	else
	{
		if (typeof window.onload == 'function')
		{
			var existing = window.onload
			window.onload = function() {
				existing();
				f();
			}
		} else { window.onload = f; }
	}
}
function addHandler(object, event, handler)
{
	if (typeof object.addEventListener != 'undefined')
		object.addEventListener(event, handler, false);
	else if (typeof object.attachEvent != 'undefined')
		object.attachEvent('on' + event, handler);
	else
		throw "Incompatible browser";
}
function removeHandler(object, event, handler)
{
	if (typeof object.removeEventListener != 'undefined')
		object.removeEventListener(event, handler, false);
	else if (typeof object.detachEvent != 'undefined')
		object.detachEvent('on' + event, handler);
	else
		throw "Incompatible browser";
}
/*
	Конец блока описания функций для работы с событиями
*/	

function hideLetter(e) 
{
	var e = e || window.event;
	var tObj = getEventTarget(e);		
	//
	if ((tObj.value.length == 1 && isNaN(parseInt(tObj.value))) || tObj.value == 0) 
	{
		tObj.value = "";
	}
	return;
}

function showLetter(e) 
{
	var e = e || window.event;
	var tObj = getEventTarget(e);		
	//
	if (tObj.value.length == 0)
	{
		if (tObj.id == "target_account" || tObj.id == "bonus_account")
		{
			tObj.value = currLetter;
		}	
		else
		{
			tObj.value = 0;
		};
	};
	return;
}