Object.extend(Element, {
	getWidth: function(element) {
	   	element = $(element);
	   	return element.offsetWidth; 
	},
	setWidth: function(element,w) {
	   	element = $(element);
    	element.style.width = w +"px";
	},
	setHeight: function(element,h) {
   		element = $(element);
    	element.style.height = h +"px";
	},
	setTop: function(element,t) {
	   	element = $(element);
    	element.style.top = t +"px";
	},
	setSrc: function(element,src) {
    	element = $(element);
    	element.src = src; 
	},
	setHref: function(element,href) {
    	element = $(element);
    	element.href = href; 
	},
	setInnerHTML: function(element,content) {
		element = $(element);
		element.innerHTML = content;
	}
});

function getPageSize(){
	
	var xScroll, yScroll;
	var pageHeight = 0;
	var pageWidth = 0;
	
	if (window.innerHeight && window.scrollMaxY) {	
		xScroll = document.body.scrollWidth;
		yScroll = window.innerHeight + window.scrollMaxY;
	} else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac
		xScroll = document.body.scrollWidth;
		yScroll = document.body.scrollHeight;
	} else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
		xScroll = document.body.offsetWidth;
		yScroll = document.body.offsetHeight;
	}
	
	var windowWidth, windowHeight;
	if (self.innerHeight) {	// all except Explorer
		windowWidth = self.innerWidth;
		windowHeight = self.innerHeight;
	} else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
		windowWidth = document.documentElement.clientWidth;
		windowHeight = document.documentElement.clientHeight;
	} else if (document.body) { // other Explorers
		windowWidth = document.body.clientWidth;
		windowHeight = document.body.clientHeight;
	}	
	
	// for small pages with total height less then height of the viewport
	if(yScroll < windowHeight){
		pageHeight = windowHeight;
	} else { 
		pageHeight = yScroll;
	}

	// for small pages with total width less then width of the viewport
	if(xScroll < windowWidth){	
		pageWidth = windowWidth;
	} else {
		pageWidth = xScroll;
	}


	var arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight) 
	return arrayPageSize;
}

function get(obj, destination, divId) {
	var getstr = "?ajax=true";

	var inputs = obj.getElementsByTagName("INPUT");
	var textareas = obj.getElementsByTagName("TEXTAREA");
	var selects = obj.getElementsByTagName("SELECT");
	
	for (i=0; i<textareas.length; i++) {
		getstr += "&" + textareas[i].name + "=" + escape(textareas[i].value);
	}
	
	for (i=0; i<inputs.length; i++) {
		if (inputs[i].type == "text") {
			getstr += "&" + inputs[i].name + "=" + inputs[i].value;
		}
		if (inputs[i].type == "password") {
			getstr += "&" + inputs[i].name + "=" + inputs[i].value;
		}
		if (inputs[i].type == "hidden") {
			getstr += "&" + inputs[i].name + "=" + inputs[i].value;
		}
		if (inputs[i].type == "checkbox") {
			if (inputs[i].checked) {
				getstr += "&" + inputs[i].name + "=" + inputs[i].value;
			} else {
				getstr += "&" + inputs[i].name;
			}
		}
		if (inputs[i].type == "radio") {
			if (inputs[i].checked) {
				getstr += "&" + inputs[i].name + "=" + inputs[i].value;
			}
		}
	}
	
	for (i=0; i<selects.length; i++) {
		var sel = selects[i];
		getstr += "&" + sel.name + "=" + sel.options[sel.selectedIndex].value;
	}
	
	load(destination + getstr, divId);
}

function load(url, containerid){
	var page_request = false
	if (window.XMLHttpRequest) // if Mozilla, Safari etc
		page_request = new XMLHttpRequest()
	else if (window.ActiveXObject){ // if IE
		try {
			page_request = new ActiveXObject("Msxml2.XMLHTTP")
		} 
		catch (e){
			try{
				page_request = new ActiveXObject("Microsoft.XMLHTTP")
			}
			catch (e){}
		}
	}
	else
	return false
	if (url.match("[?]")) {
		var split = new Array();
		split = url.split("?");
		url = split[0];
		var parameters = split[1];
	} else {
		var parameters = '';
	}
	page_request.onreadystatechange=function(){
		loadpage(page_request, containerid)
	}
	page_request.open('POST', url, true);
	page_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	page_request.setRequestHeader("Content-length", parameters.lenght);
	page_request.setRequestHeader("Connection", "close");
	page_request.send(parameters);
}

function loadpage(page_request, containerid){
	if (page_request.readyState == 4 && (page_request.status==200 || window.location.href.indexOf("http")==-1)) {
		document.getElementById(containerid).innerHTML=page_request.responseText;
		document.getElementById('loading').style.visibility = 'hidden';
	}
}

function openEmailForm() {
	Lightbox.prototype.initialize();
	var arrayPageSize = getPageSize();
	Element.setHeight('overlay2', arrayPageSize[1]);
	new Effect.Appear('overlay2', { duration: 0.2, from: 0.0, to: 0.8 });
	document.getElementById('emailform').style.display = 'block';
	document.getElementById('emailform').style.left = ((arrayPageSize[2] / 2) - 200) + "px";
}

function closeEmailForm() {
	document.getElementById('emailform').style.display = 'none';
	new Effect.Fade('overlay2', { duration: 0.2});
}

function submit() {
	get(document.getElementById('emailform'), 'contactform.php', 'emailform');
}