var behaviours = {
	'#registerform' : function (el) {
		el.onsubmit = function () {
			if (validateRegistrationForm()) {
        return true;
      } else {
        window.location.hash = '#content';
        return false;
      }
		}
	}, 
	'#loginform' : function (el) {
		el.onmouseover = function () {
//			$('loginform').getElementsByTagName('input')[0].focus();
		}
	}, 
	'#accountform' : function (el) {
		el.onsubmit = function () {
			return validateAccountForm();
		}
	}, 
	'#membertype' : function (el) {
		el.onchange = function () {
			if ($F('membertype') == 'Other' && el.nodeName == 'SELECT') {
				$('membertype').id = 'xmembertype';
				$('xmembertype').name = 'xmembertype';
				var _other = document.createElement('input');
				_other.id = 'membertype';
				_other.name = 'membertype';
				_other.className = 'std';
				$('xmembertype').parentNode.appendChild(_other);
				$('xmembertype').style.display = 'none';
			}
			Behaviour.apply();
		}, 
		el.ondblclick = function () {
			if (el.nodeName == 'INPUT') {
				$('membertype').parentNode.removeChild($('membertype'));
				$('xmembertype').id = 'membertype';
				$('membertype').name = 'membertype';
				$('membertype').style.display = 'inline';
			}
			Behaviour.apply();
		}
	}, 
	'#newsletter' : function (el) {
		el.onchange = function (e) {
			if (el.checked) {
				if ($F('newsletter_email') == '');
				$('newsletter_email').value = $F('email');
				$('newsletter_email_p').style.display = 'block';
			} else {
				$('newsletter_email_p').style.display = 'none';
				$('newsletter_email').value = '';
				
			}
			Behaviour.apply();
		} 
	}, 
	'#industry' : function (el) {
		el.onchange = function () {
			if ($F('industry') == 'Other' && el.nodeName == 'SELECT') {
				$('industry').id = 'xindustry';
				$('xindustry').name = 'xindustry';
				var _other = document.createElement('input');
				_other.id = 'industry';
				_other.name = 'industry';
				_other.className = 'std';
				$('xindustry').parentNode.appendChild(_other);
				$('xindustry').style.display = 'none';
			}
			Behaviour.apply();
		}, 
		el.ondblclick = function () {
			if (el.nodeName == 'INPUT') {
				$('industry').parentNode.removeChild($('industry'));
				$('xindustry').id = 'industry';
				$('industry').name = 'industry';
				$('industry').style.display = 'inline';
			}
			Behaviour.apply();
		}
	}, 
	'#interest' : function (el) {
		el.onchange = function () {
			if ($F('interest') == 'Other' && el.nodeName == 'SELECT') {
				$('interest').id = 'xinterest';
				$('xinterest').name = 'xinterest';
				var _other = document.createElement('input');
				_other.id = 'interest';
				_other.name = 'interest';
				_other.className = 'large';
				$('xinterest').parentNode.appendChild(_other);
				$('xinterest').style.display = 'none';
			}
			Behaviour.apply();
		}, 
		el.ondblclick = function () {
			if (el.nodeName == 'INPUT') {
				$('interest').parentNode.removeChild($('interest'));
				$('xinterest').id = 'interest';
				$('interest').name = 'interest';
				$('interest').style.display = 'inline';
			}
			Behaviour.apply();
		}
	}, 
	'#regulation' : function (el) {
		el.onchange = function () {
			if ($F('regulation') == 'Other' && el.nodeName == 'SELECT') {
				$('regulation').id = 'xregulation';
				$('xregulation').name = 'xregulation';
				var _other = document.createElement('input');
				_other.id = 'regulation';
				_other.name = 'regulation';
				_other.className = 'large';
				$('xregulation').parentNode.appendChild(_other);
				$('xregulation').style.display = 'none';
			}
			Behaviour.apply();
		}, 
		el.ondblclick = function () {
			if (el.nodeName == 'INPUT') {
				$('regulation').parentNode.removeChild($('regulation'));
				$('xregulation').id = 'regulation';
				$('regulation').name = 'regulation';
				$('regulation').style.display = 'inline';
			}
			Behaviour.apply();
		}
	}, 
	'#hearabout' : function (el) {
		el.onchange = function () {
			if ($F('hearabout') == 'Other' && el.nodeName == 'SELECT') {
				$('hearabout').id = 'xhearabout';
				$('xhearabout').name = 'xhearabout';
				var _other = document.createElement('input');
				_other.id = 'hearabout';
				_other.name = 'hearabout';
				_other.className = 'large';
				$('xhearabout').parentNode.appendChild(_other);
				$('xhearabout').style.display = 'none';
			}
			Behaviour.apply();
		}, 
		el.ondblclick = function () {
			if (el.nodeName == 'INPUT') {
				$('hearabout').parentNode.removeChild($('hearabout'));
				$('xhearabout').id = 'hearabout';
				$('hearabout').name = 'hearabout';
				$('hearabout').style.display = 'inline';
			}
			Behaviour.apply();
		}
	}, 
	'#showmap' : function (el) {
		el.onclick = function () {
			var comp = $('contactaddress').getElementsByTagName('a')[0].innerHTML;
			Effect.Shrink('showmap');
			Effect.Grow('ifitmap', {afterFinish: function (obj) {loadMap(comp);} });
			return false;
		}
	}, 
	'#hidemap' : function (el) {
		el.onclick = function () {
			GUnload(); 
			Effect.Shrink('ifitmap');
			Effect.Grow('showmap');
			return false;
		}
	}, 
	'#start-institute a' : function (el) {
		el.onclick = function () {
			var _img = document.createElement('img');
			_img.id = 'theman';
			_img.src = '/images/ifit82.png';
			_img.style.display = 'block';
			_img.style.position = 'absolute';
			_img.style.top = 215 + 'px';
			var _l = (document.documentElement.clientWidth - 295) /2;
			_img.style.left =  _l -8 + 'px';
			document.getElementsByTagName('body')[0].appendChild(_img);
			Effect.MoveBy('theman', -165, ((document.documentElement.clientWidth - 684) /2) - _l, {afterFinish: function () {location.href='/institute/';}});
			return false;
		}
	},
	'#start-advisory a' : function (el) {
		el.onclick = function () {
			var _img = document.createElement('img');
			_img.id = 'theman';
			_img.src = '/images/ifit82.png';
			_img.style.display = 'block';
			_img.style.position = 'absolute';
			_img.style.top = 357 + 'px';
			var _l = (document.documentElement.clientWidth - 295) /2;
			_img.style.left =  _l -8 + 'px';
			document.getElementsByTagName('body')[0].appendChild(_img);
			Effect.MoveBy('theman', -307, ((document.documentElement.clientWidth - 684) /2) - _l, {afterFinish: function () {location.href='/advisory/';}});
			return false;
		}
	},
	'#start-prop a' : function (el) {
		el.onclick = function () {
			var _img = document.createElement('img');
			_img.id = 'theman';
			_img.src = '/images/ifit82.png';
			_img.style.display = 'block';
			_img.style.position = 'absolute';
			_img.style.top = 499 + 'px';
			var _l = (document.documentElement.clientWidth - 295) /2;
			_img.style.left =  _l -8 + 'px';
			document.getElementsByTagName('body')[0].appendChild(_img);
			Effect.MoveBy('theman', -449, ((document.documentElement.clientWidth - 684) /2) - _l, {afterFinish: function () {location.href='/prop/';}});
			return false;
		}
	}
};

