/**
 * Определение переменных для работы Ajax RIA Framework
 *
 * @copyright  2008 IT RIA
 * @license    GNU GPL v2
 * @version    $Id: Ajax.js,v 1.2 2009/03/09 13:17:34 demonit Exp $
 */
var Ria_Ajax = {
	'script': '/ajax.php'
};

/**
 * Work with user playlists
 * 
 * @class Ria_Myradio_Playlist
 * @copyright 2008 Megadevel =)
 * @license GNU GPL v2
 * @version Release: $Revision: 1.22 $
 */

var Ria_Myradio_Playlist = new Class({
	Implements : [Options, Events],
	options : {
		prefix_name : 'add_song'
	},

	initialize : function(options) {
		this.start();
		this.editor();
	},

	start : function() {
		prefix = this.options.prefix_name;
        
		$$('img.' + this.options.prefix_name).each(function(element) {
			element.removeEvents('click');
			element.removeEvents('mouseenter');
			element.addEvent('click', function() {
				var reg = /\D*/;
				var trackId = element.getAttribute('id').replace(reg, "");

				if (element.src.indexOf("addtoplaylist") > 0) {
					addSong(trackId, element.getAttribute('id'));
				} else {
					return false;
				}
				div_length = 265;
				element.removeEvents('click');
				element.setAttribute("title", "   ");
				element.addEvent('click', function(prefix) {
							Tip(
									'   <br>  " "',
									BGCOLOR, '#f0fbff', FONTCOLOR, '#314353',
									BORDERWIDTH, 1, BORDERCOLOR, '#dceaf7');
						});
			}.bind(this, prefix));
			// tyt peredelat cherez imgsrc
			element.addEvent('mouseenter', function() {
						if (element.src.indexOf("addtoplaylist") > 0) {
							Tip('  <br>  " "',
									BGCOLOR, '#effde8', FONTCOLOR, '#315333',
									BORDERWIDTH, 1, BORDERCOLOR, '#c6e5ad');
						} else {
							Tip(
									'   <br>  " "',
									BGCOLOR, '#f0fbff', FONTCOLOR, '#314353',
									BORDERWIDTH, 1, BORDERCOLOR, '#dceaf7');
						}
					});

			element.addEvent('mouseout', function() {
						UnTip();
					});

		})
	},

	editor : function() {
		$$('img.del_me').each(function(element) {
			element.removeEvents('click');
			element.removeEvents('mouseenter');

			element.addEvent('click', function() {
						UnTip();
						delSong(element);
					}.bind(this));

			element.addEvent('mouseenter', function() {
						Tip(' ', BGCOLOR, '#fff0e6', FONTCOLOR,
								'#602b2b', BORDERWIDTH, 1, BORDERCOLOR,
								'#fae4d9');
					});

			element.addEvent('mouseout', function() {
						UnTip();
					});

		})
	}

});
var beck_up_arr = {};
var beck_up_number = {};
var myHrefs = {};
function delSong(element) {
	reg = /\D*/;
	elementId = element.getAttribute('id').replace(reg, "");
	// this.elementId=elementId;
	var myRequest = new Request({
				url : Ria_Myradio_GlobalVars.base_href
						+ 'ajax.php?target=play&event=delSong',
				method : 'post',
				onComplete : responce_delSong.bind(this),
				data : {
					file_id : elementId
				}
			});
	myRequest.send();
}

function responce_delSong(response) {
	var result = JSON.decode(response);
	var elementID = result['result'];

	beck_up_arr[elementID] = $('row_' + elementID).clone(true, true);

	beck_up_number[elementID] = $('row_' + elementID).childNodes[0].innerHTML;

	$('row_' + elementID).getElements('td').each(function(element, i) {
				if (i > 1) {
					element.innerHTML = '';
				}
				if (i == 1) {
					var txt1 = ' .   ';
					myHrefs[elementID] = new Element('a', {
								'class' : 'no_delete_music',
								'html' : '',
								'id' : 'beck_' + elementID
							});
					element.innerHTML = txt1;
					myHrefs[elementID].inject(element);
					element.innerHTML += '.';
				}

			}.bind(this));

	// eto zlo
	/*
	 * $('row_'+elementID).innerHTML='';
	 * 
	 * var myTD=new Element('td', { 'class': 'color_f1', 'html':
	 * beck_up_number[elementID] }); myTD.inject('row_'+elementID);
	 * 
	 * var myTD2=new Element('td', {}); var txt1=' .   ';
	 * myHrefs[elementID] = new Element('a', { 'class': 'no_delete_music',
	 * 'html': '', 'id': 'beck_'+elementID }); var myTD3=new
	 * Element('td', {}); var myTD4=new Element('td', {}); //
	 * myHrefs[elementID].inject('row_'+elementID); myTD2.innerHTML=txt1;
	 * myHrefs[elementID].inject(myTD2); myTD2.innerHTML+= '.';
	 * myTD2.inject('row_'+elementID); myTD3.inject('row_'+elementID);
	 * myTD4.inject('row_'+elementID);
	 */
	$('beck_' + elementID).addEvent('click', function(event) {
				event.stop();
				curID = this.getAttribute('id').replace(reg, "");
				beck_up_arr[curID].replaces($('row_' + curID));
				backupSong(curID);
				MyChart = new Ria_Myradio_Playlist({});
				return false;
			});
}

