/**
 * misc.js
 *
 * A collection of various Javascript commands and functions
 * needed for the basic dynamic features.
 * Based on jQuery.
 *
 * @author    Andreas Doelling
 * @copyright 2009 Zentrale Medien GmbH
 * @version   1.0
 */

 jQuery(document).ready( function() {
    var jDebug = false;
	 
	jQuery('area').hover(
      function( event ){
		/*	jQuery('#ShowerBild').attr('src','');*/
		/*	jQuery('#Shower').hide();*/
			id = jQuery(this).attr('id');
			idAr = id.split('.');
			src = baseUrl + 'images/custom/bo-ehrenfeld/parzellen/K/'+idAr[0]+'a.JPG';
			jQuery('#MoverBild').attr('src',src);
			jQuery('#Mover').show();
         $(document).mousemove(function(e){
            jQuery('#Mover').css('top', ( e.pageY + 15 ) + 'px' );
            jQuery('#Mover').css('left', ( e.pageX + 20 ) + 'px' );
         });

         
      },
      function( event ){
         jQuery( '#Mover' ).hide();
      }
      );

	jQuery('area').click(
      function( event ){
			id = jQuery(this).attr('id');
			idAr = id.split('.');
			src = baseUrl + 'images/custom/bo-ehrenfeld/parzellen/M/'+idAr[0]+'a.JPG';
			jQuery('#ShowerBild').attr('src',src);
			jQuery('#Shower').show();
			jQuery('#Mover' ).hide();
       /*  $(document).mousemove(function(e){
            jQuery( '#Shower' ).css('top', ( e.pageY + 15 ) + 'px' );
            jQuery( '#Shower' ).css('left', ( e.pageX + 20 ) + 'px' );
         });*/
			return false;

         
      }
      );



   jQuery('#attributes').tabs({ fxSlide: true, fxFade: true, fxSpeed: 'fast' });

   /*

    //triggeredTab = jQuery('#triggeredTab').html();
    triggeredTab = '';
    if (triggeredTab=='prices'){
       jQuery('#attributes').triggerTab(1);
    }
    if (triggeredTab=='identifiers'){
       jQuery('#attributes').triggerTab(2);
    }
    if (triggeredTab=='othertexts'){
       jQuery('#attributes').triggerTab(3);
    }
    if (triggeredTab=='subjects'){
       jQuery('#attributes').triggerTab(4);
    }
    if (triggeredTab=='exportdata'){
       jQuery('#attributes').triggerTab(5);
    }
    jQuery('#triggeredTab').html('');
    */

    jQuery('.navSubLevelBox ul').each(function(){
       len = jQuery(this).children().length;
       if (len==0)
          jQuery(this).parent().hide();
    }
    );



    // #############################################################################################
    // Institutionen
    // #############################################################################################
    jQuery('#institutionCoreDataFormAction').ready(function(){
       if (jQuery('#institutionCoreDataFormAction').attr('value') =='insertInstitution'
    	   || jQuery('#institutionCoreDataFormAction').attr('value') =='updateInstitution'){
          //jQuery('#institutionCoreDataForm').hide();
          jQuery('#institutionTypesForm').hide();
          jQuery('#attributes').hide();
          //jQuery('#publisherForm').hide();
          //jQuery('#supplierForm').hide();
          //jQuery('#distributorForm').hide();
       }
    });

    // #############################################################################################
    // editBaseProduct
    // #############################################################################################
/*    jQuery('#editBaseProduct').ready(function(){
 	    jQuery('#attributes').tabs();
    });*/

    // #############################################################################################
    // Formular-Funktionen
    // #############################################################################################
    // Speichern eines Formulars, dessen Button der Klasse
	// buttonSave oder buttonSaveClose ist
    // #############################################################################################



    // Kommentar versenden
    jQuery('#sendComment').click(function(){
      myClass = '';
      formId = 'sendComment';

      if (jQuery('#comment').val()==''){
         myAlert('Bitte geben Sie einen Kommentar oder eine Frage ein.');
         jQuery('#comment').focus();
         return false;
      }
      myAction = 'notify.html';
      formData = getFormData('formComment');
      myAction = myAction + '?'+formData+'&url='+document.URL;
      dataString = '';
      jQuery.ajax({
         type: "POST",
        	url: baseUrl + myAction,
        	data: dataString,
        	success: function(msg){
        		buildFormResponse(formId, msg, myClass, baseUrl, jDebug);
           	}
        });
       return false;

    }
    );



    jQuery('.buttonSave, .buttonSaveClose').live('click',function(){
    	myClass = jQuery(this).attr('class');
    	formId = jQuery(this).closest('form').attr('id');
    	myAction = jQuery('#' + formId).attr('action');
        var dataString = '';
        dataString = getFormData(formId);


        if (dataString=='')
           return false;
        if(jDebug) {
    		myAlert("myClass: " + myClass + "\nformId: " + formId + "\nmyAction: " + myAction);
    		myAlert("url: " + baseUrl + myAction + '?' + dataString + '&forceGet=1');
        }
        jQuery.ajax({
        	type: "POST",
        	url: baseUrl + myAction,
        	data: dataString,
        	success: function(msg){
        		buildFormResponse(formId, msg, myClass, baseUrl, jDebug);
           	}
        });
        return false;
    });

    // #############################################################################################
    // Abbrechen der Formulars-Bearbeitung ueber den Button der Klasse buttonCancel
    // #############################################################################################
    jQuery('.buttonCancel').live('click', function(){
    	formId = jQuery(this).closest('form').attr('id');
	    myUrl = baseUrl + jQuery('#' + formId).attr('action');
   		location.href = myUrl;
   		return false;
    });

    jQuery('.buttonCancelClose').live('click', function(){

       parentClass = jQuery(this).closest('form').attr('class');

       if (parentClass=='editAttributesForm'){
          myId = jQuery(this).closest('form').attr('id');
          toggleDistributionEditAttibutes(myId);
       }
       else{
       	div1 = jQuery(this).closest('.toggleDiv').attr('id');
	      jQuery('#'+div1).slideUp('slow');
       }
      return false;
    });

    jQuery('.toggleButton').live('click', function(){

       /*
       // schliesse alle anderen Toggle-Formulare
       jQuery('.toggleButton').each(function(){
          div1 = jQuery(this).attr('ref');
          div2 = jQuery(this).attr('id');
          divToggle(div1,div2);
       }
       );*/
    	div1 = jQuery(this).attr('ref');
    	div2 = jQuery(this).attr('id');
	   divToggle(div1,div2);
      return false;
    });

    jQuery('.hideShow').live('click', function(){
    	div1 = jQuery(this).attr('ref');
    	status = jQuery('#'+div1).css('display');
    	if (status=='block')
    	   jQuery('#'+div1).slideUp('slow');
    	else
    	   jQuery('#'+div1).slideDown('slow');

	   return false;
    });


   jQuery('.deleteItem').live('click',function(){
      if (!divaConfirm('Soll der Eintrag wirklich gel%F6scht werden?'))
         return false;


      myAction = jQuery(this).attr('href');
      myClass = jQuery(this).closest('tr').attr('class');
      formId = '';

      myAction= myAction + '&jQuery=1';
      dataString = '';
      jQuery.ajax({
         type: "POST",
        	url: baseUrl + myAction,
        	data: dataString,
        	success: function(msg){
        		buildFormResponse(formId, msg, myClass, baseUrl, jDebug);
           	}
        });
       return false;
    }
    );



    /*
       Hilfsfunktion, die alle checkboxen innerhalb des umgebenden Formulars
       an bzw. ausschaltet, sofern diese enabled sind.
    */
    jQuery('#selectAll').live('click',function(){
       var formId =  jQuery(this).closest('form').attr('id');
       var checked = '';
       if (jQuery(this).attr('checked')!='')
          checked='checked';
       result='';
       jQuery('#'+formId + ' input').each(function(){
           if (jQuery(this).attr('type')=='checkbox' && jQuery(this).attr('disabled')==''){
              jQuery(this).attr('checked',checked);
           }
       }
       );
    }
    );

    // Bei Klick auf nicht verfügbare Funktionen, wird ein Alert ausgegeben
    jQuery('.notAvailable').live('click',function(){
       myAlert('Diese Funktion ist zur Zeit noch nicht implementiert.');
       return false;
    }
    );

   hideEmptyInfoTexts();


 });

