/*******************************************************************
MP030608: Sulautetun ylläpitoliittymän js.
Samassa tiedostossa emoikkunan ja admin-popuppien funktiot.
*******************************************************************/


/*******************************************************************
MP191108: Verkkokauppa -> order
Laskutuskenttien näyttö billing_as_delivery-valikon perusteella.
*******************************************************************/

function toggleBillingFields(selectElem,toggleElem) {

var chosenValue = document.getElementById(selectElem).value;

if (chosenValue == 0) {
  document.getElementById(toggleElem).style.display = 'block';
  } 

else {
  document.getElementById(toggleElem).style.display = 'none';
  } 

}


/*******************************************************************
MP120908: Mätsätään fileuplaodilla valitun tiedoston tyyppi
annettua patternia vastaan. Jos tyyppi on oikea, näytetään
tiedoston nimi inputin alla (teemaeditori).
Käytössä teemaeditorissa ja sovellusastuksissa kuvatiedostojen
yhteydessä. Funktiota kutsutaan file upload-elementin onchange:ssa.
Asetuksissa ja teemaeditorissa on hivenen erilaiset fileinputit.
Tämän vuoksi else-haarassa tyhjennetään pari eri elementtiä.
Nehän voisi tietysti ehdollistaa jollain kutsussa saatavalla muuttujalla.
MP210109: Ajatus kopsattu -> texteditor_filebank.js 
*******************************************************************/

function testFileType(uploadElement,fileTypes,filenameContainer ) {

var fileName = document.getElementById(uploadElement).value;
//Tiputetaan polku pois tiedoston nimestä teemaeditorissa näyttöä varten
var fileNameShort = fileName.replace(/^.*(\\|\/)(.*)$/,"$2");

if (!fileName) return;

dots = fileName.split(".") //"e:/hakemisto/kuva","JPG"
fileType = dots[dots.length-1].toLowerCase(); //"jpg"

if (fileTypes.join(".").indexOf(fileType) != -1) {
   document.getElementById(filenameContainer).innerHTML = '<div style="padding:4px 0;"><small>Valittu tiedosto: ' + fileNameShort + '</small></div>';
 }
 else {
   alert("Valitun tiedoston tyyppi on '" + fileType + "'.\nSallitut tiedostotyypit ovat " + (fileTypes.join(", ")) + ".\nOle hyvä ja valitse toinen tiedosto.");
   document.getElementById(filenameContainer).innerHTML = '';
   document.getElementById(uploadElement).value = '';
 }

}




/*******************************************************************
MP100908: Funktio, jolla piilotetaan inserterin 
ilmoituslaatikko, kun avataan toinen tabi tallennuksen
jälkeen. 
Funktiossa kohteena oleva elementti määritellään tuolla:
cui/eui/inc_admin/macros.inc -> message_layout
MP180509: jqueryksi
*******************************************************************/

function hideInserterMsg() {
 msgElement = jQuery('#admin-operation-msg');
  if (msgElement) { msgElement.hide(); }
}



/*******************************************************************
MP030608: Asetusten tallennuslomakkeen tabien avaaminen/sulkeminen
Käytössä sovellusasetuksissa ja teemaeditorissa. 
Kts. cui/eui/inc_admin/wizard.inc
MP110908: Sovellusasetuksissa käytössä jquery-tabs,
tämä edelleen teemaeditorissa.
*******************************************************************/

var currentDiv = "";

function toggleList(theDiv,saveTab,titleClassName,titleClassName2) {

var CurrentTab = document.getElementById('tab_' + currentDiv);
var CurrentTitle = document.getElementById('title_' + currentDiv);

var tab = document.getElementById('tab_' + theDiv);
var title = document.getElementById('title_' + theDiv);

var savedTab = document.getElementById('tab_' + saveTab);
var savedTitle = document.getElementById('title_' + saveTab);


  if (!currentDiv) {
	tab.style.display = 'block';
	title.className = titleClassName2;

    if (savedTab) {

	savedTab.style.display = 'none';
	savedTitle.className = titleClassName;

     }
  }

  else  {
	tab.style.display = 'block';
	title.className = titleClassName2;
	CurrentTab.style.display = 'none';
	CurrentTitle.className = titleClassName;
  }
    
currentDiv = theDiv;

}



