var showBlock = 0; // global alias for sx(obj) - defined later.
var div = ('v' == '\v') ? "<u />" : "";

var A=0, B=1;
var iE = $.browser.msie, iE6 = iE && (parseInt($.browser.version)==6), bR="", iscur = B, lastcur = B, isrun = false, t = 500;
var h = {x:{opacity: .4},a:{opacity: .7},b:{opacity: B},c:{opacity: A},s:"strong"};
var E = {cl:"click",over:"mouseover",out:"mouseout",focus:"focus",blur:"blur",down:"mousedown",up:"mouseup",ku:"keyup",kd:"keydown",d:"disabled",ok:A,empty:B,badstr:2,keep:3,notrue:4,reg:-B,url3:"/vera/ajax/user/reg_code_check/",url2:"/vera/ajax/user/email_check/",url1:"/vera/ajax/user/login_check/",y:"valid",n:"invalid"};
		
E.overout = E.over+" "+E.out;
E.downup = E.down+" "+E.up;
E.focusblur = E.focus+" "+E.blur;
E.all = E.overout+" "+E.focusblur+" "+E.downup;

// If keydown is TAB focus to Obj
$.fn.tab = function(o){ return $(this).bind(E.kd,function(e){if(e.keyCode==9){o.focus(); return false;}});};
	
$.extend($.fx.step,{
backgroundPosition: function(F) {	 
if (F.state === 0 && typeof F.end == 'string') {
var G = $.curCSS(F.elem,'backgroundPosition');
	G = tA(G);
    F.G = [G[0],G[2]];
	var O = tA(F.end);
        F.end = [O[0],O[2]];
        F.unit = [O[1],O[3]];
	}
var N = [];
N[0] = ((F.end[0] - F.G[0]) * F.pos) + F.G[0] + F.unit[0];
N[1] = ((F.end[1] - F.G[1]) * F.pos) + F.G[1] + F.unit[1];
F.elem.style.backgroundPosition = N[0]+' '+N[1];
function tA(S){
	S = S.replace(/left|top/g,'0px');
	S = S.replace(/right|bottom/g,'100%');
	S = S.replace(/([0-9\.]+)(\s|\)|$)/g,"$1px$2");
	var R = S.match(/(-?[0-9\.]+)(px|\%|em|pt)\s(-?[0-9\.]+)(px|\%|em|pt)/);
	return [parseFloat(R[1],10),R[2],parseFloat(R[3],10),R[4]];
}}});
			
			//*	true если не пустой
			$.fn.clear = function(){return $.trim($(this).val())!="";}
			//* fasle if empty collection 
			$.fn.clearall = function(e){
				var x = true;
				$(e).each(function(){x = x && $(this).clear();});
				$(this).btnEnable(x); 
				return x;
			}

			//*** Submit если все инпуты заполены
			$.fn.sbm = function(e){
				var T = $(this);
				var s = $(e);
				T.bind("keyup mouseup click mousedown" ,function(){	s.clearall(T);}).keyup();
				s.click(function(e){ $(e.target).parent().submit();	});
				return T;
			}
			//Возвращает int значение 
			$.fn.px = function(str){ return parseInt($(this).css(str)); }
			//true если объект существует
			$.fn.ex = function(){return $(this).size()!=0;}
			$.fn.old = function(){
				var T = $(this), a=T.val();
				a = T.data(E.d) == a ? A : T.data(E.d,a);
				return a==A;
			}
			
			$.fn.isOk = function(){	return $(this).data(E.cl) == E.ok;	}
