function getResponse(url, callback) {
	var requester = null;
	if (window.XMLHttpRequest) {
		requester = new XMLHttpRequest();
	} else if (window.ActiveXObject) {
		var version = 6;
		while (version >= 3 && !requester) {
			try {
				requester = new ActiveXObject('Msxml2.XMLHTTP.' + i + '.0');
			} catch (e) {
				--version;
			}
		}
		if (!requester) {
			try {
				requester = new ActiveXObject('Microsoft.XMLHTTP');
			} catch (e) {
			}
		}
	}
	if (requester) {
		requester.onreadystatechange = function()
		{
			if (requester.readyState === 4 && requester.status === 200 && callback) {
				callback(requester.responseText);
			}
		};
		requester.open('GET', url, true);
		requester.send(null);
	} else {
		xml = document.createElement('xml');
		if (xml && typeof(xml.addBehavior) !== 'undefined') {
			xml.addBehavior('#default#download');
			xml.startDownload(url, callback);
		}
	}
}

function popMap(catalogId) {
    var o = window.open('/maps.php?catalogId='+catalogId,'map','width=530,height=580,toolbar=0,menubar=0,scrollbars=0,status=0,resizable=0,screenx=50,screeny=50');
}

function getBranches(branchParent, callback) {
	if (branchParent!='') {
	    var url = 'branches.php?branchParent=' + branchParent;
	    url += '&_=' + Math.round(Math.random() * 2147483647);
		getResponse(url, callback);
	} else {
		var branches = document.getElementById('branchesContainer');
		branches.innerHTML = '';
	}
}

function printBranches(response) {
	if (response) {
		var branches = document.getElementById('branchesContainer');
		if (branches) {
			branches.innerHTML = response;
		}
	} else {
		branches.innerHTML = '';
	}
}

function getCities(region, callback) {
	if (region!='') {
	    var url = 'cities.php?region=' + region;
	    url += '&_=' + Math.round(Math.random() * 2147483647);
		getResponse(url, callback);
	} else {
		var city = document.getElementById('citiesContainer');
		city.innerHTML = '';
	}
}

function printCities(response) {
	if (response) {
		var city = document.getElementById('citiesContainer');
		if (city) {
			city.innerHTML = response;
		}
	} else {
		city.innerHTML = '';
	}
}

function initPublish() {
	var region = document.getElementById('regionId');
	if (region && region.value) {
		getCities(region.value, printCities);
	}
}

function manageOpinions(obj, accessType) {
	var opinionsLogIn = document.getElementById('fullAccessLogIn');
	document.forms['frmFullAccess']['accessType'].value = accessType;
	var p = obj.parentNode.parentNode;
	if (p==opinionsLogIn.parentNode) {
		p.parentNode.parentNode.insertBefore(opinionsLogIn, p.parentNode);
	} else {
		p.appendChild(opinionsLogIn);
	}
}

function checkCode(callback, company) {
	var code = document.getElementById('codeId');
	//var code = document.forms[frm]['code'];
	if (code.value!='') {
	    var url = '/check_code.php?code=' + code.value;
		if (!company) {
			company = code.parentNode.parentNode.parentNode.id; 
		}
		url += '&company='+company;
		var accessType = document.forms['frmFullAccess']['accessType'].value;
		if (accessType) {
			url += '&accessType='+accessType;
		}
	    url += '&_=' + Math.round(Math.random() * 2147483647);
		getResponse(url, callback);
	} else {
		var errorLine = document.getElementById('errorLine');
		errorLine.innerHTML = 'Грешен код';
	}
}

function resultCode(response) {
	if (response) {
		var obj = eval('(' + response + ')');
		if (obj) {
			if ((obj.at != 'visits') && obj.u) {
				var newWindow = window.open(obj.u, '_blank');
				newWindow.focus();
			} else {
				window.location.reload();
			}
		}
		return false;
	} else {
		var errorLine = document.getElementById('errorLine');
		errorLine.innerHTML = 'Грешен код';
	}
}

function resultCodeInfo(response) {
	if (response) {
		var obj = eval('(' + response + ')');
		if (obj) {
			if ((obj.at != 'visits') && obj.u) {
				window.location = obj.u;
			} 
			window.location.reload(true);
		}
	} else {
		var errorLine = document.getElementById('errorLine');
		errorLine.innerHTML = 'Грешен код';
	}
}

function closeOpinions(obj) {
	var opinionsLogIn = document.getElementById('fullAccessLogIn');
	var p = obj.parentNode.parentNode.parentNode;
	p.parentNode.parentNode.insertBefore(opinionsLogIn, p.parentNode);
}

function manageOpinionsContainer(vis, accessType) {
	var opinionsContainer = document.getElementById('fullAccessLogIn');
	if (document.forms['frmFullAccess']) {
		document.forms['frmFullAccess']['accessType'].value = accessType;
	}

	//var opinionsContainer = document.getElementById(elId);
	if (vis) {
		opinionsContainer.style.display=vis;
	} else {
		if (opinionsContainer.style.display=='block') {
			opinionsContainer.style.display='none';
		} else {
			opinionsContainer.style.display='block';
		}
	}
}

function voteOpinion(opinion, vote) {
	if (opinion && vote) {
	    var url = '/opinions_votes.php?opinion=' + opinion + '&vote=' + vote;
	    url += '&_=' + Math.round(Math.random() * 2147483647);
		getResponse(url, changeVote);
	}
}

function changeVote(response) {
	if (response) {
		var obj = eval('(' + response + ')');
		if (obj) {
			var rating = document.getElementById('ratingId_'+obj.o);
			var plusVote = document.getElementById('plusVote_'+obj.o);
			var minusVote = document.getElementById('minusVote_'+obj.o);
			if ((Number(rating.innerHTML) + obj.v)==1000) {
				plusVote.style.display = 'none'
			} else {
				plusVote.style.display = 'block'
			}
			if ((Number(rating.innerHTML) + obj.v)==-1000) {
				minusVote.style.display = 'none'
			} else {
				minusVote.style.display = 'block'
			}

			rating.innerHTML = Number(rating.innerHTML) + obj.v;
			var votes = document.getElementById('votesId_'+obj.o);
			votes.innerHTML = Number(votes.innerHTML)+1;
		}
	}
}

function clearTextFields() {
	var cnt = document.getElementsByTagName('textarea').length;
	for (var i=0; i<cnt; i++) {
		var field = document.getElementsByTagName('textarea')[i];
		field.value ='';
	}
}

function popUpWindow(url, width, height) {
	var o = window.open(url,'','width='+width+',height='+height+',toolbar=0,menubar=0,scrollbars=0,status=0,resizable=0,screenx=50,screeny=50');
}

function popTroubleAlarm(opinion) {
	var url = '/trouble_alarm.php?opinion='+opinion;
	popUpWindow(url, 500, 300);
}

function initInfo() {
	var hash=location.hash;
	if (hash=='#opinionsLogIn') {
		manageOpinionsContainer('block') 
	} else {
		manageOpinionsContainer('none');
	}

}