js.include('js.prototype.prototype-mini');
js.include('skins.b2b.js.nais.FrontEnd');
js.include('skins.b2b.js.core.Filter');
js.include('skins.b2b.js.core.AJAX');
js.module('skins.b2b.js.nais.Search');
var Search = {
	_type: 'rubrics',
	_currentPage: 1,
	_types: new Array('firmResult', 'rubricResult','infopageResult'),
	_regionNamesArr: new Array(),
	_regionIdsArr: new Array(),
	regDigits: /^[\d\.]*$/,
	
	setCurrentPage: function(page) {
		this._currentPage = parseInt(page);
	},
	setCurrentType: function(type) {
		this._type = type;
	},
	switchType: function(typeId) {
		for(var i=0; i<this._types.length;i++){
			if(this._types[i] != typeId && document.getElementById(this._types[i]) != null){
				document.getElementById(this._types[i]).style.display = "none";
			}
		}
		document.getElementById(typeId).style.display = "block";
	},
	searchSubmit: function(){
		var query = this._getCurrentQuery();
		if (query){
			var objArgs = new Object();
			var regionIdStr = FrontEnd.getCookie('regionsSelect'+window.location.hostname);
			var url = window.location.hostname + '/simplesearch/search/'+ query;
			if(regionIdStr == 'all' || regionIdStr == null){
				window.location = '/simplesearch/search/'+ query;
			}else{
				window.location = '/redirectByRegion.php?listregion=' + regionIdStr + '&url=' + url;
			}
			return false;
		}
	},
	setCurrentQuery: function(query, regions) {
		query = query.replace(/&amp;/g, '&');
		query = query.replace(/&laquo;/g, '«');
		query = query.replace(/&raquo;/g, '»');
		query = query.replace(/&ordm;/g, 'º');

		document.getElementById('search_text').value = query;
	},
	searchPager: function(pageEl, totalPages, type)
	{
		var query = this._getCurrentQuery();
		if(!this.regDigits.test(pageEl.value) || totalPages < pageEl.value || pageEl.value < 1 ){
			alert('Неверный номер страницы.');
			return false;
		}
		if (query)
		{
			window.location.href='/simplesearch/search/' + query + '/'+ pageEl.value + '/' + type + '/' + $F('currentSelectedRegions');
			return false;
		}
	},
	_getCurrentQuery: function(){
		if (document.getElementById('search_text').value !='' && Filter.trim(document.getElementById('search_text').value).length >= 2){
			var query = Filter.trim(document.getElementById('search_text').value);
			query = query.replace(/"/g, '');
			//query = query.replace(/'/g,"");
			query = query.replace(/\//g,"");
			query = query.replace(/\\/g,"");
			query = query.replace(/«/g,"");
			query = query.replace(/»/g,"");
			return query;
		}else
		{
			alert('Введите запрос, состоящий из большего количества символов.');
			return false;
		}
	},
	selectAllBoxes: function(name) {
		var allBoxes = document.getElementsByName(name);
		for(i=0; i < allBoxes.length;i++) {
			allBoxes[i].checked = true;
		}
	},
	unSelectAllBoxes: function(name) {
		var allBoxes = document.getElementsByName(name);
		for(i=0; i < allBoxes.length;i++) {
			allBoxes[i].checked = false;
		}
	},
	changeVisibilityForRegions: function(){
		if($('regions').visible()) {
			$('regions').hide();
			var regionsLength = this._regionIdsArr.length;
			if(regionsLength > 0) {
				if(this._regionIdsArr[0] != 'all'){
					this.unSelectAllBoxes('regionsGroup');
					for(var j=0; j<regionsLength; j++){
						$('region_' + this._regionIdsArr[j]).checked = true;
					}
				} else {
					this.selectAllBoxes('regionsGroup');
				}
			}
		} else {
			$('regions').show();
			if($('pageType') != null) {
				var pageType = $F('pageType');
				if(pageType == 'infopage') {
					$('regions').scrollTo();
				}
			}
		}
	},
	selectRegions: function(cnt){
		this._regionIdsArr = new Array();
		this._regionNamesArr = new Array();
		var result = "";
		var coll = document.getElementsByName('regionsGroup');
		var selectedCnt = 0;
		if(coll != undefined && coll != null){
			for(var i=0; i<coll.length; i++){
				if(coll[i].checked){
					result = result + coll[i].value + ",";
					selectedCnt = selectedCnt + 1;
				}
			}
			result = result.substring(0, result.length-1);
		}
		var pageType = '';
		if($('pageType') != null) {
			pageType = $F('pageType');
		}
		if(selectedCnt != cnt && selectedCnt > 0) {
			var regionsAndIdsArr = result.split(",");
			var regionsString;
			var regionIdStr;
			var regionsLength = regionsAndIdsArr.length;
			for(var j=regionsLength-1; j>=0; j--){
				var regionAndId = regionsAndIdsArr[j].split("_");
				this._regionIdsArr[j] = regionAndId[0];
				this._regionNamesArr[j] = regionAndId[1];
				regionsString = regionAndId[1];
				if(j == regionsLength-1) {
					regionIdStr = regionAndId[0];
				} else {
					regionIdStr = regionAndId[0] + ',' + regionIdStr;
				}
			}
			if(regionsLength > 1) {
				regionsString = regionsString + '...';
			}
			$('regions').hide();
			$('selectedRegion').innerHTML = regionsString;

			FrontEnd.setCookie('regionsSelect'+window.location.hostname, regionIdStr, '1', '/');
			if(pageType == 'main'){
				var url = window.location.hostname + '/regions';
			}else if(pageType == 'level2'){
				var url = window.location.hostname + '/rubricator/company/' + $F('parentRubricId') + '/0/0/1';
			}else if(pageType == 'level3'){
				var url = window.location.hostname + '/rubricator/company/' + $F('parentRubricLevel2Id') + '/' + $F('parentRubricId') + '/0/1';
			}else if(pageType == 'level4'){
				var url = window.location.hostname + '/rubricator/company/' + $F('level2RubricId') + '/' + $F('level3RubricId') + '/' + $F('parentRubricId') + '/1';
			}else if(pageType == 'level5'){
				var url = window.location.hostname + '/rubricator/company/0/0/' + $F('parentRubricId') + '/1';
			}else if(pageType != 'infopage'){
				var url = window.location.hostname + $F('currentPageLink');
			}
			if(pageType != 'infopage') {
				window.location = '/redirectByRegion.php?listregion=' + regionIdStr + '&url=' + url;
			} else {
				window.location = window.location;
			}
		}else if(selectedCnt == cnt){
			this._regionIdsArr[0] = 'all';
			this._regionNamesArr[0] = 'all';
			regionsString = 'все регионы';
			$('regions').hide();
			$('selectedRegion').innerHTML = regionsString;
			FrontEnd.setCookie('regionsSelect'+window.location.hostname, 'all', '1', '/');

			if(pageType == 'main'){
				window.location = '/';
			}else if(pageType == 'level2'){
				window.location = 'http://' + window.location.hostname + '/rubricator/company/' + $F('parentRubricId') + '/0/0/1/0/';
			}else if(pageType == 'level3'){
				window.location = 'http://' + window.location.hostname + '/rubricator/company/' + $F('parentRubricLevel2Id') + '/' + $F('parentRubricId') + '/0/1/0/';
			}else if(pageType == 'level4'){
				window.location = 'http://' + window.location.hostname + '/rubricator/company/' + $F('level2RubricId') + '/' + $F('level3RubricId') + '/' + $F('parentRubricId') + '/1/0';
			}else if(pageType == 'level5'){
				window.location = 'http://' + window.location.hostname + '/rubricator/company/0/0/' + $F('parentRubricId') + '/1/0';
			}else if(pageType != 'infopage'){
				window.location = 'http://' + window.location.hostname + $F('currentPageLink');
			} else {
				window.location = window.location;
			}
		} else {
			alert('Выберите по крайней мере один регион.');
		}
	},
	initRegions: function(regUrl){
		if(regUrl != '' && regUrl != undefined){
			var regions = regUrl;
		}else{		
			var regions = FrontEnd.getCookie('regionsSelect'+window.location.hostname);
		}
		if(regions == 'all') {
			$('selectedRegion').innerHTML = 'все регионы';
			this.selectAllBoxes('regionsGroup');
		} else if(regions != null) {
			var regionsArr = regions.split(',');
			var nameObj = $('regionName_' + regionsArr[0]);
			var name = nameObj.getValue();
			var regionsLength = regionsArr.length;
			if(regionsLength > 1){
				name += '...';
			}
			$('selectedRegion').innerHTML = name;

			if(regionsLength > 0) {
				this.unSelectAllBoxes('regionsGroup');
				for(var j=0; j<regionsLength; j++){
					$('region_' + regionsArr[j]).checked = true;
				}

			}
		}
	},
	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";
	}
};
