var player = 'swf/player.1.0.swf', fp_player = 'swf/fp.player.1.0.5.swf', fullscreen = 'swf/fullscreen.1.0b2.swf';

function ini() {
	var subscribe_email = $('subscribe_email');
	if (subscribe_email) {
		subscribe_email.onfocus = function() {
			if (subscribe_email.value === $('subscribe_email_default').value) subscribe_email.value = '';
		}
		subscribe_email.onblur = function() {
			if (subscribe_email.value === '') subscribe_email.value = $('subscribe_email_default').value;
		}
	}
	var search_text = $('search_text');
	if (search_text) {
		search_text.onfocus = function() {
			if (search_text.value === $('search_text_default').value) search_text.value = '';
		}
		search_text.onblur = function() {
			if (search_text.value === '') search_text.value = $('search_text_default').value;
		}
	}
	var subscribe_name = $('subscribe_name');
	if (subscribe_name) {
		subscribe_name.onfocus = function() {
			if (subscribe_name.value === $('subscribe_name_default').value) subscribe_name.value = '';
		}
		subscribe_name.onblur = function() {
			if (subscribe_name.value === '') subscribe_name.value = $('subscribe_name_default').value;
		}
	}
	var subscribe_mail = $('subscribe_mail');
	if (subscribe_mail) {
		subscribe_mail.onfocus = function() {
			if (subscribe_mail.value === $('subscribe_mail_default').value) subscribe_mail.value = '';
		}
		subscribe_mail.onblur = function() {
			if (subscribe_mail.value === '') subscribe_mail.value = $('subscribe_mail_default').value;
		}
	}
	CufonIni();
	backgroundChangeStart();
	iniToTop();
	casesV2.ini();
	CacheElements.now();
}