function backupSong(id) {
	elementId = id;
	var myRequest = new Request({
				url : Ria_Myradio_GlobalVars.base_href
						+ 'ajax.php?target=play&event=delSong',
				method : 'post',
				onComplete : responce_backupSong.bind(this),
				data : {
					file_id : elementId
				}
			});
	myRequest.send();
}


function responce_backupSong(response) {
	// var result = JSON.decode(response);
}

var info_morph_in;
var morph_process = false;

//     "fly div"  
function inform(message, status) {
	if (morph_process && $defined(info_morph_in))
		info_morph_in.cancel();
	if (Ria_Myradio_GlobalVars.in_fly) {
		return false;
	}

	var element = $('inform_line');

	$('inform_text').innerHTML = message;

	element.setStyle('opacity', '0');
	element.setStyle('display', 'block');

	morph_process = true;
	info_morph_in = new Fx.Morph('inform_line', {
				duration : 1000
			});

	info_morph_in.start({
				'opacity' : '1'
			}).chain(function() {
				info_morph_in = new Fx.Morph('inform_line', {
							duration : 1000
						});
				info_morph_in.start({
							'opacity' : '0'
						}).chain(function() {
							$('inform_line').setStyle('display', 'none');
							morph_process = false;
						}.bind(this));
			}.bind(this));
}

function addGroupSongs(id, element) {
	element.src = 'http://img.myradio.com.ua/img/center/forPlayer/wait.gif';
	this.el = element;
	var myRequest = new Request({
				url : Ria_Myradio_GlobalVars.base_href
						+ 'ajax.php?target=play&event=addGroupSongs',
				method : 'post',
				onComplete : responce_addGroupSongs.bind(this),
				data : {
					group_id : id
				}
			});
	myRequest.send();
}

function responce_addGroupSongs(response) {
	var result = JSON.decode(response);
	if(result['result']==false)
	{
		this.el.src = "http://img.myradio.com.ua/img/center/forPlayer/track_added.gif";
		return false;
	}
	var id_list = result['result'];
	var playlist = result['playlist'];
    
	id_list.each(function(element) {
		if ($defined($('add_' + element['file_id']))) {
			$('add_' + element['file_id']).src = "http://img.myradio.com.ua/img/center/forPlayer/track_added.gif";
			$('add_' + element['file_id']).removeEvents('click');
			$('add_' + element['file_id']).removeEvents('mouseenter');
			$('add_' + element['file_id']).addEvent('mouseenter', function() {
				Tip('   <br>  " "', BGCOLOR,
						'#f0fbff', FONTCOLOR, '#314353', BORDERWIDTH, 1,
						BORDERCOLOR, '#dceaf7');
			});
			$('add_' + element['file_id']).addEvent('mouseout', function() {
						UnTip();
					});
		}

		if ($defined($('chart_add_' + element['file_id']))) {
			$('chart_add_' + element['file_id']).src = "http://img.myradio.com.ua/img/center/forPlayer/track_added.gif";
			$('chart_add_' + element['file_id']).removeEvents('click');
			$('chart_add_' + element['file_id']).removeEvents('mouseenter');
			$('chart_add_' + element['file_id']).addEvent('mouseenter',
					function() {
						Tip('   <br>  " "',
								BGCOLOR, '#f0fbff', FONTCOLOR, '#314353',
								BORDERWIDTH, 1, BORDERCOLOR, '#dceaf7');
					});
			$('chart_add_' + element['file_id']).addEvent('mouseout',
					function() {
						UnTip();
					});
		}

	});
	this.el.src = "http://img.myradio.com.ua/img/center/forPlayer/track_added.gif";
	refreshSongCounterNew(result['playlist'].length);
	refreshSongListNew(result['playlist']);
	var message = '    <br><b> </b>';
	inform(message, 1);
}

var autoImg = new Image();
autoImg.src = 'http://img.myradio.com.ua/img/center/forPlayer/wait.gif';

function delSimple(elementId){
       var myRequest = new Request({
            url : Ria_Myradio_GlobalVars.base_href
                    + 'ajax.php?target=play&event=delSong',
            method : 'post',
            onComplete : responce_delSimple.bind(this),
            data : {
                file_id : elementId
            }
        });
        myRequest.send();
}

function responce_delSimple(response){
    return  JSON.decode(response);
}

function addToFly(file, count) {

	var id = file['id'];
	element = $('list_container');
	var innerText = count + '. ' + file['group_name'] + ' - <b>'
			+ file['song_name'] + '</b>';

	if (Math.round(count / 2) != (count / 2)) {
		var className = 'color_r1';
	} else {
		var className = 'color_r2';
	}

	var myDIV = new Element('div', {
				'class' : 'corsor_select',
				'id' : 'in_fly_' + id,
				'mytitle' : className,
				'class' : className,
				'html' : innerText,
				'events' : {
					'click' : function(event) {
						event.stop();
						return false;
					}
				}
			});

	if (count == 1) {
		element.innerHTML = '';
		myDIV.inject(element);
	} else {
		myDIV.inject(element);
	}

	$('fly_button').fireEvent('shiftclick');
	makeSelectors();
}

