$(document).ready(function() { 
//POPUP
    $("a[rel='pop-up']").click(function () {  
        var caracteristicas = "height=150,width=320,scrollTo,resizable=1,scrollbars=1,location=0";  
        nueva=window.open(this.href, 'Popup', caracteristicas);  
        return false;  
 });  
 
 //FORMULARIO
    $('input[type="text"], textarea').addClass("idlefield");  
    $('input[type="text"], textarea').focus(function() {  
        $(this).removeClass("idlefield").addClass("focusfield");  
        if (this.value == this.defaultValue){  
            this.value = '';  
        }  
        if(this.value != this.defaultValue){  
            this.select();  
        }  
    });  
    $('input[type="text"], textarea').blur(function() {  
        $(this).removeClass("focusfield").addClass("okfield");  
            if ($.trim(this.value) == ''){  
            this.value = (this.defaultValue ? this.defaultValue : '');  
      }  
    });  
});

// CYCLE
$('#twitter_update_list').cycle({
		fx: 'fade',
		pause:  2,
		speed: 1000	
});
$('.programacion').cycle({
            fx: 'scrollLeft',
            speed: 500,
            timeout: 0,
			after: onAfter,
            pager: '.nav',
            pagerAnchorBuilder: function(idx, slide) {
                return '#dias-list li:eq(' + (idx) + ')';
            }
        });
        $('ul#dias-list li').click(function() { 
            $('ul#dias-list').cycle('pause'); 
        });
        $.fn.cycle.updateActivePagerLink = function(pager, currSlideIndex) { 
            $(pager).find('li').removeClass('activeSlide') 
                .filter('li:eq('+currSlideIndex+')').addClass('activeSlide'); 
};
function onAfter(curr, next, opts, fwd) {
 var $ht = $(this).height();
 //set the container's height to that of the current slide
 $(this).parent().animate({height: $ht});
}