/*******************************************************************
MP030608: Teeman esikatselusivun maskaus. Käytännössä venytetään
div koko sivun sisällön päälle.
*******************************************************************/

function maskBody(elem_id){
document.getElementById(elem_id).style.height = document.body.scrollHeight +'px';
}



/*******************************************************************
MP200409: Ylläpitopaneelien näyttäminen/piilottaminen, jQuery.
Käytössä: Emoikkunan toolbar, teemaeditori, yp-popuppien sivunavi
TO030212: Jos triggerille annetaan rel:n lisäksi masklevel, niin
musta sivumaski tulee sisällön päälle.
*******************************************************************/

jQuery(document).ready(function() {

  jQuery('.adminBarTrigger').click(function() {

    var targetBar = jQuery(this).attr('rel');
    var masklevel = jQuery(this).attr('masklevel');

    jQuery(this).toggleClass('hide');
    jQuery('#'+targetBar).toggleClass("visible", 300);

    if(masklevel)
    {
      var opacity = masklevel/100;
      jQuery('#pagemask-black').css("background-color","transparent");
      jQuery('#pagemask-black').css("opacity",opacity);
      jQuery('#pagemask-black').css("filter","alpha(opacity="+masklevel);
      jQuery('#pagemask-black').stop().animate({ backgroundColor: "#000000" }, 500);
      jQuery('#pagemask-black').toggle();
    }

  });

});


/*******************************************************************
MP250608: Teemaeditori: Esikatselussa olevan tabin avaaminen
onload:ssa.
*******************************************************************/

function openSavedTab(saveTab,titleClassName2) {
 
	var savedTab = document.getElementById('tab_' + saveTab);
	var savedTitle = document.getElementById('title_' + saveTab);

	savedTab.style.display = 'block';
	savedTitle.className = titleClassName2;

}


/*******************************************************************
MP250608: Confirm-dialogi linkin avaamiseen.
Käytössä (mm.?) teemaeditorin lopetuspainikkeessa.
*******************************************************************/

function goConfirm(title, link){

 if(confirm(title) == true){
  top.location.href = link;
  return true;
  } 
 else {
  return false;
 }
}


/*******************************************************************
TO291010: Käsittely Tooltippejä varten.
*******************************************************************/

jQuery(document).ready(function() {
   jQuery('.toolTip').hover(
		function() {
		this.tip = this.title;
		jQuery(this).append(
			'<div class="toolTipWrapper">'
				+'<div class="toolTipContent">'
					+this.tip
				+'</div>'
			+'</div>'
		);

		this.title = "";
		this.width = jQuery(this).width();
		jQuery('.toolTipWrapper').fadeIn(300);
	},
	function() {
		jQuery('.toolTipWrapper').fadeOut(100);
		jQuery(this).children(".toolTipWrapper").remove();
			this.title = this.tip;
		}
	);

   jQuery(".toolTip").mousemove(function(e) {
	   var pos = jQuery(this).position();
	   var mousex = e.pageX - pos.left + 10;
	   var mousey = e.pageY - pos.top + 5;
	   

	   //
	   // Varmistetaan, että tooltip sopii ikkunan näkylle alueelle
	   // 
	   var window_width = jQuery(window).width();
	   var tooltip_width = jQuery(this).find('.toolTipWrapper').width();
	   if ((e.pageX + mousex + tooltip_width - jQuery(window).scrollLeft()) > window_width)
	       mousex = mousex - (e.pageX + mousex + tooltip_width - window_width) + jQuery(window).scrollLeft();
	   jQuery(this).find('.toolTipWrapper').css({left:mousex, top: mousey});		
       });

   jQuery(".toolTip").click(function(e) {
	   jQuery(this).children(".toolTipWrapper").remove();
       });

});

