  var ids = new Array();
  var idTimer = false; 
  function ShowID( smID ) {
    var i=0;
    if( idTimer ) {
      clearTimeout(idTimer);
      idTimer = false;
    };
    for( i=0; i<ids.length; i++){
      var elt = document.getElementById(ids[i]);
      if( ids[i] == smID ){
        elt.style.visibility="visible";
      } else {
        elt.style.visibility="hidden";
      }
    }
  }
  function HideAll(){
    idTimer = setTimeout(ShowID, 1);
  };  
  
  
  


_uploadHandler = null;
var _remoteServer = '';

var _dummyLocation = _remoteServer + '/getflash/';

if (!Array.prototype.indexOf)
{
  Array.prototype.indexOf = function(elt /*, from*/)
  {
    var len = this.length;

    var from = Number(arguments[1]) || 0;
    from = (from < 0)
         ? Math.ceil(from)
         : Math.floor(from);
    if (from < 0)
      from += len;

    for (; from < len; from++)
    {
      if (from in this &&
          this[from] === elt)
        return from;
    }
    return -1;
  };
}

/** global variables **/
var iRatesChooserSpeedCoeff = 1.9;
var oMainMenu;
var newPasswd;
var registerObject = { 
	toString : function () {
		return 'Login: ' + this.login + "\n" + 'Password: ' + this.password + "\n" + 'Email: ' + this.email + "\n" + 'Captcha: ' + this.j_captcha_response;
	}
 };
var isNewPasswdGiven = false;

$(document).ready(function(){
	
	/**
	 * fix PNG
	 */
	if ($.browser.msie)
	{
		try {
			document.execCommand("BackgroundImageCache", false, true);
		}
		catch(e){};
	}
});

var Cookie = {
	
	set : function(sName, sValue, sExpire, sPath, sDomain) {
		document.cookie = sName + '=' + (window.encodeURI? encodeURI(sValue) : escape(sValue)) +
			((sExpire == null)? '' : ('; expires=' + sExpire.toGMTString())) +
			((sPath == null)? '' : ('; path=' + sPath)) + 
			((sDomain == null) ? '' : ('; domain=' + sDomain));
	},
	
	get : function(sName) {
		var sSearch = sName + '=';
		if(document.cookie.length > 0) {
			var iOffset = document.cookie.indexOf(sSearch);
			if(iOffset != -1) {
				iOffset += sSearch.length;
				var iEnd = document.cookie.indexOf(';', iOffset);
				if(iEnd == -1) {
					iEnd = document.cookie.length;
				}
				return window.decodeURI?
					decodeURI(document.cookie.substring(iOffset, iEnd)) :
					unescape(document.cookie.substring(iOffset, iEnd))
					;
			}
		}
		return '';			
	}
}	


function writeCookie(cookieName, cookieContent, cookieExpireTime){
    if(cookieExpireTime>0){
        var expDate=new Date()
        expDate.setTime(expDate.getTime()+cookieExpireTime*24*60*60*1000)
        var expires=expDate.toGMTString()
        document.cookie=cookieName+"="+escape(cookieContent)+"; path="+escape('/')+"; expires="+expires
    }
    else{
        document.cookie=cookieName+"="+escape(cookieContent)+"; path="+escape('/')+"";
}
}