var casesV2 = {
	last_picture: null,
	opacity_ie: 100,
	data: [],
	data_active: [],
	data_keys: {},
	div_pics: [],
	ie: navigator.userAgent.indexOf('MSIE') !== -1,
	toggleVisibilityOfChildren: function(o, state) {
		var nodes = o.childNodes, i = nodes.length - 1;
		for(; i >= 0; --i) {
			if (nodes[i].nodeType == 1) nodes[i].style.visibility = state;
		}
	},
	changeCategory: function (cat) {
		var so = casesV2.data.length, i = 0, j, cats, in_cat, case_id;
		for (; i < so; i++) {
			case_id = casesV2.data[casesV2.data_keys[casesV2.data[i].id]].id;
			if (cat == 0) {
				casesV2.toggleVisibilityOfChildren($('box_'+ case_id), 'visible');
				$('title_'+ case_id).style.visibility = 'hidden';
				continue;
			}
			in_cat = false;
			cats = casesV2.data[casesV2.data_keys[casesV2.data[i].id]].cats;
			for (j = cats.length - 1; j >= 0; --j) {
				if (cat == cats[j]) {
					in_cat = true;
					break;
				}
			}
			casesV2.toggleVisibilityOfChildren($('box_'+ case_id), in_cat ? 'visible' : 'hidden');
			$('title_'+ case_id).style.visibility = 'hidden';
		}
	},
	showTitle: function (e) {
		if (!e) e = window.event;
		var o = e.srcElement || e.target, div_id = o.parentNode.id.split("_");
		if (div_id == '') div_id = o.parentNode.parentNode.id.split("_");
		if (!div_id[1]) return;
		var id = div_id[1];
		for (var i = casesV2.data.length - 1; i >= 0; --i) {
			o = $('title_'+ casesV2.data[i].id);
			if (!o) continue;
			if (id == casesV2.data[i].id) {
				if (o.style.visibility !== 'visible') o.style.visibility = 'visible';
			} else o.style.visibility = 'hidden';
		}
	},
	showPic: function (e) {
		if (!e) e = window.event;
		var o = e.srcElement || e.target;
		if (o.id.indexOf('_') === -1) return;
		$('title_'+ o.id.split("_")[1]).style.visibility = 'hidden';
	},
	picture_timer: function () {
		var so = casesV2.data_active.length, rand = casesV2.data_active[Math.ceil(Math.random() * so-1)], so2 = casesV2.data[rand].files.length;
		casesV2.data[rand].counter = casesV2.data[rand].counter + 1;
		var counter = casesV2.data[rand].counter;
		if (counter > so2-1) counter = casesV2.data[rand].counter = 0;
		var hide_id = 'pic_'+ casesV2.data[rand].id;
		var show_id = 'sub_'+ casesV2.data[rand].id;
		casesV2.last_picture = casesV2.data[rand].files[counter];
		$(hide_id).style.opacity = 1;
		$(hide_id).style.filter = 'alpha(opacity=100)';
		$(show_id).innerHTML = '<img src="'+ casesV2.data[rand].files[counter] +'" alt="">';
		casesV2.interval = setInterval('casesV2.fade("'+ hide_id +'")', 50);
	},
	fade: function (o) {
		if (casesV2.ie) {
			if (casesV2.opacity_ie <= 10) {
				clearInterval(casesV2.interval);
				$(o).innerHTML = '<img src="'+ casesV2.last_picture +'" alt="">';
				$(o).style.filter = 'alpha(opacity=100)';
				casesV2.opacity_ie = 100;
				setTimeout(casesV2.picture_timer, 3000);
				return;
			}
			casesV2.opacity_ie = casesV2.opacity_ie - 10;
			$(o).style.filter = 'alpha(opacity='+ casesV2.opacity_ie +')';
		} else {
			var opac = parseFloat($(o).style.opacity, 10);
			if (opac <= 0) { 
				clearInterval(casesV2.interval);
				$(o).innerHTML = '<img src="'+ casesV2.last_picture +'" alt="">';
				$(o).style.opacity = 1;
				setTimeout(casesV2.picture_timer, 3000);
				return;
			}
			$(o).style.opacity = opac - 0.1;
		}
	},
	redirect: function(e) {
		if (!e) e = window.event;
		var o = e.target || e.srcElement;
		while (o && o.className !== 'div_box') o = o.parentNode;
		if (!o) return;
		location.href = casesV2.data[casesV2.data_keys[o.firstChild.id.substr(4)]].uid +'/';
	},
	ini: function () {
		if (!$('casesV2')) return;
		var data = [], so = casesV2.data.length, i = 0, id, div_id = 0, k = 0;
		for (; i < so; i++) {
			id = casesV2.data[i].id;
			if (typeof casesV2.data_keys[id] === 'undefined') {
				casesV2.data_keys[id] = data.length;
				data[casesV2.data_keys[id]] = {id: id, files: [casesV2.data[i].file], counter: 0, uid: casesV2.data[i].uid, cats: casesV2.data[i].cats};
			} else {
				data[casesV2.data_keys[id]].files.push(casesV2.data[i].file);
			}
		}
		casesV2.data = data;
		for (i = data.length - 1; i >= 0; --i) {
			if (data[i].files.length > 1) casesV2.data_active.push(i);
		}
		var divs = $('casesV2').getElementsByTagName('div');
		casesV2.div_pics = divs;
		var so = divs.length;
		for (i = 0; i < so; i++) {
			if (divs[i].className === 'div_box') {
				divs[i].onclick = casesV2.redirect;
				continue;
			}
			if (divs[i].className === 'pic') {
				divs[i].onmouseover = casesV2.showTitle;
				continue;
			}
			if (divs[i].className === 'cases_title') {
				divs[i].onmouseout = casesV2.showPic;
			}
		}
		setTimeout(casesV2.picture_timer, 3000);
		if (location.hash !== '') casesV2.changeCategory(location.hash.charAt(0) === '#' ? location.hash.substr(1) : location.hash);
	}
};

function CufonIni() {
	Cufon('.m1', {hover: true});
	Cufon('.m2', {hover: true});
	Cufon('.p_title');
	Cufon('.p_subtitle');
	Cufon('.page_ttl');
	Cufon('.bigtext');
	Cufon('.cases_title');
	Cufon.now();
}

function iniToTop() {
	var nodes = window.document.body.getElementsByTagName('A'), i = 0, so = nodes.length, pos;
	for (; i < so; i++) {
		pos = nodes[i].href.indexOf('#');
		if (pos === -1) continue;
		if (nodes[i].href.substr(pos) === '') nodes[i].onclick = toTop;
	}
}

function toTop() {
	window.document.body.scrollTop = 0;
	return false;
}

function $(id) {
	return window.document.getElementById(id);
}

function toggleV(o) {
	if (o.style.visibility === 'hidden') o.style.visibility = 'visible';
	else o.style.visibility = 'hidden';
}

