
// JQUERY functions
$(document).ready( function(){

	//wire up search dropdown
	addSearchResultsDropdown($("#searchfield"));
	
	//wire up productmodel dropdown
	addProductModelDropdown($("#branddd select"));
   
	topbarNavigationInit();

	//csv download trickery
	$('#csvform').submit(function() {
	    $('#csvbutton').attr('disabled', 'disabled').css('opacity', 0.5);
	    
	    $('#csvbutton').removeAttr('disabled').css('opacity', 1.0);

	   initGenerBox();	    	

	    // start process to detect when download starts and remove processing message.
     	    var downloadBegin = new catchDownloadBegin( { 
	    	downloadCookieKey : "fileDownloadToken",
	    	downloadToken : $("#fileDownloadToken").val(),
	    	onDownloadBegin : function(){  $(".generContainer").hide(); } 
	    } );	    
	    return true;
	});
	
	//initGoogleAnalytics();
	
});

function initGenerBox( boxId ){
	var gPosLeft = $(window).width()/2-260;
	$('.generbox').css('left', gPosLeft);
        $(".generContainer").show();
	$("#genereatingCSV p").css('background-image', 'url(/themes/paperipalvelu/resources/images/process.gif)');
};

/*
 * Fuction for detecting when filedownload starts.
 * Detection is based on cookie that server will send with response.
 * downloadCookieKey: 	Cookie key to check with interval.
 * downloadCookieValue: UID for download.
 * onDownloadBegin:		function to run when download begings.
 */

function catchDownloadBegin( settings ){
	if( !settings.downloadCookieKey || !settings.downloadToken || !$.isFunction( settings.onDownloadBegin ) ){
		alert( "SETTINGS_ERROR: catchDownloadBegin." );
		return;
	}
	var interval=100;
	if( settings.interval ){
		interval = settings.interval;
	}
	
	var fileDownloadCheckTimer = window.setInterval( function () {
    	var currentDownloadToken = $.cookie( settings.downloadCookieKey );
    	if( currentDownloadToken == settings.downloadToken ){
	    	settings.onDownloadBegin();
	    	$.cookie( settings.downloadCookieKey, null ); // set expiration to -1 
	    	window.clearInterval( fileDownloadCheckTimer ); // clear interval
		}
	}, interval );
};

function initGoogleAnalytics(){
  var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
  jQuery.getScript(gaJsHost + "google-analytics.com/ga.js", function(){
     try {
       //make pageTracker global
       pageTracker = _gat._getTracker("UA-18344332-2");
       pageTracker._trackPageview();
       //call function that will exist only if we have a valid transaction
       gaTrackTransaction(pageTracker);
     } catch(err) {  }
   });
}

function topbarNavigationInit(){
  function addMega(){
     $(this).addClass("hovering");
  }
  function removeMega(){
    $(this).removeClass("hovering");
  }
  var megaConfig = {
   interval: 300,
   sensitivity: 4,
   over: addMega,
   timeout: 500,
   out: removeMega
  };
  $("#navi ul li").hoverIntent(megaConfig)
  
  $("#navi ul li h6 a").click(function() {
    return false;
  }); 

  function addMenus(){
    var gid = $(this).attr("id").substring(2);
    jQuery("#menu"+gid).appendTo($(this).find("div"));
    if (gid == 3070) {
      jQuery("#menu"+3126).appendTo($(this).find(".dropmenu"));
    }
    if (gid == 3021) {
      jQuery("#menu"+3278).appendTo($(this).find(".dropmenu"));
    }

  }
    
  jQuery("body").append("<div id='topmenus' style='display:none'></div>");
  var ajaxUrl = jQuery("#dropdownmenusUrl").text();
  jQuery.get(ajaxUrl, {}, 
    function(data){ 
         jQuery("#topmenus").append(data);
         jQuery("#navi ul li").each(addMenus);
    });

}



/* functions for the search dropdown */

function addSearchResultsDropdown(formInput){
  var input = jQuery(formInput)
  //create div for showing results
  var searchResultsDropdown = jQuery("<div/>")
    .hide()
    .attr("id", "searchResultsDropDown")
    .css("position", "absolute")
    .appendTo(document.body)
    .css({
        top: input.offset().top+input.height()+10,
        left: input.offset().left
     });
  //attach div to input
  input.data("searchResultsDropdown", searchResultsDropdown);
  input.keyup(function(){
      var call="fillSearchResultsDropdown('"+input.attr("id")+"','"+input.val()+"')"
      setTimeout(call, 500);
  });
  input.blur(function(){ 
      var hideCall = "hideSearchResultsDropdown('"+input.attr("id")+"')";
      setTimeout(hideCall, 500); 
   });
}