$(window).load(function(){
        
		$('#loginBtn').click( function (e) { 
//			document.location = _dummyLocation;
//			return;
			$(this).fadeOut(300); $('#user_info_form').fadeIn(300); 
			$('#userLoginField').focus();
		});
		
		if (document.getElementById('gotoflash')) {
			$('#gotoflash').click(function () {
//				var exp = new Date();
//				var e2 = new Date(Date.now() + 1000000);
//				Cookie.set('flash', 1);
			});
		}
		
		if (document.getElementById('userLoginField') && document.getElementById('user_login_submit')) {
			$('#userPasswordField, #rememberMeCheck, #userLoginField, #captcha_text, #new_password, #password_confirm, #email_confirm').keyup( function (e) {
				if (e.keyCode && e.keyCode == 13) { cancelEvent(e); }
			});
			$('#userPasswordField, #rememberMeCheck, #userLoginField, #captcha_text, #new_password, #password_confirm, #email_confirm').keypress( function (e) {
				if (e.keyCode && e.keyCode == 13) { cancelEvent(e); }
			});
			$('#userPasswordField, #rememberMeCheck, #userLoginField, #captcha_text, #new_password, #password_confirm, #email_confirm').keydown( function (e) {
				if (e.keyCode && e.keyCode == 13) {
					
					$('#user_login_submit').trigger('click');
					$('#user_login_submit').blur();
				}
			});
		}
		
		
		$('#user_login_submit').click(handleLogin_0);
		var pr2regBtn = $('#proceedtoRegister');
		if (pr2regBtn) {
			
			pr2regBtn.click( handleRegister_0 );
			
		}
		
		
		var clbutton = $('#block_user .close_button');
		if (clbutton) {
			clbutton.click( function () {
				$.get(
					_remoteServer + '/logout.xml',
					{ r : Math.random()},
					function () {
						document.location = _remoteServer + '/';
					}
				);
			});
		}
		
		
		$('.placeholder:input').each( function () {
			var x = new Placeholder(this);
		});
		
		/**
		 * rates_chooser arrows
		 */
		 if ($('#subBlock_rates_chooser').children().length)
		 {
//		 	if (0) {
//			$('#block_rates_chooser .arrow-left').hover(
//				function () {
//					$('#block_rates_chooser .arrow-left .active').fadeIn('fast');
//					var cPos = parseInt($('#subBlock_rates_chooser').css('left'));
//					if (parseInt($('#subBlock_rates_chooser').css('left')) < 0)
//					{
//						$('#subBlock_rates_chooser').animate({"left": "0px"}, Math.round(Math.abs(cPos) * iRatesChooserSpeedCoeff));
//					}
//				},
//				function () {
//					$('#block_rates_chooser .arrow-left .active').fadeOut('fast');
//					$('#subBlock_rates_chooser').stop();
//					alignRatesChooser(0);
//					checkRatesChooserArrows();
//				}
//			);
//			$('#block_rates_chooser .arrow-right').hover(
//				function () {
//					$('#block_rates_chooser .arrow-right .active').fadeIn('fast');
//					var iWidth = $('#subBlock_rates_chooser').width();
//					var iContainerWidth = $('#block_rates_chooser').width();
//					var delta = iContainerWidth - iWidth;
//					var cPos = parseInt($('#subBlock_rates_chooser').css('left'));
//					if (cPos > delta)
//					{
//						$('#subBlock_rates_chooser').animate({"left": delta + "px"}, Math.round(Math.abs(cPos-delta) * iRatesChooserSpeedCoeff));
//					}
//					
//				},
//				function () {
//					$('#block_rates_chooser .arrow-right .active').fadeOut('fast');
//					$('#subBlock_rates_chooser').stop();
//					alignRatesChooser(1);
//					checkRatesChooserArrows();
//				}
//			);
//		 	}
			var sc = new Scroller('#block_rates_chooser', '#subBlock_rates_chooser', 'mouseover', '#block_rates_chooser .arrow-left', '#block_rates_chooser .arrow-right');
		 }
		 
		 $('#block_rates_chooser .arrow-left').hide(10); 
		/**
		 * hide pngs
		 */
		 $('.arrowContainer.active').hide();

		if (document.getElementById('SearchBlock')) {
			
			$('#SearchBlock .search_btn').click(function () {
				document.location = _remoteServer + '/search/?page=0&query=' + $('#SearchField').val();
			});
			
			$('#SearchField').keypress(function (e) {
				if (e.keyCode == 13) {
					$('#SearchBlock .search_btn').trigger('click');
				}
			});
		}
		if (document.getElementById('AfishaFace')) {
			if ($('#AfishaFace').children().length)
			{
				var AfishaSlider = new Bayan('#AfishaFace');
				AfishaSlider.restore = function (quick)
				{
					if (quick)
						this.oBodies.height('1px');
					else
						this.oBodies.slideUp(this._easeLengthDown);
					this.oHeads.filter(':not(:first)').filter(':not(:last)').children('.active').slideUp(quick ? 0 : this._easeLengthDown);
					this.oHeads.filter(':not(:first)').filter(':not(:last)').children('.passive').slideDown(quick ? 0 : this._easeLengthDown);
					this.oHeads.filter(':first').children('.passive').slideUp(quick ? 0 : this._easeLengthDown);
					this.oHeads.filter(':last').children('.passive').slideUp(quick ? 0 : this._easeLengthDown);
					this.oHeads.filter(':first').children('.active').slideDown(quick ? 0 : this._easeLengthDown);
					this.oHeads.filter(':last').children('.active').slideDown(quick ? 0 : this._easeLengthDown);
					this._container.children('.announce').slideDown(quick ? 0 : this._easeLengthDown);
					this._firstCall = false;
				}
				AfishaSlider.onFirstActive = function (i) {
					this._container.children('.announce').slideUp(AfishaSlider._easeLengthDown);
				}
				AfishaSlider.onEachActive = function (i) {
					var cHead = this.oHeads.eq(i);
					cHead.children('.active').slideDown(this._easeLengthDown);	
					cHead.children('.passive').slideUp(this._easeLengthDown);
					var otherHeads = this.oHeads.filter(':not(:eq(' + i + '))');
					otherHeads.children('.active').slideUp(this._easeLengthDown);
					otherHeads.children('.passive').slideDown(this._easeLengthDown);
				}
				AfishaSlider.restore(true);
				$('.blockContainer:not(#block_afisha_face)').mouseover(function () { AfishaSlider.restore(); });
		}
		}
		
	});





