var HtinyScrolling = {
	speed : 23,    //set here the scroll speed: when this value increase, the speed decrease. 
	maxStep: 175,	 //set here the "uniform motion" step for long distances
	brakeK: 4,		 //set here the coefficient of slowing down
	hash:null,		
	currentBlock:null,
	requestedX:0,
	scrolling:false,
	init: function() {
		var lnks = document.getElementsByTagName('a');   
		for(var i = 0, lnk; lnk = lnks[i]; i++) {   
			if ((lnk.href && lnk.href.indexOf('#') != -1) &&  ( (lnk.pathname == location.pathname) ||
			('/'+lnk.pathname == location.pathname) ) && (lnk.search == location.search)) {  
			addEvent(lnk,'click',HtinyScrolling.initScroll,false);
			lnk.onclick=function(){return false;} // Safari
			}   
		}    
	},
	getTarget: function(target) {
		while(target.tagName.toLowerCase() != 'a')
			target = target.parentNode;
		return target;
	},
	getElementXpos: function(el){
		var x = 0;
		while(el.offsetParent){  
			x += el.offsetLeft;    
			el = el.offsetParent;
		}	return x;
	},		
	getScrollLeft: function(){
		if(document.all) return (document.documentElement.scrollLeft) ? document.documentElement.scrollLeft : document.body.scrollLeft;
		else return window.pageXOffset;   
	},	
	getWindowWidth: function(){
		if (window.innerWidth)	return window.innerWidth; 
		if(document.documentElement && document.documentElement.clientWidth) return document.documentElement.clientWidth;
	},
	getDocumentWidth: function(){
		if (document.width) return document.width;
		if(document.body.offsetWidth) return document.body.offsetWidth;
	},
	initScroll: function(e){
		var targ;  
		if(!HtinyScrolling.scrolling) {
			HtinyScrolling.scrolling = true;
			if (!e) var e = window.event;
			if (e.target) targ = e.target;
			else if (e.srcElement) targ = e.srcElement;  
			targ = HtinyScrolling.getTarget(targ);
			HtinyScrolling.hash = targ.href.substr(targ.href.indexOf('#')+1,targ.href.length); 
			HtinyScrolling.currentBlock = document.getElementById(HtinyScrolling.hash);   
			if(!HtinyScrolling.currentBlock) return;
			HtinyScrolling.requestedX = HtinyScrolling.getElementXpos(HtinyScrolling.currentBlock); 
			HtinyScrolling.scroll(targ); 
			return false;
		}
	},
	scroll: function(targ){
		
		var left  = HtinyScrolling.getScrollLeft();
		if(HtinyScrolling.requestedX > left) { 
			var endDistance = Math.round((HtinyScrolling.getDocumentWidth() - (left + HtinyScrolling.getWindowWidth())) / HtinyScrolling.brakeK);
			endDistance = Math.min(Math.round((HtinyScrolling.requestedX-left)/ HtinyScrolling.brakeK), endDistance);
			var offset = Math.max(2, Math.min(endDistance, HtinyScrolling.maxStep));
		} else { var offset = - Math.min(Math.abs(Math.round((HtinyScrolling.requestedX-left)/ HtinyScrolling.brakeK)), HtinyScrolling.maxStep);
		} window.scrollTo(left + offset, 0);  
		if(Math.abs(left-HtinyScrolling.requestedX) <= 1 || HtinyScrolling.getScrollLeft() == left) {
			window.scrollTo(HtinyScrolling.requestedX, 0);
			HtinyScrolling.scrolling = false;
			if(typeof XULDocument != 'undefined') {
				location.hash = HtinyScrolling.hash;
			}
			
			HtinyScrolling.hash = null;
		} else 	setTimeout(HtinyScrolling.scroll,HtinyScrolling.speed);		
		//moveReturnerIE();
	}
}

var isIE = 0;

function moveReturnerIE() {
	if(isIE) {
		wideWin = getWidth();
		var returnerElement = document.getElementById('returner');
		returnerElement.style.left = (document.documentElement.scrollLeft + wideWin - 200) + 'px'; 	
	}
}

var scrollTips = {
	dx : null,
	init : function() {	
		if (window.addEventListener) { //FF?
		window.addEventListener("DOMMouseScroll", this.mouseScroll, false);
		} else { //IE?
			document.attachEvent("onmousewheel", this.mouseScroll); 
			window.attachEvent("onscroll", this.winScroll);
		}
	},
	winScroll : function() {
		
		moveReturnerIE();
	},
	mouseScroll : function(e) {
		if (!e) var e = window.event;
			if (e.wheelDelta <= 0 || e.detail>=0) {  
				window.scrollBy(80,0);
				//moveReturnerIE();
			} else {
				window.scrollBy(-80,0) ; 
				//moveReturnerIE();
			}
		}
}

function addEvent( obj, type, fn ) {
	if (obj.addEventListener)
		obj.addEventListener( type, fn, false );
	else if (obj.attachEvent) {
		obj["e"+type+fn] = fn;
		obj[type+fn] = function() { obj["e"+type+fn]( window.event ); }
		obj.attachEvent( "on"+type, obj[type+fn] );
	}
}

function removeEvent( obj, type, fn ) {
	if (obj.removeEventListener)
		obj.removeEventListener( type, fn, false );
	else if (obj.detachEvent) {
		obj.detachEvent( "on"+type, obj[type+fn] );
		obj[type+fn] = null;
		obj["e"+type+fn] = null;
	}
}