// Wandelt die Daten eines Formulars in key/value-Paare um.
function getFormData(formName){
	var dataString ='';
	var valid=true;
  	jQuery('#'+formName).ajaxForm();
  	dataString=jQuery('#'+formName).formSerialize();
   if (valid)
      return dataString + '&jQuery=1';
   else
      return false;
}

// Baut die Reaktion auf das Abschicken eines Formulars auf
function buildFormResponse(formId, msg, buttonAction, baseUrl, jDebug) {
    resultAr = eval(msg);
	if(jDebug) {
		myAlert("formId: " + formId);
	}
	if (resultAr[0]['formId'])
	   formId = resultAr[0]['formId'];


    // Datensatz wurde erfolgreich gespeichert
    if (resultAr[0]['error']=='' || resultAr[0]['error']=='undefined' || resultAr[0]['error']==0){
    	// Feedback ausgeben
    	jQuery('.jQueryMessage').html(resultAr[0]['feedback']);
    	if (formId == '') {
    	   // do something
         /*
            jQuery('.jQueryMessage').html(resultAr[0]['feedback']);
            jQuery('#institutionCoreDataFormDiv').fadeOut('slow');
            jQuery('#institutionTypesForm').show();
            jQuery('#institutionTypesFormInstitutionId').attr('value',resultAr[0]['id']);
            */
    	}
    	else if (formId == '') {
    	   // do something else
    		if(jDebug) {
    			myAlert("institutionId: " + resultAr[0]['institutionId']);
    		}
    	}
    	else {
    		myAlert("Unknown formId: " + formId);
    		return false;
    	}
    	// Bei Button "Speichern und Schließen" Weiterleitung auf action des Formulars.
    	if(buttonAction=='buttonSaveClose') {
    		myUrl = baseUrl + jQuery('#' + formId).attr('action');
       		location.href = myUrl;
       		return false;
    	}
    }
    // Es ist ein Fehler aufgetreten
    else {
    	//jQuery('.jQueryMessage').html(resultAr[0]['error']);
    	myAlert(resultAr[0]['feedback']);
    }

   hideEmptyInfoTexts();



	return false;
}

function hideEmptyInfoTexts(){
    jQuery('.infoIcon').each(function(){
       if (jQuery(this).attr('title')=='')
          jQuery(this).hide();
    }
    );
}




$(function() {
	// Use this example, or...
	$('a.lightbox').lightBox({
	   imageLoading: baseUrl +'images/lightbox/lightbox-ico-loading.gif',
	   imageBtnClose: baseUrl +'images/lightbox/lightbox-btn-close.gif',
	   imageBtnPrev: baseUrl +'images/lightbox/lightbox-btn-prev.gif',
	   imageBtnNext: baseUrl +'images/lightbox/lightbox-btn-next.gif'
	}); // Select all links with lightbox class
	// ... The possibility are many. Use your creative or choose one in the examples above
});

function myAlert(info, type){
   type = (type) ? type : 'Info';
   if (info)
      alert(type + ": " + unescape(info));
   return true;
}

function myConfirm(text){
   if (!text)
     text='Wirklich?';
   return (confirm(unescape(text)));

}



