/*
// common.js - (c) The Names | http://www.thenames.ru/
//
// FOR LEGEALTO.RU ONLY
//
// Last updated: 2008-08-19
*/


// -----------------------------------------------------------------------------------
// Browser detection.

Browser = {
	ua: null,
	versionMinor: 0,
	versionMajor: 0,
	init: function () {
		this.ua = navigator.userAgent.toLowerCase();
		this.versionMinor = parseFloat(navigator.appVersion);
		if (this.isIE() && this.versionMinor >= 4) this.versionMinor = parseFloat(this.ua.substring(this.ua.indexOf('msie ') + 5 ));
		this.versionMajor = parseInt(this.versionMinor);
	},
	isFirefox: function () {
		return this.ua.indexOf('firefox') != -1;
	},
	isOpera: function () {
		return this.ua.indexOf('opera') != -1;
	},
	isSafari: function () {
		return this.ua.indexOf('safari') != -1;
	},
	isIE: function () {
		return this.ua.indexOf('msie') != -1 && !this.isOpera() && (this.ua.indexOf('webtv') == -1);
	}
}
Browser.init();


// -----------------------------------------------------------------------------------
// Element Extending.

Element = {
	visible: function(el) {
		return el.style.display != 'none';
	},
	toggle: function(el) {
		this[this.visible(el) ? 'hide' : 'show'](el);
	},
	hide: function(el) {
		el.style.display = 'none';
	},
	show: function(el) {
		el.style.display = '';
	}
}


// -----------------------------------------------------------------------------------
// Site Utils.

var feedbackProcess = false;
var feedbackSended = false;

// Search & Feedback boxes animator.

SliderUtils = {
	animated: false,
	sliderDuration: 0.4,
	cancelLinkDie: false,
	toggleSearch: function () {
		if (this.animated || feedbackProcess) {
			return;
		}
		var search = document.getElementById('dynaSearch');
		var feedback = document.getElementById('dynaFeedback');
		if (!Element.visible(feedback)) {
			this.toggle(search);
			this.toggleLink('searchLink');
		} else {
			Element.toggle(search);
			Element.toggle(feedback);
			this.toggleLink('searchLink');
			this.toggleLink('feedbackLink');
		}
		try {
			var form = document.getElementById('_search');
			form.elements[0].focus();
		} catch(e) {}
	},
	toggleFeedback: function () {
		if (this.animated || feedbackProcess) {
			return;
		}
		var search = document.getElementById('dynaSearch');
		var feedback = document.getElementById('dynaFeedback');
		if (feedbackSended) {
			var form = document.getElementById('_fb');
			var complete = document.getElementById('_fb_complete');
			Element.hide(complete);
			Element.show(form);
		}
		if (!Element.visible(search)) {
			this.toggle(feedback);
			this.toggleLink('feedbackLink');
		} else {
			Element.toggle(search);
			Element.toggle(feedback);
			this.toggleLink('searchLink');
			this.toggleLink('feedbackLink');
		}
		try {
			var form = document.getElementById('_fb');
			form.reset();
			form.elements[0].focus();
		} catch(e) {}
	},
	toggle: function (target) {
		this.animated = false;
		Element.toggle(target);
	},
	toggleLink: function (link) {
		link = document.getElementById(link);
		link.className = (link.className == 'active' ? '' : 'active');
	}
}

// Feedback sender.

function sendFeedback (form) {
	var url = form.getAttribute('action');
	var button = document.getElementById('_fb_submit');
	var loader = document.getElementById('_fb_ajax_loader');
	var complete = document.getElementById('_fb_complete');
	var data = new Array();
	var cXml = new cindy_xml();	
	for (var i = 0; i < form.elements.length; i++) {
		data.push(form.elements[i].name + '=' + encodeURI(form.elements[i].value));
	}
	var cBack = function (msg) {
		for (var i = 0; i < form.elements.length; i++) {
			form.elements[i].disabled = false;
		}
		form.reset();
		Element.hide(form);
		Element.hide(loader);
		Element.show(complete);
		Element.show(button);
		feedbackSended = true;
		feedbackProcess = false;
	}
	cXml.postString(url, data.join('&'), cBack);
	Element.hide(button);
	Element.show(loader);
	for (var i = 0; i < form.elements.length; i++) {
		form.elements[i].disabled = true;
	}
	feedbackProcess = true;
	return false;
}



// -----------------------------------------------------------------------------------
// Events Registrator.

function RegisterEventHandler (object, eventName, handler)
{
	if (object.attachEvent)
		object.attachEvent ('on' + eventName, handler);
	else if (object.addEventListener)
		object.addEventListener (eventName, handler, true);
}

function UnregisterEventHandler (object, eventName)
{
	if (object.detachEvent)
		object.detachEvent('onmousemove', ProceedDrag);
	else if (object.removeEventListener)
		object.removeEventListener('mousemove', ProceedDrag, true);
}