var CacheElements = {
	o: null,
	storage: [],
	stored: [],
	store: function(src) {
		var es = this.storage, i = 0, so = es.length;
		for (; i < so; i++) {
			if (es[i] == src) return;
		}
		this.storage[so] = src;
		this.stored[so] = false;
	},
	now: function() {
		if (!this.o) {
			var div = window.document.createElement('DIV');
			div.style.position = 'absolute';
			div.style.top = '-9999px';
			div.style.left = '-9999px';
			this.o = window.document.body.appendChild(div);
			div = window.document.createElement('DIV');
			div.style.position = 'relative';
			div.id = 'elements_image_preloader';
			this.o = this.o.appendChild(div);
		}
		var i = 0, so = this.storage.length, img;
		for (; i < so; i++) {
			if (this.stored[i]) continue;
			img = window.document.createElement('IMG');
			img.style.position = 'absolute';
			img.style.top = 0;
			img.style.left = 0;
			img.src = this.storage[i];
			this.o.appendChild(img);
			this.stored[i] = true;
		}
	}
}

function Elements(name, theme, back, forward, list, comm_list, pages_id, photo_id, comm_id, no_pages_disable_us, fullscreen_id) {
	this.name = name;
	this.theme = theme;
	this.list = list;
	this.comm_list = comm_list;
	this.pagesO = $(pages_id);
	this.photo_id = photo_id;
	this.photoO = $(photo_id);
	this.commO = $(comm_id);
	this.cached = false;
	this.no_pages_disable_us = no_pages_disable_us ? no_pages_disable_us : [];
	this.back = back;
	this.forward = forward;
	this.fullscreen_id = fullscreen_id;
	this.cache = function() {
		var so = this.list.length, i = 0;
		for (; i < so; i++) CacheElements.store(this.list[i]);
		CacheElements.now();
		this.cached = true;
	};
	this.get4flash = function() {
		$(this.fullscreen_id).returnJSON(JSON.stringify({current: this.page, list: this.list, comments: this.comm_list}));
	};
	this.setPage = function(page) {
		var so = this.list.length, i = 0;
		if (so > 1) {
			var html = '';
			if (page > 7) i = page - 7;
			if (so - 1 == page && so > 8) i--;
			if (so > 9 && so - i - 9 > 0) so = i + 9;
			if (page === 0) html += '<div class="back"><img src="img/back._.png" alt="'+ this.back +'"></div>';
			else html += '<div class="back"><a href="" onclick="'+ this.name +'.prevPage();return false"><img src="img/back.png" alt="'+ this.back +'"></a></div>';
			for (; i < so; i++) {
				if (i === page) html += '<div class="sel"><img src="img/digits/'+ (i + 1) +'.png" alt="'+ (i + 1) +'"></div>';
				else html += '<div><a href="" onclick="'+ this.name +'.setPage('+ i +');return false"><img src="img/digits/'+ (i + 1) +'.png" alt="'+ (i + 1) +'"></a></div>';
			}
			if (page === so - 1) html += '<div class="forward"><img src="img/forward._.png" alt="'+ this.forward +'"></div>';
			else html += '<div class="forward"><a href="" onclick="'+ this.name +'.nextPage();return false"><img src="img/forward.png" alt="'+ this.forward +'"></a></div>';
			this.pagesO.innerHTML = html;
			html = null;
		} else {
			var hasComments = false;
			so = this.comm_list.length;
			for (i = 0; i < so; i++) {
				if (this.comm_list[i] !== '') {
					hasComments = true;
					break;
				}
			}
			if (!hasComments) {
				so = this.no_pages_disable_us.length;
				var o;
				for (; i < so; i++) {
					o = $(this.no_pages_disable_us[i]);
					if (o) o.style.display = 'none';
				}
			}
		}
		if (this.isFLV(this.list[page])) {
			this.photoO.innerHTML = '<div style="width:725px;height:363px" id="'+ this.photo_id +'_flv">';
			swfobject.embedSWF(player, this.photo_id +'_flv', "725", "363", "8.0.0", "swf/expressInstall.swf", {xmlpath: "/player.xml/?"+ encodeURIComponent(this.list[page])}, {menu: "false", quality: "best", scale: "noscale", allowfullscreen: "false"}, {});
		} else if (this.isSWF(this.list[page])) {
			this.photoO.innerHTML = '<div style="width:725px;height:363px" id="'+ this.photo_id +'_swf">';
			swfobject.embedSWF(this.list[page], this.photo_id +'_swf', "725", "363", "8.0.0", "swf/expressInstall.swf", {}, {menu: "false", quality: "best", scale: "noscale", allowfullscreen: "false"}, {});
		} else this.photoO.innerHTML = '<img src="'+ this.list[page] +'">';
		this.commO.innerHTML = '<div style="position:absolute;top:0;left:0;width:100%">'+ this.comm_list[page] +'</div>';
		this.page = page;
		if (page > 0 && !this.cached) this.cache();
	};
	this.nextPage = function() {
		this.setPage(this.page + 1);
	};
	this.prevPage = function() {
		this.setPage(this.page - 1);
	};
	this.isFLV = function(path) {
		return (path.split('.').pop().toLowerCase() === 'flv');
	};
	this.isSWF = function(path) {
		return (path.split('.').pop().toLowerCase() === 'swf');
	};
	if (!$('elements_image_preloader')) {
		CacheElements.store('img/back.png');
		CacheElements.store('img/forward._.png');
		var so = this.list.length, i = 9;
		for (; i < so; i++) CacheElements.store('img/digits/'+ (i + 1) +'.png"');
		so = i = null;
	}
	if (typeof fullscreen_id !== 'undefined') {
		if (typeof fullscreen_id.id === 'string') fullscreen_id = fullscreen_id.id;
		swfobject.embedSWF(fullscreen, fullscreen_id, "100%", "100%", "9.0.0", "swf/expressInstall.swf", {callback: "returnJSON", object: name}, {quality: "best", allowfullscreen: "true", wmode: "transparent"}, {});
	}
	no_pages_disable_us = name = theme = back = forward = list = pages_id = photo_id = null;
	return this;
}