// RADIOS
(function($, document, window){ // Closure para proteger a variables '$', document y window
    
var $document = $(document);
var $body = $document.find('body');
var $window = $(window);
var DEBUG = false;
function RadioPlayer(id, url, group){
    this.INITIAL_VOLUME = 80;
    this.VOL_BAR_WIDTH = 34;
    this.mysound = null;
    this.id = id;
    this.group = (group == undefined ? [] : group);
    this.playing = false;
    this.onPlay = function(){}
    this.onStop = function(){}
    this.whilePlaying = function(){}
    this.RELOAD_AFTER = 5*60*1000; // 2 minutos
    this.tReloadStream;
    
    var self = this;
    this.volume = this.INITIAL_VOLUME;
    this.volpeak = 1800 / this.INITIAL_VOLUME;
    
    soundManager.onready(function() {
            // SM2 is ready to go!
            self.mysound = soundManager.createSound({
                id: id,
                url: url,
                autoLoad: false,
                autoPlay: false,
                volume: self.INITIAL_VOLUME,
                
                usePeakData: true,
                whileplaying: function(){
                    self.whilePlaying();
                }
            });
    });
    this.group.push(this);
}
RadioPlayer.prototype.reloadStream = function(){
    this.stop();
    this.play();
}
RadioPlayer.prototype.stop = function(){
    this.playing = false;
    this.onStop();
    
    this.mysound.stop().unload();
    clearTimeout(this.tReloadStream);
}
RadioPlayer.prototype.play = function(){
    var self = this;
    this.stopGroup();
    this.onPlay();
    
    this.mysound.load();
    this.mysound.setVolume(this.volume);
    this.mysound.play();
    this.playing = true;
    this.tReloadStream = setTimeout(function(){
        self.reloadStream()
    }, this.RELOAD_AFTER);
}
RadioPlayer.prototype.stopGroup = function(){
    for (var i=0, radio; radio = this.group[i]; i++){
        if (radio.playing){
            radio.stop();
        }
    }
}
RadioPlayer.prototype.render = function(root){
    var self = this,
        $root = $(root);
        html = $root.html();
    
    $root.empty();
    var $player = $('<div class="radioplayer paused" />').appendTo($root);
    
    var $peak = $('<div class="radio_peak" />').appendTo($player);
    var $peakBox = $('<div class="radio_peak_box" />').appendTo($peak);
    var $peakL = $('<span class="radio_peak_l" />').appendTo($peakBox);
    var $peakR = $('<span class="radio_peak_r" />').appendTo($peakBox);
    
    this.whilePlaying = function(){
        $peakL.css('marginTop', 18 - parseInt(self.volpeak * self.mysound.peakData.left) + 'px');
        $peakR.css('marginTop', 18 - parseInt(self.volpeak * self.mysound.peakData.right) + 'px');
    }
    
    var $title = $('<div class="radio_title" />')
            .html(html).appendTo($player),
        $pp = $('<div class="radio_pp" />')
            .attr('title', 'Escuchar').appendTo($player);
    
    this.onPlay = function(){
        $player.removeClass('paused');
        $pp.attr('title', 'Detener');
        $peakL.css('marginTop', '18px');
        $peakR.css('marginTop', '18px');
    }
    
    this.onStop = function(){
        $player.addClass('paused');
        $pp.attr('title', 'Escuchar');
    }
    
    function playpause(e){
        e.preventDefault();
        if (self.mysound.playState !== 1 || self.mysound.paused){
            self.play();
        }
        else {
            self.stop();
        }
        return false;
    }
    
    $pp.mousedown(playpause);
    $title.mousedown(playpause);
    
    var $vol = $('<div class="radio_volume" />').appendTo($player),
        $volBar = $('<div class="radio_volume_bar" />').appendTo($vol),
        $volMask = $('<div class="radio_volume_mask" />').appendTo($vol),
    
        startX, newVol,
        convRatio = 100 / this.VOL_BAR_WIDTH;
    
    $volBar.width(parseInt(this.INITIAL_VOLUME / convRatio) + 'px');
    
    function volStartDrag(e){
        $vol.unbind('mousedown', volStartDrag);
        $document.bind('mousemove', volDrag);
        $document.bind('mouseup', volStopDrag);
        startX =  $volBar.offset().left + self.VOL_BAR_WIDTH;
        volDrag(e);
        return false;
    }
    function volDrag(e){
        newVol = parseInt((startX - e.pageX) * convRatio);
        newVol = 101 - Math.min(Math.max(0, newVol), 100);
        self.mysound.setVolume(newVol);
        self.volume = newVol;
        self.volpeak = 1800 / newVol;
        $volBar.width(parseInt(newVol / convRatio) + 'px');
    }
    function volStopDrag(e){
        $document.unbind('mousemove', volDrag);
        $document.unbind('mouseup', volStopDrag);
        $vol.bind('mousedown', volStartDrag);
        return false;
    }
    $vol.bind('mousedown', volStartDrag);
}
window.Site = {
  isIE: false,
  global : { currentFilter : 'all'}
}
Site.setupRadios = function(){
    if (typeof(soundManager) === 'undefined'){
        return;
    }
    var $root = $('#radiospanel');
    if (! $root.length){
        return;
    }
    
    var NO_FREC = 'Frecuencia online';
    
    soundManager.url = '/js/swf/';
    soundManager.flashVersion = 9;
    soundManager.useMovieStar = DEBUG;
    soundManager.debugMode = DEBUG; // enable debugging output inside SWF, troubleshoot Flash/browser issues
    soundManager.debugFlash = false;      // enable debugging output inside SWF, troubleshoot Flash/browser issues
    soundManager.useConsole = DEBUG; // use firebug/safari console.log()-type debug console if available
    soundManager.consoleOnly = true;
    soundManager.allowScriptAccess = 'always';
    soundManager.defaultOptions.volume = 100; // set global default volume for all sound objects
    soundManager.useHighPerformance = true; // position:fixed flash movie for faster JS/flash callbacks
    
    var $comboRadios = $root.find('select').eq(0);
    var $comboFrecs = $root.find('select.combo-frecs');
    var $player = $('#radio');
    
    var rp = null;
    
    function onComboRadioChange(){
        // Stop player
        if (rp){
            rp.stop();
            rp = null;
        }
        var $radio = $comboRadios.find(':selected');
        var radio_class = $radio.val();
        
        $comboFrecs.hide();
        var $frec = $('#frecs_' + radio_class).show();
        onComboFrecuencyChange.call($frec[0]);
    }
    
    function onComboFrecuencyChange(){
        if (rp){
            rp.stop();
            rp = null;
        }
        var $frec = $(this).find(':selected');
        var frec_num = $.trim($frec.attr('data-frec'));
        var frec_url = $.trim($frec.val());
        
        $player.empty();
        var $div = $('<div></div>');
        $div.text(frec_num ? frec_num : NO_FREC);
        $player.append($div);
        
        rp = new RadioPlayer(''+ (new Date()).getTime(), frec_url);
        rp.render($player);
    }
    
    $comboRadios.bind('change', onComboRadioChange);
    $comboFrecs.bind('change', onComboFrecuencyChange);
    onComboRadioChange();
}
Site.setupSidebar = function(){
    Site.setupRadios();
}
Site.init = function(){
    Site.setupSidebar();
}
$document.ready(Site.init);
})(jQuery, document, window);

