function initOnDomLoaded() { // 2.0
	iimager = new imager('imager');
}
function isDomLoaded() {
	(/loaded|complete/.test(document.readyState) ? initOnDomLoaded() : setTimeout(arguments.callee, 10));
}
if(document.addEventListener) {
	document.addEventListener('DOMContentLoaded', initOnDomLoaded, false);// firefox, opera9.02
	if((window.opera && window.opera.version() < 9.02) || /WebKit|Khtml/i.test(navigator.userAgent)) { // opera<9.02, safari, konqueror
		isDomLoaded();
	}
} else { // ie5,6,7
	initOnDomLoaded();
}

function imager(id) { // 1.2
	this.s = showImage;
	this.placeImage = placeImage;

	this.div = document.createElement('DIV');
	this.div.id = id;
    this.div.onclick = function() { this.style.display = 'none' };
	document.body.appendChild(this.div);
	this.img = document.createElement('IMG');
	this.img.obj = this;
	this.div.appendChild(this.img);
	
	function showImage(link) {
		if(this.div.style.display != 'block') {
			this.div.style.display = 'block';
		}
	
		if(!(alt=(link.childNodes.item(0).alt))) {
			var alt = link.href.substring(link.href.lastIndexOf('/') + 1);
		} 
		else {
			var alt = link.href.substring(link.href.lastIndexOf('/') + 1);
		}
		this.img.src = link.href;
		this.img.onload = function() { this.obj.placeImage(); return false };
		this.img.alt = alt;
		this.img.title = 'Close ' + alt;
		return false;
	}
	
	function placeImage() {
		var winX, winY; // overflow
		if(typeof(window.innerWidth) == 'number') {
			winX = window.innerWidth;
			winY = window.innerHeight;
		} 
		else if(document.documentElement && (document.documentElement.clientWidth || document.documentElement.clientHeight)) {
			winX = document.documentElement.clientWidth;
			winY = document.documentElement.clientHeight;
		}
		else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
			winX = document.body.clientWidth;
			winY = document.body.clientHeight;
		}
		var half = parseInt(this.img.width / 2);
		this.div.style.marginLeft = '-' + (half > winX / 2 ? parseInt(winX / 2) - 10 : half ) + 'px';
		this.div.style.width = (winX - 40 < this.img.width ? winX - 40 + 'px' : '');
		this.div.style.height = (winY - 40 < this.img.height ? winY - 40 + 'px' : '');
		var pos = 0;
		if(window.innerHeight) { // position
			pos = window.pageYOffset;
		}
		else if (document.documentElement && document.documentElement.scrollTop) {
			pos = document.documentElement.scrollTop;
		}
		else if (document.body) {
			pos = document.body.scrollTop;
		}
		this.div.style.top = pos + 10 + 'px';
	}
}

function blank(link) { // v1.0 input: object reference
	link.target='_blank';
}

function menu_onoff(item)
{
    with (document.getElementById(item).style) {
        display = ((display == "none") ? "block" : "none");
        return true;
    }
    return false;
}

function emailCheck(field, alert_string)
{
    if (alert_string == "") { alert_string = "Zadejte e-mail."; }
	return eregCheck(alert_string, field, /^[^ @]+@[^ @]+\.[^ @]+$/);
}

function eregCheck(alert_string, field, regexp)
{
	if (field.value == '' || regexp.test(field.value)) {
		return true;
	} else {
        field.focus();
        alert(alert_string);
        return false;
    }
}

function ulozitCheck(f)
{
    if (arguments[1] == "") {
        alert_string = "Nejsou zadány povinné údaje,\n formulář nelze odeslat!";
    } else {
        alert_string = arguments[1];
    }
    for (i=2; i<arguments.length; i++) {
        if ((f[arguments[i]].tagName == 'SELECT' && !f[arguments[i]].selectedIndex) || !f[arguments[i]].value) {
            f[arguments[i]].focus();
            window.alert(alert_string);
            return false;
        }
    }
    return true;
}

// ADD ls 22.1.08
function formCheck(f, txtEmpty, txtInvalid) { // 1.0
	var err='', elem='';
	for(i=3, len=arguments.length; i<len; i++) {
		elem=f[arguments[i][0]];
		if(elem.nodeName) { // select, input, textarea
			if(arguments[i][2] || !arguments[i][3]) {
				if((typeof(elem.selectedIndex) != 'undefined' && !elem.selectedIndex) || (typeof(elem.selectedIndex) == 'undefined' && elem.value == '')) err+=txtEmpty +' : '+ arguments[i][1] +"\n";
			} 
			if(arguments[i][3] && (arguments[i][2] || elem.value) && !checkFormat(elem.value, arguments[i][3])) err+=txtInvalid +' : '+ arguments[i][1] +"\n";
		} else if(elem[0]['type'] == 'checkbox') { // chbox
			for(x=0, len2=elem.length, ch=false; x<len2; x++) {
				if(elem[x]['checked']) { ch=true; break; }
			}
			if(!ch) err+=txtEmpty +' : '+ arguments[i][1] +"\n";
		}
	}
	if(err) alert(err);
	return (err ? false : true);
}

function checkFormat(val, type) { // 1.0
	switch(type) {
		case 'email': if(val.match(/^[^@]+@.+\.[a-z]+$/)) return true; break;
		case 'isnum': if(val.match(/^\d+$/)) return true; break;
		case 'date_cz': if(val.match(/^(3[01]|[0-2]*\d|)\.([0]*\d|1[0-2])\.\d{4}$/)) return true; break; // DD.MM.YYYY nebo D.M.YYYY
		case 'date_iso': if(val.match(/^\d{4}-(0\d|1[0-2])-(3[01]|[0-2]\d)$/)) return true; break; // YYYY-MM-DD
		case 'phone_cz': val=val.replace(/ /g, ''); if(val.match(/^\d{9,12}$/)) return true; break;
	}
	return false;
}
