
// ************************ PAGE LAYOUT **************************************

var PAGE_MIN_WIDTH = 760;
var PAGE_MAX_WIDTH = 1100;

function fitWidth() {
	if(document.body.clientWidth > PAGE_MAX_WIDTH) return PAGE_MAX_WIDTH + "px";
	if(document.body.clientWidth < PAGE_MIN_WIDTH) return PAGE_MIN_WIDTH + "px";
	return Math.floor(document.body.clientWidth / 2) *2;
}

function fitLeftMargin() {
	if(document.body.clientWidth > PAGE_MAX_WIDTH) return Math.round((document.body.clientWidth - PAGE_MAX_WIDTH) / 2)  + "px";
	return "0px";
}

// ************************ UTILITES **************************************

function getMouseOffset(target, ev){
	ev = ev || window.event;

	var docPos    = getPosition(target);
	var mousePos  = mouseCoords(ev);
	return {x:mousePos.x - docPos.x, y:mousePos.y - docPos.y};
}

function getPosition(e){
	var left = 0;
	var top  = 0;

	while (e.offsetParent){
		left += e.offsetLeft;
		top  += e.offsetTop;
		e     = e.offsetParent;
	}

	left += e.offsetLeft;
	top  += e.offsetTop;

	return {x:left, y:top};
}

function mouseCoords(ev){
	if(ev.pageX || ev.pageY){
		return {x:ev.pageX, y:ev.pageY};
	}
	
	return {
		x:ev.clientX + document.body.scrollLeft - document.body.clientLeft,
		y:ev.clientY + document.body.scrollTop  - document.body.clientTop
	};
}

function getRequestParameter(name) {
	name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
	var regexS = "[\\?&]" + name + "=([^&#]*)";
	var regex = new RegExp(regexS);
	
	var results = regex.exec(window.location.href);
	
	if( results == null ) return "";
	return results[1];
}



function addListener(element, type, expression, bubbling)
{
  bubbling = bubbling || false;
  if(window.addEventListener)	{ // Standard
    element.addEventListener(type, expression, bubbling);
    return true;
  } else if(window.attachEvent) { // IE
    element.attachEvent('on' + type, expression);
    return true;
  } else return false;
}

var ImageLoader = function(imgurl){
	this.url = imgurl;
	this.image = null;
	this.loadEvent = null;
};

ImageLoader.prototype = {
  load:function(){
    this.image = document.createElement('img');
    var url = this.url;
    var image = this.image;
    var loadEvent = this.loadEvent;
    addListener(this.image, 'load', function(e){
      if(loadEvent != null){
        loadEvent(image);
      }
    }, false);
    this.image.src = this.url;
  },
  getImage:function(){
    return this.image;
  }
};



// ************************ MAIN MENU **************************************


var menuItemPositions = {
	"main": -80,
	"service": -40,
	"portfolio": 0,
	"contact": -120,
	"faq": -160	
}
function menuItemOver(menuitem){
	if(typeof menuItemPositions[menuitem] != "undefined") $(".main-menu-item-" + menuitem + " .menuitem").animate({top: menuItemPositions[menuitem] - 20} , 100);
}
function menuItemOut(menuitem){
	if(typeof menuItemPositions[menuitem] != "undefined") $(".main-menu-item-" + menuitem + " .menuitem").animate({top: menuItemPositions[menuitem]} , 100);
}