function checkRatesChooserArrows()
{
	var iWidth = $('#subBlock_rates_chooser').width();
	var iContainerWidth = $('#block_rates_chooser').width();
	var delta = iContainerWidth - iWidth;
	var cPos = parseInt($('#subBlock_rates_chooser').css('left'));

	if (cPos == 0)
	{
		$('#block_rates_chooser .arrow-right').show(100);
		$('#block_rates_chooser .arrow-left').hide(100);

	}
	else if (cPos < 0 && cPos > delta)
	{
		$('#block_rates_chooser .arrow-left').show(100);
		$('#block_rates_chooser .arrow-right').show(100);
	}
	else if (delta < 0 && delta)
	{
		$('#block_rates_chooser .arrow-left').show(100);
		$('#block_rates_chooser .arrow-right').hide(100);
	}
}

/**
 * @var dir integer 0 - left, 1 - right
 */
function alignRatesChooser(dir)
{
	var cLeft = parseInt($('#subBlock_rates_chooser').css('left'));
	var divs = $('#subBlock_rates_chooser .single_chooser').get();
	$('#subBlock_rates_chooser').stop();

	for (var i = 0; i < divs.length; i++)
	{
//		if (divs[i].offsetLeft >= Math.abs(cLeft))
//		{
//			cI = (dir == 0 && i > 0) ? i-1 : i;
//			$('#subBlock_rates_chooser').animate({"left": -divs[cI].offsetLeft + "px"}, Math.abs(Math.round((divs[cI].offsetLeft - Math.abs(cLeft)) * iRatesChooserSpeedCoeff )));
//			return;
//		}
	}
}

/**
 * get word forms
 * [0] - single
 * [1] - 2-3-4
 * [2] - multiple
 */
function getProperWordForm (num, aWordForms) {
	num = new String(num);
	var lastDigit = num.charAt(num.length - 1);
	var preLastDigit = num > 9 ? num.charAt(num.length - 2) : '0';
	var twoDigits = parseInt(preLastDigit + '' + lastDigit);
	
	if (twoDigits >= 11 && twoDigits <= 14) 
		return aWordForms[2];
	else if (parseInt(lastDigit) >=2 && lastDigit <= 4)
		return aWordForms[1];
	else if (parseInt(lastDigit) == 1)
		return aWordForms[0];
	else 
		return aWordForms[2];
}


function handleUploadForm( oForm ) {
	
	if (!_uploadHandler) {
		return false;
	}
	
	if (oForm) {
		_uploadHandler(oForm);
	}
	return false;
}

function showUploader () { $('#uploadFile').css('display', 'block') }
function hideUploader () { 
	$('#uploadFile').css('display', 'none');   
}
	

	


function cancelEvent(e) {
	if (e.cancelable)
	{
		e.preventDefault();
		e.stopPropagation();
	}
	e.cancelBubble = true;
	e.returnValue = false;
	return e;
}

/**
 * pad_type: 0 - left, 1 - right
 */
 