// TWITTER
function twitterCallback2(twitters) {
  var statusHTML = [];
  for (var i=0; i<twitters.length; i++){
    var username = twitters[i].user.screen_name;
    var status = twitters[i].text.replace(/((https?|s?ftp|ssh)\:\/\/[^"\s\<\>]*[^.,;'">\:\s\<\>\)\]\!])/g, function(url) {
      return '<a href="'+url+'">'+url+'</a>';
    }).replace(/\B@([_a-z0-9]+)/ig, function(reply) {
      return  reply.charAt(0)+'<a href="http://twitter.com/'+reply.substring(1)+'">'+reply.substring(1)+'</a>';
    });
    statusHTML.push('<li><span>'+status+'</span> <a style="font-size:85%" href="http://twitter.com/'+username+'/statuses/'+twitters[i].id_str+'">'+relative_time(twitters[i].created_at)+'</a></li>');
  }
  document.getElementById('twitter_update_list').innerHTML = statusHTML.join('');
}
function relative_time(time_value) {
  var values = time_value.split(" ");
  time_value = values[1] + " " + values[2] + ", " + values[5] + " " + values[3];
  var parsed_date = Date.parse(time_value);
  var relative_to = (arguments.length > 1) ? arguments[1] : new Date();
  var delta = parseInt((relative_to.getTime() - parsed_date) / 1000);
  delta = delta + (relative_to.getTimezoneOffset() * 60);
  if (delta < 60) {
    return 'hace unos segundos';
  } else if(delta < 120) {
    return 'hace un minuto';
  } else if(delta < (60*60)) {
    return (parseInt(delta / 60)).toString() + ' minutos atr&aacute;s';
  } else if(delta < (120*60)) {
    return 'hace 1 hora';
  } else if(delta < (24*60*60)) {
    return 'hace ' + (parseInt(delta / 3600)).toString() + ' horas';
  } else if(delta < (48*60*60)) {
    return 'hace 1 d&iacute;a';
  } else {
    return ' hace ' + (parseInt(delta / 86400)).toString() + ' d&iacute;as';
  }
}

// HORA POR JS
var dateFormat = function () {
	var	token = /d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[LloSZ]|"[^"]*"|'[^']*'/g,
		timezone = /\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g,
		timezoneClip = /[^-+\dA-Z]/g,
		pad = function (val, len) {
			val = String(val);
			len = len || 2;
			while (val.length < len) val = "0" + val;
			return val;
		};

	// Regexes and supporting functions are cached through closure
	return function (date, mask, utc) {
		var dF = dateFormat;

		// You can't provide utc if you skip other args (use the "UTC:" mask prefix)
		if (arguments.length == 1 && Object.prototype.toString.call(date) == "[object String]" && !/\d/.test(date)) {
			mask = date;
			date = undefined;
		}

		// Passing date through Date applies Date.parse, if necessary
		date = date ? new Date(date) : new Date;
		if (isNaN(date)) throw SyntaxError("invalid date");

		mask = String(dF.masks[mask] || mask || dF.masks["default"]);

		// Allow setting the utc argument via the mask
		if (mask.slice(0, 4) == "UTC:") {
			mask = mask.slice(4);
			utc = true;
		}

		var	_ = utc ? "getUTC" : "get",
			d = date[_ + "Date"](),
			D = date[_ + "Day"](),
			m = date[_ + "Month"](),
			y = date[_ + "FullYear"](),
			H = date[_ + "Hours"](),
			M = date[_ + "Minutes"](),
			s = date[_ + "Seconds"](),
			L = date[_ + "Milliseconds"](),
			o = utc ? 0 : date.getTimezoneOffset(),
			flags = {
				d:    d,
				dd:   pad(d),
				ddd:  dF.i18n.dayNames[D],
				dddd: dF.i18n.dayNames[D + 7],
				m:    m + 1,
				mm:   pad(m + 1),
				mmm:  dF.i18n.monthNames[m],
				mmmm: dF.i18n.monthNames[m + 12],
				yy:   String(y).slice(2),
				yyyy: y,
				h:    H % 12 || 12,
				hh:   pad(H % 12 || 12),
				H:    H,
				HH:   pad(H),
				M:    M,
				MM:   pad(M),
				s:    s,
				ss:   pad(s),
				l:    pad(L, 3),
				L:    pad(L > 99 ? Math.round(L / 10) : L),
				t:    H < 12 ? "a"  : "p",
				tt:   H < 12 ? "am" : "pm",
				T:    H < 12 ? "A"  : "P",
				TT:   H < 12 ? "AM" : "PM",
				Z:    utc ? "UTC" : (String(date).match(timezone) || [""]).pop().replace(timezoneClip, ""),
				o:    (o > 0 ? "-" : "+") + pad(Math.floor(Math.abs(o) / 60) * 100 + Math.abs(o) % 60, 4),
				S:    ["th", "st", "nd", "rd"][d % 10 > 3 ? 0 : (d % 100 - d % 10 != 10) * d % 10]
			};

		return mask.replace(token, function ($0) {
			return $0 in flags ? flags[$0] : $0.slice(1, $0.length - 1);
		});
	};
}();

