var baseUrl = '';
var backHash = '';
var currentVideo = '';
var currentParamsPlayer = '';
var jmStyle = '';
var lang = '';
var country = '';
var autostart = false;

function get_Xhr()
{
	var xhr = null;
	
	if(window.XMLHttpRequest)
	{
		xhr = new XMLHttpRequest();
	}
	else if(window.ActiveXOject)
	{
		try
		{
			xhr = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch(e)
		{
			try
			{
				xhr = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch(el)
			{
				xhr = null;
			}
		}
	}
	else
	{
		alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest\nVeuillez le mettre à jour");
	}
	
	return xhr;
}

var JMDisplay =
{


  options: function()
  {
    return {
      width: 681,
      opacity: 0.7,
      zIndex: 9996,
      fade: true,
      fadeDuration: 0.5,
      onSuccess: function() {
         rewriteJMDisplayLink();
      },
      afterOpen: function() {
		    var height = $('container').getHeight();

		    if (document.viewport.getHeight() > height) {
          height = document.viewport.getHeight();
        }

        $('modal_overlay').setStyle({height: height+'px'});
		  }
		};
  },

  modalCss: function(msg)
  {
    return '<div class="popup_title">&nbsp;<a href="#" class="popup_close" onclick="Control.Modal.close();return false"><u>Fermer</u><img style="border: none; text-decoration: none;" src="<?= URL_IMG ?>/pop_up/CROIX_JAUNE.png"></a><div class="clear"></div></div><div class="popup_title">Information d\'AllPlugged</div><div class="popup_content"><div class="center" style=""><p>'+msg+'</p></div>';
  },

  modal: function(url, msg, logged)
	{
		var link = document.createElement('a');

		var options = JMDisplay.options();
		if(url)
		{
		  link.href = baseUrl+url;
		}
  	else if(msg)
  	{
  	  options.contents = function(){ return JMDisplay.modalCss(msg); };
  	}

    if(!logged)
    {
      var modal = new Control.Modal(link, options);
      modal.open();
    }
    else
    {
      new Ajax.Request(baseUrl+'/users/is_logged.php', {
    		onSuccess: function() {
    			var modal = new Control.Modal(link, options);
          modal.open();
    		},

    		onFailure: function() {
    			JMDisplay.modal('/users/login.php');
    		}
    	});
    }

    return false;
	},

	modalConfirm: function(method, msgs, logged)
	{
	  var link = document.createElement('a');

		var myTemplate = new Template('<a href="#" class="popup_close" onclick="Control.Modal.close();return false"><u>Fermer</u><img src="/images/front/ico_del_big_white.gif"></a><hr class="clear" /><div class="popup_content"><p class="center">#{msg}</p><p class="center"><input type="button" value="#{cancel}" class="button_light" onclick="Control.Modal.close()" /> <input type="button" value="#{submit}" class="button_light" onclick="#{method}" /></p></div>');

		var options = JMDisplay.options();
		options.contents = myTemplate.evaluate({msg: msgs[0], cancel: msgs[1], submit: msgs[2], method: method.replace('"', '\"')});

    if (!logged)
    {
      var modal = new Control.Modal(link, options);
      modal.open();
    }
    else
    {
      new Ajax.Request(baseUrl+'/users/is_logged.php', {
    		onSuccess: function() {
    			var modal = new Control.Modal(link, options);
          modal.open();
    		},

    		onFailure: function() {
    			JMDisplay.modal('/users/login.php');
    		}
    	});
    }

    return false;
	},

	hoverbox: function(elmt, message)
	{
	  if(JMAjax.dragInProgress)
	    return false;

	  if(message)
		{
		  if(elmt.hoverbox == undefined)
		  {
		    	var modal = new Control.Modaal(elmt, {
    				hover: true,
    				position: 'mouse',
    				offsetTop: -20,
    				offsetLeft: 20,
    				containerClassName: 'hoverbox',
    				contents: function(){
    			        return message;
    			  },
    			  afterClose: function() {
    			    modal = null;
    			  }
    			});

    			elmt.hoverbox = modal;
    			modal.open();
		  }
		}

		return false;
	},

	infos: function(msg)
	{
	  var modal = Control.Modal.current;

	  if(modal)
	  {
	    var elmt = $('modal_container');

	    Effect.Fade(elmt, { from: 1, to: 0.1, duration: 0.5, queue: 'end', afterFinish: function(){ elmt.update(JMDisplay.modalCss(msg)); }});
	    Effect.Fade(elmt, { from: 0.1, to: 1, duration: 0.5, queue: 'end'});
	  }
	  else
	  {
	    JMDisplay.modal(null, msg);
	  }

	  //setTimeout("Control.Modal.close()", 5000);
	  

	  return false;
	},

	errors: function(elmtId, msg)
	{
	  var elmt = $(elmtId);

	  if(elmt)
	  {
	    msg = '<a href="#" id="alert_close" onclick="return JMDisplay.close(\''+elmtId+'\');">'+msg+'</a>';
	    elmt.update(msg);
  	  Effect.Appear(elmt);
	  }
	  else
	  {
	    JMDisplay.infos(msg);
	  }
		
	  
	  return false;
	},

	close: function(elmt)
	{
	  var elmt = $(elmt);

	  if(elmt)
	    Effect.BlindUp(elmt);

	  return false;
	},

	refreshMenu: function()
	{
	  return JMAjax.updater('menu', '/_menu.php', {
	    onComplete:function() {
	      rewriteJMDisplayLink();
	  }});
	},

	scrollFocus: function()
	{
	  var scrolls = getScrollXY();

	  if(scrolls[1] > 340)
	    $('content').scrollTo();
	},

	

	generic: function(url, options)
	{
	  JMDisplay.profile();

	  var target = 'generic_panel';
	  var elmt = $(target);

    var	options = options != undefined ? options : {};
    options.onComplete = function(){
      JMDisplay.scrollFocus();
      document.fire('jmdisplay:finished', {target: target});
    };

    options.insertion = 'bottom';

	  backHash = window.location.hash;

	  document.fire('jmdisplay:begun');

	  if(elmt)
	    elmt.remove();

	  document.fire('jmdisplay:loading');

    JMAjax.updater('content', url, options);

	  return false;
	},
	
	
	
	loading: function(evt)
	{	
	  $('loading').setStyle({display:'block'});
	},
	
	/*
	loading_sub: function(evt)
	{	
	  $('loading_sub').setStyle({display:'block'});
	},
	*/

	finish: function(evt)
	{
		$('loading').setStyle({display:'none'});
		$('loadingupload').setStyle({display:'none'});
	  rewriteJMDisplayLink();
	  $('content').setStyle({background:'none'});

	  if(evt.memo.target != undefined) {
      $(evt.memo.target).appear({ duration: 0.5 });
    }
	},
	finished: function(evt)
	{
		$('loading').setStyle({display:'none'});
		$('loadingupload').setStyle({display:'none'});
	  rewriteJMDisplayLink();
	  $('content').setStyle({background:'none'});

	  if(evt.memo.target != undefined) {
      $(evt.memo.target).appear({ duration: 0.5 });
	  
    }
	},

	
  

};

var JMAjax =
{
  dragInProgress: false,

  updater: function(container, url, options, logged)
  {

    options = options == undefined ? {} : options;
    options.parameters = options.parameters == undefined ? {} : options.parameters;
    options.parameters.jm_style = jmStyle;

    logged = logged == undefined ? false : logged;
    options.evalScripts = true;

    if(!logged)
    {

      new Ajax.Updater(container, baseUrl+url, options);

    }
    else
    {
      new Ajax.Request(baseUrl+'/users/is_logged.php', {
    		onSuccess: function() {

    			new Ajax.Updater(container, baseUrl+url, options);
    		},

    		onFailure: function() {

    			JMDisplay.modal('/users/login.php');
    		}
    	});
    }

  	return false;
  },

  request: function(url, options, logged)
  {
    options = options == undefined ? {} : options;
    logged = logged == undefined ? false : logged;

    if(!logged)
    {
      new Ajax.Request(baseUrl+url, options);
    }
    else
    {
      new Ajax.Request(baseUrl+'/users/is_logged.php', {
    		onSuccess: function() {
    			new Ajax.Request(baseUrl+url, options);
    		},

    		onFailure: function() {
    			JMDisplay.modal('/users/login.php');
    		}
    	});
    }

    return false;
  },

 

  deleteAccountImage: function(text)
  {
    if(window.confirm(text))
    {
      return JMAjax.request('/users/image_delete_a.php', {}, true);
    }

    return false;
  }
};


function truncateLabel() {
  function _truncate(elmt, length) {
    elmt = $(elmt);

    if (elmt.innerHTML.length > length) {
      var str = elmt.innerHTML;
      elmt.observe('mouseover', function(){ JMDisplay.hoverbox(elmt, str); });
      elmt.innerHTML = elmt.innerHTML.truncate(length);
    }
  }

  $$('#account_playlist_panel .song_title a', '#result_panel .song_title a', '#mis_search_panel .song_title a').each(function(elmt) {
    _truncate(elmt, 24);
  });

  $$('#account_playlist_panel .song_artist a', '#result_panel .song_artist a', '#mis_search_panel .song_artist a').each(function(elmt) {
    _truncate(elmt, 20);
  });

  $$('#account_playlist_panel .song_album a', '#result_panel .song_album a', '#mis_search_panel .song_album a').each(function(elmt) {
    _truncate(elmt, 18);
  });

  $$('#artist_panel .song_list_new_artist .song_title a').each(function(elmt) {
    _truncate(elmt, 40);
  });

  $$('#artist_panel .song_list_new_artist .song_album a').each(function(elmt) {
    _truncate(elmt, 30);
  });

  $$('#home_top_albums .box_artist .title', '#home_new_albums .box_artist .title').each(function(elmt) {
    _truncate(elmt, 24);
  });

  $$('#home_top_albums .box_artist .subtitle', '#home_new_albums .box_artist .subtitle').each(function(elmt) {
    _truncate(elmt, 35);
  });

   $$('#artist_panel .song_list .song_title a').each(function(elmt) {
    _truncate(elmt, 70);
   });

   $$('#artist_panel .box_artist .title', '#onair .box_artist .title').each(function(elmt) {
     _truncate(elmt, 38);
   });

   $$('#result_panel .search_tab .title').each(function(elmt) {
     _truncate(elmt, 15);
   });
}

function rewriteJMDisplayLink() {
  $$('.jmdisplay_link').each(function(elmt) {
    if (elmt.href.match(/^http:\/\/[^\/]+\/.{2}\//) || elmt.href.match(/^http:\/\/[^\/]+\/.{2}$/)) {
      elmt.href = elmt.href.replace(/^http:\/\/[^\/]+\/.{2}\/?/, '#');
    }
    else {
      elmt.href = elmt.href.replace(/^http:\/\/[^\/]+\/(classical|live)\/.{2}(\/.+)?$/, '#$1$2');
    }
  }).invoke('removeClassName', 'jmdisplay_link');

  truncateLabel();
}

function rewriteCountryLink(link) {
  link.href += window.location.hash.replace(/#(classical|live)/, '');
}

function token()
{
  var chars = '0123456789abcdefghiklmnopqrstuvwxyz';
  var length = 40;
  var token = '';

  for (var i=0; i<length; i++) {
  	var rnum = Math.floor(Math.random() * chars.length);
  	token += chars.substring(rnum, rnum+1);
  }

  return token;
}

function getScrollXY() {
  var scrOfX = 0, scrOfY = 0;
  if( typeof( window.pageYOffset ) == 'number' ) {
    //Netscape compliant
    scrOfY = window.pageYOffset;
    scrOfX = window.pageXOffset;
  } else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
    //DOM compliant
    scrOfY = document.body.scrollTop;
    scrOfX = document.body.scrollLeft;
  } else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
    //IE6 standards compliant mode
    scrOfY = document.documentElement.scrollTop;
    scrOfX = document.documentElement.scrollLeft;
  }
  return [ scrOfX, scrOfY ];
}

var uploadStart = function(id, fileObj, bytesLoaded)
{

}

var uploadProgress = function(id, fileObj, bytesLoaded)
{
  var percent = Math.ceil((bytesLoaded / fileObj.size) * 100);

	if (percent < 10) {
	  percent = '0'+percent;
	}
  
  if($(id+'-output'))
	  $(id+'_output').update(percent+'%');
}

var uploadCompleteYoungSubscription = function(id, fileObj)
{
  if($(id+'-output'))
	  $(id+'_output').update(fileObj.name);
	  
  $(id+'_file').value = encodeURIComponent(fileObj.name);
  $('bt_submit').removeAttribute('disabled');
  $('bt_submit').setOpacity(1);
}

var uploadCompleteProposal = function(id, fileObj)
{
  if($(id+'-output'))
	  $(id+'_output').update(fileObj.name);
	  
  $(id+'_file').value = encodeURIComponent(fileObj.name);
}

var uploadCompleteUserImage = function(id, fileObj)
{
  JMDisplay.profile();
}

function setJmStyle(controller) {
  var oldJmStyle = jmStyle;

  jmStyle = '';

  if (controller.match(/^classical/)) {
    jmStyle = 'classical';
  }
  else if (controller.match(/^live/)) {
    jmStyle = 'live';
  }

  if (oldJmStyle != jmStyle && $('mis_search_panel')) {
    $('mis_search_panel').remove();
  }
}

function mkw(str)
{
  var search  = 'ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ';
  var replace = 'AAAAAAaaaaaaOOOOOOooooooEEEEeeeeIIIIiiiiUUUUuuuuyNn';

  for (var i=0; i<search.length; i++) {
    str = str.replace(search.charAt(i), replace.charAt(i));
  }

  return str.toLowerCase();
}

function Check_allbox(chk)
{

}


function checkboxall(max, rand)
{
	if(document.getElementById('check_allbox'+rand).checked)
	{	
		for (var i = 0; i < max; i++)
		{
			document.getElementById('checkin_box'+rand+i).checked = true;
		}	
	}
	else
	{	
		for (var i = 0; i < max; i++)
		{
			document.getElementById('checkin_box'+rand+i).checked = false;
		}
	}
}
					



function change_greenmenu(nbr)
{
	var i = 0;
	
	while(i<=6)
	{
		if(i!=2){
			document.getElementById(i+'greenarrow').style.display='none';
			document.getElementById(i+'button_on').style.display='none';
			document.getElementById(i+'button_off').style.display='block';
		}
		i++;
	}
	document.getElementById(nbr+'greenarrow').style.display='block';
	document.getElementById(nbr+'button_off').style.display='none';	
	document.getElementById(nbr+'button_on').style.display='block';	
}