String.prototype.repeat = function ( input, length ) {
	var str = '';
	for (var i = 0; i < length; i++) {
		str+= input;
	}
	return str;
}
 
String.STR_PAD_LEFT = 0;
String.STR_PAD_RIGHT = 1;
/**
 * fuckin javascript
 * wrong algorhytm
 * fuck it
 */
String.prototype.pad = function ( pad_length, pad_string, pad_type ) {
	
	if (!pad_type)
		pad_type = String.STR_PAD_LEFT;
	
	if (this.length < pad_length) {
		if (pad_length - this.length > pad_string.length) {
			switch (pad_type) {
				case String.STR_PAD_LEFT:
					document.title += pad_length - pad_string.length + ' ';
					return new String( pad_string + this ).pad( pad_length, pad_string, pad_type ); 
				break;
				
				case String.STR_PAD_RIGHT:
					return new String( this + pad_string ).pad( pad_length, pad_string, pad_type );
				break;
			}
		} else {
			switch (pad_type) {
				case String.STR_PAD_LEFT:
					return new String( pad_string.substr(0, pad_length - this.length) + this );
				break;
				
				case String.STR_PAD_RIGHT:
					return new String( this + pad_string.substr(0, pad_length - this.length)  );
				break;
			}
		}
	} else {
		return this;
	}
	
}


function hellFix ( oNode ) {
	if (!$.browser.msie || ( $.browser.version > 6 && $.browser.version != 4.1 ))
		return;
	oNode.find('.rounded_ul, .rounded_bl, .rounded_ur, .rounded_br, td.png').map(	function () {
		this.runtimeStyle.filter = 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src="' + $(this).css('background-image').replace(/^url\(('|")/,'').replace(/("|')\)/,''); + '",sizingMethod="scale")';
		$(this).css('background-image', 'url("i/_blank.gif")');				
	});
	oNode.find('input.png').map( function () {
		if ($(this).css('height') != '100%')
			this.style.height = this.offsetHeight + 'px';
		if ($(this).css('width') != '100%')
			this.style.width = this.offsetWidth + 'px';
		this.runtimeStyle.filter = 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src="' + this.src + '",sizingMethod="scale")';
		
		this.src = 'i/_blank.gif';
	});
}
function ajaxFix ( oNode ) {
	if (!$.browser.msie || ( $.browser.version > 6 && $.browser.version != 4.1 ))
		return;
	oNode.find('.rounded_ul, .rounded_bl, .rounded_ur, .rounded_br, td.png').map(	function () {
		this.runtimeStyle.filter = 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src="' + $(this).css('background-image').replace(/^url\(('|")/,'').replace(/("|')\)/,''); + '",sizingMethod="scale")';
		$(this).css('background-image', 'url("i/_blank.gif")');				
	});
	oNode.find('img.ajaxng, input.png').map( function () {
		if ($(this).css('height') != '100%')
			this.style.height = this.offsetHeight + 'px';
		if ($(this).css('width') != '100%')
			this.style.width = this.offsetWidth + 'px';
		this.runtimeStyle.filter = 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src="' + this.src + '",sizingMethod="scale")';
		
		this.src = 'i/_blank.gif';
	});
}

function generatePassword() {
	
	var pswdMap = '0123456789qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM';
	var genPswdLen = 8;
	var pswd = '';
	for(var ii = 0; ii < genPswdLen; ii++)
		pswd+= pswdMap.charAt(Math.floor(pswdMap.length*Math.random()));
		
	return pswd;
	
	
}

function handleRegister_0(fromend) {
	
	$('#userPasswordContainer').css('display','none');
	if (fromend === true)
		$('#register_3').css('display','none');
	else 
		$('#register_0').css('display','none');
	$('#register_1').css('display','block');
//	$('#CaptchaHolder').get(0).src = 'http://www.top4top.ru/xml/jcaptcha.html?r=' + Math.random();
	$('#CaptchaHolder').get(0).src = _remoteServer + '/jcaptcha.html?r=' + Math.random();
//	$('#block_topbanner img:first').get(0).src = 'http://www.top4top.ru/xml/jcaptcha.html?r=' + Math.random();
	$('#user_login_submit').unbind('click');
	$('#user_login_submit').bind( 'click', function () {
		if (fromend === true) {
			registerObject.login = $('#userLoginField').val();
			registerObject.j_captcha_response = $('#captcha_text').val();
			handleRegister_3();
		} else {
			handleRegister_1();
		}
	});
	return false;
}