function delFromFly(element) {
	element.removeEvents();
    
	reg = /\D*/;
    var elementId = element.getAttribute('id').replace(reg, "");
	
	delSimple(elementId);
	
    element.set({
		'class': 'cursor_select_delete'
	});
    
	element.addEvent('click', function(e) {
				e.stop();
				element.set({
							'class' : 'corsor_select'
						});
				backToFly(this);
			});
			
}




function backToFly(element) {
	var newClass = element.get('mytitle');
    
	reg = /\D*/;
    var elementId = element.getAttribute('id').replace(reg, "");
	delSimple(elementId);
	element.set({
				'class' : newClass
			});
	makeSelectors();
}

function reBuildFly() {
	
}
/**
 * Глобальные переменные необходимые для работы аякс пролистывания фоток
 * 
 * @copyright 2008 IT RIA
 * @license GNU GPL v2
 * @version $Id: GlobalVars.js,v 1.4 2009/02/15 10:06:08 megadevel Exp $
 */
var Ria_Myradio_GlobalVars = {
	'base_href' : 'http://myradio.ua/', // base_url
	'in_fly' : false,
	'fly_div' : false
};

/**
 *
 * DOM-element cloner
 *
 * Using:
 *
 * var cloner = new Ria_Myradio_Common_Clone();
 *
 * cloner.
 *   setOriginalDOM($('.origDomId')).
 *   setIndex($$('.origDomId').length).
 *   setNameRelations({'name' : 'names[{%index}]'}).
 *   clone().
 *   inject($('whereToInject'));
 *
 * @class       Ria_Myradio_Common_Clone
 * @copyright   2011 Myradio.ua
 * @license     GNU GPL v2
 * @version     0.011
 * 
*/
var Ria_Myradio_Common_Clone = new Class ({
    index : 0,
    element : null,
    
    /*
     * Set count exists elements
     */
    setIndex : function(index) {
        this.index = index;

        return this;
    },

    /*
     * Set element to clone
     */
    setOriginalDOM : function(element) {
        if (!element || !$defined(element)) {
//            console.error("Clonator: You need original element");
            return false;
        }
        
        this.element = element.clone(true, true);

        return this;
    },

    /*
     * Set names assoc object to rename in clons
     */
    setNameRelations : function(nameRelations) {
        this.nameRelations = nameRelations;

        return this;
    },
    setFieldsRelations : function(fieldsRelations) {
        this.fieldsRelations = fieldsRelations;

        return this;
    },

    /*
     * Clonator
     */
    clone : function() {
        if (null == this.element) {
            return false;
        }
//        if (!this.element && $defined(console)) {
//            console.error("Clonator: You must setup original DOM element");
//        }
        this.index++;

        this.elementClone = this.element.clone(true, true);
        this.elementClone.setAttribute('index', this.index);

        this._parseIds();
        
        return this.elementClone;
    },

    /*
     * Private function to parse names and ids
     */
    _parseIds : function() {
        var nameChange = new Hash(this.nameRelations).getLength();
        var fieldChange = new Hash(this.fieldsRelations).getLength();
//        console.log(fieldChange+'   ====');
        if (this.elementClone.getAttribute('id')) {
            this.elementClone.setAttribute('id', this.elementClone.getAttribute('id')+'_'+this.index);
        }

        this.elementClone.getElements('*').each(function(item) {
            var id = item.getAttribute('id');
            if (id) {
                var newId = id + '_'+this.index;
                item.setAttribute('id', newId);
            }
            if (item.tagName=='LABEL' && item.getAttribute('for')) item.setAttribute('for',item.getAttribute('for')+'_'+ this.index);
            
            var name = item.getAttribute('name');
            
            var rename = function(item, newName) {
                newName = newName.replace('{%index}', this.index);
                item.setAttribute('name', newName);
            }.bind(this)

            
            if (nameChange && name && this.nameRelations[name]) {
                var newName = this.nameRelations[name];
                rename(item, newName);
            } else if(nameChange && name && new Array(this.nameRelations).length) {
                new Hash(this.nameRelations).each(function(newName, oldName) {
                    var regexp = new RegExp(oldName);
                    
                    if (regexp.test(name)) {
                        rename(item, newName);
                    }
                }.bind(this));
            } 
            
            if (fieldChange && name && this.fieldsRelations[name]){
                item.value = this.fieldsRelations[name];
                item.setAttribute('value', this.fieldsRelations[name]);
            }

        }.bind(this));
    }

});
/**
 *
 * @class Ria_Myradio_Common_Storage
 * @copyright  2009 IT RIA
 * @license    GNU GPL v2
 * @version    ID:
 */