function hideSearchResultsDropdown(inputId){
     jQuery("#"+inputId).data("searchResultsDropdown").hide(200);
}

function fillSearchResultsDropdown(inputId, val){
    var input = jQuery("#"+inputId);
    //only activate if value hasn't change during the timeout (decreases load on server)
    if(val==input.val()){
      var searchResultsDropdown=input.data("searchResultsDropdown");
      var term = input.val();
      if(term.length<3){
          searchResultsDropdown.hide();
      }else{
          
          var cachedResult = searchResultsDropdown.data(term);
          if(!cachedResult){
              //only handle the request if it's not yet being called
              if(cachedResult!="preventdoublereq"){
                  searchResultsDropdown.data(term, "preventdoublereq");
                  var ajaxUrl = jQuery("#"+inputId+"dropdown").text();
                  jQuery.get(ajaxUrl, {"q": term}, function(resp){
                    searchResultsDropdown
                      .data(term, resp)
                      .html(resp).show(500);
                  });
              }else{
                 searchResultsDropdown.hide();
              }
          }else{
             if(cachedResult!="preventdoublereq"){
                searchResultsDropdown
                  .html(cachedResult)
                  .show(500);
             }
          }
      }
    }
}

/* ProductModel Dropdown */

function addProductModelDropdown(brandSelect){
	preFillProductModelDropdown();
 	var brand = $(brandSelect);
	brand.change(function(){
		if(brand.val()!=null && brand.val()!=""){
			fillProductModelDropdown(brand.val());
		} else {
			preFillProductModelDropdown();
		}
	});
}

function preFillProductModelDropdown(){
	$('#pmodeldd').html("Valitse valmistaja");
	//$('#pmodeldd').hide();
}

function fillProductModelDropdown(brand){
  
	$.ajax({
		type: "GET",
		url: ajaxUrlTulostinTarvikeHaku,
		data: ({q : brand}),
		dataType: "html",
		success: function(data) {
			$('#pmodeldd').html(data);
		}
	});
	//$('#pmodeldd').show(500);
	
}


// PUUTTUVAN TUOTEKUVAN PIILOTUS

function onImgErrorAdditional(source)
{
source.src = "../images/x.gif";
// disable onerror to prevent endless loop
source.onerror = "";
return true;
}

function onImgErrorSmall(source)
{
// fix
//source.src = "${links.getUrl("/themes/paperipalvelu/resources/images/x.gif")}";
// disable onerror to prevent endless loop
source.onerror = "";
return true;
}

function onImgError150(source)
{
source.src = "../images/x.gif";
// disable onerror to prevent endless loop
source.onerror = "";
return true;
}


function onImgError330(source)
{
source.src = "../images/tulossa.gif";
// disable onerror to prevent endless loop
source.onerror = "";
return true;
}




function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      oldonload();
      func();
    }
  }
}


$(document).ready(function(){
  var inputs = document.getElementsByTagName("input");
  for (var i=0; i<inputs.length; i++){
    	inputs[i].onfocus = function () {
	        if( this.parentNode.getElementsByTagName("span")[0] ){
	        	this.parentNode.getElementsByTagName("span")[0].style.display = "inline";
	        }	
	    }
	    inputs[i].onblur = function () {
	      if( this.parentNode.getElementsByTagName("span")[0] ){ 
	    	this.parentNode.getElementsByTagName("span")[0].style.display = "none";
	      }
	    }
    
}});

function ShowHide(){
$("#slidingDiv").animate({"height": "toggle"}, { duration: 1 });
}





$(document).ready(function(){

	$(".btn-slide").click(function(){
		$("#panel").animate({"height": "toggle"}, { duration: 1 });
		$(this).toggleClass("active"); return false;
	});
	
	 
});



$(document).ready(function () {
    var select = '#ws49';

    $(select).change(function () {
        $(select + ' option').each(function () {
            $('#' + this.value).hide();
        });
        $(select + ' option:selected').each(function () {
            $('#' + this.value).show();
        });
    }).change();
});



$(document).ready(function(){
$('.sticky').cluetip({      activation:       'hover',arrows: true, 
  dropShadow: true,
  hoverIntent: false,
  sticky: true,
  mouseOutClose: true,
  closePosition: 'title'});

$('#sticky2').cluetip({      activation:       'hover',arrows: true, 
  dropShadow: true,
  hoverIntent: false,
  sticky: true,
  mouseOutClose: true,
  closePosition: 'title'});


});

$(document).ready(function() { 
	$('#quantitypricing').qtip({
		style: { name: 'blue', tip: true },
		content: $('#quantitypricecontent')
	});
});




