window.onload =actionsInit;

function actionsInit()
{
	realizeInit();
	grayInit();
	initForms();
}

function realizeInit()
{


	for(var i=0; i<document.links.length;i++)
			{

				var linkObj=document.links[i];
				if(linkObj.className == 'realizacje')
					linkObj.onclick =  initRealize;
		}
}

function initRealize()
{
	var divObj = document.getElementById(this.id+'box');
	if(divObj)
		{
			if(!divObj.initiated)
				{
					initPictures(this.id)
					divObj.initiated = 1;
				}
					if (!divObj.style.display || divObj.style.display == 'none')
						if (navigator.appName == "Microsoft Internet Explorer")
						{

							var ov = document.createElement('div');
							ov.className = 'ov';
							var divOv = document.body.appendChild(ov);
							divObj.style.display = 'block';
						}
						else
							divObj.style.display = 'table';
					var closeObj=document.getElementById(this.id + 'close');
					closeObj.divToClose = divObj;
					if (navigator.appName == "Microsoft Internet Explorer")
						closeObj.Ov = divOv;
						closeObj.onclick = closeWindow;


		}
	return false;
}

function initPictures(id)
{
	var contenerObj = document.getElementById(id+'contener')
	if(contenerObj)
	{
		contenerObj.links = contenerObj.getElementsByTagName('a');
		if (contenerObj.links.length > 0)
		{
			var images = new Array(contenerObj.links.length);
			var imgClass = 'img';
			var big = document.getElementById(id+'big');
			var url = document.getElementById('act_url').href;
			for(var i=0;i<contenerObj.links.length;i++)
			{
				images[i] = new Image();
				images[i].imgName = contenerObj.links[i].id;
				images[i].className = imgClass;
				images[i].src = url + 'photos/pages/ming_' + images[i].imgName;

				images[i].mid = new Image();
				//images[i].mid.className = imgClass;
				images[i].mid.src = url + 'photos/pages/mid_' + images[i].imgName;

				images[i].min = new Image();
				images[i].min.imgName = contenerObj.links[i].id;
				images[i].min.className = imgClass;
				images[i].min.src = url + 'photos/pages/min_' + images[i].imgName;
			}
			var img = new Image();
			img.src = images[0].mid.src;
			img.className = images[0].mid.className;
			imgToChange = big.appendChild(img);

			var link =null;
			var kol = document.getElementById(id+'kol');
			for(i=0;i<images.length;i++)
			{
				img = new Image();
				img.src = images[i].mid.src;
				img.style.display = 'none';
				big.appendChild(img);
				setupRollOver(images[i],imgToChange);
				link = createLink();
				link.appendChild(images[i]);
				kol.appendChild(link);
			}
		}

	}
}

function createLink()
{
	link = document.createElement('A');
	link.href='#';
	link.onclick = returnFalse;
	return link;
}

function returnFalse()
{
	return false;
}


function setupRollOver(thisImage,imgToChange)
{
	thisImage.old = new Image();
	thisImage.old.src = thisImage.src;
	thisImage.imgToChange = imgToChange;
	thisImage.onmouseover = rollOverR;
	thisImage.onmouseout = rollOutR;
}
function rollOverR()
{
	this.imgToChange.src = this.mid.src;
	this.src = this.min.src;
}
function rollOutR()
{
	this.src = this.old.src;
}
function closeWindow()
{
	this.divToClose.style.display = 'none';
	if (navigator.appName == "Microsoft Internet Explorer")
		this.Ov.style.display = 'none';
	return false;
}

function linksInit()
{
	for(var i=0; i<document.links.length;i++)
		{

			var linkObj=document.links[i];
			if(linkObj.className == 'menu')
				linkObj.onclick =  showText;
		}
}
function showText()
{
	var divObj = document.getElementById(this.id+'txt');

	if(divObj)
		{
		if (divObj.style.display == 'none' || !divObj.style.display)
			divObj.style.display = 'block';
		else
			divObj.style.display = 'none';
		}
	return false;

}


function grayInit()
{
	var images = document.getElementsByTagName('img');
	for(var i=0;i<images.length; i++)
		{
			var imgObj = document.getElementById(images[i].id + 'color');
			if (imgObj)
				{
					setupImage(images[i],imgObj);
				}
		}
}

function setupImage(img,imgColor)
{
	img.gray = new Image();
	img.gray.src = img.src;
	img.color = imgColor;
	img.onmouseover = rollOver;
	img.onmouseout = rollOut;
}

function rollOver()
{
	this.src = this.color.src;
}

function rollOut()
{
	this.src = this.gray.src;
}

function initForms() {
	for (var i=0; i< document.forms.length; i++) {
		
		document.forms[i].onsubmit =  validForm;
		document.forms[i].onreset =  clearForm;
	}
}

function validForm() {
	var allGood = true;
	var allTags = document.getElementsByTagName("*");
	for (var i=0; i<allTags.length; i++) {
		if (!validTag(allTags[i])) {
			allGood = false;
		}
	}
	return allGood;
	

	

	function validTag(thisTag)
	{
		var outClass = "";
		var allClasses = thisTag.className.split(" ");
		for (var j=0; j<allClasses.length; j++)
			{
			if (allClasses[j] == "invalid")
				{
				var obj = document.getElementById(thisTag.name + '_error');
			if (obj)
				obj.style.display='none';
				}
			else
				outClass += validBasedOnClass(allClasses[j]) + " ";
			}

		thisTag.className = outClass;

		if (outClass.indexOf("invalid") > -1) {
			if (allGood)
			{
				thisTag.focus();
				if (thisTag.nodeName == "INPUT" || thisTag.nodeName == "TEXTAREA")
					thisTag.select();
			}
			obj = document.getElementById(thisTag.name + '_error');
			if (obj)
				{
				obj.style.display='block';
				}
		

			return false;
		}
		return true;

		function validBasedOnClass(thisClass) {
			var classBack = "";
			switch(thisClass) {
				case "":
					break;
				case "email":
					if(!validEmail(thisTag.value)) classBack += thisClass + " invalid ";
					break;
				case "reqd":
					if (thisTag.value == "") classBack = "invalid ";
					classBack += thisClass;
					break;
				
				default:
					classBack += thisClass;
			}
			return classBack;

			function validEmail(email) {
			var re = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;

			return re.test(email);
		}

		
		}
	}
}
function clearForm()
{
	var allTags = document.getElementsByTagName("*");
	for (var i=0; i<allTags.length; i++) {
		hideTagBasedOnClasses(allTags[i]);
	}
	function hideTagBasedOnClasses(thisTag)
	{
		var re = /.*error.*/;
		if (re.test(thisTag.className))
			{
			thisTag.style.display='none';
				
			}
			
	}
}

function setField(fieldValue, formName, fieldName) 
{
	var formNameObj = document.getElementById(formName);
	formNameObj.elements[fieldName].value = fieldValue;
}