var Ria_Myradio_Common_Storage = new Class({

        storage: {},
        
        timeInStorageMax: 5,
        
        cacheExtenshion: 'time_added_',


        initialize: function() {
           if (('localStorage' in window) && window['localStorage'] !== null){
               this.storage = localStorage;
               this.jsStorageExist = true;
           }else this.jsStorageExist = false
           
	},

	set: function(key, data){
            try{
                this.storage[key] = JSON.encode(data);
            }catch(e){
                this.clear();
                this.storage[key] = JSON.encode(data);
            }
            
            if (this.jsStorageExist) this.storage[this.cacheExtenshion+key] = this.getTimeStampInMinutes();
	},
        
        
	get: function(key){
            if (this.jsStorageExist) {
                if (this.storage[this.cacheExtenshion+key]){
//                    console.log(' date_add diff:::: ' + this.getTimeStampInMinutes() +'-'+ this.storage[this.cacheExtenshion+key] +' > ' + this.timeInStorageMax);
                    if (this.getTimeStampInMinutes() - this.storage[this.cacheExtenshion+key] > this.timeInStorageMax){
                        this.storage.removeItem(key);
                        this.storage.removeItem(this.cacheExtenshion+key);
                    }
                }
            }
            
            if (this.storage[key]) return JSON.decode(this.storage[key]);
            
            return false;
	},
        
        clear: function(){
            if (this.jsStorageExist)
                this.storage.clear();
            else this.storage = {};
        },
        
        getTimeStampInMinutes: function(){
            return Math.round(new Date().getTime() / 1000 / 60 );
        }
        
        
});
/**
 * @class Ria_Myradio_Comments_Add
 * @copyright 2011 Sanka =)
 * @license GNU GPL v2
 * @version Release: $Revision: 1.15 $
 */

var Ria_Myradio_Comments_Add = new Class ({
    
    form : '',
    main : false,
    sendRequest: function(submit,main){
        this.main = main;
        this.hideMessages();
        if (submit){
            if (submit.tagName=='FORM') this.form = submit;
            else this.getFormByInput(submit);
//            console.log(typeof(form));
            if (typeof(this.form)=='object'){
                var inputs = this.form.getElements('input');
                var textarea = this.form.getElements('textarea');
                var data = new Hash();
                inputs.each(function(item){
                    data[item.name] = item.value;
                }.bind(this));
                textarea.each(function(item){
                    data[item.name] = item.value;
                }.bind(this));
                this.setTextValue();
                this.clearForm();
                this.setFormFlag('');
                var myRequest = new Request({
				url : 'ajax2.php?target=html&event=add_comment',
//				url : '?target=main',
				method : 'post',
				onComplete : this.insertComment.bind(this)
			});
                myRequest.send(data.toQueryString());//
            }
        }
    },
    
    insertComment: function(response){
        var json = JSON.evaluate(response);
        var element = new Element('div');
        if (json.status=='ok'){
            this.setFormFlag('success');
            var success = new Element('div',{'class':'well','styles':{'padding':'10px','margin-top':'10px','font-weight':'bold'}});
            success.inject(this.form.getParent(), 'before');
            success.appendText('  .');
            if (json.answer_id>0){
                element.inject(this.form, 'after');
                this.form.addClass('hide');
            }else element.inject(this.form.getParent(), 'after');
//            this.clearForm();
            element.set('html', json.html);
            element.focus();
            this.main.init();
            
//            console.log('INITED');
        }else if(json.status=='error' && this.getFormFlag()==''){
            this.getTextValue();
            element.inject(this.form, 'before');
            element.set('html', json.html);
        }
        
    },
    
    clearForm: function(){
        this.form.getElement('textarea').value='';
        //this.form.getElement('textarea').setAttribute('textvalue','');
    },
    
    getTextValue: function(){
        this.form.getElement('textarea').value = this.form.getElement('textarea').getAttribute('textvalue');
    },
    
    setTextValue: function(){
        this.form.getElement('textarea').setAttribute('textvalue', this.form.getElement('textarea').value);
    },
    
    getFormByInput: function(input){
        this.getParentElement(input);
    },
    
    getParentElement: function(input){
        var parent = input.getParent()
        if (parent.tagName=='FORM'){
            this.form = parent;
        }else this.getParentElement(parent);
    }, 
    
    setFormFlag: function(status){
        this.form.getElement('textarea').setAttribute('flag', status);
    },
    
    getFormFlag: function(){
        return this.form.getElement('textarea').getAttribute('flag');
    },
    
    hideMessages: function(){
        $$('.error').each(function(item){item.destroy()});
        $$('.well').each(function(item){item.destroy()});
    }
    
});


/**
 * @class Ria_Myradio_Common_KeyListener
 * @copyright 2011 Sanka =)
 * @license GNU GPL v2
 * @version Release: $Revision: 1.15 $
 */

var Ria_Myradio_Common_KeyListener = new Class ({
    
    init: function(object, func){
        if (object){
            object.removeEvents('keypress');
            object.addEvent('keypress', function(event){
                if(event.control && (event.code == 13 || event.code == 10)){
                    func();
                }
            }.bind(this));
        }
        
        
    },
    
    keyListener: function(event){
	
//        console.log(event);
//        console.log('Keyboard code ::: = '+event.code);
        
    }
    
});


