/** Объект регистрации*/oReg = {	license: null,	blocked: false,	msisdnFields: false,	show: function() {		$.post('/index/userevent', {} ,function(data) {});		if(window.pageTracker) {			pageTracker._trackPageview('/signup');		}		var t = this;		oPopup.close();		var p = new Popup();		t.popup = p;		var sHeader = '<div style="font-size:21px;font-family: Arial;padding: 0 0 7px 0;text-align:center">Регистрация</div><div style="margin-bottom:15px;text-align:center">Зарегистрируйся на Omlet.RU - покупай контент<br/>дешевле, а клипы и фильмы смотри бесплатно!</div>';		var sCap = 			'<table style="border-collapse: collapse; margin-left:18px; margin-top:13px;">' +				'<tr valign="top">' +					'<td width="105">' + 						'<img id="reg_captcha_img" src="/kcaptcha/?rnd=1234">' +					'</td>' + 					'<td style="vertical-align:bottom;">' + 						'Введи код с картинки:' + 						'<div id="popupalert_cap" class="popup_alert_long"></div>' +						'<div class="popup_captcha_long">' +							'<input type="text" value="" id="cap_id" name="cap">' + 						'</div>' + 					'</td>' + 				'</tr>' +			'</table>';		var sMsisdnFields = '';		if(t.msisdnFields){			sMsisdnFields = '<div id="popupalert_msisdn2_id" class="popup_alert_long"> </div> <div id="popupalert_msisdn" class="popup_alert_long"> </div>'+			'<div class="popup_caption"><span style="color:red">*</span> Номер телефона</div><div class="popup_input input_phone" style="margin-left:124px;width:160px;//margin-left:0px"><input class="ph1" type="text" value="" maxlength="3" name="msisdn1_id" id="msisdn1_id" onkeyup="oReg.phoneJump()"><input class="ph2" type="text" value="" maxlength="7" name="msisdn2_id" id="msisdn2_id" style="width:75px"></div>'+			'<div class="right_comment">Номер не будет доступен никому, кроме тебя, и будет использоваться для передачи ссылок на мобильный контент.</div>'+			'<div id="popupalert_code" class="popup_alert"> </div>'+			'<div style="width: 155px; margin-right:40px" class="fr"><a href="#" class="popup_button" onclick="return oReg.sendPhoneCode()">'+			'<span class="as"> </span><span style="width: 80px;" class="ss">Получить код</span><span class="sa"> </span>'+			'</a></div>'+			'<div class="popup_caption" style="width:100px"><span style="color:red">*</span> Укажи код</div>'+			'<div class="popup_input" style="background:transparent url(/i/input40.gif) no-repeat; width: 40px; margin-left:100px;//margin-left:0px">'+			'<input type="text" name="code" id="code" style="width:34px"/>'+			'</div>'+			'<div class="right_comment">Нажми на кнопку "Получить код" и дождись SMS на указанный выше телефонный номер. После чего введи код из пришедшего сообщения</div>';		}		var sBlock1 = 			p.buildInput({type:'text', label: '<span style="color:red">*</span> E-mail', name:'email', len:'_long'}) +			'<div class="right_comment">Это твой логин для входа на сайт</div>'+			p.buildInput({type:'text', label: '<span style="color:red">*</span> Имя на сайте', name:'login', len:'_long', req: 1}) +			'<div class="right_comment">Другие люди будут видеть тебя под этим именем.<br>Имя должно быть длиной от 3 до 20 символов<br>и состоять из русских букв, латинских букв и цифр.</div>'+			sMsisdnFields +			p.buildInput({type:'password', label: '<span style="color:red">*</span> Пароль', name:'pwd1', len:'_long'}) +			p.buildInput({type:'password', label: '<span style="color:red">*</span> Повтори пароль', name:'pwd2', len:'_long'});		var sBlock3 = 			'<table><tr valign="top"><td style="height:31px;vertical-align:bottom;">' +				'<div id="popupalert_agry" class="popup_alert">&nbsp;</div>' +				'<div class="popup_checkbox" style="float:left"><img height="16" width="16" input="agry" style="float: left; margin-right: 6px;" src="/images/check_3.gif" class="checked"/></div><div style="float:left;"><span>Cогласен c </span><a href="#" onclick="oReg.showLicense(); return false;">Пользовательским соглашением</a></div><input type="hidden" name="agry" id="agry" value="1"/>' +		'</td></tr></table>' +		'<hr style="margin:10px 0; height:1px" color="#EBEBEB" />' +		sCap +		'<div id="if_gift_sert" style="margin-top:22px; margin-bottom:16px;">' +		'<hr style="margin-top:10px;margin-bottom:15px; height:1px" color="#EBEBEB" />' +		'<a style="border-bottom:1px dashed;padding-left:2px;text-decoration:none;" href="#" onclick="$(\'#if_gift_sert\').hide(); $(\'#gift_sertificate\').show(); return false;">У меня есть подарочный сертификат!</a>' +		'</div>' +		'<div id="gift_sertificate" style="background:url(/images/input_sert.gif) no-repeat left top; margin-top:22px; display:none;">' +			'<input type="text" value="" id="cert_id" name="cert" class="ptrl_long">' +		'</div>';		var sHtml = '<div class="reg_popup">'+ sHeader +'<table width="100%"><tr valign="top"><td>'+sBlock1+'</td></tr></table>' + sBlock3 + '</div>';				p.show({			items: [ sHtml ],			buttons:[ {text:'Зарегистрироваться', handler: function(){				t.submit();				return false;			}} ],			width: 395		});		jLic = p.jContainer.find('div.reg_license_inner');		if(t.license){			jLic.html(t.license);		} else {			$.post('/registration/licence/', {}, function(data){				t.license = data;				jLic.html(data);			});		}				return false;	},		check: function(sField, bCondition, sMessage){		if(bCondition){			this.hCheck.errors[sField] = sMessage;			this.hCheck.good = false;		}	},		phoneJump: function(){		if($('#msisdn1_id').val().length>2){			$('#msisdn2_id').each(function(i){				this.focus();			});		}	},		isEmail: function(email){		var re = /^(?:[-a-z\d\+\*\/\?!{}`~_%&'=^$#]+(?:\.[-a-z\d\+\*\/\?!{}`~_%&'=^$#]+)*)@(?:[-a-z\d_]+\.){1,60}[a-z]{2,6}$/i;		return (email=='' || re.test(email));	},		isPhone: function(phone){		var re = /^\d{10}$/i;		return (phone=='' || re.test(phone));	},		showLicense: function() {		if(this.license) {			var sHeader = '<div style="font-size:21px;font-family: Arial;padding: 0 0 15px 0">Пользовательское соглашение</div>';			sHtml = sHeader + '<div class="popup_license" style="height:400px;overflow:auto">' + this.license + '</div>';			var p = new Popup();			p.show( {items: [ sHtml ], buttons:[ {text:'Закрыть'} ], width: 720, z_index: 1100, save_hints: true});		}	},		submit: function(){		var t = this;		if(t.blocked) return false;		t.popup.invalidate();		var d = t.popup.getData();		t.hCheck = { good: true, errors: {} };		t.check('login', d.login=='', 'Введи логин');		t.check('login', d.login.length < 3, 'Имя на сайте не может быть менее 3 символов');		t.check('login',d.login.length > 20, 'Имя на сайте не может быть больше 20 символов');		t.check('pwd1',d.pwd1.length < 6, 'Пароль не может быть менее 6 символов');		t.check('pwd1',d.pwd1.length > 20, 'Пароль не может быть больше 20 символов');		t.check('pwd1', d.pwd1=='', 'Введи пароль');		t.check('pwd2', d.pwd2=='', 'Введи пароль еще раз');		t.check('pwd2', d.pwd1!=d.pwd2, 'Введенные пароли не совпадают');		t.check('cap', d.cap=='', 'Введи код с картинки');		t.check('agry', d.agry!=1, 'Ты должен принять пользовательское соглашение');		t.check('email', d.email=='', 'Введи адрес email');		t.check('email', !t.isEmail(d.email), 'Введен некорректный адрес email');		//t.check('email2', d.email!=d.email2, 'Введеные email адреса не совпадают');		if(t.msisdnFields){t.check('msisdn2_id', !t.isPhone(d.msisdn1_id + d.msisdn2_id), 'Введен некорректный телефон');}		if(t.hCheck.good) {			t.blockSubmit();			$.post('/registration/regnew/', d, function(data) {				if(data.result=='ok'){					//t.popup.showLoading('Успешная регистрация. Обновление страницы...');					oPopup.alertWithCallback(data.text, function() {t.regComplete();}, 'Ок');					t.regComplete();					//setTimeout(t.regComplete, 42);				} else {					t.unblockSubmit();					t.popup.invalidate( data.errors, null, true);					if(data.errors.cap){						$('#reg_captcha_img').each( function(){							this.src = '/kcaptcha/?rnd=' + Math.round(Math.random() * 100000);						});						$('#cap_id').val('');					}				}			}, "json");		} else {			t.popup.invalidate( t.hCheck.errors , null, true);		}		t.blocked = true;		setTimeout('oReg.blocked = false;', 1000);		return false;	},		blockSubmit: function(){		this.popup.showLoading('Подожди, идет сохранение данных...');		this.blocked = true;	},		unblockSubmit: function(){		var j = this.popup.jContainer.find('div.button');		this.popup.hideLoading();		//j.animate({opacity: 100}, 400);		this.blocked = false;	},		regComplete: function(){		var sBackUrl = $('#regbackurl').val();		if(window.pageTracker){			pageTracker._trackPageview('/signup/complete/');		}		if(sBackUrl && sBackUrl !=''){			document.location = sBackUrl;		} else {			document.location='/?afterreg';		}	},		sendPhoneCode: function(){		var t = this;		var d = t.popup.getData();		var sPhone1 = d.msisdn1_id; 		var sPhone2 = d.msisdn2_id;		var sPhone = sPhone1 + sPhone2;		if(sPhone1.length == 3 && sPhone2.length == 7){			$.post('/registration/send-code', {phone: sPhone} , function(data){				if(data == "ok")					oPopup.alert('На указанный тобой номер телефона было выслано SMS с кодом доступа. Если сообщение не было доставлено в течение 1 минуты, проверь корректность номера', { animate: true });			});		} else {			oPopup.alert('Указано неверное количество цифр номера телефона.', { animate: true });		}		return false;	}	};oPhoneActivate = {	blocked: false,	sHtml: null,	oReservedLink: null,	show: function(){		oPopup.closeAll();		var t = this;		var p = new Popup();		t.popup = p;		var sHeader = '<div style="font-size:21px;font-family: Arial;padding: 0 0 15px 0">Активация мобильника</div>';		if(t.sHtml){			p.show({				items: [ sHeader + t.sHtml ],				buttons:[ {text:'Активировать "Мобильник" и продолжить покупку', handler: function(){					t.submit();					return false;				}}, {text: 'Назад', width: 80, handler: function(){					oPopup.closeAll();					oPopupMoBuy.show(Buyer.buy_item, Buyer.price);				}} ],				width: 700			});			sHtml = null;		} else {			var sHtml = sHeader + '<div style="margin-top:100px;height:200px;text-align:center"><img src="/images/ajax.gif" /><br/>Подожди, идет загрузка формы</div>';			p.show({				items: [ sHtml ],				width: 700			});			t.loadForm();		};		return false;	},		loadForm: function(){		var t = this;		$.post('/registration/activation-form', function(data){			t.popup.close();			t.sHtml = data;			t.show();		});	},		sendPhoneCode: function(){		var t = this;		var sPhone1 = t.popup.jContainer.find('#msisdn1_id').val(); 		var sPhone2 = t.popup.jContainer.find('#msisdn2_id').val();		//var sCap = t.popup.jContainer.find('#cap_id').val();		var sPhone = sPhone1 + sPhone2;		if(sPhone1.length == 3 && sPhone2.length == 7){			$.post('/registration/send-code', {phone: sPhone} , function(data){				if(data == "ok")					oPopup.alert('На указанный тобой номер телефона было выслано SMS с кодом доступа. Если сообщение не было доставлено в течение 1 минуты, проверь корректность номера', { animate: true });			});		} else {			oPopup.alert('Указано неверное количество цифр номера телефона.', { animate: true });		}		return false;	},		check: function(sField, bCondition, sMessage){		if(bCondition){			this.hCheck.errors[sField] = sMessage;			this.hCheck.good = false;		}	},		isPhone: function(phone){		var re = /^\d{10}$/i;		return (phone=='' || re.test(phone));	},		submit: function(){		var t = this;		if(t.popup.blocked) return false;		t.popup.invalidate();		var d = t.popup.getData();		var msisdn = d.msisdn1 + d.msisdn2;		t.hCheck = { good: true, errors: {} };		t.check('msisdn', !t.isPhone(msisdn), 'Введен некорректный телефон');		t.check('msisdn', msisdn=='', 'Введи телефон');		t.check('code', d.code=='', 'Укажи код, пришедший в SMS');		if(t.hCheck.good){			t.popup.blockButtons();			$.getJSON('/registration/activation', d, function(data){				if(data.result=='ok'){					t.popup.close();					Omlet.user.msisdn_enabled = true;					can_select_pay = true;					select_pay = "Мобильник";					select_pay_num = 2;					$(".omlet_pay_type").html("Мобильник");					if(Buyer.oReservedLink){						$(Buyer.oReservedLink).click();					} else {						Omlet.reload();					};					//t.regComplete();				} else {					t.popup.unblockButtons();					t.popup.invalidate( data.errors, null, true );				}			});		} else {			t.popup.invalidate( t.hCheck.errors, null, true );		}	},		blockSubmit: function(){		var j = this.popup.jContainer.find('div.button');		j.animate({opacity: 0.3}, 400);		this.blocked = true;	},		unblockSubmit: function(){		var j = this.popup.jContainer.find('div.button');		j.animate({opacity: 1}, 400);		this.blocked = false;	},		regComplete: function(){		var sBackUrl = $('#regbackurl').val();		if(sBackUrl && sBackUrl !=''){			document.location.href = sBackUrl;		} else {			document.location.href='/signup/complete/';		}	}	};popupData = {};oPhoneSelect = {	items: null,	popup: null,	cache: {},	ajaxWait: false,	type: 'profile',	build: function(pd){		var sItems = '';		if(pd.items){			pd.items = pd.items.split('|');			var aItems = pd.items;			var itemsLength = aItems.length;			var columnLength = Math.ceil(itemsLength / 4);			sItems += '<div class="phone_mark_column">';			var k = 1;			for(var i=0; i<aItems.length; i++){				sItems += '<div class="phone_mark">'+aItems[i]+'</div>';				if(i % columnLength == columnLength - 1 && i != columnLength*k - 1){					sItems += '</div><div class="phone_mark_column">';					k++;				}				if(i == columnLength*k){					sItems += '</div><div class="phone_mark_column">';					k++;				}			}			sItems += '</div>';		}		var sHtml = '<div class="mobilemark_captions"><div class="mobilemark_caption step1">Выбери марку телефона</div> <div class="mobilemark_caption step1_par small" style="display:none" onclick="oPhoneSelect.showMarks()">Телефон</div> <div class="mobilemark_caption step2 small">&nbsp;</div> <div class="mobilemark_caption step3 small">&nbsp;</div> <div class="clear"></div><div class="mobilemark_caption step1_0" style="display:none">Выбери модель телефона</div><div class="clear"></div> </div><div id="phoneeditor_text" class="edit_popup_input" style="margin-left:0px;display:none"><input type="text" id="popupeditor_public" value="'+pd.public+'" onkeyup="oPhoneSelect.onKeyPress()"/></div><div class="clear"></div>';		sHtml += '<div class="mobilemodel_list_outer" style="display:none"><div class="mobilemodel_list"></div></div><div class="mobilemark_list">'+sItems+'</div><div class="clear"><div id="mobilemodel_loading" style="text-align:center">Загрузка...</div></div>';		return sHtml;	},		start: function(obj){		var sHtml = '<div class="mobilemark_caption">&nbsp;</div><div class="edit_popup_input"><input type="text" id="popupeditor_public" value="'+pd.public+'" onkeyup="oPhoneSelect.onKeyPress()"/></div>';		sHtml += '<div class="mobilemodel_list_outer"><div class="mobilemodel_list">'+sItems+'</div></div><div class="clear"><div id="mobilemodel_loading" style="text-align:center">Загрузка...</div></div>';		this.popup = new Popup();		this.popup.show({width: 355, items:[ sHtml ], 			buttons: [{text:'Сохранить', handler: function(){							}}]		});					},	init: function(pd){		var t = this;		t.popup = pd.popup;		t.j = t.popup.jContainer;		t.j.find('div.phone_mark').each(function(i){			$(this).hover(function(){				$(this).addClass('hovered');			}, function(){				$(this).removeClass('hovered');			}).click(function(){				t.initMark(this.innerHTML);//				var s = $('#popupeditor_public').val(this.innerHTML);//				for(var i=0; i<oPhoneSelect.items.length; i++){//					oPhoneSelect.items[i].obj.className = 'phone_model';//				};//				this.className = 'phone_model selected';			});		});		t.popup.blockButtons();	},	showMarks: function(){		var t = this;		t.j.find('.mobilemark_caption').hide();		t.j.find('.mobilemark_caption.step1').show();		t.j.find('.mobilemark_list').show();		t.j.find('#phoneeditor_text').hide();		t.j.find('.mobilemodel_list_outer').hide();		t.j.find('.mobilemark_caption.step1_0').hide();		t.modelid = null;		t.popup.blockButtons();	},		initMark: function(s){		var t = this;		t.mark = s;		t.j.find('.mobilemark_list').hide();		t.j.find('#phoneeditor_text').show().find('input').val('')[0].focus();		t.j.find('.mobilemodel_list_outer').show();		t.j.find('.mobilemodel_list').html('');		t.j.find('.mobilemark_caption.step1').hide();		t.j.find('.mobilemark_caption.step1_par').show();		t.j.find('.mobilemark_caption.step2').html(s).show();		t.j.find('.mobilemark_caption.step1_0').show();		t.onKeyPress();	},		initModels: function(data){		var t = this;		var s = '';		for(var i=0; i<data.length; i++){			s += '<div class="phone_model" markid="'+data[i].markid+'" modelid="'+data[i].id+'">'+data[i].modelname+'</div>';		}		t.j.find('.mobilemodel_list').html(s);		t.j.find('div.phone_model').each(function(i){			$(this).hover(function(){				$(this).addClass('hovered');			}, function(){				$(this).removeClass('hovered');			}).click(function(){				t.j.find('div.phone_model').removeClass('selected');				var j = $(this);				j.addClass('selected');				t.model = j.html();				t.j.find('.mobilemark_caption.step3').html(t.model).show();				t.markid = j.attr('markid');				t.modelid = j.attr('modelid');				t.popup.unblockButtons();			});		});	},		onKeyPress: function(){		var t = this;		if(t.ajaxWait)return false;		var s = t.j.find('#popupeditor_public').val();		var data = t.cache[t.mark+'|'+s];		if(data){			t.initModels(data);		} else {			t.ajaxString = s;			$.getJSON('/registration/phone-models', {mark: t.mark, model: s}, function(data){				if(s.length<4) t.cache[t.mark+'|'+s] = data;				t.initModels(data);				t.ajaxWait = false;				s = t.j.find('#popupeditor_public').val();				if(t.ajaxString != s) t.onKeyPress();			});			t.ajaxWait = true;		}	},		show: function(obj, sType){		this.type = sType;		var j = $(obj);		var pd = {};		pd.public = stripChars(j.attr('public')) || '';			pd.j = j;					pd.items = j.attr('items');		var sItems = '';		var c1 = (pd.public && pd.public!='' ? pd.public : 'Выбери...');		var c2 = (pd.friends && pd.friends!='' ? pd.friends : 'Выбери...');		iWidth = 355;		var sHtml = this.build(pd);				var p = new Popup();		popupData.popup = p;				if(oPopup.count()>1){return(false)};		p.show({width: iWidth, 			items:[ sHtml ],			buttons:			[{text:'Сохранить', handler: function(){				this.popup.close();				oPhoneSelect.save();				return false;			}}]		});		this.init(popupData);	},		save: function(){		var t = this;		if(t.modelid){			var sName = t.mark + " " + t.model;			$('#mark_id').val(t.markid);			$('#model_id').val(t.modelid);			$('.phone_caption').html(sName);			$.post('/ajax/profile/savephonemodel/', {marka: t.mark, model: t.model, markid: t.markid, modelid: t.modelid}, function(){				Omlet.checkMtsRefresh(); 			});		};	}	};function stripChars(val){	return typeof val != 'undefined' ? val.replace(/</g, '&lt;').replace(/'/g, '&#39;').replace(/"/g, '&quot;') : '';}function to2digits(i){	var s = i + '';	if(s.length<2) s='0'+s;	return s;}