function GaleriePhotos( targetElement, _container ) {
  this.start = function() {
    for( var i=0; i<this.images.length; i++ )
      addListener( this.images[ i ].parentNode, 'click', Delegate.create( this, 'onClick', this.images[ i ] ) );
  }
  this.onClick = function( e, imageSource ) {
    DOMEvent.stopEvent( e );

    var oRegExp = new RegExp( '/v32_' );
    if ( oRegExp.test( imageSource.src ) ) {
      this.target.src = GaleriePhotos.LOADING_PIX_URL;
      new ImagePreloader( imageSource.src.replace( oRegExp, '/' ), Delegate.create( this, 'onImageLoaded' ) );
		}
  }
  this.onImageLoaded = function( pix ) {
    this.target.src = pix.src;
  }

	new ImagePreloader( GaleriePhotos.LOADING_PIX_URL, Delegate.create( this, 'start' ) );

  this.target = targetElement;
  this.images = _container.getElementsByTagName( 'img' );
}
GaleriePhotos.LOADING_PIX_URL = 'pix/loading.gif';

/*
  	function select_anciennete(select){
  		if(select.options[select.selectedIndex].value == "Compte bloqué" ){
  			document.getElementById("bloc_anciennete").style.display = "block";
  			document.getElementById("renouvellement_anciennete").disabled = "";
  		}else{
  			document.getElementById("bloc_anciennete").style.display = "none";
  			document.getElementById("renouvellement_anciennete").disabled = "true";
  		}
  	}
*/  

function initRenouvellementBehaviour() {
  var ORANGE_OPERATEUR_ID   = 1;
  var SFR_OPERATEUR_ID      = 3;
  var BOUYGUES_OPERATEUR_ID = 2;

  var FORFAIT_ELEMENT_INDEX = 1;
  var BLOQUE_ELEMENT_INDEX  = 2;

  var radio_btn = document.getElementsByName( 'renouvellement_operateur_id' );
  var select = document.getElementById( 'renouvellement_type_forfait' );
  var check_radio = false;
  
  for (var i=0; i<radio_btn.length;i++) {
     if (radio_btn[i].checked) {
        check_radio = radio_btn[i].value;
     }
  }

/*
  	if(check_radio == SFR_OPERATEUR_ID  ){
  	  select_anciennete(select);
  	  select.onchange = function() {select_anciennete(select) };  
  	}else{
  		if( !! document.getElementById("bloc_anciennete") ){
  		document.getElementById("bloc_anciennete").style.display = "none";
  		document.getElementById("renouvellement_anciennete").disabled = "true"; 
  		}	  
  	}
*/  
  
  
 /* if ( isSet( radio_btn ) && isSet( select ) ) {
    for( var i=0; i<radio_btn.length; i++ ) {
      radio_btn[ i ].onclick = function() {
        if ( this.checked && ( ( SFR_OPERATEUR_ID == this.value ) || ( BOUYGUES_OPERATEUR_ID == this.value ) ) ) {
          //  "Compte bloqué" sélectionné --> on change en "Forfait"
          if ( BLOQUE_ELEMENT_INDEX == select.selectedIndex )
            select.selectedIndex = FORFAIT_ELEMENT_INDEX;
        }
      }
    }
    select.onchange = function() {
      if ( BLOQUE_ELEMENT_INDEX == this.selectedIndex )
        for( var i=0; i<radio_btn.length; i++ )
          if ( radio_btn[ i ].checked && ( ( SFR_OPERATEUR_ID == radio_btn[ i ].value ) || ( BOUYGUES_OPERATEUR_ID == radio_btn[ i ].value ) ) ) {
            this.selectedIndex = FORFAIT_ELEMENT_INDEX;
            break;
          }
    }
  }
 */
}

function initPortabiliteBehaviour() {
  var rio_txt = document.getElementById( 'portabilite_rio' );
  if ( rio_txt != null ) {
    addListener( rio_txt, 'keypress', function( e ) {
      var evt = DOMEvent.get( e );
      var c = null;
      if ( evt.keyCode )
        c = String.fromCharCode( evt.keyCode );
      else if ( evt.charCode )
        c = String.fromCharCode( evt.charCode );
      else if ( evt.which )
        c = String.fromCharCode( evt.which );

      if ( c != null && ' ' == c )
        DOMEvent.stopEvent( e );
    } );
  }
  var portabilite_operateur = document.getElementById( 'portabilite_operateur' );
  if ( portabilite_operateur )
    portabilite_operateur.onchange = function() {
      this.parentNode.parentNode.submit();
    }
}