$(function (){ 
			
			var bodybody = $('body');
			
			var facebook = bodybody.hasClass('facebook');
			var fb = bodybody.hasClass('fb');
		
			var d = ("#res",bodybody); // BODY for all
			
			g = $("button, .btn",d);
			g.btn(1); //ButtonMe
			
			var j = {}, L = {}, R = {};  // cache enjoy!
				    j.h = $("#header",d) 			//top
					j.pr = $("#pr",d);				//Promo
					j.cnt = $("#content",d)		//Content
					j.r = $("#reg",j.h);
					j.olga = $("a.olga",j.h)
					j.langa = $("a.lang",j.h)
					
					j.s = $("#stat > strong", j.h);
					j.realmselect = $("#realmselect",j.h);
					j.c = $("#close",j.pr);	//close
					j.r2 = $(".reggo",j.pr)
					j.v = $("#box0",j.pr);
					j.b = $("#box1",j.pr).add(j.v); // Box ground + Box top
					j.t = []; //Слайды
			
					$(" > div",j.v).each(function(){
						var te = $(this);
						i = parseInt(te.attr('id').substring(3));
						j.t[i] = te; 
					});					
					

					L.got = $("#forgot",j.t[1]);
					L.user = $("#username",j.t[1]);
					L.pass = $("#userpass",j.t[1]);
					L.per = $("#permanent",j.t[1]);
					L.l1 = L.user.add(L.pass);
					L.go = $("#gogo",j.t[1]);
					L.mail = $("#mailname",j.t[3]);
					L.gogot = $("#goforgot",j.t[3]);
 
					R.user = $("#nu1",j.t[2]);
					R.pass1 = $("#nu2",j.t[2]);
					R.pass2 = $("#nu3",j.t[2]);
					R.mail = $("#nu4",j.t[2]);
					R.agree = $("#agree",j.t[2]);
					R.capcha = $("#nu5",j.t[2]);
					R.btn = $("#goreg",j.t[2]);
					R.form = $(" > form", j.t[2]);

					R.btn.tab(R.btn);
					L.go.tab(L.go);
					L.gogot.tab(L.gogot);
					
					setInterval(function(){j.s.text(parseInt(j.s.text())+1);},t*8); //counter
			
			function sx(obj){
				if(obj==iscur) return;
				
				lastcur = iscur;
				
				var o = j.t[obj];
				
						isrun = true; //Start Animate
						d1 = obj==B ? h.c : h.a;
						d2 = {left: -o.px("left"),top: -o.px("top")};
					
				if(!iE){ //FUCKIN' PNG FIX WAS KILLED BY OPACITY; бля бля бля!
					o.stop().animate(h.b,t); // Show new slide
					j.t[iscur].stop().animate(h.c,t); //Hide lasted form
				}
				
				j.c.stop().animate(d1,t*2,function(){isrun=false;}); // Show / hide [X]
				j.b.stop().animate(d2,t*2,function(){$("input[type='text']:first",o).focus(); iscur = obj;});
			}
			
			showBlock = sx;
	
			$.fn.cx = function(i){ 
				T = $(this);
				if (j.t[i]){ T.click(function(){sx(i); return false;}); }
				return T;
			}
			
			
			$('.go1').cx(2);
			$('.go2').cx(0);
			$('.go3').cx(3);
			
			$('.bca').cx(1);
			
			// to main form
			j.c.css({opacity:0}).bind(E.overout,function(s){
					if(isrun) return;			
					d1 = s.type == E.out ? h.x : h.b;
					if(iscur!=B) j.c.stop().animate(d1,t); 
			}).click(function(){
			
				var ret = iscur == 4 ? (lastcur == 0) ? 0 : 3 : 1;
				
				 sx(ret);
			});
						
				var curplay =0; 

			
			var glav = $("#top0");
			var vhod = $("#top1");
			var registrasia = $("#prb");

			var alltop = glav.add(vhod);


h111 = $('#top0 > h1:first').bind(E.over+' '+E.out,function(x){

	var p = x.type == 'mouseover' ? 'underline' : 'none';
	$(x.target).css('text-decoration',p);
});

function flashcolor(){
   p = {};
   
   red = 'rgb(255, 0, 0)';
   green = 'rgb(0, 255, 55)';

   p.color = h111.css('color') == red ? green : red; 
   h111.animate(p,500,flashcolor);
}

flashcolor();


			$("#login").click(function(){
					registrasia.hide();
					glav.show();
					vhod.show();
					
			});
			
			$("#top1 .close").click(function(){
				vhod.hide();
			});
			
			
			$("#top2 .close").click(function(){
				registrasia.hide();
				glav.show();
				
			});
			
			
			$("#reggi, .registrationPopup").add(j.r2).add(h111).bind(E.overout,function(e){
				
			
				var d0 = h.b;
				var d2 = h.b;
				if(e.type == E.out){d0 = h.a; d2 = h.c;}
					j.r.stop().animate(d0,t);
							
			}).click(function(){
				vhod.hide();
				glav.hide();
				registrasia.show();	
			
			});
			
		
				
				
	function setPosition(a,b){
	
		var o = $(a).offset();
		var h = $('#header').offset();
			
		 $(b).css({left: o.left-h.left});
			
	}			

				
					function hideSelectors(){
						j.realmselect.add("#realmlang").hide();	
					}
					
					j.olga.click(function(){
					
						
						$("#realmlang").hide();	
						j.realmselect.toggle();
						
						setPosition(this,j.realmselect);
						return false;
					});
					
					
					j.langa.click(function(){
						
						j.realmselect.hide();	
						$("#realmlang").toggle();

						setPosition(this,"#realmlang");

						return false;
					});


					
					
					$('#content').mousemove(hideSelectors);
					
					
		$.fn.errr = function(X){
				var T = $(this), a=T.val();
		
				if(T.old()) return;
					N = T.next();
					
				var p = {b:0,paddingLeft:33,width:279};	
				
						if(T.attr("id")=="nu5"){
							p.width = 100;
							p.paddingLeft = 2;
						}
				
				switch(X){
					case E.reg:
							
							 p.paddingLeft = 2;
							 p.width = T.attr("id")=="nu5" ? 100 : 310;
							 
							 break;

					case E.ok: 
							 p.b = '-214';  //Фон
							 T.data(E.cl,E.ok);
							 break;
							 
					case E.empty: 
					case E.badstr: 
					case E.keep: 
							 p.b = -142;//-36*(X-1)-70; //Фон
							 break; 
				}
				p.backgroundPosition = '(0px '+p.b+'px)';
							
				T.stop().animate(p,t,function(){if(X==-1)T.removeAttr("style");});
					

				if(N.is(".msg")){
					var s = $("span",N);
					var p = s.filter("[msg='"+X+"']");
							$(h.s, p).text(T.val());
							s.not(p).stop().fadeOut(t);
							p.stop().fadeIn(t);
				}
				
				return T;
			}
				
		
				R.allCheck = function(){
					
					if(!R.user.isOk()) return false; 
					if(!R.pass1.isOk()) return false;
					if(!R.mail.isOk()) return false;
					if(!R.capcha.isOk()) return false;
					if(!R.agree.is(":checked")) { 
						$('#ag').addClass('highlighted');
						return false;
					} else {
						$('#ag').removeClass('highlighted');
					}
									
					return true; 
				}
		
				$.fn.checkLogin = function(r){
						var T = $(this), d1=E.ok, l = T.val();
						if(T.data(E.d)==l) return;
						//if(!T.clear()) return; 
						if(l.length < 4 || l.length > 20 || l.substr(A, B).search(/[^a-z]/i) != E.reg || l.search(/[^a-z0-9_.]/ig) != E.reg) return T.errr(E.badstr);
						d1 = $.ajax({url:E.url1+l,async:false}).responseText == E.y ? E.ok : E.keep;
						return T.errr(d1)
					}
				
				if(!fb){
				 	R.form.submit(R.allCheck);
				}
				
				$.fn.checkMail = function(){
						var T = $(this), d1=A, l = T.val();
						
						if(T.data(E.d)==l) return;
				
						//if(!T.clear()) return;
						$.getJSON(E.url2+l,
							function(d){
								d = d.result;
								if(d=="badformat")d1 = E.badstr;
								if(d==E.n)d1 = E.keep;
								
								return T.errr(d1);
							}
						);
					}
			
				R.checkUser = function(){
					R.user.checkLogin();
					//R.allCheck();
				}
				
				R.checkMail = function(){
					R.mail.checkMail();
					//R.allCheck();
				}
				
				R.checkPass = function(){
					
					var d1 = E.ok, e1 = R.pass1, e2 = R.pass2, 	e3 = e2.add(e1);
					
					d1 = e1.val()!=e2.val() ? E.keep : E.ok;
					
					if(!e1.clear()) E.keep;
					if(!e2.clear()) return; 
					
					if (d1 == E.ok)   $('#password_match').css({display: 'block'});
					if (d1 == E.keep) $('#password_match').css({display: 'none'});
					
					if (d1 == E.ok)   $('#password_dont_match').css({display: 'none'});
					if (d1 == E.keep) $('#password_dont_match').css({display: 'block'});
					
					return e3.errr(d1);
				}
				
				R.checkCapcha = function(){
					var d1 = E.ok, e = R.capcha;
					if(!e.clear()) return;
					d1 = $.ajax({url:E.url3,async:false, data: {regCode: e.val()}}).responseText == E.y ? E.ok : E.keep;
					//R.allCheck();
					return e.errr(d1);
				}
	
				R.user.blur(R.checkUser);
				R.mail.blur(R.checkMail);
				R.pass2.blur(R.checkPass);
				R.pass1.blur(R.checkPass);
				//R.mail.focus(R.checkPass);
				//R.mail.focus(R.checkUser);
				
				R.capcha.blur(R.checkCapcha);
				//R.capcha.focus(R.checkMail);
				
				R.agree.click(function(){
					
						//R.allCheck();
						R.btn.btnFlash();
					
					});
				
				$("#nuuser > .checkme").click(function(){return false;});
				$("#numail > .checkme").click(function(){return false;});
				
				
	
	var fdiv = $("#faq_answer");
	var fa = $("#faq_answer > div");
	var ff = $("#faq_quest");
	var fq = $("a",ff);
	
	var topff = ff.offset().top - 10;
	var currenter = $(".currenter");
	
	fq.each(function(i){ 
		$(this).attr("rel",i);	
	}).filter(":first").addClass("cur").end().filter(":last").css('color','#FFFF00');
	
	
	fq.not("#faqall").click(function(x){
	
		var $this = $(this);
		
		fq.filter(".cur").removeClass("cur");
		$this.addClass("cur");
				

		var y = $(fa.get(parseInt($this.attr("rel"))));
		var offsetDiv = y.offset().top - fdiv.offset().top ;// - topff + 20 ;
		var top1 = $this.offset().top - topff;
		
		fdiv.stop().animate({top: -offsetDiv});
		
		currenter.stop().animate({top: top1, height: $this.height()});
		
		return false;
	
	});

	switch (window.location.hash) {
		case '#signup':
					
			 $("#reggi, .registrationPopup").click();
			break;
		case '#login':
			$("#login").click();
			break;
		default:
			break;
	}
	
	$('#updateCaptcha, #updateCaptchaLink').click(function(){
		var i = $('#capcha img');
		i.attr('src', i.attr('src') + '?' + Math.random(1, 10000));
		return false;
	});
	
	
	
	
	
	
	
	
	
	
	
	
	
		if(fb){
		
			
			$("#connect2go").cx(2); 
			$("#regagain").add("#disconnect").cx(0); 
		
			$("#gogo02").cx(4);
			
			
			user = $('#nu1');
			
			
			$('#top0 a.checkme').click(function(){
			
			user.checkLogin();
			return false;
			});
			
			check1 = $('#gogo01').click(function(){
					user.checkLogin();
					return user.isOk(); 
			});
			
			
		}
	
	
	
	
	
	
//Partnership page
	
if($('body').hasClass('p')){

var mailCheck = false;

	$(".goconnect").cx(4);
	
	$('#ppsend').click(function(){
	
		$.ajax({ url: E.url2+$('#pEmail').val(),
				 type: 'GET',
				 dataType: 'json',
				 async: false,
				 complete: function(answer){
			 
					eval ('var result = ' + answer.responseText + ';');
					mailCheck = (result.result !== "badformat");
					
					$('#badEmail').toggle(!mailCheck);
					$('#goodEmail').toggle(mailCheck);
				}
				});

		if (!mailCheck) return false;

		if (!$('#pUrl').val()) {
			$('#badUrl').show();
			return false;
		} else {
			$('#badUrl').hide();
		}

		if (!$('#pSiteName').val()) {
			$('#badSiteName').show();
			return false;
		} else {
			$('#badSiteName').hide();
		}
		
		$('#ppsend').attr("disabled","disabled");


		$.ajax({url: $(this).attr('href'),
			data: $('#newPartnerForm').serialize(),
			success: function(answer) {

						if (answer === 'ok') {						
							$('#formDontSend').hide();
							$('#formSend').fadeIn().animate( {opacity: 1.0}, 5000, "linear", function() { showBlock(0); } );
							 
						} else {
							$('#formSend').hide();
							$('#formDontSend').fadeIn();
						}
					},
			error: function (){
						$('#formSend').hide();
						$('#formDontSend').fadeIn();
					}	
		});
		return false;
	});

}
	
	
	
	
	
	
	
	
	
	
	
		
});






