//document.write = function(text) {
//  alert(text); // or whatever
//}
 
var channel_seek_to = 0;

function googleTranslateElementInit() {
  new google.translate.TranslateElement({
    pageLanguage: "en",
    includedLanguages: "af,sq,ar,hy,az,eu,be,bg,ca,zh-CN,zh-TW,hr,cs,da,nl,en,et,tl,fi,fr,gl,ka,de,el,ht,iw,hi,hu,is,id,ga,it,ja,ko,lv,lt,mk,ms,mt,no,fa,pl,pt,ro,ru,sr,sk,sl,es,sw,sv,th,tr,uk,ur,vi,cy,yi"
  }, "google_translate_element");
}

function opera_stylesheet(){
  try{
    if(navigator.userAgent.indexOf("Opera")> -1){
      document.write("<link href=\"/stylesheets/screen-opera.css\" media=\"screen\" rel=\"stylesheet\" type=\"text/css\" />");
    }
  }catch(e){
    //alert(e);
  } 
}

function webkit_stylesheet(){
  try{
    if(navigator.userAgent.indexOf("AppleWebKit")> -1){
      document.write("<link href=\"/stylesheets/screen-webkit.css\" media=\"screen\" rel=\"stylesheet\" type=\"text/css\" />");
    } 
  }catch(e){
    //alert(e);
  } 
}

// Default all XHR requests to appending the Accept header required for Rails' RJS
jQuery.ajaxSetup({ 
  beforeSend: function(xhr) {xhr.setRequestHeader("Accept", "text/javascript")}
});

// Call this if we are working with a JSON request
function setJSONHeaders(xhr){
  xhr.setRequestHeader("Accept", "application/json")
}

// Simple form post over AJAX
jQuery.fn.submitWithAjax = function() {
  this.submit(function() {
    $.post(this.action, $(this).serialize(), null, "script");
    return false;
  })
  return this;
};

jQuery.fn.submitGetWithAjax = function() {
  this.submit(function() {
    $('#spinner').show();
    $.get(this.action, $(this).serialize(), function(){ $('#spinner').hide() }, "script");
    return false;
  })
  return this;
};


// Update generic error message 
function genericError(error){
  if(error){
    $('#messages').html("<p class='warning'>" + error + "</p>");
  }else{
    $('#messages').html("<p class='warning'>An unexpected error occurred. Please try again.</p>");
  }
  return $('#messages');
}






// Mimics the Rails ActiveRecord error_messages_for helper
function errorMessages(errors, message){
  errWrapperPrefix = "<div class=\"errorExplanation\" id=\"errorExplanation\">";
  if(errors.length > 1){
    errorString = " errors "
  }else{
    errorString = " error "
  }
  errPrefix = "<h2>" + errors.length + errorString + message + "</h2>";
  errWrapperSuffix = "</ul></div>";
  errStr = "<ul>";
  $.each(errors, function(i, item){
    errStr += "<li>" + item + "</li>";
  });
  return errWrapperPrefix + errPrefix + errStr + errWrapperSuffix;
}


function loadTwitterFriendFeed(element){
  var url = '/twitter_statuses';
  var elem = $(element);
  $.ajax({
    url: url,
    cache: false,
    success: function(html){
      $(element).html(html);
    },
    error: function(html){
      elem.html('<li>There was a problem retrieving the feed.</li>')
    }
  });
}

// Clear and show/hide related form fields for the order form
function activateCardFields(element, object){
  //var field = '#' + object + '_' + element;
  //var cardType = $(field).val();  
  
  var field = $(':input[name=' + object + "[" + element + "]]:checked")
  var cardType = field.val();
  
  switch(cardType){    
  case 'solo':
    $('.paypal_fields').fadeOut();    
    $('#card_starts_on, #card_issue_number').fadeIn();
    $('.other_fields').fadeIn();
    break;
  case 'paypal':
    $('.other_fields').fadeOut();
    $('#card_starts_on, #card_issue_number').fadeOut();
    $('.paypal_fields').fadeIn();
    break;
  default:
    $('.paypal_fields').fadeOut();    
    $('#' + object + '_card_starts_on_2i').clearForm();
    $('#' + object + '_card_starts_on_1i').clearForm();
    $('#' + object + '_card_issue_number').clearForm();
    $('#card_starts_on, #card_issue_number').fadeOut();
    $('.other_fields').fadeIn();
    break;
  }
}

function preactivateCardFields(object){
  activateCardFields('card_type',object);
}

// JQuery Form Clearing
$.fn.clearForm = function() {
  return this.each(function() {  
    if (this.tagName.toLowerCase() == "form") {
      return $(":input",this).clearForm();
    }
    
    switch(this.type){
      case 'text':
      case 'password':
      case 'textarea':
        this.value = '';
        break;
      case 'checkbox':
      case 'radio':
        this.checked = false;
        break;
      case 'select-multiple':
      case 'select-one':
        this.selectedIndex = -1;
        break;
      }
  });
};

// Compare two jQuery DOM objects to each other
$.fn.equals = function(compareTo) {
  if (!compareTo || !compareTo.length || this.length!=compareTo.length){
    return false;
  }
  for (var i=0; i<this.length; i++) {
    if (this[i]!==compareTo[i]) {
      return false;
    }
  }
  return true;
}


function showTopNavLoginForm(){
  $('#top_nav_login_form').slideDown();
}