function handleRegister_1() {
	
	
	var cLogin = $('#userLoginField').val();
	
	if (cLogin == 'Введите ваш логин' || cLogin == '') {
		alert('Введите логин');
		return false;
	}
	$.ajax({
		type : 'GET',
		url : _remoteServer + '/test-login.xml',
		data : {
			'login' : cLogin
		},
		success : function (oXml) {
			
			var error = $(oXml).children('#root').find('.error:first');
			
			if (error.text()) {
				
				alert(error.text());
				return false;
				
			} else {
				registerObject.login = cLogin;
				registerObject.j_captcha_response = $('#captcha_text').val();
				
				$('#userLoginContainer').css('display','none');
				$('#register_1').css('display','none');
				$('#register_2').css('display','block');
				$('#new_password').focus();
				
				$('#user_login_submit').unbind('click');
				$('#user_login_submit').click( function () {
					handleRegister_2();
				});
			}
		}
	});
	
}

function handleRegister_2() {
	
	var npval = $('#new_password').val();
	if (npval.length) {
		registerObject.password = npval;		
	} else {
		registerObject.password = newPasswd;
		isNewPasswdGiven = true;
	}
	
	$('#register_2').css('display','none');
	$('#register_3').css('display','block');
	if (isNewPasswdGiven) {
		$('#register_3 .helper:first').css('display', 'none');
		$('#email_confirm').focus();
		$('#confirmEmailContainer .short:first').css('display', 'none');
	} else {
		$('#confirmEmailContainer .long:first').css('display', 'none');
		$('#password_confirm').focus();
	}
	
	$('#user_login_submit').unbind('click');
	$('#user_login_submit').click( function () {
		handleRegister_3();
	});
	
	
}

function handleRegister_3() {
//	alert( $('#confirm_password').val() + ' : ' + registerObject.password );
	if ( isNewPasswdGiven || $('#password_confirm').val() == registerObject.password ) {
		var email = $('#email_confirm').val();
		if (email.match(/^(\w|[_.\-])+@((\w|-)+\.)+\w{2,4}$/)) {
			registerObject.email = email;
			
			//alert(registerObject);
			
			$.ajax({
				type : 'GET', 
				url : _remoteServer + '/registration.xml',
				data : {
					'j_captcha_response' : registerObject.j_captcha_response, 
					'login' : registerObject.login,
					'password' : registerObject.password,
					'email' : registerObject.email
				},
				success : function (oXml) {
					var error = $(oXml).children('#root').find('.error:first');
			
					if (error.text()) {
						alert(error.text());
						handleRegister_0(true);
						return false;
					} else {
						$('#userLoginField').val(registerObject.login);
						$('#userPasswordField').val(registerObject.password);
						doLogin();
//						document.location = _remoteServer + '/';
					}
				}
			});
		}
		else alert('Неправильный email');
	} else alert('Пароли не совпадают');
}

function handleLogin_0() {
	var upc = $('#userPasswordContainer');
	upc.css('visibility', 'visible');
	upc.animate({ height: 22 }, 200, function () {$(this).css('overflow', 'visible');} );
	$('#register_0').hide(200);
	$('#user_login_submit').unbind('click');
	$('#user_login_submit').click(doLogin);
	$('#userPasswordField').focus();
	return false;
}

function doLogin () {
								
	var oData = {
		'j_username' : $('#userLoginField').val(),
		'j_password' : $('#userPasswordField').val()
//		'_acegi_security_remember_me' : $('#rememberMeCheck').get(0).checked
	};
	$.ajax({
		type: 'POST',
		url: _remoteServer + '/login.xml',
		data: oData,
		error : function (oXml) {
			var error = $(oXml).children('#root').find('.error:first');
			if (error.text()) {
				alert(error.text());
				return false;
			} else {
				document.location = _remoteServer + '/';
			}
		},
		success : function (oXml) {
			var error = $(oXml).children('#root').find('.error:first');
			if (error.text()) {
				alert(error.text());
				return false;
			} else {
				document.location = _remoteServer + '/';
			}
		}
	});
	return false;
}