function Fiche() {}
Fiche.initBehaviours = function() {

 // var tables = document.getElementsByTagName( 'table' );
 // var feats_tables = [];
  /*
  for( var i=0; i<tables.length; i++ )
    if ( tables[ i ].className.indexOf( 'product_features' ) != -1 )
      feats_tables.push( tables[ i ] );
 */
/*
  if ( feats_tables.length > 1 ) {
    var trigger = document.createElement( 'a' );
    trigger.className = 'trigger';
    trigger.appendChild( document.createTextNode( 'En savoir plus' ) );
    addListener( trigger, 'click', function( e ) {
      DOMEvent.stopEvent( e );
      var target = DOMEvent.getTarget( e );
      target.parentNode.removeChild( target );
      for( var i=1; i<feats_tables.length; i++ )
        feats_tables[ i ].style.display = 'block';
    } );
    for( var i=1; i<feats_tables.length; i++ )
      feats_tables[ i ].style.display = 'none';
    feats_tables[ 1 ].parentNode.insertBefore( trigger, feats_tables[ 1 ] );
  }
*/
  var pop3d = document.getElementById( 'holomatix' );
  if ( pop3d ) {
    addListener( pop3d, 'click', function( e ) {
      DOMEvent.stopEvent( e );
  		var holoMatix = window.open( pop3d.href, 'holoMatix', 'width=320,height=400,scrollbars=yes' );
  		holoMatix.focus();
    } );
  }

	//	Prise en charge du lien sur les miniatures
	new GaleriePhotos( document.getElementById( 'main_picture' ), document.getElementById( 'photos' ) );

	//	Prise en charge du lien pour la dispo magasins
	findShopLink();

	var tmp = document.getElementsByTagName( 'select' );
	for( var i=0; i<tmp.length; i++ ) {
		if ( tmp[ i ].className.indexOf( 'submit_trigger' ) != -1 )
		  addListener( tmp[ i ], 'change', function( e ) {
				var form = DOMEvent.getTarget( e ).parentNode.parentNode;
				if ( form )
					form.submit();
			} );
	}

  //  Prise en charge des particularités du renouvellement
  initRenouvellementBehaviour();
  
  var form_ren = document.getElementById("form_renouvellement");
  if( form_ren != null ){
    for(var i=0; i<form_ren.elements["renouvellement_operateur_id"].length; i++)
    {
  	  form_ren.elements["renouvellement_operateur_id"][i].onclick = function(){
  		document.forms["form_renouvellement"].submit()
  	  }
    }
  }

  //  Prise en charge des particularités de la portabilité
  initPortabiliteBehaviour();

  //  Ouverture dans une nouvelle fenêtre les liens d'aide
  var anchors = document.getElementsByTagName( 'a' );
  for( var i=0; i<anchors.length; i++ )
    if ( anchors[ i ].className.indexOf( 'help' ) != -1 ) {
      anchors[ i ].onclick = function( e ) {
        window.open( this.href, 'helpWin' );
        return false;
      }
    }

  var warning_box = document.getElementById( 'too_much_abonnement_warning' );
  if ( warning_box ) {
    var box_anchors = warning_box.getElementsByTagName( 'a' );
    if ( box_anchors ) {
      addListener( box_anchors[ 1 ], 'click', function( e ) {
        DOMEvent.stopEvent( e );
        warning_box.parentNode.removeChild( warning_box );
        removeListener( window, 'resize', centerWarningBox );
        removeListener( window, 'scroll', centerWarningBox );
      } );
    }
    var centerWarningBox = function() {
      var _width = Math.min( DocumentDimension.getViewportWidth(), DocumentDimension.getDocumentWidth() );
      var _height = Math.min( DocumentDimension.getViewportHeight(), DocumentDimension.getDocumentHeight() );
      if ( warning_box.offsetWidth )
        _width = Math.max( warning_box.offsetWidth, _width );
      if ( warning_box.offsetHeight )
        _height = Math.max( warning_box.offsetHeight, _height );

      var new_x = ( _width / 2 );
      if ( warning_box.offsetWidth )
        new_x -= ( warning_box.offsetWidth / 2 );
      new_x += DocumentDimension.getScrollWidth();

      var new_y = ( _height / 2 ) - ( warning_box.offsetHeight / 2 );
      if ( warning_box.offsetHeight )
        new_y -= ( warning_box.offsetHeight / 2 );
      new_y += DocumentDimension.getScrollHeight();

      warning_box.style.top = new_y + 'px';
      warning_box.style.left = new_x + 'px';
    }
    centerWarningBox();
    addListener( window, 'resize', centerWarningBox );
    addListener( window, 'scroll', centerWarningBox );
  }
}

addListener( window, 'load', Fiche.initBehaviours );
