var currentPage = 1,
	currentLetter = '',
	currentType = '',
	_visibleClass	= 'db',
	_visibleClassR	= 'di',
	_invisibleClass	= 'dn',
	_invisibleClass2= 'dnh';

function updateLetters(type, letter) {
	var a = [];
	a.push('<a class="cp" onclick="showItemForLetter(');
	a.push("'" + type + "',");
	a.push("'" + letter + "'");
	a.push(');">');
	a.push(letter);
	a.push('</a>');
	$('#letters').html($('#letters').html() + ' ' + a.join(""));
	return false;
}

$(document).ready(function() {
	$('.itemsCont').removeClass(_visibleClass).addClass(_invisibleClass2);
	$('#countriesLetters').html($('#letters').html());
	$('#citiesLetters').html($('#letters').html());
	$('#streetsLetters').html($('#letters').html());
});

function showItemForLetter(type, letter) {
	currentPage = 1;
	currentLetter = letter;
	currentType = type;
	
	if($('.' + type + 'Page' + currentLetter + (currentPage+1)).length){
		$('#' + type + 'Nav').removeClass(_invisibleClass2).addClass(_visibleClass);
	}else{
		$('#' + type + 'Nav').removeClass(_visibleClass).addClass(_invisibleClass2);
	}	
	
	$('.' + type + 'Grouped').removeClass(_visibleClass).addClass(_invisibleClass2);
	$('.' + type + 'Page' + currentLetter + '1').removeClass(_invisibleClass2).addClass(_visibleClass);
	
	$('.itemsCont').removeClass(_visibleClass).addClass(_invisibleClass2);
	$('#' + type + 'Cont' + currentLetter).removeClass(_invisibleClass2).addClass(_visibleClass);
	
	if($('.' + type + 'Page' + currentLetter + (currentPage+1)).hasClass(_invisibleClass2)){	
		$('#countriesNav').removeClass(_invisibleClass2);
	}else{
		$('#countriesNav').addClass(_invisibleClass2);
	}
	
	return false;
}

function prevItems(type) {
	if(currentPage > 1) {
		$('.' + type + 'Page' + currentLetter + currentPage).removeClass(_visibleClass).addClass(_invisibleClass2);
		currentPage = currentPage - 1;
		$('.' + type + 'Page' + currentLetter + currentPage).removeClass(_invisibleClass2).addClass(_visibleClass);
	}
	return false;
}

function nextItems(type) {
	if($('.' + type + 'Page' + currentLetter + (currentPage+1)).hasClass(_invisibleClass2)) {
		$('.' + type + 'Page' + currentLetter + currentPage).removeClass(_visibleClass).addClass(_invisibleClass2);
		currentPage = currentPage + 1;
		$('.' + type + 'Page' + currentLetter + currentPage).removeClass(_invisibleClass2).addClass(_visibleClass);
	}
	return false;
}

var leftNavBoxes = new Array('idBoxPath','idBoxReg','idBoxCat','idBoxEmp','idBoxAct','idBoxLF','idBoxTag', 'idBoxTagBottom', 'idBoxnTag','idBoxProfileType','idBoxCategoryKeywords', 'idBoxRegMore', 'idBoxRegMoreProvinces','idBoxView', 'idBoxFilter', 'idBoxShop');

