function gebid(id) {return document.getElementById(id);}
function dce(tag) { return document.createElement(tag); }
function dct(text) { return document.createTextNode(text); }
function gebtn(parent,id) {if(typeof(id)=='undefined') {id=parent;parent=document;}if (typeof(parent)=='string') {parent=gebid(parent);}return parent.getElementsByTagName(id);}
function pf_showProject(id) {
	pf_closeProject();
	pf_createProject(id);
	return false;
}
function fnc_empty() {}
function pf_closeProject() {
	try {
		var ml = document.getElementById('modal_layer');
		ml.style.display='none';
	} catch(e) {}

	AttachEvent(document,'keydown',fnc_empty,false);
	AttachEvent(document,'keykeypress',fnc_empty,false);
	AttachEvent(document,'scroll',fnc_empty,false);
}
function pf_createProject(id) {
	var img = gebid('ann_'+id+'_img');
	var full = gebid('ann_'+id+'_full');
	var subt = gebid('ann_'+id+'_subtit');
	var tit = gebid('ann_'+id+'_tit');

	var new_text = gebid('pr_text');
	new_text.innerHTML = '';
	for(var i=0;i<full.childNodes.length;i++) {
		new_text.appendChild(full.childNodes.item(i).cloneNode(true));
	}
	var new_img = gebid('pr_img');
	new_img.src = img.src;
	var new_tit = gebid('pr_header');
	new_tit.innerHTML = '';
	for(var i=0;i<tit.childNodes.length;i++) {
		new_tit.appendChild(tit.childNodes.item(i).cloneNode(true));
	}
	var new_sub = gebid('pr_sub_text');
	new_sub.innerHTML = '';
	for(var i=0;i<subt.childNodes.length;i++) {
		new_sub.appendChild(subt.childNodes.item(i).cloneNode(true));
	}
	var ml = gebid('modal_layer');
	ml.style.display='block';
	var fixed_position = (document.documentElement.scrollTop) ? document.documentElement.scrollTop : document.body.scrollTop;
	var window_height = (document.documentElement.clientHeight) ? document.documentElement.clientHeight : document.body.clientHeight;
	if (ml.offsetHeight<window_height) {
		ml.style.top = [fixed_position+(window_height-ml.offsetHeight)/2,'px'].join('');
	} else {
		ml.style.top = [fixed_position+0,'px'].join('');
	}
	AttachEvent(document,'keydown',pf_listener,false);
	AttachEvent(document,'keypress',pf_listener,false);
	AttachEvent(window,'scroll',pf_scrollwatcher,false);
	return false;
}
function pf_listener(e) {
	if (e.keyCode == 27) {
		pf_closeProject();
	}
}
function pf_scrollwatcher() {
	var scrollheight = (window.navigator.userAgent.indexOf("Safari") == 101) ? document.body.scrollTop : document.documentElement.scrollTop;
	var window_height = (document.documentElement.clientHeight) ? document.documentElement.clientHeight : document.body.clientHeight;
	var ml = document.getElementById('modal_layer');
	if ((scrollheight>=(ml.offsetTop+ml.offsetHeight))||((scrollheight+window_height)<=ml.offsetTop)) {
		pf_closeProject();
	}
}

// deprecated
function pf_cleanUpAftreProject() {
	var d = document;
	var mc = gebid('main_container');
	mc.className = 'main_container';
	mc.style.height = '';
	gebid('container').style.marginTop = '';
	scrollTo(0, bef);
	document.onkeydown = function() {};
	document.onkeypress = function() {};
}
var bef=0;
function pf_preparePage4Project() {
	var d = document;
	var window_height = (document.documentElement.clientHeight) ? document.documentElement.clientHeight : document.body.clientHeight;
	var fixed_position = (document.documentElement.scrollTop) ? document.documentElement.scrollTop : document.body.scrollTop;
	var mc = gebid('main_container');
	bef = fixed_position;
	mc.className = 'main_container_fixed';
	gebid('container').style.marginTop = '-'+fixed_position+'px';
	mc.style.height = (window_height+1)+'px';
	scrollTo(0,0);
	document.onkeydown = pf_listener;
	document.onkeypress = pf_listener;
}