
function getObject(objectId) {
	if (document.all && !document.getElementById) {
		return document.all(objectId)
	} else {
		return document.getElementById(objectId)
	}
}

// lomakkeiden kenttien tarkistukseen tarkoitettu funkkari
function checkField(fieldName, result, errorField){
	var requiredName = getObject(fieldName);
	if(errorField != ''){
		var requiredNameError = getObject(errorField);
	}else{
		var requiredNameError = getObject(fieldName+'Error');
	}
	if(requiredName != null){
		if(requiredName.value == ''){
			requiredName.style.background = '#ff9c9c';
			if(requiredNameError != null){
				requiredNameError.style.display = 'block';
			}
			return false;
		}else{
			requiredName.style.background = '#f2ead7';
			if(requiredNameError != null){
				requiredNameError.style.display = 'none';
			}
		}
	}
	// jos tulos on jo tultaessa false
	if(result == false){
		return false;
	}else{
		return true;
	}
}

function setPriceScore(x){
	getObject("ReviewScorePrice").value = x;
	getObject("pcurrent-rating").style.width = x+'0%';
	getObject("hinta").className = "tekstiRated";
	countGeneralScore();
	return false;
}
function setQualityScore(x){
	getObject("ReviewScoreQuality").value = x;
	getObject("qcurrent-rating").style.width = x+'0%';
	getObject("laatu").className = "tekstiRated";
	
	countGeneralScore();
	return false;
}
function setEffectScore(x){
	getObject("ReviewScoreEffectiveness").value = x;
	getObject("ecurrent-rating").style.width = x+'0%';
	getObject("teho").className = "tekstiRated";
	countGeneralScore();
	return false;
}

function displayPriceScore(x){
	//if(x == 0){	getObject("priceDiv0").style.display = 'block';}else{	getObject("priceDiv0").style.display = 'none';	}
	// setPriceScore(x);
	if(x%2 == 1){ x = x+1; } x = x / 2;
	for(var i = 1;i <= 5;i++){
		if(i == x){
			getObject("priceDiv"+i).style.display = 'block';
		}else{
			getObject("priceDiv"+i).style.display = 'none';
		}
	}
	return false;
}
function displayQualityScore(x){
	//if(x == 0){	getObject("qualityDiv0").style.display = 'block';}else{	getObject("qualityDiv0").style.display = 'none';	}
	// setQualityScore(x);
	if(x%2 == 1){ x = x+1; } x = x / 2;
	for(var i = 1;i <= 5;i++){
		if(i == x){
			getObject("qualityDiv"+i).style.display = 'block';
		}else{
			getObject("qualityDiv"+i).style.display = 'none';
		}
	}
	return false;
}
function displayEffectScore(x){
	//if(x == 0){	getObject("effectDiv0").style.display = 'block';}else{	getObject("effectDiv0").style.display = 'none';	}
	// setEffectScore(x);
	if(x%2 == 1){ x = x+1; } x = x / 2;
	for(var i = 1;i <= 5;i++){
		if(i == x){
			getObject("effectDiv"+i).style.display = 'block';
		}else{
			getObject("effectDiv"+i).style.display = 'none';
		}
	}
	return false;
}

/** laskee keskiarvon **/
function countGeneralScore(){
	var value1 = parseInt(getObject("ReviewScorePrice").value);
	var value2 = parseInt(getObject("ReviewScoreQuality").value);
	var value3 = parseInt(getObject("ReviewScoreEffectiveness").value);
	
	var total = value1 + value2 + value3;
	var miage = '';

	// first "zero" the images
	for(var j = 1;j <= 10;j++){
		image = 'general_'+j;
		if(j % 2 == 0){
			getObject(image).src = '/img/btn_light_star_right.gif';
		}else{
			getObject(image).src = '/img/btn_light_star_left.gif';
		}
	}

	for(var i = 1;total > 0;i++){
		total = total - 3;
		miage = 'general_'+i;
		if(i % 2 == 0){
			getObject(miage).src = '/img/btn_dark_star_right.gif';
		}else{
			getObject(miage).src = '/img/btn_dark_star_left.gif';
		}
	}
	return false;
}

