
function $(el){
	return document.getElementById(el);
}

function jumpMenu(targ,selObj,restore){
  eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
  if (restore) selObj.selectedIndex=0;
}


function choose(num){
	$("talomalli").selectedIndex += num;
	location.href = $("talomalli").value;
}

function showNextPrev(){

 if($("talomalli").selectedIndex > 1) {
		$("tprev").style.display = "inline";
	}

	if($("talomalli").selectedIndex < $("talomalli").length-1) {
		$("tnext").style.display = "inline";
	}
}


// Contact map functions

contact_selected = "helsinki";

function contactSelect(e){
	$(contact_selected).style.display = "none";
	contact_selected = e;
	$(contact_selected).style.display = "block";
}



function showModelPicture(dir, num){
	$("detailPicture").src = dir + "/iso_" + num + ".jpg";
}


function hiliteGallery(){
	var t = $("thumbnails");
	for(var i=0;i<t.childNodes.length;i++){
		if(t.childNodes[i].nodeName.toLowerCase() == "a"){
			if(t.childNodes[i].href == gallerypage.location.href) {
				t.childNodes[i].className = "active";
			} else {
					t.childNodes[i].className = "";
			}
		}	
	}
}


curScroll = 0;

function scrollThumbs(num){
	curScroll += num;
	if(curScroll<0)
		curScroll = 0;
	if(curScroll > Math.floor((maxPages-1)/4)) {
		curScroll = Math.floor((maxPages-1)/4);
	}
	Tweener.start($("thumbnails"), "y", 18 - (curScroll * 304), 400);
}






/************ Tweener *************/



function getTimer(){
	return new Date().getTime();
}

var Tweener = {
	tweens : new Array(),	
	init : function(){
		setInterval("intervalDispatcher()", 20);
	},
	
	onEnterFrame : function(){
		var time = getTimer();
		for(var i=this.tweens.length-1;i>=0; i--){
			if(this.tweens[i].act(time)){
				var obj = this.tweens[i];
				this.tweens.splice(i,1);
				//obj.dispatchEvent({type:"onDone", target:obj, element:obj.element})
			}
		}
	},
	
	start : function(element, variable, value, time, args){
		if(!args){
			args = {};
		}
		for(var i=this.tweens.length-1;i>=0; i--){
			if(this.tweens[i].element == element && this.tweens[i].vaname == variable){
				this.tweens.splice(i,1);
			}
		}
		var tw = new TweenWorker(element, variable, value, time, args);
		this.tweens.push(tw)
		return tw;
	}
}

Tweener.init();

function TweenWorker(e, va, v, t, args){
	//EventDispatcher.initialize(this);

	this.element = e;
	this.vaname = va;
	
	if(va.indexOf("f_") == 0){
		var func = va.substring(2,200);
		this.variable = this.element[func];
	} else {
		this.variable = Tweener.Variables[va];
	}

	this.time = t;
	this.args = args;
	this.mode = args.mode ? args.mode : Tweener.Transitions.sinoidal;
	
	if(this.args.start != undefined){
		this.variable.set(this.element, this.args.start);
		this.startValue = this.args.start;
	} else {
		this.startValue = this.variable.get(this.element);
	}
	
	this.deltaValue = v - this.startValue
	this.startTime = getTimer();
	
	this.act = function(t){
		var delta = t-this.startTime;
		if(delta>=this.time || this.deltaValue == 0){
			this.setTween(1);
			return true;
		} else {
			this.setTween(delta / this.time);
			return 0;
		}
	}
	
	this.setTween = function (percent){
		this.variable.set(this.element, this.startValue + this.deltaValue * this.mode(percent));
	}
}



Tweener.Transitions = {}

Tweener.Transitions.linear = function(pos) {
  return pos;
}
Tweener.Transitions.sinoidal = function(pos) {
  return (-Math.cos(pos*Math.PI)/2) + 0.5;
}
Tweener.Transitions.reverse  = function(pos) {
  return 1-pos;
}
Tweener.Transitions.flicker = function(pos) {
  return ((-Math.cos(pos*Math.PI)/4) + 0.75) + Math.random()/4;
}
Tweener.Transitions.wobble = function(pos) {
  return (-Math.cos(pos*Math.PI*(9*pos))/2) + 0.5;
}
Tweener.Transitions.pulse = function(pos) {
  return (Math.floor(pos*10) % 2 == 0 ? 
    (pos*10-Math.floor(pos*10)) : 1-(pos*10-Math.floor(pos*10)));
}


