/*****************************   anDeRan   ************************************/

var is_ie  = !!document.uniqueID;
var is_ie6 = is_ie && navigator.appVersion.match(/MSIE (5.5|6)/);

var lang = document.getElementsByTagName('HTML')[0].lang;

if (is_ie6) {
	try {
		document.execCommand("BackgroundImageCache", false, true);
	} catch(err) {}
}

if (is_ie) {
	var XMLHttpRequest = function () {
		return (new ActiveXObject("Msxml2.XMLHTTP")) || (new ActiveXObject("Microsoft.XMLHTTP")) || false;
	};
}

var request = function () {
	try {
		var link = new XMLHttpRequest();
	} catch (e) {
		alert('Your browser doesn\'t support XMLHttpRequest. Please enable XMLHTTPRequest if disabled or update if your browser is old.');
	}

	this.get = function (path, analyze, params) {
		link.onreadystatechange = function () {
			if (link.readyState == 4 && link.status == 200) {
				if (analyze) {
					analyze(link, params);
				}
				
			}
		};
		link.open('GET', path, true);

		if (is_ie6) {
			link.setRequestHeader('If-Modified-Since', 'Sat, 1 Jan 2000 00:00:00 GMT');
		}
		link.send('');
	};
};

var setOpacity = function (obj, num) {
	if (obj.style.filter != undefined) {
		obj.style.filter = 'alpha(opacity=' + (num * 100) + ')';
	} else {
		obj.style.opacity = num;
	}
};

var fixPNG = function () {
	if (is_ie6) {
		var header = document.getElementById('header');
		var h2 = header.getElementsByTagName('H2')[0];
		if (h2) {
			var back = h2.style.cssText.replace(/.+\([\.]?([^\)]+)\)/, '$1');
			h2.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + back + "', sizingMethod='crop')";
			h2.style.backgroundImage = 'none';
			h2.style.visibility = 'visible';
		}
		var header = document.getElementById('col-left');
		var h4 = header.getElementsByTagName('H4');
		var i = h4.length;
		while (i-- > 0) {
			var back = h4[i].style.cssText.replace(/.+\([\.]?([^\)]+)\)/, '$1');
			var offset = h4[i].offsetHeight;
			h4[i].style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + back + "', sizingMethod='image')";
			h4[i].style.backgroundImage = 'none';
			h4[i].style.marginTop = (offset - h4[i].offsetHeight) + 'px';
			h4[i].style.visibility = 'visible';
		}
		var header = document.getElementById('col-right');
		var h3 = header.getElementsByTagName('H3');
		var i = h3.length;
		while (i-- > 0) {
			var back = h3[i].firstChild.style.cssText.replace(/.+\([\.]?([^\)]+)\)/, '$1');
			h3[i].firstChild.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + back + "', sizingMethod='crop')";
			h3[i].firstChild.style.backgroundImage = 'none';
			h3[i].firstChild.style.visibility = 'visible';
		}
	}
};

/*var toTop = function () {
	var link = document.getElementById('to-top').getElementsByTagName('A')[0];
	link.onclick = function () {
		window.scroll(0, 0);
		this.blur();
		return false;
	};
};*/

var makeGallery = function () {
	var gallery = document.getElementById('gallery');
	if (gallery) {
		var items = gallery.getElementsByTagName('A');
		var a, i = items.length;
		while (i-- > 0) {
			a = document.createElement('A');
			a.href = items[i].href;
			a.title = items[i].title;
			a.className = items[i].className;
			(new Image()).src = items[i].firstChild.src.replace('/mini/', '/maxi/');
			a.onclick = function () {
				this.blur();
				var pic_name = document.getElementById('pic-name');
				if (pic_name) {
					pic_name.innerHTML = this.title;
					pic_name.style.visibility = pic_name.innerHTML ? 'visible' : 'hidden';
				}
				var pic_big = document.getElementById('pic-big');
				if (pic_big) {
					pic_big.src = this.parentNode.getElementsByTagName('IMG')[0].src.replace('/mini/', '/maxi/');
				}
				var links = this.parentNode.parentNode.parentNode.getElementsByTagName('A');
				var j = links.length;
				while (j-- > 0) {
					if (links[j].className.indexOf('img-on') != -1) {
						links[j].className = links[j].className.replace('img-on', '');
					}
				}
				this.className = 'img-on';
				return false;
			};
			a.style.cssText = 'position: absolute; z-index: 10;';
			items[i].parentNode.insertBefore(a, items[i].parentNode.firstChild);
			a = null;
		}
		var pic_name = document.getElementById('pic-name');
		if (pic_name) {
			pic_name.style.visibility = pic_name.innerHTML ? 'visible' : 'hidden';
		}
	}
};