Behaviour.register(behaviours);


// ugly hack!!
function correctBehaviours() {
	inputList = document.getElementsByTagName('input');
	affectedList = new Array();
	for (var i = 0; i < inputList.length; i++) {
		if (inputList[i].name.indexOf('_bak') > 1 ) {
			if (document.getElementById(inputList[i].name.substr(0, inputList[i].name.indexOf('_bak')))) {
				var affectedSelect = $(document.getElementById(inputList[i].name.substr(0, inputList[i].name.indexOf('_bak'))));
				var foundInSelect = false;
				for (var j = 0; j < affectedSelect.options.length; j++) {
					if (inputList[i].value == affectedSelect.options[j].value) {
						foundInSelect = true;
					}
				}
				if (!foundInSelect) {
					affectedSelect.options[affectedSelect.options.length] = new Option(inputList[i].value, inputList[i].value, false, true);
				}
				
			}
		}
	}
}

window.oldWinOnLoad = window.onload
window.onload = function() {
	window.oldWinOnLoad();
	correctBehaviours();
}



function something () {
	alert('WTF');
}
function validateRegistrationForm () {
	var errs = 0;

	checkLoginAvailability($F('login'));

	if (!$F('login').match(/^[a-z0-9]+$/i)) {
		$('login').parentNode.className = 'error';
		errs++;
	} else {
		$('login').parentNode.className = '';
	}

	if (!$F('password').match(/^.{6,64}$/i)) {
		$('password').parentNode.className = 'error';
		errs++;
	} else {
		$('password').parentNode.className = '';
	}

	if (!($F('password2') == $F('password'))) {
		$('password2').parentNode.className = 'error';
		errs++;
	} else {
		$('password2').parentNode.className = '';
	}

	if (!$F('membertype').match(/^.+$/)) {
		$('membertype').parentNode.className = 'error';
		errs++;
	} else {
		$('membertype').parentNode.className = '';
	}

	if (!$F('firstname').match(/^.+$/i)) {
		$('firstname').parentNode.className = 'error';
		errs++;
	} else {
		$('firstname').parentNode.className = '';
	}

	if (!$F('lastname').match(/^.+$/i)) {
		$('lastname').parentNode.className = 'error';
		errs++;
	} else {
		$('lastname').parentNode.className = '';
	}

	if (!$F('address').match(/^.+$/i)) {
		$('address').parentNode.className = 'error';
		errs++;
	} else {
		$('address').parentNode.className = '';
	}

	if (!$F('city').match(/^.+$/i)) {
		$('city').parentNode.className = 'error';
		errs++;
	} else {
		$('city').parentNode.className = '';
	}

	if (!$F('zip').match(/^[a-z0-9]+$/i)) {
		$('zip').parentNode.className = 'error';
		errs++;
	} else {
		$('zip').parentNode.className = '';
	}

	if (!$F('country').match(/^.+$/)) {
		$('country').parentNode.className = 'error';
		errs++;
	} else {
		$('country').parentNode.className = '';
	}

	if (!$F('email').match(/^[a-zA-Z][\w\.-]*[a-zA-Z0-9]@[a-zA-Z0-9][\w\.-]*[a-zA-Z0-9]\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z]$/)) {
		$('email').parentNode.className = 'error';
		errs++;
	} else {
		$('email').parentNode.className = '';
	}

	if ($F('newsletter')) {
		if (!$F('newsletter_email').match(/^[a-zA-Z][\w\.-]*[a-zA-Z0-9]@[a-zA-Z0-9][\w\.-]*[a-zA-Z0-9]\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z]$/)) {
			$('newsletter_email').parentNode.className = 'error';
			errs++;
		} else {
			$('newsletter_email').parentNode.className = '';
		}
	} else {
		$('newsletter_email').parentNode.className = '';
	}
	

	
	if (!$F('industry').match(/^.+$/)) {
		$('industry').parentNode.className = 'error';
		errs++;
	} else {
		$('industry').parentNode.className = '';
	}
	
	if (errs > 0) {
		$('badvalues').innerHTML = 'Some fields were not filled correctly. Please try again.';
		$('badvalues').style.display = 'block';
		return false;
	} else {
		$('badvalues').innerHTML = '';
		$('badvalues').style.display = 'none';
		return true;
	}
}