// Exend String object with some Railsisms
$.extend(String.prototype, {
  // Capitalization of strings
  capitalize: function(){
    return this.charAt(0).toUpperCase() + this.substring(1).toLowerCase();
  },
  
  // Titleization of strings
  titleize: function(){
    res = new Array(); 
    var parts = this.split(" "); 
    $.each(parts, function(i, part) { 
      res.push(part.capitalize()); 
    }) 
    return res.join(" "); 
  }
});


// Global Variables for configuring the player
var player_swf = '/flash/jw5/player52.swf';
var player_min_version = [9,0];
var player_skin_swf = '/flash/jw5/skins/livestation.xml';
var player_logo = '/images/livestation.png';
var player_controlbar = 'over';
var player_streamer = 'rtmp://liveplay.simplecdn.net/aljazeerenhqf800/';
var player_type = 'rtmp';
var player_stretching = 'uniform';
var player_ga_accountid = 'UA-165657-2';
var ltas_channel_code = 'rkfnqklfboirsoq';

function flashMediaPlayer(selector, file, mediaType){
  switch(mediaType){
    case 'RADIO':
      $(selector).append('<div id="radioPlayer" class="radio"></div>');
      logo = "<img src='/images/livestation_radio.png' alt='Livestation radio' class='radio_logo' />";
      $(selector).prepend(logo);        
      $('#radioPlayer').flashembed({
        src: player_swf,
        version: player_min_version,
        width: '100%',
        height: '30',
        wmode: 'transparent',
        id: 'jwplayer1',
        name: 'jwplayer1'
      }, {
        config: file,
        width: '620',
        height:'30'
      });
      break;
    default:
      $(selector).flashembed({
        src: player_swf,
        version: player_min_version,
        width: '100%',
        height: '100%',
        wmode: 'transparent',
        id: 'jwplayer1',
        name: 'jwplayer1'
      }, {
        config: file,
        width: '620',
        height:'400'
      });
      break;
  }
};

function sampleFlashMediaPlayer(selector, file, image, timeLimit, message){
  $(selector).flashembed({
    src: player_swf,
    version: player_min_version,
    name: 'mediaplayer',
    id: 'mediaplayer'
  }, {
    controlbar: player_controlbar,
    skin: player_skin_swf,    
    stretching: player_stretching,  
    
    provider: player_type,
    streamer: player_streamer,
    file: file,
    image: image,
    logo: player_logo,
    mute: "false",
    autostart:'true',
    plugins: 'gapro-1,/flash/timelimit.swf',
    'gapro.accountid': player_ga_accountid,
    'gapro.trackstarts': 'true',
    'gapro.tracktime': 'true',
    "gapro.trackdetails": "true",
    "gapro.trackcompletes": "true",
    "gapro.trackerror": "true",
    "timelimit.timelimit": timeLimit,
    'timelimit.debug': 'true',
    'timelimit.html': 'true',
    'timelimit.message': message
  });  
}

// Set up Preview Flash Media Players
function previewFlashMediaPlayer(selector, file, image){
  $(selector).flashembed({
    src: player_swf,
    version: player_min_version,
    wmode: 'transparent'
  }, {
    controlbar : 'none',    
    stretching: player_stretching,  
    autostart:'true',
    icons: 'false',
    mute: 'true',
    
    type: player_type,
    streamer: player_streamer,
    file: file,
    image: image,

    plugins: 'gapro-1',
    'gapro.accountid': player_ga_accountid,
    'gapro.trackstarts': 'true',
    'gapro.tracktime': 'true',
    "gapro.trackdetails": "true",
    "gapro.trackcompletes": "true",
    "gapro.trackerror": "true"
  });
}

// Set up Silverlight Media Player
function silverlightMediaPlayer(selector, file, image){
  var player_xaml = '/silverlight/wmvplayer.xaml';
  var width = '100%';
  var height = '100%';
  var auto_start = 'false';  
  var show_navigation = 'true';
  
  // Silverlight Media Player Config
  var player_config = {
    file: file,
    width: width,
    height: height,
    autostart: auto_start,
    shownavigation: show_navigation,
    image: image
  };
    
  var player = new jeroenwijering.Player(selector[0], player_xaml, player_config);
};


// Detect PS3 Browser
function ps3Browser(){
  if ($('body.ps3').length){
    return true
  }else{
    return false
  }  
}

// Detect iPad Browser
function iPadBrowser(){
  if ($('body.ipad').length){
    return true
  }else{
    return false
  }  
}


// overlay  and tooltips
function ajaxDataType(){
  if(ps3Browser()){
    return 'html'
  }else if(iPadBrowser()){
    return null
   }else{
     return null
   }
}

function getParameterByName( name )
{
  name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
  var regexS = "[\\?&]"+name+"=([^&#]*)";
  var regex = new RegExp( regexS );
  var results = regex.exec( window.location.href );
  if( results == null )
    return "";
  else
    return decodeURIComponent(results[1].replace(/\+/g, " "));
}



$(function(){
  if(ajaxDataType()){
    dataType = null;
  }
  
  // Show and hide the flash message area
  $('#flash').idle(10000).slideUp();

  
  // Bind overlays
  if($.browser.msie){
    if($.browser.version < "8.0"){
      $("img[rel]").overlay();
    } else{
      $("img[rel]").overlay({mask:'#000'});
    }
  } else {
    $("img[rel]").overlay({mask:'#000'});
  };
  
})