function displaySub(){
	var sel = getObject("ProductCategory");
	var box_id = sel.options[sel.selectedIndex].value;
	for(var t = 1; t <= 200; t++){
		if(''+box_id == t){
			if(getObject('ProductSubCategory'+t) != null){ // nayta valittu alalaatikko
				getObject('ProductSubCategory'+t).style.display = 'block';
			}
		}else{
			if(getObject('ProductSubCategory'+t) != null){ // piilota muut laatikot
				getObject('ProductSubCategory'+t).style.display = 'none';
				getObject('ProductSubCategory'+t).selectedIndex = 0;
			}
		}
	}
	return false;
}

function displaySubSub(id){
	var sel = getObject("ProductSubCategory"+id);
	var box_id = sel.options[sel.selectedIndex].value;
	for(var t = 8; t <= 200; t++){
		if(''+box_id == t){
			if(getObject('ProductSubSubCategory'+t) != null){ // nayta valittu alalaatikko
				getObject('ProductSubSubCategory'+t).style.display = 'block';
			}
		}else{
			if(getObject('ProductSubSubCategory'+t) != null){ // piilota muut laatikot
				getObject('ProductSubSubCategory'+t).style.display = 'none';
				getObject('ProductSubSubCategory'+t).selectedIndex = 0;
			}
		}
	}
	return false;
}

function displayCategorysForProduct(id, parent_id){
	var o =  Object();
//	alert(id + ' '+ parent_id);
	
	if(parent_id == 0){
		o = getObject('ProductCategory');
		if(o != null){ // sub sub cat
			o.style.display = 'block';
			for(var i = 0; i < o.options.length;i++){
				if(o.options[i].value == id){
					o.selectedIndex = i;
				}
			}
		}
	}else{
		o = getObject('ProductSubSubCategory'+parent_id);
		if(o != null){ // sub sub cat
			o.style.display = 'block';
			for(var i = 0; i < o.options.length;i++){
				if(o.options[i].value == id){
					o.selectedIndex = i;
				}
			}
		}else{
			o = getObject('ProductSubCategory'+parent_id);
			if(o != null){ // sub sub cat
				o.style.display = 'block';
				for(var i = 0; i < o.options.length;i++){
					if(o.options[i].value == id){
						o.selectedIndex = i;
					}
				}
			}else{
				
			}
		}
	}
	return false;
}

Flash={    
		message:function(message) {
			var flashbox = $('message-container');
			flashbox.innerHTML = '<div id="messageContainer"><div id="flashEffectMessage" class="errorMessage" style="display: none;"><div><span>' + message + '</span></div></div></div>';
			this.show();
		},
		show:function(){         
		  	// msg.visualEffect('appear', {display: 'block'});      
			Effect.Appear('flashEffectMessage');
			// Effect.Pulsate('flashEffectMessage');
			this.timer = setTimeout('Flash.hide()', 10000);
		},
		hide:function(){               
			Effect.Fade('flashEffectMessage');
			clearTimeout(this.timer);
			return false;
		}
};



function init_help_boxes(evt) {   
	var boxes = $$('div#main-content div.help-box');     
	for(var i = 0; i < boxes.length; i++) {    
		boxes[i].style.display = 'none';   
	} 
	var buttons = $$('div#main-content div.close-box a');   
	for(var n = 0; n < buttons.length; n++) {  
		buttons[n].style.display = 'inline';                
		Event.observe(buttons[n].id, 'click', function(e) {
			return close_help_box(e);   
		});	
	}                                       
	var links = $$('div#main-content a.open-help'); 
	for(var i = 0; i < links.length; i++) {    
		Event.observe(links[i].id, 'click', function(e) {
			return show_help_box(e);    
		});      
	} 
}
      
function show_help_box(evt) {     
	var link = Event.element(evt);   
	var target_id = link.id.gsub('open_','');                                                         
	Effect.Appear(target_id);     
	Event.stop(evt);     
	return false;
}