function validateAccountForm () {

	var errs = 0;
	
	if ($F('oldpassword').match(/^.+$/)) {
		if (!$F('newpassword').match(/^.{6,64}$/i)) {
			$('newpassword').parentNode.className = 'error';
			errs++;
		} else {
			$('newpassword').parentNode.className = '';
		}

		if (!($F('newpassword2') == $F('newpassword'))) {
			$('newpassword2').parentNode.className = 'error';
			errs++;
		} else {
			$('newpassword2').parentNode.className = '';
		}
	}

	if (!$F('membertype').match(/^.+$/)) {
		$('membertype').parentNode.className = 'error';
		errs++;
	} else {
		$('membertype').parentNode.className = '';
	}

	if (!$F('firstname').match(/^.+$/i)) {
		$('firstname').parentNode.className = 'error';
		errs++;
	} else {
		$('firstname').parentNode.className = '';
	}

	if (!$F('lastname').match(/^.+$/i)) {
		$('lastname').parentNode.className = 'error';
		errs++;
	} else {
		$('lastname').parentNode.className = '';
	}

	if (!$F('address').match(/^.+$/i)) {
		$('address').parentNode.className = 'error';
		errs++;
	} else {
		$('address').parentNode.className = '';
	}

	if (!$F('city').match(/^.+$/i)) {
		$('city').parentNode.className = 'error';
		errs++;
	} else {
		$('city').parentNode.className = '';
	}

	if (!$F('zip').match(/^[a-z0-9]+$/i)) {
		$('zip').parentNode.className = 'error';
		errs++;
	} else {
		$('zip').parentNode.className = '';
	}

	if (!$F('country').match(/^.+$/)) {
		$('country').parentNode.className = 'error';
		errs++;
	} else {
		$('country').parentNode.className = '';
	}

	if (!$F('email').match(/^[a-zA-Z][\w\.-]*[a-zA-Z0-9]@[a-zA-Z0-9][\w\.-]*[a-zA-Z0-9]\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z]$/)) {
		$('email').parentNode.className = 'error';
		errs++;
	} else {
		$('email').parentNode.className = '';
	}
	
	if (errs > 0) {
		$('badvalues').innerHTML = 'Some fields were not filled correctly. Please try again.';
		$('badvalues').style.display = 'block';
		return false;
	} else {
		$('badvalues').innerHTML = '';
		$('badvalues').style.display = 'none';
		return true;
	}
}