/**
 *
 * @class       Ria_Myradio_Common_Votes
 * @copyright   2011 Myradio.ua
 * @license     GNU GPL v2
 * @version     0.011
 * 
*/
var Ria_Myradio_Common_Votes = new Class ({
    
    init: function(url, zone){
        this.url = url;
        this.zone = zone;
    },
    
    like: function(itemId,vote,Obj) {
        if (this.url){
            var kook = Cookie.read('rait_' + this.zone + '_' + itemId);
            if (!kook){
                var request = new Request.JSON({
                            url: this.url,
                            onComplete: function(response){
                                Obj.getParent().set('html','  ,    ');
                                Cookie.write('rait_' + this.zone + '_' + itemId, 1, {duration: 1});
                            }.bind(this)
                }).get({'itemId':itemId,'vote':vote,'zone':this.zone});
            }else{
                Obj.getParent().setText('    ');
            }
        }
    }

});
/**
 * Класс прорисовывает анимированный gif в указанном div элементе   
 *
 * @class Ria_Common_StatusImageManager
 * @copyright  2008 IT RIA
 * @license    GNU GPL v2
 * @version    ID:
*/
var Ria_Common_StatusImageManager = new Class({
	
    spinnerImg  : 'http://css.ria.ua/icons/gifs/spinner_grey.gif',
    checkImg    : 'http://css.ria.ua/icons/gifs/checkbullet.gif',
    errorImg    : 'http://css.ria.ua/icons/gifs/error_bang.gif',

	initialize: function(elementId, status, fadeEffect){
		this.elementId = elementId;
		this.status = status;
		this.fadeEffect = fadeEffect;
	
		this.showStatusImg();
	},
	
	showStatusImg:function (){
		var imgSrc = '';
		if (this.status == 'spinner'){
			imgSrc = this.spinnerImg;
		} else if (this.status == 'check'){
			imgSrc = this.checkImg;
		} else if (this.status == 'error'){
			imgSrc = this.errorImg;
		}
		
		if (imgSrc){
			var statusDiv = $(this.elementId).empty();

			var element = new Element('img', {
				'src': imgSrc
			}).injectTop(statusDiv);

			if (this.fadeEffect){
				new Fx.Style(element, 'opacity', {duration:3000}).addEvent('complete', function() {
					$(this.elementId).empty();
		    	}.bind(this)).start(1, 0);
			}
		}
		
	}
	
});
/**
 * Abstract class RIA Framework JSON Request
 *
 * @class      RIA_JsonRequest
 * @copyright  2008 IT RIA
 * @license    GNU GPL v2
 * @version    Release: $Revision: 1.2 $
 * @author     <a href="mailto:Oleg.Cherniy@gmail.com">Oleg Cherniy</a>
 * @requires   Ria_Ajax
 */

var Ria_JsonRequest = new Class({

	Implements: Options,
	
	options: {
		target: 'main',
		event: ''
	},

	/**
	 * @raram {Array} options параметры для построения запроса
	 */
	initialize: function(options){
		this.setOptions(options);
		new Request.JSON({url: Ria_Ajax.script, 
			onComplete: this.onGetResponse.bind(this)
		}).get(this.options);
	},
	
	/**
	 * Метод, который будет выполнен после получения
	 * ответа на Ajax-запрос.
	 * Вам  нужно его переопредплить.
	 * 
	 * @param {Object} jsonObj Объект с данными из JSON-ответа
	 */
	onGetResponse: function(jsonObj) {}
});

/**
 * Класс для работы с облаком тегов - при подведении всплывает див с инфой о
 * формате
 * 
 * @class Ria_Myradio_OblakoEfect
 * @copyright 2008 Megadevel =)
 * @requires Ria_JsonRequest
 */
var whatPlayImgs = new Class({
			Extends : Ria_JsonRequest,
			options : {
				target : 'play',
				event : 'nowPlay',
				rand : Math.floor(Math.random() * 10000)
			},

			initialize : function(options) {
				this.parent(options);
			},

			onGetResponse : function(jsonObj) {
				this.json = jsonObj;
				this.setPhotos();
			},

			setPhotos : function() {
				this.json.each(function(element, e) {
					
					      if($defined($('format_play_'+element.format_id))){
    				   	       var text_element=$('format_play_'+element.format_id);
							   if(element.group_id > 0 && element.group_name != null && element.good_name != null){
							   	
								    var txt_flag=element.group_name.length + element.good_name.length;
									
									if(txt_flag>25){
									      if (element.group_name.length < 25) {
											  	var txt_long = 25 - element.group_name.length;
												element.good_name=element.good_name.substring(0,txt_long)+'..';
										  }
										  else{
										  	   element.good_name='';
										  }
									}

                                                                    
								    if (element.good_name != '') {
										text_element.innerHTML = '<a href="group/' + element.group_id + '">' + element.group_name + '</a> - ' + element.good_name;
									}
									else {
										text_element.innerHTML = '<a href="group/' + element.group_id + '">' + element.group_name + '</a>';
									}
							   }
						   }
                                                        var format_slide =$('f_slide_'+element.format_id);
                                                        format_slide.innerHTML = element.name;
							var id_element = 'img_artist_' + element.format_id;
							if ($defined(element.photo)
									&& element.photo.length > 2) {
								var photo_url = element.photo;
							} else {
								var photo_url = element.format_photo;
							}

							var img = new Element('img', {
										src : photo_url
									});
							$(id_element).src = photo_url.replace("ria","20");
						})
			}
		});