Tweener.Variables = {}
Tweener.Variables.opacity = {}
Tweener.Variables.opacity.get = function(element){  
  var opacity;
  if (opacity = Element.getStyle(element, 'opacity'))  
    return parseFloat(opacity);  
  if (opacity = (Element.getStyle(element, 'filter') || '').match(/alpha\(opacity=(.*)\)/))  
    if(opacity[1]) return parseFloat(opacity[1]) / 100;  
  return 1.0;  
}

Tweener.Variables.opacity.set = function(element, value){  
  element= $(element);  
  if (value == 1){
    Element.setStyle(element, { opacity: 
      (/Gecko/.test(navigator.userAgent) && !/Konqueror|Safari|KHTML/.test(navigator.userAgent)) ? 
      0.999999 : null });
    if(/MSIE/.test(navigator.userAgent))  
      Element.setStyle(element, {filter: Element.getStyle(element,'filter').replace(/alpha\([^\)]*\)/gi,'')});  
  } else {  
    if(value < 0.00001) value = 0;  
    Element.setStyle(element, {opacity: value});
    if(/MSIE/.test(navigator.userAgent))  
     Element.setStyle(element, 
       { filter: Element.getStyle(element,'filter').replace(/alpha\([^\)]*\)/gi,'') +
                 'alpha(opacity='+value*100+')' });  
  }  
} 



Tweener.Variables.x = {}
Tweener.Variables.x.get = function(element){  
	var x;
  if (x = Element.getStyle(element, 'left'))  
    return parseFloat(x);
  return 0;  
}

Tweener.Variables.x.set = function(element, value){  
   value = Math.floor(value);
	 Element.setStyle(element, { left: value + "px"}); 
} 


Tweener.Variables.y = {}
Tweener.Variables.y.get = function(element){  
	var y;
	if (y = element.style.top)  
    return parseFloat(y);
  return 0;  
}

Tweener.Variables.y.set = function(element, value){  
   value = Math.floor(value);
	 element.style.top = value + "px"; 
} 


Tweener.Variables.width = {}
Tweener.Variables.width.get = function(element){  
	var w;
  if (w = Element.getStyle(element, 'width'))  
    return parseFloat(w);
  return 0;  
}

Tweener.Variables.width.set = function(element, value){  
   value = Math.floor(value);
	 Element.setStyle(element, { width: value + "px"}); 
} 


Tweener.Variables.height = {}
Tweener.Variables.height.get = function(element){  
	var h;
  if (h = Element.getStyle(element, 'height'))  
    return parseFloat(h);
  return 0;  
}

Tweener.Variables.height.set = function(element, value){  
   value = Math.floor(value);
	 Element.setStyle(element, { height: value + "px"}); 
}

function intervalDispatcher(){
	Tweener.onEnterFrame();
}



function checkSubmit(){
	if(!($("malli1").checked || $("malli2").checked || $("malli3").checked || $("malli4").checked || $("malli5").checked)){
		alert("Ole hyvä ja valitse vähintään yksi esite.");
	} else if($("mallit").nimi.value.length<2){
		alert("Ole hyvä ja täyty nimi-kenttä.");
	}	else if($("mallit").osoite.value.length<2){
		alert("Ole hyvä ja täyty osoite-kenttä.");
	} else if($("mallit").postinumero.value.length<2){
		alert("Ole hyvä ja täyty postinumero-kenttä.");
	} else if($("mallit").postitoimipaikka.value.length<2){
		alert("Ole hyvä ja täyty postitoimipaikka-kenttä.");
	} else if($("mallit").puhelin.value.length<2){
		alert("Ole hyvä ja täyty puhelinnumero-kenttä.");
	} else {
		return true;
	}	
	return false;
}

