﻿/*
 * Date	Version	Changes
 * 080826	0.1		File created: buttons and div for lost password request.
 * 080827	0.2		Added form check functions.
 * 080915	0.3		Added hover and selected styles for language logos.
 * 080915	0.3.1		Register button click event.
 * 081104	0.4		Added function check_gift.
 * 081110	0.5		Added functions even_columns_2 & even_columns_2_ie6.
*/

/* ******* BROWSER DETECT **************/
var BrowserDetect = {
	init: function () {
		this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
		this.version = this.searchVersion(navigator.userAgent)
			|| this.searchVersion(navigator.appVersion)
			|| "an unknown version";
		this.OS = this.searchString(this.dataOS) || "an unknown OS";
	},
	searchString: function (data) {
		for (var i=0;i<data.length;i++)	{
			var dataString = data[i].string;
			var dataProp = data[i].prop;
			this.versionSearchString = data[i].versionSearch || data[i].identity;
			if (dataString) {
				if (dataString.indexOf(data[i].subString) != -1)
					return data[i].identity;
			}
			else if (dataProp)
				return data[i].identity;
		}
	},
	searchVersion: function (dataString) {
		var index = dataString.indexOf(this.versionSearchString);
		if (index == -1) return;
		return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
	},
	dataBrowser: [
		{ 	string: navigator.userAgent,
			subString: "OmniWeb",
			versionSearch: "OmniWeb/",
			identity: "OmniWeb"
		},
		{
			string: navigator.vendor,
			subString: "Apple",
			identity: "Safari"
		},
		{
			prop: window.opera,
			identity: "Opera"
		},
		{
			string: navigator.vendor,
			subString: "iCab",
			identity: "iCab"
		},
		{
			string: navigator.vendor,
			subString: "KDE",
			identity: "Konqueror"
		},
		{
			string: navigator.userAgent,
			subString: "Firefox",
			identity: "Firefox"
		},
		{
			string: navigator.vendor,
			subString: "Camino",
			identity: "Camino"
		},
		{		// for newer Netscapes (6+)
			string: navigator.userAgent,
			subString: "Netscape",
			identity: "Netscape"
		},
		{
			string: navigator.userAgent,
			subString: "MSIE",
			identity: "Explorer",
			versionSearch: "MSIE"
		},
		{
			string: navigator.userAgent,
			subString: "Gecko",
			identity: "Mozilla",
			versionSearch: "rv"
		},
		{ 		// for older Netscapes (4-)
			string: navigator.userAgent,
			subString: "Mozilla",
			identity: "Netscape",
			versionSearch: "Mozilla"
		}
	],
	dataOS : [
		{
			string: navigator.platform,
			subString: "Win",
			identity: "Windows"
		},
		{
			string: navigator.platform,
			subString: "Mac",
			identity: "Mac"
		},
		{
			string: navigator.platform,
			subString: "Linux",
			identity: "Linux"
		}
	]

};
BrowserDetect.init();

function check_fields(f) {
	if (!document.f.account.value || !document.f.password.value) {
		alert("Anna käyttäjätunnus ja salasana");
		return;
	}

	var brName = navigator.appName;
	var brVersion = navigator.appVersion;
	var usPlatform = navigator.platform;
	var scWidth = screen.width;
	var scHeight = screen.height;
	var user_agent = navigator.userAgent;
	var scDepth = screen.colorDepth;
	var scColors = screen.colorDepth;
	var scColors = Math.pow (2, scColors);

	document.f.width.value=scWidth;
	document.f.height.value=scHeight;
	document.f.browser_name.value=BrowserDetect.browser;
	document.f.browser_version.value=BrowserDetect.version;
	document.f.platform.value=BrowserDetect.OS;
	document.f.user_agent.value=user_agent;

	document.f.submit();
}

function check_request(f) {
	if (!f.account.value || !f.email.value) {
		alert("Anna käyttäjätunnus ja sähköpostiosoite");
		return;
	}

	if (f.email.value.search(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/) == -1) {
		alert("Sähköpostiosoite ei ole kelvollinen");
		return;
	}

	document.f2.submit();
}