var My_Slider = new Class({
			Implements : [Options, Events],
			options : {
				divsid : [],
				startDiv : 0,
				wrap : true
			},

			divsid : [],

			initialize : function(options) {
				this.setOptions(options);
				this.divsid = this.options.divsid.clean();

				this.period = this.nextPhoto.bind(this).periodical(4000);
				$(document.body).getElements('img.photo_next').addEvent(
						'click', this.nextPhoto.bind(this));
                                $(document.body).getElements('a.rotat-butt-right').addEvent(
						'click', this.nextPhoto.bind(this));
				$(document.body).getElements('img.photo_prew').addEvent(
						'click', this.prewPhoto.bind(this));
				$(document.body).getElements('a.rotat-butt-left').addEvent(
						'click', this.prewPhoto.bind(this));
                                $(document.body).getElements('img.photo_prew').addEvent(
						'click', function() {
							$clear(this.period);
						}.bind(this));
				$(document.body).getElements('a.rotat-butt-left').addEvent(
						'click', function() {
							$clear(this.period);
						}.bind(this));
                                $(document.body).getElements('img.photo_next').addEvent(
						'click', function() {
							$clear(this.period);
						}.bind(this));
                                $(document.body).getElements('a.rotat-butt-right').addEvent(
						'click', function() {
							$clear(this.period);
						}.bind(this));
			},

			nextPhoto : function() {
				if ($chk(this.now) && this.now < (this.divsid.length - 1)) {
					this.showPhoto(this.now + 1);
				} else if ((this.now) && this.options.wrap)
					this.showPhoto(0);

				else if (!$defined(this.now)) {
					this.showPhoto(this.options.startDiv);
				}
			},

			prewPhoto : function() {
				if (this.now > 0)
					this.showPhoto(this.now - 1);
				else if (this.options.wrap)
					this.showPhoto(this.divsid.length - 1);
			},

			showPhoto : function(iToShow) {

				if (!$defined(iToShow))
					return;
				var now = this.now;
				if (!$defined(now)) {
					var now = this.options.startDiv;
				}
				for (i = 0; i < this.divsid.length; i++) {
					if (this.divsid[i] > 0) {
						$('div_' + this.divsid[i]).setStyle('display', 'none');
					}
				}
				$('div_' + this.divsid[iToShow]).setStyle('display', 'block');
				this.now = iToShow;
			}
		});

/**
 *       -       
 * 
 * 
 * @class Ria_Myradio_OblakoEfect
 * @copyright 2008 Megadevel =)
 * @license GNU GPL v2
 * @version Release: $Revision: 1.26 $
 * @requires Ria_JsonRequest
 */