var makePeople = function () {
	var people = document.getElementById('people');
	if (people) {
		(new Image()).src = '/images/common/question_over.png';
		(new Image()).src = '/images/common/vote_user_over.png';
		var ask = document.getElementById('face-ask');
		ask.onmouseover = function () {
			var img = this.firstChild.firstChild;
			img.style.width = '96px';
			if (is_ie6) {
				img.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/images/common/question_over.png', sizingMethod='crop')";
				img.src = '/images/common/blank.png';
			} else {
				img.src = '/images/common/question_over.png';
			}
			this.style.width = '96px';
			this.style.marginLeft = '385px';
		};
		ask.onmouseout = function () {
			var img = this.firstChild.firstChild;
			img.style.width = '18px';
			if (is_ie6) {
				img.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/images/common/question.png', sizingMethod='crop')";
				img.src = '/images/common/blank.png';
			} else {
				img.src = '/images/common/question.png';
			}
			this.style.width = '18px';
			this.style.marginLeft = '463px';
		};
		if (is_ie6) {
			var img = ask.firstChild.firstChild;
			img.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/images/common/question.png', sizingMethod='crop')";
			img.src = '/images/common/blank.png';
		}
		ask.style.visibility = 'visible';

		var showForm = function (form) {
			form.style.visibility = 'visible';
			var opacity = 0.3, step = 0.08;
			setOpacity(form, opacity);
			s_interval = setInterval(function () {
				opacity += step;
				if (opacity > 0.95) {
					setOpacity(form, 0.95);
					clearInterval(s_interval);
				} else {
					setOpacity(form, opacity);
				}
			}, 30);
		};

		var hideForm = function (form) {
			var opacity = 0.95, step = 0.08;
			setOpacity(form, opacity);
			s_interval = setInterval(function () {
				opacity -= step;
				if (opacity < 0) {
					setOpacity(form, 0);
					clearInterval(s_interval);
					form.style.visibility = 'hidden';
				} else {
					setOpacity(form, opacity);
				}
			}, 30);
		};

		var form = document.getElementById('ask-form');
		ask.onclick = function () {
			this.blur();
			var form = document.getElementById('ask-form');
			showForm(form);
			return false;
		};
		form.getElementsByTagName('A')[0].onclick = function () {
			this.blur();
			hideForm(this.parentNode.parentNode);
			return false;
		};
		form.elements['submit'].onclick = function () {
			var form = this.form;

			var errors = false;

			if (!form.elements['name'].value) {
				form.elements['name'].className += ' error';
				errors = true;
			} else {
				form.elements['name'].className = form.elements['name'].className.replace(/ error/g, '');
			}

			if (!form.elements['email'].value.match(/^[\w\d\.]{2,}@[\w\d\.\-]{2,}\.[\w]{2,4}$/)) {
				form.elements['email'].className += ' error';
				errors = true;
			} else {
				form.elements['email'].className = form.elements['email'].className.replace(/ error/g, '');
			}

			if (!form.elements['message'].value) {
				form.elements['message'].className += ' error';
				errors = true;
			} else {
				form.elements['message'].className = form.elements['message'].className.replace(/ error/g, '');
			}

			if (!errors) {
				(new request).get('/scripts/requests.php?action=ask_staff&uid=' + form.elements['uid'].value + '&name=' + form.elements['name'].value + '&email=' + form.elements['email'].value + '&message=' + form.elements['message'].value.replace(/\n/g,'<br>') + '&lang=' + lang, function (req) {
					hideForm(form);
				});
			}
		};

		var squares = function () {
			var face = document.getElementById('face');
			var span = face.getElementsByTagName('SPAN')[0];
			var links = span.getElementsByTagName('A');
			var img = face.getElementsByTagName('IMG')[0];
			var i = links.length;
			while (i-- > 0) {
				links[i].onclick = function () {
					var iid = parseInt(this.href.replace(/.+#(\d+)$/, '$1'), 10);
					var img = this.parentNode.parentNode.getElementsByTagName('IMG')[0];
					img.src = img.src.replace(/(.+\/)\d+(\.[a-z]+)$/, '$1' + iid + '$2');
					var buttons = this.parentNode.getElementsByTagName('IMG');
					var j = buttons.length;
					while (j-- > 0) {
						buttons[j].src = buttons[j].src.replace('photo_on', 'photo_off');
					}
					this.firstChild.src = this.firstChild.src.replace('photo_off', 'photo_on');
					return false;
				};
				
				var iid = parseInt(links[i].href.replace(/.+#(\d+)$/, '$1'), 10);
				(new Image()).src = img.src.replace(/(.+\/)\d+(\.[a-z]+)$/, '$1' + iid + '$2');
			}
		};

		var faces = document.getElementById('faces').getElementsByTagName('A');
		var i = faces.length;
		while (i-- > 0) {
			faces[i].onclick = function () {
				var face = document.getElementById('face');
				var uid = parseInt(this.href.replace(/.+#(\d+)$/, '$1'), 10);
				(new request).get('/scripts/requests.php?action=get_staff&uid=' + uid + '&lang=' + lang, function (req) {
					var imgs = req.responseText.split('|');
					var j, tmp = '';
					for (j = 0; j < imgs.length; j++) {
						tmp += '<a href="#' + imgs[j] + '"><img src="/images/common/photo_' + (!j ? 'on' : 'off') + '.png" width="9" height="9" alt=""" /></a> ';
					}
					var span = face.getElementsByTagName('SPAN')[0];
					span.innerHTML = tmp;
					squares();
					document.getElementById('ask-form').elements['uid'].value = uid;
				});
				var img = face.getElementsByTagName('IMG')[0];
				img.src = this.firstChild.src.replace('/mini/', '/maxi/');
				var big = face.getElementsByTagName('BIG')[0];
				big.innerHTML = this.firstChild.alt;
				return false;
			};

			(new Image()).src = faces[i].firstChild.src.replace('/mini/', '/maxi/');
		}

		squares();

		var vote = document.getElementById('vote');
		vote.onmouseover = function () {
			if (this.firstChild.src.indexOf('_over') == -1) {
				this.firstChild.src = '/images/common/vote_user_over.png';
			}
		};
		vote.onmouseout = function () {
			if (this.firstChild.src.indexOf('_over') != -1) {
				this.firstChild.src = '/images/common/vote_user.png';
			}
		};
		vote.onclick = function () {
			var link = this;
			(new request).get('/scripts/requests.php?action=vote&uid=' + parseInt(document.getElementById('ask-form').elements['uid'].value, 10) + '&lang=' + lang, function (req) {
				link.parentNode.removeChild(link);
			});
			return false;
		};
	}
};

var getResults = function (button) {
	var url = '', form = button.form;

	var i = form.elements.length;
	while (i-- > 0) {
		if (form.elements[i].type == 'checkbox') {
			if (form.elements[i].checked) {
				url += '&' + form.elements[i].name + '=on';
			}
		}
		if (form.elements[i].type == 'radio') {
			if (form.elements[i].checked) {
				url += '&' + form.elements[i].name + '=' + form.elements[i].value;
				break;
			}
		}
	}

	if (url) {
		button.disabled = true;
		(new request).get('/scripts/requests.php?action=get_results&pid=' + form.elements['poll_id'].value + url + '&lang=' + lang, function (req) {
			form.getElementsByTagName('OL')[0].style.display = 'none';
			form.getElementsByTagName('P')[0].style.display = 'none';
			form.innerHTML += req.responseText;
		});
	}
	button.blur();
	return false;
};

var closeShadow = function () {
	var send_card = document.getElementById('send-card');
	send_card.parentNode.removeChild(send_card);

	var shadow = document.getElementById('shadow');
	var opacity = 0.7;
	var step    = 0.14;

	setOpacity(shadow, opacity);

	var interval = setInterval(function () {
		opacity -= step;
		if (opacity < 0) {
			clearInterval(interval);
			shadow.parentNode.removeChild(shadow);
			document.body.style.overflowX = 'auto';
		} else {
			setOpacity(shadow, opacity);
		}
	}, 50);
	return false;
};

var sendCard = function (link, width, height) {
	var img_id = parseInt(link.href.replace(/.+\/(\d+)\.[a-z]+/, '$1'), 10);

	var shadow = document.createElement('DIV');
	shadow.id = 'shadow';
	shadow.style.width = window.screen.width + 'px';
	shadow.style.height = document.body.scrollHeight + 'px';

	var opacity = 0.05;
	var step    = 0.1;

	setOpacity(shadow, opacity);
	document.body.appendChild(shadow);
	document.body.style.overflowX = 'hidden';

	var interval = setInterval(function () {
		opacity += step;
		if (opacity > 0.7) {
			clearInterval(interval);
		} else {
			setOpacity(shadow, opacity);
		}
	}, 50);

	var l_texts = {};
	if (lang == 'en') {
		l_texts.name_from = 'From (name)';
		l_texts.name_to   = 'To (name)';
		l_texts.message   = 'Your message';
		l_texts.send      = 'Send';
	} else {
		l_texts.name_from = 'От кого (имя)';
		l_texts.name_to   = 'Кому (имя)';
		l_texts.message   = 'Ваше сообщение';
		l_texts.send      = 'Отправить';
	}

	var send_card = document.createElement('DIV');
	send_card.id = 'send-card';
	send_card.style.top = (document.body.scrollHeight - height - 200) + 'px';
	send_card.style.width = width + 'px';
	send_card.style.marginLeft = -Math.round(width / 2) + 'px';
	send_card.innerHTML = '<form action="#"><div style="margin-left: ' + width + 'px"><p class="field"><label for="fld-name-from">' + l_texts.name_from + '</label> <input type="text" name="name_from" size="30" maxlength="90" class="field" id="fld-name-from" /></p><p class="field"><label for="fld-email-from">E-mail</label> <input type="text" name="email_from" size="30" maxlength="90" class="field" id="fld-email-from" /></p><p class="field"><label for="fld-name-to">' + l_texts.name_to + '</label> <input type="text" name="name_to" size="30" maxlength="90" class="field" id="fld-name-to" /></p><p class="field"><label for="fld-email-to">E-mail</label> <input type="text" name="email_to" size="30" maxlength="90" class="field" id="fld-email-to" /></p><p class="area"><label for="fld-message">' + l_texts.message + '</label> <textarea name="message" cols="30" rows="5" class="area" id="fld-message"></textarea></p><p class="button"><input type="button" value="' + l_texts.send + '" onclick="return postCard(this, ' + img_id + ')" /></p></div><p><a href="#" onclick="return closeShadow()"><img src="' + link.href + '" width="' + width + '" height="' + height + '" alt="" /></a></p></form>';
	document.body.appendChild(send_card);
	if (is_ie6) {
		var sub = send_card.getElementsByTagName('DIV')[0];
		sub.style.bottom = -(send_card.offsetHeight - (sub.offsetHeight + sub.offsetTop)) + 'px';
	}

	return false;
};

var postCard = function (button, img_id) {
	var form = button.form;
	var i = form.elements.length;
	var errors = false;
	while (i-- > 0) {
		if (form.elements[i].type.toUpperCase() == 'TEXT' || form.elements[i].type.toUpperCase() == 'TEXTAREA') {
			if (!form.elements[i].value || form.elements[i].name.indexOf('email') != -1 && !form.elements[i].value.match(/^[\w\d\.]{2,}@[\w\d\.\-]{2,}\.[\w]{2,4}$/)) {
				if (form.elements[i].className.indexOf('error') == -1) {
					form.elements[i].className += ' error';
				}
				errors = true;
			} else {
				form.elements[i].className = form.elements[i].className.replace(' error', '');
			}
		}
	}
	if (!errors) {
		button.disabled = true;
		(new request).get('/scripts/requests.php?action=send_card&img_id=' + img_id + '&name_from=' + form.elements['name_from'].value + '&email_from=' + form.elements['email_from'].value + '&name_to=' + form.elements['name_to'].value + '&email_to=' + form.elements['email_to'].value + '&message=' + form.elements['message'].value.replace(/\n/g,'<br>') + '&lang=' + lang);
		closeShadow();
	}
};

var openLink = function (address) {
	window.open(address);
	return false;
};

window.onload = function () {
	fixPNG();
	//toTop();
	makeGallery();
	makePeople();

	try {
		Scroller.setAll();
		initLightbox();
	} catch (e) { }
};