function backgroundChange(id) {
	backgroundChangeStart(id);
}

function backgroundChangeStart(id) {
	var fp = $('fp');
	if (!fp) return;
	if (typeof firstPageImages === 'undefined' || typeof id === 'undefined' || typeof firstPageImages[id] === 'undefined') {
		fp.innerHTML = '';
		return;
	}
	if (firstPageImages[id].url !== '') fp.innerHTML = '<a href="'+ firstPageImages[id].url +'"><img src="'+ firstPageImages[id].src +'" alt="'+ firstPageImages[id].alt.replace(/"/g, '\"') +'"></a>';
	else fp.innerHTML = '<img src="'+ firstPageImages[id].src +'" alt="'+ firstPageImages[id].alt.replace(/"/g, '\"') +'">';
}

function validateFontAndSubscribeForm() {
	var o = $('subscribe_mail'), mail = o.value, img = o.parentNode.style.backgroundImage;
	if (mail === '' || mail === $('subscribe_mail_default').value || !/^[^\@]+\@[a-z0-9\-\_\.]+\.[a-z0-9]{2,6}$/i.test(mail)) {
		o.parentNode.style.backgroundImage = img.replace('input.png', 'input.error.png');
		return false;
	}
	o.parentNode.style.backgroundImage = img.replace('input.error.png', 'input.png');
	return true;
}

var slideshow = {
	list: [],
	page: 0,
	theme: 'white',
	setPage: function(page) {
		var data = slideshow.list[page];
		$('slideshow').innerHTML = '<div class="p_title">'+ data.title +'</div><div class="p_subtitle">'+ data.subtitle +'</div><div class="h30"></div><div class="sub"><div class="pages">'+ (page > 0 ? '<div class="back"><a href="" onclick="slideshow.setPage('+ (page - 1) +');return false"><img src="img/back.png" alt=""></a></div>' : '<div class="back"><img src="img/back._.png" alt=""></div>') +' <div class="digit_1"><img src="img/digits/'+ (page + 1) +'.png" alt="'+ (page + 1) +'"></div><div class="slash"><img src="img/slash.png" alt=""></div><div class="digit_2"><img src="img/digits/'+ slideshow.list.length +'.png" alt="'+ slideshow.list.length +'"></div> '+ (page + 1 < slideshow.list.length ? '<div class="forward"><a href="" onclick="slideshow.setPage('+ (page + 1) +');return false"><img src="img/forward.png" alt=""></a></div>' : '<div class="forward"><img src="img/forward._.png" alt=""></div>') +'</div></div><div class="h30"></div><div class="cols2"><div class="cols2_2 pt8">'+ (data.img !== '' ? '<img src="'+ data.img +'" alt=""><br><br>' : '') +'<div class="text">'+ data.info +'</div>'+ (data.link_title !== '' ? '<br><a href="'+ data.link +'"'+ (data.new_window ? ' target="_blank" onclick="window.open(\''+ data.link +'\');return false"' : null) +'>'+ data.link_title +'</a>' : '')+'</div><div class="cols2_1"><div class="bigtext">'+ data.text +'</div></div></div>';
		CufonIni();
	}
};