var Ria_Myradio_OblakoEfect = new Class({
	Extends : Ria_JsonRequest,
	options : {
		target : 'play',
		event : 'nowPlay',
		rand : Math.floor(Math.random() * 10000)
	},

	initialize : function(options) {
		this.parent(options);
	},

	onGetResponse : function(jsonObj) {
		this.json = jsonObj;
		this.makeOblako();
	},

	out : false,

	makeOblako : function() {

		var locat = 'http://img.myradio.com.ua';
		var img1 = new Element('img', {
					src : locat + '/img/tips/win_high.jpg'
				});
		var img2 = new Element('img', {
					src : locat + '/img/tips/win_low.jpg'
				});
		var img3 = new Element('img', {
					src : locat + '/img/tips/win_high.jpg'
				});

		this.json.each(function(element, i) {

			$(element.format_id).addEvent('mouseenter', function(e) {
				e.stop();
				
				
				var openUrl = 'http://music.myradio.com.ua/player.php?id='
						+ element.format_id;
				var textInsert = '<table width="100%" cellpadding="3" cellspacing="0"><tr>';
				textInsert += '<td width="120" valign="top"><a href="chanel/'
						+ element.url + '"><img src="'
						+ element.f_logo.replace(/'/gi, '').replace(/"/gi, '')
						+ '" style="margin:0px;"></a></td>';
				textInsert += '<td align="left"><a href="chanel/' + element.url
						+ '"><b style="font-size:14px;">' + element.name
						+ '</b></a><br><b>'
						+ element.lozung.replace(/'/gi, '').replace(/"/gi, '')
						+ '</b><br>';
				textInsert += 'C <br>';

				if (element.group_about == 1) {
					textInsert += '<b><a href="group/'
							+ element.group_id
							+ '">'
							+ element.group_name.replace(/'/gi, '').replace(
									/"/gi, '') + '</a></b><br>';
				} else {
					textInsert += '<b>'
							+ element.group_name.replace(/'/gi, '').replace(
									/"/gi, '') + '</b><br>';
				}

				textInsert += element.good_name.replace(/'/gi, '').replace(
						/"/gi, '');
				textInsert += '</td>';

				
				
				
				
				
				textInsert += '</tr></table>';

				Tip(textInsert, ABOVE, true, STICKY, 1, BORDERCOLOR, '#61a6d8',
						OPACITY, 90, WIDTH, 320, BORDERWIDTH, 2, CLICKCLOSE,
						true, OFFSETY, 10, OFFSETX, -50, DELAY, 500, BGCOLOR, '#f7f7f7',
						DURATION, 7000, PADDING, 5);
			});

			$(element.format_id).addEvent('mouseout', function(e) {
				e.stop();
				UnTip();
					// Tip('<div></div>', DURATION, 1);
				});

		});
	}
});

/**
 * Клас для роботы с плавающим дивом
 * 
 * @class Ria_Myradio_FlyDiv
 * @copyright 2008 Megadevel =)
 * @license GNU GPL v2
 * @version Release: $Revision: 1.15 $
 * @requires Ria_JsonRequest
 */

var Ria_Myradio_FlyDiv = new Class({
	Implements : [Options, Events],
	options : {},

	initialize : function(options) {
		Ria_Myradio_GlobalVars.set('fly_div', true);
		this.a = 1;

		this.MySlider = new Fx.Slide('my-playlist', {
					mode : 'vertical',
					duration : 300
				});
		this.proces = true;
		$('my-playlist').setStyle('visibility', 'hidden');
		this.MySlider.slideOut().chain(function() {
					$('my-playlist').setStyle('visibility', 'visible');
					$('my-playlist').setStyle('display', 'none');
					this.proces = false;
				});
		this.start();
	},

	start : function() {
		this.flyDiv = $('my-playlist');

		// this.goToFly();
		this.goToFlyNew();
		makeSelectors();
	},

	goToFly : function() {
		this.proces = false;
		$('myFlyTitle').addEvent('mouseenter', function(e) {
					if (this.proces)
						return;
					this.proces = true;
					$('my-playlist').setStyle('border', '5px solid #0cac00');

					Ria_Myradio_GlobalVars.set('in_fly', true);

					$('inform_line').setStyle('display', 'none');

					var morph = new Fx.Morph('myFlyTitle');
					morph.start({
								'width' : '300px'
							}).chain(function() {
								this.MySlider.slideIn().chain(function() {
											this.proces = false
										}.bind(this));
							}.bind(this));
				}.bind(this));

		$('close_fly_div').addEvent('click', function(e) {
			if (this.proces)
				return;
			this.proces = true;
			this.MySlider.slideOut().chain(function() {
						var morph = new Fx.Morph('myFlyTitle');
						morph.start({
									'width' : div_length + 'px'
								}).chain(function() {
									this.proces = false
									Ria_Myradio_GlobalVars.set('in_fly', false);
								}.bind(this));
					}.bind(this));
		}.bind(this));

		/*
		 * $('savePlaylist').addEvent('click', function(e){
		 * if($('myRegister').style.display=='block'){
		 * $('myRegister').setStyle('display', 'none'); } else{
		 * $('myRegister').setStyle('display', 'block'); }
		 * 
		 * $('myFlyTitle').fireEvent('mouseenter');
		 * 
		 * }.bind(this));
		 */
	},

	goToFlyNew : function() {
		this.proces = false;

		$('fly_button').addEvent('mouseenter', function(e) {
					e.stop();
					if (Ria_Myradio_GlobalVars.in_fly == true) {
						Tip('   ');
					} else {
						Tip('   ');
					}

				});
	   if($defined($('fly_button_href'))){
		   $('fly_button_href').addEvent('click', function(){
		   	   $('fly_button').fireEvent('click');
		   });
	   }

		$('fly_button').addEvent('mouseleave', function(e) {
					e.stop();
					UnTip();
				});
		// na etot event ceplyaem fireevent dlya rozkritiya fly_diva v procese
		// dobavleniya mp3
		$('fly_button').addEvent('shiftclick', function(e) {
			if (Ria_Myradio_GlobalVars.in_fly == true) {
				var morph = new Fx.Morph('fly_content');
				morph.start({
							'width' : '325px'
						}).chain(function() {
							this.MySlider.slideIn().chain(function() {
										this.proces = false
										Ria_Myradio_GlobalVars.set('in_fly',
												true);
									}.bind(this));
						}.bind(this));
			}
		}.bind(this));

		$('fly_button').addEvent('click', function(e) {
			if (this.proces)
				return;
			this.proces = true;

			$('inform_line').setStyle('display', 'none');

			if (Ria_Myradio_GlobalVars.in_fly == true) {
				this.MySlider.slideOut().chain(function() {
							var morph = new Fx.Morph('fly_content');
							morph.start({
										'width' : div_length + 'px'
									}).chain(function() {
										this.proces = false
										Ria_Myradio_GlobalVars.set('in_fly',
												false);
										$('fly_button')
												.toggleClass('close_playList');
										$('fly_button')
												.toggleClass('open_playList');
									}.bind(this));
						}.bind(this));
			} else {
				var morph = new Fx.Morph('fly_content');
				morph.start({
							'width' : '325px'
						}).chain(function() {
							$('my-playlist').setStyle('display', 'block');
							this.MySlider.slideIn().chain(function() {
										this.proces = false
										Ria_Myradio_GlobalVars.set('in_fly',
												true);
										$('fly_button')
												.toggleClass('close_playList');
										$('fly_button')
												.toggleClass('open_playList');
									}.bind(this));
						}.bind(this));
			}
		}.bind(this));

	}
});


var myGlobalSlider = false;

function makeSelectors() {

	$$('div.color_r1').each(function(element, i) {
				element.removeEvents();
				var title = element.get('title');
				element.set('title', '');
				if (element.get('mytitle') == null) {
					element.set('mytitle', title);
				}
				element.addEvent('mouseenter', function(e) {
							e.stop();
							element.set({
										'class' : 'cursor_select'
									});
						}, this);

				element.addEvent('mouseleave', function(e) {
							e.stop();
							element.set({
										'class' : 'color_r1'
									});
						});

				element.addEvent('click', function(e) {
							e.stop();
							delFromFly(this);
						}, this);
			});

	$$('div.color_r2').each(function(element, i) {
				element.removeEvents();
				var title = element.get('title');
				element.set('title', '');
				if (element.get('mytitle') == null) {
					element.set('mytitle', title);
				}
				element.addEvent('mouseenter', function(e) {
							e.stop();
							element.set({
										'class' : 'cursor_select'
									});
						}, this);

				element.addEvent('click', function(e) {
							e.stop();
							delFromFly(this);
						}, this);

				element.addEvent('mouseleave', function(e) {
							e.stop();
							element.set({
										'class' : 'color_r2'
									});
						});
			});
}

/**
 * Ria_Myradio_Comments
 *
 * @class       Ria_Myradio_Comments_Main
 * @copyright   2011 
 * @license     GNU GPL v2
 * @author      Sanka
 * @requires    Ria_Myradio_Comments_Add
 * @requires    Ria_Myradio_Common_KeyListener
 * @requires    Ria_Myradio_Common_Clone
 *
*/
var Ria_Myradio_Comments_Main = new Class ({
    
    clonCollect:  new Hash(),
    init: function(){
//        console.log('INIT');
        $$('.ria-clonators').each(function(item) {
            item.removeEvents('click');
            item.addEvent('click', function() {
                this.makeForm(item)
            }.bind(this));
        }.bind(this));
        this.initEvents();
    },
    
    makeForm:function(item){
        var ident = item.getAttribute('clone1');
        this.clonCollect[ident] = new Ria_Myradio_Common_Clone();
        var clone = this.clonCollect[ident]
                    .setOriginalDOM($(item.getAttribute('clone1')))
                    .setIndex(item.getAttribute('index'))
                    .setFieldsRelations({'answer_id':item.getAttribute('index'),'level':item.getAttribute('level'),'text':' '})
                    .clone();
//                console.log('after clone');
        var inject = item.getAttribute('after');
//                console.log('before inject');
        if (clone) {
            item.removeEvents('click');
            item.addEvent('click', function(){
                clone.toggleClass('hide');
            }.bind(this));
//                    console.log(inject);
            clone.injectAfter(inject);
            this.initEvents();
        }
    },
    
    initEvents: function(){
        var addCom = new Ria_Myradio_Comments_Add();
        var keyListener = new Ria_Myradio_Common_KeyListener();
        
        $$('.send-comment-form').each(function(item) {
            item.removeEvents('submit');
            var func = function(){
//                console.log(item);
//                alert('inside function ');
                addCom.hideMessages();
                addCom.sendRequest(item, this);
            }.bind(this);
            item.addEvent('submit', function(event){
//                console.log('stop event');
                event.stop();
            }.bind(this));
            
            keyListener.init(item, func);
        }.bind(this));
        $$('.form-comment-submit').each(function(item) {
            item.removeEvents('click');
            item.addEvent('click', function(){
                addCom.hideMessages();
                addCom.sendRequest(item, this);
//                console.log('before init');
//                this.init();
            }.bind(this));
//            console.log(item);
        }.bind(this));
        
    }

});


/**
 * @class      Ria_Myradio_Distribution
 * @copyright  2008 Megadevel =)
 * @license    GNU GPL v2
 * @version    Release: $Revision: 1.4 $
 * @requires   Ria_JsonRequest
 */
var Ria_Myradio_Distribution = new Class({
    Extends: Ria_JsonRequest,
    options: {
        target:  'user',
        event:   'distribution',
        user_name: '',
        user_email: '', 
        rand: Math.floor(Math.random() * 10000)
    },
        
    initialize: function(options){
        this.parent(options);
    },
    
    onGetResponse: function(jsonObj) {
        this.json = jsonObj;
        $('load_distrib').setStyle('visibility', 'hidden');
        if(this.json.valid==true)
        {
        	$('distribution').innerHTML='<div class="well" style="padding:5px;">     ,       e-mail, .</div>';
        }
        else
        {
        	if(this.json.error==3){
        		$('distribution_err').innerHTML='<div class="error_messege" style="padding:5px; margin-bottom:10px;"> email-     !!!</div>';
        	}
        	
        	 if(this.json.error==1){
        	      $('distribution_err').innerHTML='<div class="error_messege" style="padding:5px; margin-bottom:10px;">    !!!</div>';         	
        	 }
        	 else{
        	 	$('distribution_err').innerHTML='<div class="error_messege" style="padding:5px; margin-bottom:10px;">  e-mail</div>';
        	 }
        }
    }
});