function getWidth() {
	var windowWidth = 0;
	if (typeof(window.innerWidth) == 'number') {
		windowWidth = window.innerWidth;
	}
	else {
		if (document.documentElement && document.documentElement.clientWidth) {
			windowWidth = document.documentElement.clientWidth;
		}
		else {
			if (document.body && document.body.clientWidth) {
				windowWidth = document.body.clientWidth;
			}
		}
	}
	return windowWidth;
}

function getHeight() {
	var windowHeight = 0;
	if (typeof(window.innerHeight) == 'number') {
		windowHeight = window.innerHeight;
	}
	else {
		if (document.documentElement && document.documentElement.clientHeight) {
			windowHeight = document.documentElement.clientHeight;
		}
		else {
			if (document.body && document.body.clientHeight) {
				windowHeight = document.body.clientHeight;
			}
		}
	}
	return windowHeight;
}

function setMargins(pageType, pageContentsWidth) {
	if (document.getElementById) {
		var windowWidth = getWidth();
		var windowHeight = getHeight();
		
		// Leftsider margin
		if (windowWidth > 0) {
			var marginElement = document.getElementById('leftsider');
			if (marginElement) {
				marginElement.style.paddingLeft = Math.ceil(Math.abs(windowWidth - 375)/2) + 'px';
				marginElement.style.paddingRight = Math.ceil(Math.abs(windowWidth - 375)/2) + 'px';
			}
		}
		
		// Top margin
		if (windowHeight > 0) {
			var topElement = document.getElementById('page');
			topElement.style.top = Math.ceil(((windowHeight - 600)/2)+13) + 'px';
		}		
		
		//document.body.style.width = (2920 + (windowWidth - 375)*2) + 'px';
		switch (pageType)
		{
			case "main":
				document.body.style.width = (pageContentsWidth + windowWidth) + 'px';	
			break
		}	
		
		// Returner Position
		var returnerElement = document.getElementById('returner');
		
		if (typeof document.body.style.maxHeight != "undefined") {
			returnerElement.style.top = (parseInt(topElement.style.top)-29) + 'px';
		} else {
			isIE = 1;
			returnerElement.style.top = '-29px';
		}
		returnerElement.style.left = (windowWidth - 200) + 'px';
		
		// Background Red position & sizing
		var imgBgRedElement = document.getElementById('imgBgRed');
		imgBgRedElement.style.width = Math.ceil(windowWidth + parseInt(pageContentsWidth) - 71) + 'px';
		imgBgRedElement.style.height = '598px';
	}
}

function createMarker(point,html) {
  var marker = new GMarker(point);
  GEvent.addListener(marker, "click", function() {
    marker.openInfoWindowHtml(html);
  });
  return marker;
}

function loadMap() {
	//if (GBrowserIsCompatible()) {
		var map = new GMap2(document.getElementById("map"));
		map.addControl(new GSmallMapControl());
		map.setCenter(new GLatLng(41.402397,2.155563), 17);
		
	  var point = new GLatLng(41.402397,2.155563);
	  var marker = createMarker(point,'<div style="position: relative; top: 20px; color: #000;"><img src="/img/rsbAdress.gif" alt="C/ Montseny, 30. 08012, Barcelona, Spain" /></div>')
    map.addOverlay(marker);
   	return true;
	//}
	return false;
}

//Funcions pel formulario de contacte
function checkEmail(formObjectName){

var ok = true;
var formObject = document.getElementById(formObjectName);
var value = formObject.value;
if(value!=""){
 var a = value.indexOf("@");
 var p = value.indexOf(".", a);
 if(a>-1 && p>-1){
 clearError(formObjectName);
 }else{
 showError(formObjectName, "Email incorrecto.");
 ok=false;
 }
 }
 return ok;
}

function checkMandatoryFields(){
	var ok = true;
	
	ok = !isEmptyTextField("email") && ok;
	
	return ok;
}

function validate(){
	var ok = true;
	ok = checkMandatoryFields() && ok;
	ok = checkEmail("email") && ok;
	return ok;
}

function isEmptyTextField(formObjectName){
	var empty = false;
	var formObject = document.getElementById(formObjectName);
	clearError(formObjectName);
	if(formObject){
		if(formObject.value==""){
			empty=true;
			showError(formObjectName, "Necesitamos el email para contestarte");
		}
	}
	return empty;
}
	
function showError(formObjectName, text){
	var formObject = document.getElementById(formObjectName+"Error");
	if(formObject) formObject.innerHTML=text;
	var formObject = document.getElementById(formObjectName+"Label");
	if(formObject){
		var className = formObject.className;
		if(text==""){
			if(className.indexOf("Error")>0){
				formObject.className = className.split("Error")[0];
			}
		}else{
			if(className.indexOf("Error")==-1){
				formObject.className = className+"Error";
			}
		}
	}
}
		
function clearError(formObjectName){
	showError(formObjectName, "");
}

function gotoContacto() {
	var contactFormElement = document.getElementById('seventh');
	window.scrollTo(contactFormElement.offsetLeft + getWidth() , 0);
}

//Window events

//HtinyScrolling.init(); 
//scrollTips.init();

window.onload = function() {
	HtinyScrolling.init(); 
	scrollTips.init();
	setMargins("main", 4466);
	//zg_insert_badge();
	
	vesAlContactarOno();
}



window.onresize = function() {
	setMargins("main", 4466);//3541
}
