js.include('js.prototype.prototype-mini');
js.include('js.scriptaculous.effects');
js.include('skins.b2b.js.core.Filter');
js.include('skins.b2b.js.core.Validate');
js.include('skins.b2b.js.core.Checkbox');
js.module('skins.b2b.js.nais.TrafficDB');

TrafficDB = {
	currentFilialNumber: 0,
	commentUploadPhoto: null,
	uploadBeginFlag: 0,
	uploadOperationFlag: null,
	uploadDeleteFileName: null,
	openFilialForm: false, 
	regTextField: /^[a-zа-я_0-9-\s\.\(\)\[\]\/,#№"']*$/i,
	regPhoneCode: /^[0-9\(\)]*$/i,
	regPhone: /^[0-9\-\+]*$/i,
	regUrl: /^(www\.)?[а-яА-Яa-zA-Z0-9-\.]+\.(com|ru|org|net|mil|edu|ca|co.uk|com.au|gov|biz|su|de|ру)$/i,
	openTab: function(tabName){
		var objArgs = new Object();
		objArgs['newStep'] = tabName;
		objArgs['currentStep'] = $('currentStep').getValue();
		if($('currentStep').getValue() == "contact"){
			var DataTab = this.getDataContactTab();
		}else if($('currentStep').getValue() == "company"){
			var DataTab = this.getDataCompanyTab();
		}else if($('currentStep').getValue() == "photo"){
			var DataTab = this.getDataPhotoTab();
		}else if($('currentStep').getValue() == "filial"){
			var DataTab = this.getDataFilialTab();
		}else if($('currentStep').getValue() == "services"){
			var DataTab = this.getDataServicesTab();
		}else if($('currentStep').getValue() == "sender"){
			var DataTab = this.getDataSenderTab();
		} else if($('currentStep').getValue() == "view"){
			var DataTab = new Object();
		}
		if(DataTab != null){
			objArgs['dataTab'] = DataTab;
			if(this.uploadOperationFlag != null){
				objArgs['operation'] = this.uploadOperationFlag;
				this.uploadOperationFlag = null;
			}
			if(this.uploadDeleteFileName != null){
				objArgs['fileName'] = this.uploadDeleteFileName;
				this.uploadDeleteFileName = null;
			}
			$('args').value = Object.toJSON(objArgs);
			document.qustionnaireForm.submit();
		}
	},

	sendAllDataAnketa: function(){
		var objArgs = new Object();
		objArgs['saveAllData'] = true;
		$('args').value = Object.toJSON(objArgs);
		document.qustionnaireForm.submit();
	},

	getDataContactTab: function(){
		var error = false;
		var objArgsContact = new Object();
		this.clearError('juristicFirmName');
		this.clearError('city');
		this.clearError('region');
		this.clearError('adress');
		this.clearError('phoneMain');
		this.clearError('phoneCodeMain');
		this.clearError('phoneAdditionalFirst');
		this.clearError('phoneCodeAdditionalFirst');
		this.clearError('phoneAdditionalSecond');
		this.clearError('phoneCodeAdditionalSecond');
		this.clearError('fax');
		this.clearError('faxCode');
		this.clearError('emailFirst');
		this.clearValidateError('phoneMain', 'phoneMainNotValid');
		this.clearValidateError('postalCode', 'postalCodeNotValid');
		this.clearValidateError('emailFirst', 'emailFirstNotValid');
		this.clearValidateError('siteFirst', 'siteFirstNotValid');

		if(Filter.trim($('juristicFirmName').getValue()) == ""){
			error = true;
			this.showError('juristicFirmName');
		}
		if(Filter.trim($('city').getValue()) == ""){
			error = true;
			this.showError('city');
		}
		if(Filter.trim($('adress').getValue()) == ""){
			error = true;
			this.showError('adress');
		}
		if(Filter.trim($('phoneMain').getValue()) == ""){
			error = true;
			this.showError('phoneMain');
		}else if(Filter.trim($F('phoneMain')) != "" &&
				!this.regPhone.test($F('phoneMain'))){
			error = true;
			this.showValidateError('phoneMain', 'phoneMainNotValid');
		}else if(Filter.trim($F('phoneCodeMain')) != "" &&
				 !this.regPhoneCode.test($F('phoneCodeMain'))){
			error = true;
			this.showError('phoneCodeMain');
		}

		if(Filter.trim($F('phoneAdditionalFirst')) != "" &&
			!this.regPhone.test($F('phoneAdditionalFirst'))){
			error = true;
			this.showError('phoneAdditionalFirst');
		}else if(Filter.trim($F('phoneAdditionalFirst')) != "" &&
				Filter.trim($F('phoneCodeAdditionalFirst')) != "" &&
				!this.regPhoneCode.test($F('phoneCodeAdditionalFirst'))){
			error = true;
			this.showError('phoneCodeAdditionalFirst');
		}
		if(Filter.trim($F('phoneAdditionalSecond')) != "" &&
			!this.regPhone.test($F('phoneAdditionalSecond'))){
			error = true;
			this.showError('phoneAdditionalSecond');
		}else if(Filter.trim($F('phoneAdditionalSecond')) != "" &&
				Filter.trim($F('phoneCodeAdditionalSecond')) != "" &&
				!this.regPhoneCode.test($F('phoneCodeAdditionalSecond'))){
			error = true;
			this.showError('phoneCodeAdditionalSecond');
		}
		if(Filter.trim($F('fax')) != "" &&
			!this.regPhone.test($F('fax'))){
			error = true;
			this.showError('fax');
		}else if(Filter.trim($F('fax')) != "" &&
				Filter.trim($F('faxCode')) != "" &&
				!this.regPhoneCode.test($F('faxCode'))){
			error = true;
			this.showError('faxCode');
		}
		if(Filter.trim($('emailFirst').getValue()) == ""){
			error = true;
			this.showError('emailFirst');
		}else if(!Validate.email($F('emailFirst'))){
			error = true;
			this.showValidateError('emailFirst', 'emailFirstNotValid');
		}
		if(Filter.trim($('postalCode').getValue()) != "" &&
			!Validate.digits($('postalCode').getValue()))
		{
			error = true;
			this.showValidateError('postalCode', 'postalCodeNotValid');
		}
		if(Filter.trim($F('siteFirst')) != "" &&
			!this.regUrl.test($F('siteFirst'))){
			error = true;
			this.showValidateError('siteFirst', 'siteFirstNotValid');
		}
		if($F('region') == 0){
			this.showError('region');
			error = true;
		}

		if(error){
			return null;
		}else{
			objArgsContact['brandFirmName'] = $('brandFirmName').getValue();
			objArgsContact['juristicFirmName'] = $('juristicFirmName').getValue();
			objArgsContact['postalCode'] = $('postalCode').getValue();
			objArgsContact['city'] = $('city').getValue();
			objArgsContact['region'] = $F('region');
			objArgsContact['adress'] = $('adress').getValue();
			objArgsContact['phoneCodeMain'] = $('phoneCodeMain').getValue();
			objArgsContact['phoneMain'] = $('phoneMain').getValue();
			objArgsContact['phoneCodeMain'] = $('phoneCodeMain').getValue();
			objArgsContact['phoneMain'] = $('phoneMain').getValue();
			objArgsContact['phoneCodeAdditionalFirst'] = $('phoneCodeAdditionalFirst').getValue();
			objArgsContact['phoneAdditionalFirst'] = $('phoneAdditionalFirst').getValue();
			objArgsContact['phoneCodeAdditionalSecond'] = $('phoneCodeAdditionalSecond').getValue();
			objArgsContact['phoneAdditionalSecond'] = $('phoneAdditionalSecond').getValue();
			objArgsContact['faxCode'] = $('faxCode').getValue();
			objArgsContact['fax'] = $('fax').getValue();
			objArgsContact['siteFirst'] = $('siteFirst').getValue();
			objArgsContact['emailFirst'] = $('emailFirst').getValue();
			return objArgsContact;
		}
	},

	getDataCompanyTab: function(){
		var error = false;
		this.clearError('dateFirm');
		this.clearError('anonsFirm');
		this.clearError('aboutFirm');
		this.clearValidateError('dateFirm', 'dateFirmNotValid');
		this.clearValidateError('anonsFirm', 'anonsFirmNotValid');
		this.clearValidateError('aboutFirm', 'aboutFirmNotValid');
		if(Filter.trim($('dateFirm').getValue()) == ""){
			this.showError('dateFirm');
			error = true;
		}else if($F('dateFirm').length > 250){
			this.showValidateError('dateFirm', 'dateFirmNotValid');
			error = true;
		}
		if(Filter.trim($('anonsFirm').getValue()) == ""){
			this.showError('anonsFirm');
			error = true;
		}else if($F('anonsFirm').length > 130){
			this.showValidateError('anonsFirm', 'anonsFirmNotValid');
			error = true;
		}
		if(Filter.trim($('aboutFirm').getValue()) == ""){
			this.showError('aboutFirm');
			error = true;
		}else if($F('aboutFirm').length > 1000){
			this.showValidateError('aboutFirm', 'aboutFirmNotValid');
			error = true;
		}
		if(error){
			return null;
		}else{
			var objArgsCompany = new Object();
			objArgsCompany['downTime'] = $F('dateFirm');
			objArgsCompany['anonsFirm'] = $F('anonsFirm');
			objArgsCompany['aboutFirm'] = $F('aboutFirm');
			return objArgsCompany;
		}
	},

	getDataServicesTab: function(){
		var error = false;
		this.clearError('services');
		this.clearError('paymentOther');
		this.clearValidateError('services', 'servicesNotValid');
		this.clearValidateError('brand', 'brandNotValid');
		this.clearUploadError('uploadPriceBigSize');
		this.clearUploadError('uploadPricePartial');
		this.clearUploadError('uploadPriceNotUploaded');
		this.clearUploadError('uploadPriceWrongMime');
		this.clearUploadError('uploadPriceNoFile');
		$('meansPayError').hide();
		var meansPayData = Checkbox.getValue('meansPay');
		if(!meansPayData){
			$('meansPayError').show();
			error = true;
		}
		if(Filter.trim($('services').getValue()) == ""){
			this.showError('services');
			error = true;
		}else if($('services').length > 700){
			this.showValidateError('services', 'servicesNotValid');
			error = true;
		}
		if($F('checkboxPaymentOther') == 7 && Filter.trim($F('paymentOther')) == ""){
			this.showError('paymentOther');
			error = true;
		}
		if(Filter.trim($F('brand')) != "" && $F('brand').length > 200){
			this.showValidateError('brand', 'brandNotValid');
			error = true;
		}
		if(error){
			return null;
		}else{
			var objArgsServices = new Object();
			objArgsServices['meansPay'] = meansPayData;
			objArgsServices['brand'] = $F('brand');

			objArgsServices['services'] = $F('services');
			if($F('checkboxPaymentOther') == 7){
				objArgsServices['paymentOther'] = $F('paymentOther');
			}
			return objArgsServices;
		}
	},

	getDataSenderTab: function(){
		var error = false;
		this.clearError('senderName');
		this.clearError('senderPost');
		this.clearError('senderEmail');

		if(Filter.trim($('senderName').getValue()) == ""){
		   error = true;
		   this.showError('senderName');
		}
		if(Filter.trim($('senderPost').getValue()) == ""){
		   error = true;
		   this.showError('senderPost');
		}
		if(Filter.trim($('senderEmail').getValue()) == ""){
		   error = true;
		   this.showError('senderEmail');
		}else if(!Validate.email($F('senderEmail'))){
		   error = true;
		   this.showValidateError('senderEmail', 'senderEmailNotValid');
		}

		if(error){
		   return null;
		}else{
			var objArgsSender = new Object();
			objArgsSender['senderName'] = $F('senderName');
			objArgsSender['senderPost'] = $F('senderPost');
			objArgsSender['senderEmail'] = $F('senderEmail');
			return objArgsSender;
		}
	},

	getDataPhotoTab: function(){
		var objArgsPhotoLogo = new Object();
		objArgsPhotoLogo['commentAnons'] = $F('commentAnons');
		objArgsPhotoLogo['photoComment'] = $F('photoComment');
		return objArgsPhotoLogo;
	},

	showError: function(id){
		$(id).addClassName('error');
		$(id + 'Error').show();
	},

	showValidateError: function(fieldId, errorId){
		$(fieldId).addClassName('error');
		$(errorId).show();
	},

	clearValidateError: function(fieldId, errorId){
		$(errorId).hide();
		if($(fieldId).hasClassName('error')){
			$(fieldId).removeClassName('error');
		}else if($(fieldId).hasClassName('site_rb')){
			$(fieldId).removeClassName('site_rb');
		}else if($(fieldId).hasClassName('phone_rb')){
			$(fieldId).removeClassName('phone_rb');
		}
	},

	clearError: function(id){
		$(id + 'Error').hide();
		if($(id).hasClassName('error')){
			$(id).removeClassName('error');
		}else if($(id).hasClassName('phone_rb')){
			$(id).removeClassName('phone_rb');
		}else if($(id).hasClassName('kod_rb')){
			$(id).removeClassName('kod_rb');
		}
	},

	showUploadError: function(id){
		$(id).show();
	},

	clearUploadError: function(id){
		$(id).hide();
	},
	uploadPhoto: function()
	{
		if(Filter.trim($F('uploadPhoto')) == ""){
			this.showUploadError('uploadPhotoNoFile');
		}else{
			this.uploadOperationFlag = 'savephoto';
			this.openTab('photo');
		}
	},
	uploadLogo: function()
	{
		if(Filter.trim($F('uploadLogo')) == ""){
			this.showUploadError('uploadLogoNoFile');
		}else{
			this.uploadOperationFlag = 'savelogo';
			this.openTab('photo');
		}
	},
	uploadPrice: function()
	{
		if(Filter.trim($F('uploadPrice')) == ""){
			this.showUploadError('uploadPriceNoFile');
		}else{
			this.uploadOperationFlag = 'saveprice';
			this.openTab('services');
		}
	},
	deleteUploadPhoto: function(fileName)
	{
		this.uploadDeleteFileName = fileName;
		this.uploadOperationFlag = 'deletephoto';
		this.openTab('photo');
	},
	deleteUploadLogo: function()
	{
		this.uploadOperationFlag = 'deletelogo';
		this.openTab('photo');
	},

	deleteUploadPrice: function()
	{
		this.uploadOperationFlag = 'deleteprice';
		this.openTab('services');
	},

	showStatusUploadLogo: function(){
		$('statusUploadLogoData').show();
		$('uploadLogo').setValue("");
		$('uploadLogo').disable();
		$('uploadLogoSave').disable();
	},

	hiddenUploadLogo: function(){
		$('statusUploadLogoData').hide();
		$('uploadLogo').setValue("");
		$('uploadLogo').enable();
		$('uploadLogoSave').enable();
	},

	showStatusUploadPrice: function(){
		$('statusUploadPriceData').show();
		$('uploadPrice').setValue("");
		$('uploadPrice').disable();
		$('uploadPriceSave').disable();
	},

	hiddenUploadPrice: function(){
		$('statusUploadPriceData').hide();
		$('uploadPrice').setValue("");
		$('uploadPrice').enable();
		$('uploadPriceSave').enable();
	},

	errorTabData: function(tabName){
		if(tabName == "contact"){
			this.getDataContactTab();
		}else if(tabName == "company"){
			this.getDataCompanyTab();
		}else if(tabName == "services"){
		   this.getDataServicesTab();
		}else if(tabName == "sender"){
		   this.getDataSenderTab();
		}
	},

	changeDisplayOtherPayment: function(){
		this.clearError('paymentOther');
		if($F('checkboxPaymentOther') == 7){
			$('fieldPaymentOther').show();
		}else{
			$('fieldPaymentOther').hide();
		}
	},

	windowOverlay: function(status)
	{
		var window_overlay = $('window_overlay')
		if(null != window_overlay) {
			if('on' === status) {
				new Effect.Appear('window_overlay', {duration: 0.5, from: 0.0 , to: 0.2});
				window_overlay.style.height = Element.getDimensions(document.body).height+'px';
				window_overlay.style.width = Element.getDimensions(document.body).width+'px'
				//Event.observe('window_overlay', 'click', function() { Xms.windowOverlay('off') } );
				return true;
			} else if('off' === status) {
				//Event.stopObserving('window_overlay', 'click', function() { Xms.windowOverlay('off') } );
				new Effect.Fade('window_overlay', {duration: 0.5});
				return true;
			} else {
				alert('Unknow status');
				return false;
			}
		} else {
			alert('No overlay div found. Check your code please.');
			return false;
		}
	},
	initAddCompanyForm: function(step){
		switch(step){
			case 'aboutCompany':
				if($F('productsCompany').strip() != ''){
					var text = $F('productsCompany').strip();
					$('productsCompanyLetterCounter').innerHTML = text.length;
				}
				if($F('brandsCompany').strip() != ''){
					var text = $F('brandsCompany').strip();
					$('brandsCompanyLetterCounter').innerHTML = text.length;
				}
				$('productsCompany').observe('keyup', function(event){
					TrafficDB.addCompanyCounterLetter('productsCompany', 700);
				});
				$('brandsCompany').observe('keyup', function(event){
					TrafficDB.addCompanyCounterLetter('brandsCompany', 200);
				});
			break;
			case 'contactsCompany':
				$('phoneMainCode').observe('keyup', function(event){
					TrafficDB.addCompanyValidataCodePhone('phoneMainCode');
				});
				$('phoneMain').observe('keyup', function(event){
					TrafficDB.addCompanyValidataPhone('phoneMain');
				});
				$('phoneFirstCode').observe('keyup', function(event){
					TrafficDB.addCompanyValidataCodePhone('phoneFirstCode');
				});
				$('phoneFirst').observe('keyup', function(event){
					TrafficDB.addCompanyValidataPhone('phoneFirst');
				});
				$('phoneSecondCode').observe('keyup', function(event){
					TrafficDB.addCompanyValidataCodePhone('phoneSecondCode');
				});
				$('phoneSecond').observe('keyup', function(event){
					TrafficDB.addCompanyValidataPhone('phoneSecond');
				});
				$('faxCode').observe('keyup', function(event){
					TrafficDB.addCompanyValidataCodePhone('faxCode');
				});
				$('faxNumber').observe('keyup', function(event){
					TrafficDB.addCompanyValidataPhone('faxNumber');
				});
				$('site').observe('keyup', function(event){
					TrafficDB.addCompanyValidateSite('site');
				});
				$('zipcode').observe('keyup', function(event){
					TrafficDB.addCompanyValidataCodePhone('zipcode');
				});
			break;
			case 'filialsCompany':
				$('phoneMainCode').observe('keyup', function(event){
					TrafficDB.addCompanyValidataCodePhone('phoneMainCode');
				});
				$('phoneMain').observe('keyup', function(event){
					TrafficDB.addCompanyValidataPhone('phoneMain');
				});
				$('phoneFirstCode').observe('keyup', function(event){
					TrafficDB.addCompanyValidataCodePhone('phoneFirstCode');
				});
				$('phoneFirst').observe('keyup', function(event){
					TrafficDB.addCompanyValidataPhone('phoneFirst');
				});
				$('phoneSecondCode').observe('keyup', function(event){
					TrafficDB.addCompanyValidataCodePhone('phoneSecondCode');
				});
				$('phoneSecond').observe('keyup', function(event){
					TrafficDB.addCompanyValidataPhone('phoneSecond');
				});
				$('faxCode').observe('keyup', function(event){
					TrafficDB.addCompanyValidataCodePhone('faxCode');
				});
				$('faxNumber').observe('keyup', function(event){
					TrafficDB.addCompanyValidataPhone('faxNumber');
				});
				$('zipcode').observe('keyup', function(event){
					TrafficDB.addCompanyValidataCodePhone('zipcode');
				});
			break;
			case 'sender':
				
			break;
		}
	},
	addCompanyGoToStep: function(step){
		var error = false;
		var objArgs = new Object();
		switch($F('currentStep')){
			case 'aboutCompany':
				if(this.addCompanyValidateAboutCompany()){
					objArgs = this.addCompanyGetDataAboutCompany();
				}else{
					error = true;
				}
			break;
			case 'contactsCompany':
				if(this.addCompanyValidateContactsCompany()){
					objArgs = this.addCompanyGetDataContactsCompany();
				}else{
					error = true;
				}
			break;
			case 'filialsCompany':
				if(step == 'filialsCompany'){
					if(this.addCompanyValidateFilialsCompany()){
						objArgs = this.addCompanyGetDataFilialsCompany();
						objArgs['saveData'] = true;
						if($('numberFilial') != null){
							objArgs['numberFilial'] = $F('numberFilial');
						}
					}else{
						error = true;
					}
				}else{
					objArgs['saveData'] = false;
				}
			break;
			case 'sender':
				if(this.addCompanyValidateSender()){
					objArgs = this.addCompanyGetDataSender();
				}else{
					error = true;
				}
			break;
			/*case 'previewData':
			break;
			case 'final':
			break; нужны ли?*/
		}
		if(!error){
			objArgs['step'] = step;
			objArgs['currentStep'] = $F('currentStep');
			$('args').value = Object.toJSON(objArgs);
			document.formAddCompany.submit();
		}
	},
	addCompanyEditFilial: function(numberFilial){
		var objArgs = new Object();
		objArgs['step'] = 'filialsCompany';
		objArgs['currentStep'] = 'showEditFilialForm';
		objArgs['numberFilial'] = numberFilial;
		$('args').value = Object.toJSON(objArgs);
		document.formAddCompany.submit();
	},
	addCompanyDeleteFilial: function(numberFilial){
		if(confirm('Вы действительно хотите удалить филиал?')){
			var objArgs = new Object();
			objArgs['step'] = 'filialsCompany';
			objArgs['currentStep'] = 'deleteFilial';
			objArgs['numberFilial'] = numberFilial;
			$('args').value = Object.toJSON(objArgs);
			document.formAddCompany.submit();
		}
	},
	addCompanyShowAddFilialForm: function(){
		$('buttonAddFilialForCompany').hide();
		$('formAddFilialForCompany').show();
		$('formAddFilialForCompany').scrollTo();
	},
	addCompanyNotAddFilialForm: function(){
		alert('Действие не может быть выполнено. Сохраните редактируемый филиал.');
	},
	addCompanyHideAddFilialForm: function(){
		$('formAddFilialForCompany').hide();
		$('buttonAddFilialForCompany').show();
	},
	/* block validat form data */
	addCompanyValidateAboutCompany: function(){
		var validate = true;
		var listElement = new Array(
			'nameCompany',
			'managerFIO',
			'managerPost',
			'productsCompany'
		);
		this.addCompanyClearErrors(listElement);
		if($F('nameCompany').strip() == ''){
			validate = false;
			this.addCompanyShowError('nameCompany');
			this.addCompanyShowErrorText('nameCompany', 'emptyField');
		}
		if($F('managerFIO').strip() == ''){
			validate = false;
			this.addCompanyShowError('managerFIO');
			this.addCompanyShowErrorText('managerFIO', 'emptyField');
		}
		if($F('managerPost').strip() == ''){
			validate = false;
			this.addCompanyShowError('managerPost');
			this.addCompanyShowErrorText('managerPost', 'emptyField');
		}
		if($F('productsCompany').strip() == ''){
			validate = false;
			this.addCompanyShowError('productsCompany');
			this.addCompanyShowErrorText('productsCompany', 'emptyField');
		}
		return validate;
	},
	addCompanyValidateContactsCompany: function(){
		var validate = true;
		var regEmail = /^[а-яА-Яa-zA-Z\d\.\-_]+@[а-яА-Яa-zA-Z\d\.\-_]{2,}\.[а-яА-Яa-zA-Z]{2,10}$/i;
		var listElement = new Array(
			'phoneMain',
			'email',
			'listRegion',
			'city',
			'address'
		);
		this.addCompanyClearErrors(listElement);
		if($F('phoneMain').strip() == ''){
			validate = false;
			this.addCompanyShowError('phoneMain');
			this.addCompanyShowErrorText('phoneMain', 'emptyField');
		}
		if($F('email').strip() == ''){
			validate = false;
			this.addCompanyShowError('email');
			this.addCompanyShowErrorText('email', 'emptyField');
		}else if($F('email').strip() != '' && !regEmail.test($F('email'))){
			validate = false;
			this.addCompanyShowError('email');
			this.addCompanyShowErrorText('email', 'notFormatValidField');
		}
		if($F('city').strip() == ''){
			validate = false;
			this.addCompanyShowError('city');
			this.addCompanyShowErrorText('city', 'emptyField');
		}
		if($F('address').strip() == ''){
			validate = false;
			this.addCompanyShowError('address');
			this.addCompanyShowErrorText('address', 'emptyField');
		}
		if($F('listRegion') == 0){
			validate = false;
			this.addCompanyShowError('listRegion');
			this.addCompanyShowErrorText('listRegion', 'emptyField');
		}
		if(this.addCompanyPhoneValidateError || this.addCompanySiteValidateError){
			validate = false;
		}
		return validate;
	},
	addCompanyValidateFilialsCompany: function(){
		var validate = true;
		var listElement = new Array(
			'nameCompany',
			'phoneMain',
			'listRegion',
			'city',
			'address'
		);
		this.addCompanyClearErrors(listElement);
		if($F('nameCompany').strip() == ''){
			validate = false;
			this.addCompanyShowError('nameCompany');
			this.addCompanyShowErrorText('nameCompany', 'emptyField');
		}
		if($F('phoneMain').strip() == ''){
			validate = false;
			this.addCompanyShowError('phoneMain');
			this.addCompanyShowErrorText('phoneMain', 'emptyField');
		}
		if($F('city').strip() == ''){
			validate = false;
			this.addCompanyShowError('city');
			this.addCompanyShowErrorText('city', 'emptyField');
		}
		if($F('address').strip() == ''){
			validate = false;
			this.addCompanyShowError('address');
			this.addCompanyShowErrorText('address', 'emptyField');
		}
		if($F('listRegion') == 0){
			validate = false;
			this.addCompanyShowError('listRegion');
			this.addCompanyShowErrorText('listRegion', 'emptyField');
		}
		if(this.addCompanyPhoneValidateError){
			validate = false;
		}
		return validate;
	},
	addCompanyValidateSender: function(){
		var validate = true;
		var listElement = new Array(
			'senderFIO',
			'senderAppointment'
		);
		this.addCompanyClearErrors(listElement);
		if($F('senderFIO').strip() == ''){
			validate = false;
			this.addCompanyShowError('senderFIO');
			this.addCompanyShowErrorText('senderFIO', 'emptyField');
		}
		if($F('senderAppointment').strip() == ''){
			validate = false;
			this.addCompanyShowError('senderAppointment');
			this.addCompanyShowErrorText('senderAppointment', 'emptyField');
		}
		return validate;
	},
	/* block validat form data */
	/* block get form data */
	addCompanyGetDataAboutCompany: function(){
		var objArgs = new Object();
		objArgs['brandNameCompany'] = $F('brandNameCompany').strip();
		objArgs['nameCompany']      = $F('nameCompany').strip();
		objArgs['managerFIO']       = $F('managerFIO').strip();
		objArgs['managerPost']      = $F('managerPost').strip();
		objArgs['productsCompany']  = $F('productsCompany').strip();
		objArgs['brandsCompany']    = $F('brandsCompany').strip();
		return objArgs;
	},
	addCompanyGetDataContactsCompany: function(){
		var objArgs = new Object();
		objArgs['phoneMainCode']   = $F('phoneMainCode').strip();
		objArgs['phoneMain']       = $F('phoneMain').strip();
		objArgs['phoneFirstCode']  = $F('phoneFirstCode').strip();
		objArgs['phoneFirst']      = $F('phoneFirst').strip();
		objArgs['phoneSecondCode'] = $F('phoneSecondCode').strip();
		objArgs['phoneSecond']    = $F('phoneSecond').strip();
		objArgs['faxCode']        = $F('faxCode').strip();
		objArgs['faxNumber']      = $F('faxNumber').strip();
		objArgs['site']           = $F('site').strip();
		objArgs['email']          = $F('email').strip();
		objArgs['zipcode']        = $F('zipcode').strip();
		objArgs['listRegion']     = $F('listRegion');
		objArgs['city']           = $F('city').strip();
		objArgs['address']        = $F('address').strip();
		return objArgs;
	},
	addCompanyGetDataFilialsCompany: function(){
		var objArgs = new Object();
		objArgs['nameCompany']     = $F('nameCompany').strip();
		objArgs['phoneMainCode']   = $F('phoneMainCode').strip();
		objArgs['phoneMain']       = $F('phoneMain').strip();
		objArgs['phoneFirstCode']  = $F('phoneFirstCode').strip();
		objArgs['phoneFirst']      = $F('phoneFirst').strip();
		objArgs['phoneSecondCode'] = $F('phoneSecondCode').strip();
		objArgs['phoneSecond']    = $F('phoneSecond').strip();
		objArgs['faxCode']        = $F('faxCode').strip();
		objArgs['faxNumber']      = $F('faxNumber').strip();
		objArgs['zipcode']        = $F('zipcode').strip();
		objArgs['listRegion']     = $F('listRegion');
		objArgs['city']           = $F('city').strip();
		objArgs['address']        = $F('address').strip();
		return objArgs;
	},
	addCompanyGetDataSender: function(){
		var objArgs = new Object();
		objArgs['senderFIO'] = $F('senderFIO').strip();
		objArgs['senderAppointment'] = $F('senderAppointment').strip();
		return objArgs;
	},
	/* block get form data */
	/* block fich */
	addCompanyShowError: function(elementId){
		$(elementId).addClassName('error');
	},
	addCompanyShowErrorText: function(elementId, type){
		var divId = elementId + 'Error';
		var msgError = "";
		switch(type){
			case 'emptyField':
				msgError = 'Поле является обязательным для заполнения';
			break;
			case 'notValidField':
				msgError = 'Поле содержит недопустимые символы';
			break;
			case 'notFormatValidField':
				msgError = 'Неверный формат ввода данных';
			break;
		}
		$(divId).innerHTML = msgError;
		$(divId).show();
	},
	addCompanyClearError: function(elementId){
		$(elementId).removeClassName('error');
		if($(elementId + 'Error').visible()){
			$(elementId + 'Error').hide();
		}
	},
	addCompanyClearErrors: function(arrayElementId){
		arrayElementId.each ( function (item) {
			TrafficDB.addCompanyClearError(item);
		} );
	},
	addCompanyCounterLetter: function(elementId, maxCountLetter){
		var textLength = $F(elementId).length;
		var errorLength = false;
		if(textLength > maxCountLetter){
			var newText = $F(elementId).substr(0, maxCountLetter);
			$(elementId).setValue(newText);
			errorLength = true;
		}
		if(errorLength){
			$(elementId + 'LetterCounter').innerHTML = maxCountLetter;
		}else{
			$(elementId + 'LetterCounter').innerHTML = textLength;
		}
	},
	addCompanyPhoneValidateError: false,
	addCompanySiteValidateError: false,
	addCompanyValidataPhone: function(elementId){
		var regPhone = /^[a-zа-я0-9.\s\-\+]*$/i;
		if(!regPhone.test($F(elementId))){
			this.addCompanyShowError(elementId);
			this.addCompanyShowErrorText(elementId, 'notValidField');
			this.addCompanyPhoneValidateError = true;
		}else{
			this.addCompanyClearError(elementId);
			this.addCompanyPhoneValidateError = false;
		}
	},
	addCompanyValidataCodePhone: function(elementId){
		if(!this.regPhoneCode.test($F(elementId))){
			this.addCompanyShowError(elementId);
			this.addCompanyShowErrorText(elementId, 'notValidField');
			this.addCompanyPhoneValidateError = true;
		}else{
			this.addCompanyClearError(elementId);
			this.addCompanyPhoneValidateError = false;
		}
	},
	addCompanyValidateSite: function(elementId){
		var regUrl = /^(www\.)?[а-яА-Яa-zA-Z0-9-\.]+$/i;
		if($F(elementId).strip() != '' && !regUrl.test($F(elementId))){
			this.addCompanyShowError(elementId);
			this.addCompanyShowErrorText(elementId, 'notValidField');
			this.addCompanySiteValidateError = true;
		}else{
			this.addCompanyClearError(elementId);
			this.addCompanySiteValidateError = false;
		}
	},
	addCompanyScrollToFilialForm: function(){
		$('formEditFilialForCompany').scrollTo();
	},
	/* block fich */
	getAnonsHelp: function()
	{
		parametrs = new Object();
		parametrs['width']  = '601';
		parametrs['height'] = '616';
		parametrs['left']   = (screen.width - 601)/2;
		parametrs['top']    = (screen.height - 616)/2;
		Windows.open('/popup_questionnaire_tips.htm', 'Help', parametrs);
	},
    
	getCountRemainSymbol: function(elementId, maxLength){
		var valueField = $F(elementId);
		var currentLength = valueField.length;
		var remainLength = maxLength - currentLength;
		if(remainLength < 0){
			var text = valueField.substr(0, maxLength);
			$(elementId).setValue(text);
			alert('Текст не должен превышать ' + maxLength + ' символов. Введенный текст обрезан до ' + maxLength +' символов.');
		}else{
			$(elementId + 'SymbolCount').update(remainLength);
		}
        
	}

}