$(document).ready(function() {
	var _linkRelList	= 'ul:first',
		_items			= 'li.jQ_countries',
		_itemsB			= 'li.jQ_countriesB',
	
	_hide = function( element ) {
		return $(element).removeClass( _visibleClass ).addClass( _invisibleClass );
	},
	_show = function( element ) {
		return $(element).removeClass( _invisibleClass ).addClass( _visibleClass );
	},
	
	_hide2 = function( element ) {
		return $(element).removeClass( _visibleClass ).addClass( _invisibleClass2 );
	},
	_show2 = function( element ) {
		return $(element).removeClass( _invisibleClass2 ).addClass( _visibleClass );
	},
	
	_hideR = function( element ) {
		return $(element).removeClass( _visibleClassR ).addClass( _invisibleClass2 );
	},
	_showR = function( element ) {
		return $(element).removeClass( _invisibleClass2 ).addClass( _visibleClassR );
	},
	
	_expandR	= function() {
		if(currentLetter != '') {
			$('#countriesNav').removeClass(_invisibleClass2).addClass(_visibleClass);
			$('#citiesNav').removeClass(_invisibleClass2).addClass(_visibleClass);
			$('#streetsNav').removeClass(_invisibleClass2).addClass(_visibleClass);
		}
		$('#countriesLetters').removeClass(_invisibleClass2).addClass(_visibleClass);
		$('#citiesLetters').removeClass(_invisibleClass2).addClass(_visibleClass);
		$('#streetsLetters').removeClass(_invisibleClass2).addClass(_visibleClass);
		_showR( $(this).parents(_linkRelList).find(_items) );
		_show2( $(this).parents(_linkRelList).find(_itemsB) );
		_show2( _hide2( $(this) ).siblings('.jQ_collapseR') );
		$('.itemsCont').removeClass(_visibleClass).addClass(_invisibleClass2);
		return false;
	},
	_collapseR = function() {
		currentLetter = '';
		$('#countriesNav').removeClass(_visibleClass).addClass(_invisibleClass2);
		$('#citiesNav').removeClass(_visibleClass).addClass(_invisibleClass2);
		$('#streetsNav').removeClass(_visibleClass).addClass(_invisibleClass2);
		$('#countriesLetters').removeClass(_visibleClass).addClass(_invisibleClass2);
		$('#citiesLetters').removeClass(_visibleClass).addClass(_invisibleClass2);
		$('#streetsLetters').removeClass(_visibleClass).addClass(_invisibleClass2);
		_hideR( $(this).parents(_linkRelList).find(_items+':gt('+regionsMax+')') );
		_hide2( $(this).parents(_linkRelList).find(_itemsB) );
		_show2( _hide2( $(this) ).siblings('.jQ_expandR') );
		$('.itemsCont').removeClass(_visibleClass).addClass(_invisibleClass2);
		return false;
	},
	
	_expandC = function() {
		_show( $(this).parents(_linkRelList).find(_items) );
		_show( _hide( $(this) ).siblings('.jQ_collapseC') );
		return false;
	},
	_collapseC = function() {
		_hide( $(this).parents(_linkRelList).find(_items+':gt('+categsMax+')') );
		_show( _hide( $(this) ).siblings('.jQ_expandC') );
		return false;
	},
	
	_expandFol = function() {
		_show( $(this).parents(_linkRelList).find(_items) );
		_show( _hide( $(this) ).siblings('.jQ_collapseFol') );
		return false;
	},
	_collapseFol = function() {
		_hide( $(this).parents(_linkRelList).find(_items+':gt('+folMax+')') );
		_show( _hide( $(this) ).siblings('.jQ_expandFol') );
		return false;
	};
	
	$('.jQ_expandR').click( _expandR );
	$('.jQ_collapseR').click( _collapseR );
	
	$('.jQ_expandC').click( _expandC );
	$('.jQ_collapseC').click( _collapseC );
	
	$('.jQ_expandFol').click( _expandFol );
	$('.jQ_collapseFol').click( _collapseFol );
});

$(document).ready(function() {
	$('#idBoxPathTitle').click(function(){ changeBox('#idBoxPathTitle','#idBoxPath'); });
	$('#idBoxRegTitle').click(function(){ changeBox('#idBoxRegTitle','#idBoxReg'); });
	$('#idBoxCatTitle').click(function(){ changeBox('#idBoxCatTitle','#idBoxCat'); });
	$('#idBoxViewTitle').click(function(){ changeBox('#idBoxViewTitle','#idBoxView'); });
	$('#idBoxShopTitle').click(function(){ changeBox('#idBoxShopTitle','#idBoxShop'); });
	$('#idBoxFilterTitle').click(function(){ changeBox('#idBoxFilterTitle','#idBoxFilter'); });
	$('#idBoxEmpTitle').click(function(){ changeBox('#idBoxEmpTitle','#idBoxEmp'); });
	$('#idBoxLFTitle').click(function(){ changeBox('#idBoxLFTitle','#idBoxLF'); });
	$('#idBoxActTitle').click(function(){ changeBox('#idBoxActTitle','#idBoxAct'); });
	$('#idBoxTagTitle').click(function(){ changeBox('#idBoxTagTitle','#idBoxTag'); });
	$('#idBoxTagBottomTitle').click(function(){ changeBox('#idBoxTagBottomTitle','#idBoxBottomTag'); });
	$('#idBoxnTagTitle').click(function(){ changeBox('#idBoxnTagTitle','#idBoxnTag'); });
	$('#idBoxProfileTypeTitle').click(function(){ changeBox('#idBoxProfileTypeTitle','#idBoxProfileType'); });
	$('#idBoxCategoryKeywordsTitle').click(function(){ changeBox('#idBoxCategoryKeywordsTitle','#idBoxCategoryKeywords'); });
	$('#idBoxRegMoreTitle').click(function(){ changeBox('#idBoxRegMoreTitle','#idBoxRegMore'); });
	$('#idBoxRegMoreProvincesTitle').click(function(){ changeBox('#idBoxRegMoreProvincesTitle','#idBoxRegMoreProvinces'); });
	
	$('#idLeftNavAllOff').click(hideAllLeft);
	$('#idLeftNavAllOn').click(showAllLeft);
	savePositions();
});

