// EventListener
// ----------------------
EventListener = {
	addEvent:function(element, type, handler) {
		try {
			element.addEventListener(type, handler, false);
		} catch(inferiorBrowserException) {
			if(element.attachEvent) 
				element.attachEvent('on'+type, handler);
			else 
				element['on'+type] = handler;
		}
		return [element, type, handler];
	},

	removeEvent:function(event) {
		var element = event[0], type = event[1], handler = event[2];
		try {
			element.removeEventListener(type, handler, false);
		} catch(inferiorBrowserException) {
			if(element.detachEvent)
				element.detachEvent('on'+type, handler);
			else
				element['on'+type] = null;
		}
	},

	cancelEvent:function(e) {
		try {
			e.preventDefault();
			e.stopPropagation();
		} catch (someException) {
			e.returnValue = false;
		}	return false;
	}
}

function selectCertificate(elem){
	if(elem.checked){
		document.getElementById('c'+elem.id).className = 'cert cert-sel';
	} else {
		document.getElementById('c'+elem.id).className = 'cert';
	}
	
	var countTickets = countSelectedLike('c_');
	
	var elEmpty = document.getElementById('selectedEmpty');
	var elChosen = document.getElementById('selectedChosen');
	var elSumm = document.getElementById('selectedTicketsSum');
	var elCount = document.getElementById('selectedTicketsCount');
	var elSubmit = document.getElementById('submitButton');
	
	elChosen.selected = !!countTickets;
		
	if(countTickets) {
		elEmpty.style.display = "none";
		elChosen.style.display = "block";
		
		elSumm.innerHTML = countTickets*price;

		var biletov = 'билетов';
		var ost = (countTickets + 100) % 100;
	
		if ((ost > 20) || (ost < 5)) {
			ost = ost % 10;
		
			switch (ost) {
				case 1:
					biletov = 'билет';break;
				case 2:
				case 3:
				case 4:
					biletov = 'билета'; break;
				default:
					biletov = 'билетов'; break;
			}
		}
	
		elCount.innerHTML = countTickets+" "+biletov;
	} else {
		elEmpty.style.display = "block";
		elChosen.style.display = "none";
	}
	
	elSubmit.disabled = !elChosen.selected

}

//Проверяет выделен ли хотя бы один чекбокс id которого начинается с @id
function countSelectedLike(id) {
	//Находим все input елементы
	var inputElements=document.getElementsByTagName('input');
	var i=0;
	var l=inputElements.length;
	var count_checked = 0;
	if (l) 
		for (;i < l;i++) {
			el = inputElements[i];
			if ((el.type=='checkbox') && 
					(!el.id.indexOf(id)) && 
					(id!=el.id) && 
					el.checked) 
							count_checked ++;	
		}

		return count_checked;
}
				
function uncheckCertificates() {
	var inputElements=document.getElementsByTagName('input');
	for (i = 0; i < inputElements.length; i++) {
		el = inputElements[i];
		if ((el.type == 'checkbox') && (!el.id.indexOf('c_')) && el.checked)
			el.checked = false;
	}
	try {
	document.getElementById('submitButton').disabled = 
		!document.getElementById('agreeCheck').checked;
	} catch(e) {}
}

function showPreloader(boxObj, params) {
	
	var container, img;
	
	boxObj = boxObj || document.body;
	params = params || {};
	params.offsetHeight = params.offsetHeight || 0;
	params.offsetWidth = params.offsetWidth || 0;
	
	(document.preloader = container = document.createElement('div')).style.position = 'absolute';
	
	container.id = "preloader";
	
	container.style.top = (boxObj.clientHeight/2) + params.offsetHeight + 'px';
	container.style.left = (boxObj.clientWidth/2) + params.offsetWidth + 'px';
	
	container.appendChild(img = document.createElement('img'));
	
	img.src= themePath + "i/preloader.gif"
	
	boxObj.appendChild(container)
}

function hidePreloader() {
	
	document.removeChild(document.preloader)
	
}

function addPreloaders() {
	
	var forms = document.forms, i=0;
	while(i<forms.length && ++i) {
		forms[i-1].onsubmit = function() {
			showPreloader()
		}
	}
	
}

var scripts = document.getElementsByTagName('script'), themePath, i = 0, s_src;

while(i < scripts.length && (s_src = scripts[i].src) && !(new RegExp('/script.js')).test(s_src) && (themePath = s_src + '/../') && ++i);

/*preloading images*/
(document.createElement('img')).src = themePath + "i/preloader.gif";
