js.include('js.prototype.prototype-mini');
js.include('skins.b2b.js.core.AJAX');
js.module('skins.b2b.js.nais.WebTraffic');

WebTraffic = {
	regTextField: /^[a-zа-я_0-9-\s\.\(\)\[\]\/,#№"']*$/i,
	regPhone: /^[0-9\-\+]*$/i,
	regPhoneCode: /^[0-9\(\)]*$/i,
	regDigits: /^[\d\.]*$/,
	regEmail:        /^[а-яА-Яa-zA-Z\d\.\-_]+@[а-яА-Яa-zA-Z\d\.\-_]{2,}\.[а-яА-Яa-zA-Z]{2,10}$/i,


	showGallery: function(currentImage){
		var objArgs = new Object();
		objArgs['currentImage'] = currentImage;
		objArgs['infopageId'] = $F('infopageId');
		objArgs['type'] = "photogallery";
		makeCall('WebTraffic/showInfopages', objArgs);
	},

	showDivGallery: function(){
		$('gallery').style.display = "block";
		$('gallery').scrollTo();
	},

	visibleAdditionalRubric: function(companyListId){
		View.getInstance("additionalRub_" + companyListId).style.display = "block";
		View.getInstance("bShowRub_" + companyListId).className = "img_st_m_up";
	},

	hiddenAdditionalRubric: function(companyListId){
		View.getInstance("additionalRub_" + companyListId).style.display = "none";
		View.getInstance("bShowRub_" + companyListId).className = "img_st_m";
	},
	rubricatorPager: function(pageNum, totalPages){
		if(!Validate.digits(pageNum) || totalPages < pageNum || pageNum < 1 ){
			alert('Неверный номер страницы.');
			return false;            
		}
		else
		{
			window.location.href=$('pagerLink').value.replace('@',pageNum);
			return false;
		}
	},
	sendFormShare: function(){
		var error = false;
		this.clearError('agreeShare', 'Error');
		this.clearError('formShareFIO', 'Error');
		this.clearError('formSharePhone', 'Error');
		this.clearError('formShareEmail', 'Error');
		this.clearError('formShareFIO', 'NotValid');
		this.clearError('formSharePhone', 'NotValid');
		this.clearError('formShareEmail', 'NotValid');
		this.clearError('formSharePhoneCode', 'NotValid');

		if($F('agreeShare') == null){
			error = true;
			this.showError('agreeShare', 'Error');
		}
		//FIO
		if($F('formShareFIO').strip() == ""){
			error = true;
			this.showError('formShareFIO', 'Error');
		}else if($F('formShareFIO').strip != "" && !this.regTextField.test($F('formShareFIO'))){
			error = true;
			this.showError('formShareFIO', 'NotValid');
		}
		//phone
		if($F('formSharePhone').strip() == ""){
			error = true;
			this.showError('formSharePhone', 'Error');
		}else if($F('formSharePhone').strip != "" && !this.regPhone.test($F('formSharePhone'))){
			error = true;
			this.showError('formSharePhone', 'NotValid');
		}
		if($F('formSharePhoneCode').strip != "" && !this.regPhoneCode.test($F('formSharePhoneCode'))){
			error = true;
			this.showError('formSharePhoneCode', 'NotValid');
		}
		//email
		if($F('formShareEmail').strip() == ""){
			error = true;
			this.showError('formShareEmail', 'Error');
		}else if($F('formShareEmail').strip() != "" && !this.regEmail.test($F('formShareEmail'))){
			error = true;
			this.showError('formShareEmail', 'NotValid');
		}
		if(!error){
			var objArgs = new Object();
			objArgs['sendForm'] = 1;
			objArgs['FIO'] = $F('formShareFIO').strip();
			objArgs['Phone'] = $F('formSharePhone').strip();
			objArgs['PhoneCode'] = $F('formSharePhoneCode').strip();
			objArgs['Email'] = $F('formShareEmail').strip();
			makeCall('WebTraffic/showFormShare', objArgs);
		}
	},
	clearDataFormShare: function(){
		$('responseSendForm').setStyle({background: 'none',fontSize: '12px'});
		$('agreeShare').checked = false;
		$('formShareFIO').setValue("");
		$('formSharePhone').setValue("");
		$('formSharePhoneCode').setValue("");
		$('formShareEmail').setValue("");
	},
	showError: function(elementId, sufix){
		if($(elementId).hasClassName('long_field')){
			$(elementId).removeClassName('long_field');
			$(elementId).addClassName('long_field_rb');
		}
		if($(elementId).hasClassName('phone')){
			$(elementId).removeClassName('phone');
			$(elementId).addClassName('phone_rb');
		}
		if($(elementId).hasClassName('kod')){
			$(elementId).removeClassName('kod');
			$(elementId).addClassName('kod_rb');
		}
		$(elementId + sufix).show();
	},
	clearError: function(elementId, sufix){
		if($(elementId).hasClassName('long_field_rb')){
			$(elementId).removeClassName('long_field_rb');
			$(elementId).addClassName('long_field');
		}
		if($(elementId).hasClassName('phone_rb')){
			$(elementId).removeClassName('phone_rb');
			$(elementId).addClassName('phone');
		}
		if($(elementId).hasClassName('kod_rb')){
			$(elementId).removeClassName('kod_rb');
			$(elementId).addClassName('kod');
		}
		$(elementId + sufix).hide();
	},
	showShareFrom: function(){
		if(document.location.hash == '#formShare'){
			$('formShare').scrollTo();
		}
	},
	getFirmForPrint: function(firmId){
		parametrs = new Object();
		parametrs['width']  = '601';
		parametrs['height'] = '500';
		parametrs['left']   = (screen.width - 601)/2;
		parametrs['top']    = (screen.height - 616)/2;
		Windows.open('/print/firmcardprint/' + firmId, 'B2b', parametrs);
	},
	showFirms: function() {
		$("tab1").className = "or_tab1_";
		$("tab2").className = "or_tab2";
		$("sc").style.display = "block";
		$("or").style.display = "none";
		$("pagerList").style.visibility = "visible";
		$("rubr_bottom").className = "rubrikator_bottom_pager";
	},
	showQueries: function() {
		$("tab1").className = "or_tab1";
		$("tab2").className = "or_tab2_";
		$("sc").style.display = "none";
		$("or").style.display = "block";
		$("pagerList").style.visibility = "hidden";
		$("rubr_bottom").className = "rubrikator_bottom";
	},
	showAllRubric: function(companyListId){
		$("additionalRub_" + companyListId).style.display = "block";
		$("bHideRub_" + companyListId).style.display = "block";
		$("bShowRub_" + companyListId).style.display = "none";
	},

	hideAllRubric: function(companyListId){
		$("additionalRub_" + companyListId).style.display = "none";
		$("bHideRub_" + companyListId).style.display = "none";
		$("bShowRub_" + companyListId).style.display = "block";
	},
	digits: function(testValue) {
		return this.regDigits.test(testValue);
	},
	goToPage: function(pageNum, totalPages, region){
		if(this.digits(pageNum) && totalPages >= pageNum && pageNum >= 1 ){
			var href = $('pagerLink').value.replace('@',pageNum);
			href += '/' + region;
			window.location.href = href;
		}
		return false;
	},
	rubricatorPager: function(pageNum, totalPages){
		if(!this.digits(pageNum) || totalPages <= pageNum || pageNum <= 1 ){
			alert('Неверный номер страницы.');
			return false;				
		}else{
			window.location.href=$('pagerLink').value.replace('@',pageNum);
			return false;
		}
	},
	infoShowRubrics: function(){
		var currentClass = $("ip_rubr_btn").className;
		if(currentClass == "ip_rubr_more"){
			$("infoRubrics").style.display = "block";
			$("ip_rubr_btn").removeClassName('ip_rubr_more');
			$("ip_rubr_btn").addClassName('ip_rubr_less');
		}else{
			$("infoRubrics").style.display = "none";
			$("ip_rubr_btn").addClassName('ip_rubr_more');
			$("ip_rubr_btn").removeClassName('ip_rubr_less');
		}
	},
	initInfopage: function(firmsCnt, annsCnt){
		$('countAllFirm').innerHTML = firmsCnt;
		$('countAllAnnouncement').innerHTML = annsCnt;
	},
	showListSecondRubric: function(id){
		if ($('child_'+id).style.display == 'block'){
			$('parent_'+id).removeClassName('opened');
			$('child_'+id).style.display = 'none';
		}else{
			$('parent_'+id).addClassName('opened');
			$('child_'+id).style.display = 'block';
		}
	},
	showListThirdRubric: function(id,parentId){
		if ($('secondChild_'+id).hasClassName('opened')){
			$('secondChild_'+id).removeClassName('opened');
			$('childSecondLevel_'+id).style.display = 'none';
		}else{
			$('secondChild_'+id).addClassName('opened');
			var objArgs = new Object();
			objArgs['rubricId'] = id;
			objArgs['firstLevelRubricId'] = parentId;
			makeCall('Webtraffic/showThirdLevelRubric', objArgs);
			
		}
	},
	calculateRubics: function(){
		var form = $('stats');
		var checkbox = form.getInputs('checkbox');
		var i=0;
		var sum=0;
		var sum2=0;
		checkbox.each ( function (item) {
			if (item.checked && !item.disabled) {
				i++;
				var elementId = item.id;
				if(elementId != 'rub_0') {
					var elements = elementId.split('_');
					sum = sum + parseInt(elements[1]);
					sum2 = sum2 + parseInt(elements[2]);
				}
			}
		});
		$('statB2bSum').innerHTML = sum;
		$('statB2bGtsSum').innerHTML = sum2;
	},

	allNumber: 0,
	allPrice: 0,
	handbooks: new Array(),
	handbook_ids: new Array(),

	initHandbooks: function(position, price, handbookId){
			this.handbooks[position] = price;
			this.handbook_ids[position] = handbookId;
	},
	changeNumberOfHandbooks: function(id, price, count){
			var number = $F('handbook_' + id);
			if(WebValidate.int(number)) {
					if(number == '') {
							var totalPrice = 0;
					} else {
							var totalPrice = parseInt(price)*parseInt(number);
					}
					$('price_' + id).innerHTML = totalPrice;
			} else {
					$('price_' + id).innerHTML = 0;
			}
			this.allNumber = 0;
			this.allPrice = 0;
			j = 0;
			for(k = 1; k <= count; k++) {
					var handbookNumber = $F('handbook_' + k);
					if(WebValidate.int(handbookNumber) && handbookNumber != '') {
							$('handbook_' + k).removeClassName('long_field_rb');
							j++;
							this.allNumber = parseInt(this.allNumber) + parseInt(handbookNumber);
							$('number_all').innerHTML = this.allNumber;
							this.allPrice = parseInt(this.allPrice) + parseInt(this.handbooks[k]*parseInt(handbookNumber));
							$('price_all').innerHTML = this.allPrice;
					} else if(handbookNumber != '') {
							$('handbook_' + k).addClassName('long_field_rb');
					} else {
							$('handbook_' + k).removeClassName('long_field_rb');
					}
			}
			if(j == 0) {
					$('number_all').innerHTML = 0;
					$('price_all').innerHTML = 0;
			}
	},
	sendOrder: function(handbooksCount){
		var err = true;
		var email = $F('email');
		var phone = $F('phone');
		var fio = $F('fio');
		var city = $F('city');

		if (email.strip().length == 0) {
			err = false;
			alert('Поле «E-mail» обязательно для заполнения');
		} else if (email.strip().length > 0 && !WebValidate.email(email.strip())) {
			err = false;
			alert('Поле «E-mail» должно иметь вид yourmail@yourdomain.com');
		} else if (phone.strip().length == 0) {
			err = false;
			alert('Поле «Телефон» обязательно для заполнения');
		} else if (fio.strip().length == 0) {
			err = false;
			alert('Поле «ФИО» обязательно для заполнения');
		} else if(this.allPrice == '0'){
			err = false;
			alert('Не выбрано ни одного справочника');
		}

		if(err) {
			var objArgs = new Object();
			var handbooksObj = new Object();
			for(i = 1; i <= handbooksCount; i++) {
				handbooksObj['id_' + i] = this.handbook_ids[i];
				handbooksObj['number_' + i] = $F('handbook_' + i);
			}
			objArgs["handbooks"] = handbooksObj;
			objArgs['email'] = email;
			objArgs['phone'] = phone;
			objArgs['fio'] = fio;
			objArgs['city'] = city;
			objArgs['type'] = "sendOrder";
			objArgs['handbooksCount'] = handbooksCount;
			makeCall('WebTraffic/showRubricator', objArgs);
		}
	}
};

WebValidate = {
	regInt: /^\d*$/,
	regEmail:        /^[a-z\d\.\-_]+@[a-z\d\.\-_]{2,}\.[a-z]{2,10}$/i,

	int: function(testValue){
			return this.regInt.test(testValue);
	},

	email: function(testValue){
			return this.regEmail.test(testValue);
	}
}