function changeBox(subject, box) {
	var tmp_class = $(subject).attr('class');
	if(tmp_class == 'boxCatTitlOn' || tmp_class == 'undefined') {
		$(subject).removeClass();
		$(subject).addClass('boxCatTitlOff');
		$(box).css('display','none');
	} else {
		$(subject).removeClass();
		$(subject).addClass('boxCatTitlOn');
		$(box).css('display','block');
	}
	savePositions();
}

function hideAllLeft() {
	var l = leftNavBoxes.length;
	for(var i = 0; i < l; i++) {
		$('#' + leftNavBoxes[i] + 'Title').removeClass();
		$('#' + leftNavBoxes[i] + 'Title').addClass('boxCatTitlOff');
		$('#' + leftNavBoxes[i]).css('display', 'none');
	}	
	$('#idLeftNavAllOff').css('display','none');
	$('#idLeftNavAllOn').css('display','block');
	savePositions();
}

function showAllLeft() {
	var l = leftNavBoxes.length;
	for(var i = 0; i < l; i++) {
		$('#' + leftNavBoxes[i] + 'Title').removeClass();
		$('#' + leftNavBoxes[i] + 'Title').addClass('boxCatTitlOn');
		$('#' + leftNavBoxes[i]).css('display', 'block');
	}
	
	$('#idLeftNavAllOff').css('display','block');
	$('#idLeftNavAllOn').css('display','none');
	savePositions();
}

function savePositions() {
	var boxes = [],
		l = leftNavBoxes.length;
	for(var i = 0; i < l; i++) {
		boxes[i] = leftNavBoxes[i] + 'Title';
	}

	var all_hidden = 1,
		tmp_class = '',
		l = boxes.length;
	for(var i = 0; i < l; i++) {
		tmp_class = $('#'+boxes[i]).attr('class');
		if(tmp_class == 'boxCatTitlOn' || typeof(tmp_class) == 'undefined') {
			boxes[i] += '=0';
			all_hidden = 0;
		} else {
			boxes[i] += '=1';
		}
	}
	
	boxes[l] = 'all_hidden=' + all_hidden;
	
	//if( _yptags /*tags*/) {
	//	document.cookie = "navigation_left_tags=" + boxes.join('|') + "; path=/; expires=01/01/2020 00:00:00";
	//} else {
		document.cookie = "navigation_left=" + boxes.join('|') + "; path=/; expires=01/01/2020 00:00:00";
	//}
}

function toggleProfileType(type) {
	/*
	var html;
	if(type&&type=='collapse'){
		html = $('#poiTabCF').html();
	} else {
		html = $('#pt' + type).html();	
	}
	
	filterBody.html(html);*/
	
	$('#pt' + type).toggle();
	return false;
}

function gc(w, n) {
	if(n) window.open(w, '_blank');
	else document.location = w;
}

$(document).ready(function() {
	$('#getStreets').click( function() {
		$(this).removeClass(_visibleClass).addClass(_invisibleClass2);
		$('#getStreetsWork').removeClass(_invisibleClass2).addClass(_visibleClass);
		
		var t = window.location.href.split('//')[1];//removes protocol
		var p = t.indexOf('/');
		t = t.substr(p, t.length);//removes domain
		p = t.indexOf('?');
		if(p > 0) t = t.substr(0, p);//removes get params
		t = staticDomain + '/ajax/firmsListStreets' + t + '?jsoncallback=?';
		
		var params = {};
		var search = gup('cmd');
		if(search != '') {
			var tab = gup('tab'); var q = gup('q'); var w = gup('w');
			params = { 'cmd':'search', 'tab':tab, 'q':q, 'w':w };
		}
		
		$.getJSON(t, params, function(res) {
			streetsLoaded = true;
			$('#getStreetsWork').removeClass(_visibleClass).addClass(_invisibleClass2);
			$('#getStreets').parent().next().removeClass(_invisibleClass2).addClass(_visibleClass).click();
			
			if(res == '') return false;
			
			$('#tmpStreetsCont').html(res);
			$("#tmpStreetsCont li").insertBefore("#streetsNav");
		});
		
		return false;
	});
});

function gup( name ) {
	//http://rockmanx.wordpress.com/2008/10/03/get-url-parameters-using-javascript/
	var name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
	var regexS = "[\\?&]"+name+"=([^&#]*)";
	var regex = new RegExp( regexS );
	var results = regex.exec( window.location.href );
	if( results == null ) return '';
	else return results[1];
}