function checkLoginAvailability (login) {
	var rand = Math.random(9999);
	var pars = 'action=loginavailable&login=' + login + '&rand=' + rand;
	var req = new Ajax.Request( '/security/register.asp', {method: 'get', parameters: pars, onComplete: notifyLoginAvailability} );
}

function notifyLoginAvailability (obj) {
	if (obj.responseText == "true") {
		if ($('logintaken')) 
			$('logintaken').parentNode.removeChild($('logintaken'));
	} else {
		if (!$('logintaken')) {
			var _s = document.createElement('span');
			_s.id = "logintaken";
			$('login').parentNode.appendChild(_s);
		}
		$('logintaken').innerHTML = '<strong>' + $F('login') + '</strong> is already taken.';
	}
}

/**
 * Google Maps Code
 */


function loadMap(cname) {
	if (GBrowserIsCompatible()) {
		var centercoords = new GLatLng(47.379, 8.55);
		var ifitcoords = new GLatLng(47.37967, 8.5541);
		
		var voltacoords = new GLatLng(47.37665, 8.55485)
		
		var ifiticon = new GIcon();
		ifiticon.image = "http://www.ifit.net/images/ifit16.png";
		ifiticon.iconSize = new GSize(16, 16);
		ifiticon.iconAnchor = new GPoint(6, 20);
		ifiticon.infoWindowAnchor = new GPoint(5, 1);

		var voltaicon = new GIcon();
		voltaicon.image = "http://www.ifit.net/images/tra_pic.gif";
		voltaicon.iconSize = new GSize(18, 18);
		voltaicon.iconAnchor = new GPoint(6, 20);
		voltaicon.infoWindowAnchor = new GPoint(5, 1);
		
		var ifitmarker = new GMarker(ifitcoords, ifiticon)
		GEvent.addListener(ifitmarker, "click", function() {
			ifitmarker.openInfoWindowHtml(
				"<strong>" + cname + "</strong><br />Voltastrasse 61<br />CH-8044 Zurich"
			);
		});

		var voltamarker = new GMarker(voltacoords, voltaicon)
		GEvent.addListener(voltamarker, "click", function() {
			voltamarker.openInfoWindowHtml(
				"<strong>Tram stop</strong><br />Zurich, Voltastrasse<br /><br /><table><tr><td>Line</td><td>Direction</td></tr><tr><td>5</td><td>Kirche Fluntern</td></tr><tr><td>6</td><td>Zoo</td></tr></table>"
			);
		});

		
		var map = new GMap2(document.getElementById("map"));
		map.addControl(new GSmallZoomControl());
		map.addControl(new GMapTypeControl());
		map.setCenter(centercoords);
		map.addOverlay(ifitmarker);
		map.addOverlay(voltamarker);
		map.setZoom(15);

//		GEvent.addListener(map, "moveend", function() {
//			var center = map.getCenter();
//			document.getElementById("hidemap").innerHTML = center.toString();
//		});
	}
}