function check_registration_fields(f) {
	var username = document.f.username.value.replace(/^\s+|\s+$/g, '');
	var firstname = document.f.firstname.value.replace(/^\s+|\s+$/g, '');
	var lastname = document.f.lastname.value.replace(/^\s+|\s+$/g, '');
	var email = document.f.email.value.replace(/^\s+|\s+$/g, '');
	var password = document.f.password.value.replace(/^\s+|\s+$/g, '');
	var password_again = document.f.password_again.value.replace(/^\s+|\s+$/g, '');
	var error = false;

	if (!username || !firstname || !lastname || !email || !password || !password_again) {
		alert("Täytä kaikki pakolliset tiedot");
		error = true;
	}

	if (!error && email.search(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/) == -1) {
		alert("Sähköpostiosoite ei ole kelvollinen");
		error = true;
	}

	if (!error && password != password_again) {
		alert("Salasana ei täsmää varmistukseen");
		document.f.password.value = "";
		document.f.password_again.value = "";
		error = true;
	}

	document.f.username.value = username;
	document.f.firstname.value = firstname;
	document.f.lastname.value = lastname;
	document.f.email.value = email;

	if (!error) {
		/*
		document.f.username.disabled = true;
		document.f.firstname.disabled = true;
		document.f.lastname.disabled = true;
		document.f.email.disabled = true;
		document.f.password.disabled = true;
		document.f.password_again.disabled = true;
		*/

		document.f.submit();
		//setTimeout('check_registration_response()', 2000);
	}
}

function check_registration_response() {
	var doc = document.getElementById('registration_iframe');
	var con = doc.contentWindow.document.getElementById('message').innerHTML;
	
	if (con == 'Tunnus on jo olemassa') {
		document.getElementById('username').value = '';
	}
}

function check_gift(f) {
	var name = document.f.name.value.replace(/^\s+|\s+$/g, '');
	var phone = document.f.phone.value.replace(/^\s+|\s+$/g, '');
	var email = document.f.email.value.replace(/^\s+|\s+$/g, '');
	var error = false;

	if (!name || !phone || !email) {
		alert("Täytä kaikki tiedot");
		error = true;
	}

	if (!error && email.search(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/) == -1) {
		alert("Sähköpostiosoite ei ole kelvollinen");
		error = true;
	}

	document.f.name.value = name;
	document.f.phone.value = phone;
	document.f.email.value = email;

	if (!error) {
		document.f.submit();
	}
}

function submit_enter(myfield, e, ftype, f) {
	var keycode;

	if (window.event) {
		keycode = window.event.keyCode;
	}
	else if (e) {
		keycode = e.which;
	}

	if (keycode == 13) {
		if (ftype == 'login') {
			check_fields(f);
		}
		else if (ftype == 'lost') {
			check_request(f);
		}
		else if (ftype == 'reg') {
			check_registration_fields(f);
		}
		else if (ftype == 'gift') {
			check_gift(f);
		}
	}
}

function even_columns_2() {
	var obj = document.getElementById('content_left');
	var height = obj.offsetHeight;
	var obj2 = document.getElementById('content_right');
	var height2 = obj2.offsetHeight;

	if (height < height2) {
		obj.style.minHeight=height2 + 'px';
	}
	else if (height > height2) {
		obj2.style.minHeight=height + 'px';
	}
} 
	 
function even_columns_2_ie6() {
	var obj = document.getElementById('content_left');
	var height = obj.offsetHeight;
	var obj2 = document.getElementById('content_right');
	var height2 = obj2.offsetHeight;

	if (height < height2) {
		obj.style.height=height2 + 'px';
	}
	else if (height > height2) {
		obj2.style.height=height + 'px';
	}
} 