function openNewWindow(url)
{ 
new_window = window.open(url,'Flash','toolbar=0,menubar=0,resizable=0,dependent=0,status=0,width=960,height=600,left=50,top=50')
}















/**
 * FlashObject v1.2.3
 */
 
if(typeof com == "undefined") var com = new Object();
if(typeof com.deconcept == "undefined") com.deconcept = new Object();
if(typeof com.deconcept.util == "undefined") com.deconcept.util = new Object();
if(typeof com.deconcept.FlashObjectUtil == "undefined") com.deconcept.FlashObjectUtil = new Object();
com.deconcept.FlashObject = function(swf, id, w, h, ver, c, useExpressInstall, quality, redirectUrl, detectKey){
   this.DETECT_KEY = detectKey ? detectKey : 'detectflash';
   this.skipDetect = com.deconcept.util.getRequestParameter(this.DETECT_KEY);
   this.params = new Object();
   this.variables = new Object();
   this.attributes = new Array();
	 this.precedingHTML = "";

   if(swf) this.setAttribute('swf', swf);
   if(id) this.setAttribute('id', id);
   if(w) this.setAttribute('width', w);
   if(h) this.setAttribute('height', h);
   if(ver) this.setAttribute('version', new com.deconcept.PlayerVersion(ver.toString().split(".")));
   if(c) this.addParam('bgcolor', c);
   var q = quality ? quality : 'high';
   this.addParam('quality', q);
   this.setAttribute('redirectUrl', '');
   if(redirectUrl) this.setAttribute('redirectUrl', redirectUrl);
   if(useExpressInstall) {
   // check to see if we need to do an express install
   var expressInstallReqVer = new com.deconcept.PlayerVersion([6,0,65]);
   var installedVer = com.deconcept.FlashObjectUtil.getPlayerVersion();
      if (installedVer.versionIsValid(expressInstallReqVer) && !installedVer.versionIsValid(this.getAttribute('version'))) {
         this.setAttribute('doExpressInstall', true);
      }
   } else {
      this.setAttribute('doExpressInstall', false);
   }
}
com.deconcept.FlashObject.prototype.setAttribute = function(name, value){
	this.attributes[name] = value;
}
com.deconcept.FlashObject.prototype.getAttribute = function(name){
	return this.attributes[name];
}
com.deconcept.FlashObject.prototype.getAttributes = function(){
	return this.attributes;
}
com.deconcept.FlashObject.prototype.addParam = function(name, value){
	this.params[name] = value;
}
com.deconcept.FlashObject.prototype.getParams = function(){
	return this.params;
}
com.deconcept.FlashObject.prototype.getParam = function(name){
	return this.params[name];
}
com.deconcept.FlashObject.prototype.addVariable = function(name, value){
	this.variables[name] = value;
}
com.deconcept.FlashObject.prototype.getVariable = function(name){
	return this.variables[name];
}
com.deconcept.FlashObject.prototype.getVariables = function(){
	return this.variables;
}
com.deconcept.FlashObject.prototype.getParamTags = function(){
   var paramTags = ""; var key; var params = this.getParams();
   for(key in params) {
        paramTags += '<param name="' + key + '" value="' + params[key] + '" />';
    }
   return paramTags;
}
com.deconcept.FlashObject.prototype.getVariablePairs = function(){
	var variablePairs = new Array();
	var key;
	var variables = this.getVariables();
	for(key in variables){
		variablePairs.push(key +"="+ variables[key]);
	}
	return variablePairs;
}
com.deconcept.FlashObject.prototype.getHTML = function() {
    var flashHTML = this.precedingHTML;
    if (navigator.plugins && navigator.mimeTypes && navigator.mimeTypes.length) { // netscape plugin architecture
        if (this.getAttribute("doExpressInstall")) { this.addVariable("MMplayerType", "PlugIn"); }
        flashHTML += '<embed type="application/x-shockwave-flash" src="'+ this.getAttribute('swf') +'" width="'+ this.getAttribute('width') +'" height="'+ this.getAttribute('height') +'" id="'+ this.getAttribute('id') + '" name="'+ this.getAttribute('id') +'"';
		var params = this.getParams();
        for(var key in params){ flashHTML += ' '+ key +'="'+ params[key] +'"'; }
		pairs = this.getVariablePairs().join("&");
        if (pairs.length > 0){ flashHTML += ' flashvars="'+ pairs +'"'; }
        flashHTML += '></embed>';
    } else { // PC IE
        if (this.getAttribute("doExpressInstall")) { this.addVariable("MMplayerType", "ActiveX"); }
        flashHTML += '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="'+ this.getAttribute('width') +'" height="'+ this.getAttribute('height') +'" id="'+ this.getAttribute('id') +'">';
        flashHTML += '<param name="movie" value="../../france/js/' + this.getAttribute('swf') + '" />';
		var tags = this.getParamTags();
        if(tags.length > 0){ flashHTML += tags; }
		var pairs = this.getVariablePairs().join("&");
        if(pairs.length > 0){ flashHTML += '<param name="flashvars" value="'+ pairs +'" />'; }
        flashHTML += '</object>';
    }
    return flashHTML;
}
com.deconcept.FlashObject.prototype.write = function(elementId, parentNode){
	if(this.skipDetect || this.getAttribute('doExpressInstall') || com.deconcept.FlashObjectUtil.getPlayerVersion().versionIsValid(this.getAttribute('version'))){
		if(document.getElementById){
			if (this.getAttribute('doExpressInstall')) {
		  	this.addVariable("MMredirectURL", escape(window.location));
		  	document.title = document.title.slice(0, 47) + " - Flash Player Installation";
		  	this.addVariable("MMdoctitle", document.title);
			}
			document.getElementById(elementId).innerHTML = this.getHTML();
		}
	} else {
		if(this.getAttribute('redirectUrl') != "") {
			document.location.replace(this.getAttribute('redirectUrl'));
		}
	}
}
/* ---- detection functions ---- */
com.deconcept.FlashObjectUtil.getPlayerVersion = function(){
   var PlayerVersion = new com.deconcept.PlayerVersion(0,0,0);
	if(navigator.plugins && navigator.mimeTypes.length){
		var x = navigator.plugins["Shockwave Flash"];
		if(x && x.description) {
			PlayerVersion = new com.deconcept.PlayerVersion(x.description.replace(/([a-z]|[A-Z]|\s)+/, "").replace(/(\s+r|\s+b[0-9]+)/, ".").split("."));
		}
	}else if (window.ActiveXObject){
	   try {
   	   var axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
   		PlayerVersion = new com.deconcept.PlayerVersion(axo.GetVariable("$version").split(" ")[1].split(","));
	   } catch (e) {}
	}
	return PlayerVersion;
}
com.deconcept.PlayerVersion = function(arrVersion){
	this.major = parseInt(arrVersion[0]) || 0;
	this.minor = parseInt(arrVersion[1]) || 0;
	this.rev = parseInt(arrVersion[2]) || 0;
}
com.deconcept.PlayerVersion.prototype.versionIsValid = function(fv){
	if(this.major < fv.major) return false;
	if(this.major > fv.major) return true;
	if(this.minor < fv.minor) return false;
	if(this.minor > fv.minor) return true;
	if(this.rev < fv.rev) return false;
	return true;
}
/* ---- get value of query string param ---- */
com.deconcept.util.getRequestParameter = function(param){
	var q = document.location.search || document.location.href.hash;
	if(q){
		var startIndex = q.indexOf(param +"=");
		var endIndex = (q.indexOf("&", startIndex) > -1) ? q.indexOf("&", startIndex) : q.length;
		if (q.length > 1 && startIndex > -1) {
			return q.substring(q.indexOf("=", startIndex)+1, endIndex);
		}
	}
	return "";
}

/* add Array.push if needed (ie5) */
if (Array.prototype.push == null) { Array.prototype.push = function(item) { this[this.length] = item; return this.length; }}

/* add some aliases for ease of use / backwards compatibility */
var getQueryParamValue = com.deconcept.util.getRequestParameter;
var FlashObject = com.deconcept.FlashObject;