function close_help_box(evt) {
	var link = Event.element(evt);   
	if (link.parentNode.className == "close-box") {
		var target = link.parentNode.parentNode;                                                        
		Effect.Fade(target.id);     
		Event.stop(evt);  
		return false;
	} else {
		return true;
	}
}

function clearDefault(el) {
	if (el.defaultValue==el.value) el.value = "";
}



/*
function initAutocompleteFields() {        
	var inputs = $$('input.pname-autocomplete');
	for (var i = 0; i < inputs.length; i++) {                                                
		var field = $(inputs[i].id + "Autocomplete");  
		field.style.display = "block";
		alert(inputs[i].id);
		new Ajax.Autocompleter(inputs[i].id, inputs[i].id + "Autocomplete", "/products/autoComplete");   
	}
}
Event.onReady(initAutocompleteFields);
*/


//============================================================================
//
// Tuoteskrolleri
//

ProductScroller = function() { this.initialize(); }
ProductScroller.prototype = {

  scrollPos: 0,
  scrollFirst: 0,
  scrollInterval: null,
  scrollLimit: 0,
  scrollList: null,
  productIds: null,
  productNames: null,
  productRatings: null,
  productWidth: 90,
  direction: 1,

  // himmennys
  dimming: 100,
  dimmingTarget: 0,
  currentIdx: null,

  // CONSTRUCT
  initialize: function() {
    this.productIds = new Array();
    this.productNames = new Array();
    this.productRatings = new Array();
  },

  // Jos IE 6, poista skrollausnapit
  browserCheck: function() {
	if( BrowserDetect.browser == 'Explorer' && BrowserDetect.version == '6' ) {
      Element.hide( 'productScrollerButtons' );
    }
  },

  // Aseta tuotteiden määrä
  setScrollLimit: function( limit ) {
    this.scrollLimit = limit;

    // viisi tai vähemmän - ei skrollausta
    if( limit <= 5 ) {
      var link = $( 'productScrollerRightLink' );
      link.src = link.src.gsub( /\.gif$/, "_disabled.gif" );
    }
  },

  // Alusta yksittäinen kuva
  initializeProductSlot: function( idx, id, name, rating ) {
    this.productIds[idx] = id;
    this.productNames[idx] = name;
    this.productRatings[idx] = rating;
  },

  // Muuta näyttömoodia
  changeMode: function( mode, category_id ) {
    var url = '/products/productscrollermode/' + category_id + '/' + mode;
    new Ajax.Updater( 'lift-content', url, {
        evalScripts:true, asynchronous:true });

    this.scrollFirst = 0;
    this.scrollPos = 0.0;
  },

  // Näytä tuotteen tiedot
  showProductDetails: function( i ) {
    var name = $( 'productScrollerName' );
    if( name && this.productNames[i] ) {
      name.innerHTML = this.productNames[i];
      this.setProductStars( this.productRatings[i] );
    }
  },

  // Näytä tuotteen tähdet
  setProductStars: function( val ) {
    var stars = $( 'productScrollerRating' );
    if( stars ) {
      stars.style.width = parseInt( val * 23 ) + 'px';
    }
  },

  // Skrollaa
  productScroll: function( direction ) {
    if( direction > 0 && this.scrollFirst+direction >= this.scrollLimit-4 ) {
      return;
    }
    if( direction < 0 && this.scrollFirst+direction < 0 ) {
      return;
    }
  
    // limit reached?
    if( this.scrollFirst+direction == 1 ) {
      var link = $( 'productScrollerLeftLink' );
      link.src = link.src.gsub( /_disabled/, "" );
    }
    else if( this.scrollFirst+direction == this.scrollLimit-5 ) {
      var link = $( 'productScrollerRightLink' );
      link.src = link.src.gsub( /right\.gif$/, "right_disabled.gif" );
    }
    else if( this.scrollFirst+direction == 0 ) {
      var link = $( 'productScrollerLeftLink' );
      link.src = link.src.gsub( /left\.gif$/, "left_disabled.gif" );
    }
    else if( this.scrollFirst+direction == this.scrollLimit-6 ) {
      var link = $( 'productScrollerRightLink' );
      link.src = link.src.gsub( /_disabled/, "" );
    }
  
    // load image?
    if( direction > 0 ) {
      var i = this.scrollFirst + 7;
      var img = $( 'productScrollerImg_' + i );
      if( img ) {
        if( img.src.match( /productscroller_loading/ )) {
          img.src = '/images/reflect/' + this.productIds[i-1];
        }
      }
    }
  
    // change name & rating
    var i = this.scrollFirst + direction;
    this.showProductDetails( i );
  
    // scroll
    this.scrollList = $( 'productScroller' );
    this.direction = direction;
    if( this.scrollList && !this.scrollInterval ) {
      this.scrollInterval = window.setInterval( this.scroll.bind(this), 20 );
    }
  },

  // Skrollaus
  scroll: function() {
    var direction = this.direction;
    if( direction > 0 ) {
      this.scrollList.style.left = ((this.scrollFirst * this.productWidth * -1) + (Math.sin(this.scrollPos) * this.productWidth * -1)) + 'px';
    }
    else {
      this.scrollList.style.left = ((this.scrollFirst * this.productWidth * -1) + (Math.sin(this.scrollPos) * this.productWidth)) + 'px';
    }
    this.scrollPos += 0.12;
  
    if( this.scrollPos > Math.PI/2 ) {
      this.scrollFirst += direction;
      this.scrollList.style.left = (this.scrollFirst * this.productWidth * -1) + 'px';
      clearInterval( this.scrollInterval );
      this.scrollInterval = null;
      this.scrollPos = 0.0;
    }
  },

  // Vaihda tuotedetaileja mouseoverilla
  mouseOverEvent: function( e ) {
	  var elmt = Event.element( e );   
	  var idx = elmt.id.gsub( /productScrollerImg_/, '');                                                         

    if( this.dimmingInterval ) {
      clearInterval( this.dimmingInterval );
    }

    this.currentIdx = idx;
    this.dimmingTarget = 50;
    this.dimmingInterval = window.setInterval( this.dimmer.bind(this), 20 );

    this.showProductDetails( idx-1 );
  },

  mouseOutEvent: function( e ) {
	  var elmt = Event.element( e );   
	  var idx = elmt.id.gsub( /productScrollerImg_/, '');                                                         

    if( this.dimmingInterval ) {
      clearInterval( this.dimmingInterval );
    }

    this.currentIdx = idx;
    this.dimmingTarget = 100;
    this.dimmingInterval = window.setInterval( this.dimmer.bind(this), 20 );

    this.showProductDetails( this.scrollFirst );
  },

  // himmennä
  dimmer: function() {
    for( var i = 1; i <= 5; i++ ) {
      var div = $( 'productScrollerImg_' + (i+this.scrollFirst) );
      if( div ) {
        if( (i+this.scrollFirst) != this.currentIdx ) {
          div.style.opacity = (this.dimming / 100);
          div.style.filter = 'alpha(opacity='+this.dimming+')';
        }
        else {
          div.style.opacity = '1.0';
          div.style.filter = 'alpha(opacity=100)';
        }
      }
    }

    if( this.dimming > this.dimmingTarget ) {
      this.dimming -= 2;
    }
    else if( this.dimming < this.dimmingTarget ) {
      this.dimming += 2;
    }

    if( this.dimming == this.dimmingTarget ) {
      clearInterval( this.dimmingInterval );
      this.dimmingInterval = null;
    }
  }

};


//============================================================================
//
// Selainversion tarkistus
//

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 closeAdBar() {
	document.getElementById("adbar").style.display = "none";
	var url = "/users/adbarToggle";
	myAjax = new Ajax.Request(
			url,
			{
				method: 'get',
				onComplete: function(request) {
					var result = request.responseText.evalJSON();
				},
				onFailure: function(request) {
					console.log(request);
				}
			}
	);
	return false;
}