$(document).ready(
	function() {
		// Button hover
		$('div.button').hover(
			function() {
				$(this).children('div.button_left').css('background-image', 'url("./img/button_basic_left-over.png")');
				$(this).children('div.button_middle').css('background-image', 'url("./img/button_basic_middle-over.png")');
				$(this).children('div.button_right').css('background-image', 'url("./img/button_basic_right-over.png")');
			},
			function() {
				$(this).children('div.button_left').css('background-image', 'url("./img/button_basic_left.png")');
				$(this).children('div.button_middle').css('background-image', 'url("./img/button_basic_middle.png")');
				$(this).children('div.button_right').css('background-image', 'url("./img/button_basic_right.png")');
			}
		);

		// Button (fx) hover
		$('div.button_fx').hover(
			function() {
				$(this).children('div.button_fx_left').css('background-image', 'url("./img/button_fx_left-over.png")');
				$(this).children('div.button_fx_middle').css('background-image', 'url("./img/button_fx_middle-over.png")');
				$(this).children('div.button_fx_right').css('background-image', 'url("./img/button_fx_right-over.png")');
			},
			function() {
				$(this).children('div.button_fx_left').css('background-image', 'url("./img/button_fx_left.png")');
				$(this).children('div.button_fx_middle').css('background-image', 'url("./img/button_fx_middle.png")');
				$(this).children('div.button_fx_right').css('background-image', 'url("./img/button_fx_right.png")');
			}
		);

		// Button (small) hover
		$('div.button_small').hover(
			function() {
				$(this).children('div.button_small_left').css('background-image', 'url("./img/button_basic_small_left-over.png")');
				$(this).children('div.button_small_middle').css('background-image', 'url("./img/button_basic_small_middle-over.png")');
				$(this).children('div.button_small_right').css('background-image', 'url("./img/button_basic_small_right-over.png")');
			},
			function() {
				$(this).children('div.button_small_left').css('background-image', 'url("./img/button_basic_small_left.png")');
				$(this).children('div.button_small_middle').css('background-image', 'url("./img/button_basic_small_middle.png")');
				$(this).children('div.button_small_right').css('background-image', 'url("./img/button_basic_small_right.png")');
			}
		);

		// Button down
		$('div.button').mousedown(
			function() {
				$(this).children('div.button_left').css('background-image', 'url("img/button_basic_left-down.png")');
				$(this).children('div.button_middle').css('background-image', 'url("img/button_basic_middle-down.png")');
				$(this).children('div.button_right').css('background-image', 'url("img/button_basic_right-down.png")');
			}
		);

		// Button (fx) down
		$('div.button_fx').mousedown(
			function() {
				$(this).children('div.button_fx_left').css('background-image', 'url("img/button_fx_left-down.png")');
				$(this).children('div.button_fx_middle').css('background-image', 'url("img/button_fx_middle-down.png")');
				$(this).children('div.button_fx_right').css('background-image', 'url("img/button_fx_right-down.png")');
			}
		);

		// Button (small) down
		$('div.button_small').mousedown(
			function() {
				$(this).children('div.button_small_left').css('background-image', 'url("./img/button_basic_small_left-down.png")');
				$(this).children('div.button_small_middle').css('background-image', 'url("./img/button_basic_small_middle-down.png")');
				$(this).children('div.button_small_right').css('background-image', 'url("./img/button_basic_small_right-down.png")');
			}
		);

		// Button up
		$('div.button').mouseup(
			function() {
				$(this).children('div.button_left').css('background-image', 'url("./img/button_basic_left-over.png")');
				$(this).children('div.button_middle').css('background-image', 'url("./img/button_basic_middle-over.png")');
				$(this).children('div.button_right').css('background-image', 'url("./img/button_basic_right-over.png")');
			}
		);

		// Button (fx) up
		$('div.button_fx').mouseup(
			function() {
				$(this).children('div.button_fx_left').css('background-image', 'url("./img/button_fx_left-over.png")');
				$(this).children('div.button_fx_middle').css('background-image', 'url("./img/button_fx_middle-over.png")');
				$(this).children('div.button_fx_right').css('background-image', 'url("./img/button_fx_right-over.png")');
			}
		);

		// Button (small) up
		$('div.button_small').mouseup(
			function() {
				$(this).children('div.button_small_left').css('background-image', 'url("./img/button_basic_small_left-over.png")');
				$(this).children('div.button_small_middle').css('background-image', 'url("./img/button_basic_small_middle-over.png")');
				$(this).children('div.button_small_right').css('background-image', 'url("./img/button_basic_small_right-over.png")');
			}
		);

		// Toggle lost password div
		$('a#lost_password_link').click(
			function() {
				$('div#lost_password').toggle();
				return false;
			}
		);

		// Show language description
		$('div.sliderGallery > ul > li > img').click(
			function() {
				var lang = $(this).attr('id');

				// Update header image and language description
				$('img#lang_header').attr('src', './img/header_fi_courses_' + lang + '.gif');
				$('div#lang_desc').html($('div#desc_' + lang).html());

				// Remove selected state from the previously selected language logo
				lang = $('div.sliderGallery > ul > li > img.selected').attr('id');
				$('div.sliderGallery > ul > li > img#' + lang).attr('src', './img/langlogo_' + lang + '_medium.png');
				$('div.sliderGallery > ul > li > img#' + lang).removeClass('selected');

				// Apply selected state to the currently selected language logo
				lang = $(this).attr('id');
				$(this).attr('src', './img/langlogo_' + lang + '_medium-sel.png');
				$(this).addClass('selected');
			}
		);

		// Language logo hover effect
		$('div.sliderGallery > ul > li > img').hover(
			function() {
				var sel = $(this).attr('class');

				if (sel != 'selected') {
					var lang = $(this).attr('id');
					$(this).attr('src', './img/langlogo_' + lang + '_medium-over.png');
				}
			},
			function() {
				var sel = $(this).attr('class');

				if (sel != 'selected') {
					var lang = $(this).attr('id');
					$(this).attr('src', './img/langlogo_' + lang + '_medium.png');
				}
			}
		);

		// 'Register' button click
		$('div.button_register').click(
			function() {
				window.location = 'rekisteroidy.html';
			}
		);
	}
);