// Some common format strings
dateFormat.masks = {
	"default":      "ddd mmm dd yyyy HH:MM:ss",
	shortDate:      "m/d/yy",
	mediumDate:     "mmm d, yyyy",
	longDate:       "mmmm d, yyyy",
	fullDate:       "dddd, mmmm d, yyyy",
	shortTime:      "h:MM TT",
	mediumTime:     "h:MM:ss TT",
	longTime:       "h:MM:ss TT Z",
	isoDate:        "yyyy-mm-dd",
	isoTime:        "HH:MM:ss",
	isoDateTime:    "yyyy-mm-dd'T'HH:MM:ss",
	isoUtcDateTime: "UTC:yyyy-mm-dd'T'HH:MM:ss'Z'"
};

// Internationalization strings
dateFormat.i18n = {
	dayNames: [
		"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat",
		"domingo", "lunes", "martes", "miercoles", "jueves", "viernes", "s&aacute;bado"
	],
	monthNames: [
		"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec",
		"enero", "febrero", "marzo", "abril", "mayo", "junio", "julio", "agosto", "septiembre", "octubre", "noviembre", "diciembre"
	]
};

// For convenience...
Date.prototype.format = function (mask, utc) {
	return dateFormat(this, mask, utc);
};

// VALIDADOR
		$(function(){
			$('input.btn.enviador').click(function(){
				errores='';
				datos={
					nombre:$('#form-panel input#Nombre').val(),
					email:$('#form-panel input#Correo').val(), 
					mensaje:$('#form-panel textarea#Mensaje').val(),
					captcha:$('.inputCaptcha').val()
				}
					if (datos.nombre.length<3 || datos.nombre=='Nombre') errores+='\nFavor ingresar su nombre';
                    if (!datos.email.match(/^[\w\d-_]+@[\w\d-]+\.[\w]{1,6}$/)) errores+='\nFavor ingresar su verdadero email';
                    if (datos.mensaje.length<3 || datos.mensaje=='Mensaje') errores+='\nFavor ingresar un mensaje';
                    if (datos.captcha!=2) errores+='\nCaptcha incorrecto';
				if(errores) {
					alert(errores)
				} else {
                   resDiv=$('<div id="resultadoForm"></div>'); 
                   switch ($('body').attr('id')) {
                   case 'arica':
                           var url_enviar = '/enviar/enviar-arica.php';
                           break;
                   case 'iquique':
                           var url_enviar = '/enviar/enviar-iquique.php';
                           break;
				    case 'antofagasta':
                           var url_enviar = '/enviar/enviar-afta.php';
                           break;
					case 'calama':
                           var url_enviar = '/enviar/enviar-calama.php';
                           break;						   
				    case 'copiapo':
                           var url_enviar = '/enviar/enviar-copiapo.php';
                           break;
				    case 'la-serena':
                           var url_enviar = '/enviar/enviar-laserena.php';
                           break;
				    case 'valparaiso':
                           var url_enviar = '/enviar/enviar-valparaiso.php';
                           break;
				    case 'santiago':
                           var url_enviar = '/enviar/enviar.php';
                           break;
				    case 'talca':
                           var url_enviar = '/enviar/enviar.php';
                           break;
				    case 'concepcion':
                           var url_enviar = '/enviar/enviar-concepcion.php';
                           break;
				    case 'temuco':
                           var url_enviar = '/enviar/enviar-temuco.php';
                           break;
				    case 'valdivia':
                           var url_enviar = '/enviar/enviar-valdivia.php';
                           break;
				    case 'osorno':
                           var url_enviar = '/enviar/enviar-osorno.php';
                           break;
				    case 'puerto-montt':
                           var url_enviar = '/enviar/enviar-ptomontt.php';
                           break;						   
                   }
                       resDiv.load(url_enviar, datos, function(){ 
                       $('#form-panel form,  #form-panel p').slideUp();
                       resDiv.appendTo('#form-panel')
                   });

				}
			})
		})

