$j = jQuery.noConflict();

(function($j) {
	$j.fn.roomInfo = function(options) {
		//DEFAULTS
		$j.fn.roomInfo.defaults = {
			isLocal: false,
			idioma:'ING',
			url:'',
			w:350,
			h:200,  //'auto' ó  125
			bg:'#fffff6',
			modBg: '#ffffec',
			brd: '1px solid #c6c75e'			
		}
		//EXTENDER        
		var opts = $j.extend($j.fn.roomInfo.defaults, options);
		
		//LLAMADO
		return this.each(function(i) {
         
		    opts.idioma = fdic.lang(null);
			//TITULOS, INGLÉS y ESPAÑOL
			labels = {
					rd : '<strong>' + fdic.trad(titDescription,opts.idioma) + ' </strong>',
					rb : '<strong>' + fdic.trad(titRooms,opts.idioma) + ' </strong>',
					rv : '<strong>' + fdic.trad(titView,opts.idioma) + ' </strong>',
					ra : '<strong>' + fdic.trad(titAmenities,opts.idioma) + ' </strong>',
					cp : '<strong>' + fdic.trad(titCancellationPolicy,opts.idioma) + ' </strong>',
					ld : fdic.trad(disLoading,opts.idioma)
					}
					
			//HTML DEL POPUP
			popModal = '<div class="popModalCont"><div class="popModal"><span class="xPop"><img src="/_lib/java/jquery/ligthbox-images/lightbox-ico-loading-ESP.gif" alt="'+labels.ld+'" /></span></div></div>\n';
			
			//EVENTO LANZADOR (inicializar).
			$j(this).click(function(){

				$j('.popModalCont').remove();

				//OBJETO CLICKEADO
				btn = $j(this);

				//PEGAMOS EL POPUP
				$j('body').append(popModal);
				$j('.popModalCont').append('<div class="roomDesc">\n\t</div>');
				
				//TIPOGRAFÍA
				Font = {'fontFamily':'Trebuchet MS'};
				$j('.popModal').css(Font);
				
				//CERRAR EL POPUP
				$j.fn.roomInfo.closeModal = function(){
					$j('.popModalCont').remove();
				}
				
				$j('.xPop').click(function(){
					$j.fn.roomInfo.closeModal();
				});
				
				$j('body').click(function(){
					$j.fn.roomInfo.closeModal();
				});
						
				//CSS Y POSICIÓNAMIENTO
				popOffset = btn.offset();
				hk = 0;
				$j.each($j.browser, function(i) {
					if($j.browser.msie){
						hk = 15;
					}
				});

                var _H = (isNaN(opts.h)) ? opts.h : (opts.h + hk + 'px');
                var _H1 = (isNaN(opts.h)) ? opts.h : (opts.h + 'px');
					
				$j('.popModalCont').css({
					'width': opts.w+hk+'px',
					'height': _H,
					'backgroundImage':'url('+opts.modBg+')',
					'background':opts.modBg,
					'border': opts.brd,
					'position':'absolute',
					'left': popOffset.left+btn.width(),
					'top':popOffset.top-130,
					'padding':'10px',
					'overflow':'hidden'
				});
				
				$j('.popModal').css({
					'width':opts.w,
					'height':_H1,
					'background':opts.bg,
					'padding':'0px',
					'overflow':'auto'
				});
				
				$j('.xPop').css({
					'fontSize':'11px',
					//'position':'fixed',
					'float':'right',
					'display':'block',
					'cursor':'pointer',
					'background':'#FFFFEC',
					'marginRight':'10px',
					'padding':'3px',
					'border':'1px solid #e9eaac'
				});
						
				//PARAMETROS DEL ATRIBUTO REL
				attribArgs= $j(this).attr('rel');
				req= $j(this).attr('rev');
				values = attribArgs.split('_');
				var DateLlegada = $j('input[name=Llegada]')[1].value;
				var DateSalida = $j('input[name=Salida]')[1].value;

                $j.fn.roomInfo.getStructureData = function(cadena){

                        var posI = 0; var posF = -1; var _Querys=''; var _QueryTmp='';ripData='';
						while (posI > -1) {
							posI = cadena.indexOf("<acronym"); 							
							posF = cadena.indexOf("acronym>");
							if (posI > -1 && posF > -1) {
                                _QueryTmp = cadena.substring(posI,(posF+"acronym>".length)); //Actual query  
								_Querys +=  _QueryTmp; //este almacena todos los querys
								cadena = cadena.replace(_QueryTmp,'');  //Quita el query encontrado
							}							
						}
                        var posIniRoom = cadena.indexOf("room =")
                        var posFinRoom = cadena.indexOf("};")
                        if (posIniRoom > -1 && posFinRoom > -1) {
                            cadena = cadena.substring(posIniRoom,(posFinRoom + "};".length));
                        }else {
                            ripData = cadena.split('\n');
						    ripData.splice(0,1);
						    cadena = ripData.join('\n');            
                        }    
                    return {SQL:_Querys,Struct:cadena};
                }
				
				//CARGAR LOS DATOS
				$j.fn.roomInfo.getSource = function(){
					//LLAMADA
					if(opts.isLocal == false){
					///////////////////////////////////////////////////////////////////////////////////////////
								
					
					$j.get(opts.url,{Hotel:values[0], Room:values[1], Idioma:opts.idioma, Llegada: DateLlegada, Salida: DateSalida},function(data){
											
						var verUrl= opts.url + '?Hotel=' + values[0] + '&Room=' + values[1] + '&Idioma=' + opts.idioma + '&Llegada=' + DateLlegada + '&Salida=' + DateSalida;
						//alert(verUrl);
																
						//ELIMINAR EL DOCTYPE DEL RESULTADO
                        var _Querys=''; var stringData = data.toString();											
						var _dat = $j.fn.roomInfo.getStructureData(stringData);
                        var _Querys = _dat.SQL; //querys
                        var justUsefulNodes = _dat.Struct; //estructura de datos
						d = eval(justUsefulNodes);
                        var HayDatos = false;
                        if (typeof d!='undefined' && d!=null) { HayDatos = (d.Error!='' && typeof d.Error!='undefined') ? false: true; }						
						//ARMAR INFORMACIÓN (DETALLES)
						if (HayDatos) {
							if(d.roomPhoto != ''){
								imagen = '<img class="roomPhoto" src="'+d.roomPhoto+'" />';
							}else{ imagen = ''; }
							/////////////////
							if(d.descRoom != ''){
								descripcion = '<p>'+labels.rd+d.descRoom+'</p>\n\t';
							}else{ descripcion=''; }
							/////////////////
							if(d.bedding != ''){
								bedding = '<p>'+labels.rb+d.bedding+'</p>\n\t';
							}else{ bedding=''; }
							/////////////////
							if(d.roomView != ''){
								roomView = '<p>'+labels.rv+d.roomView+'</p>\n\t';
							}else{ roomView =''; }
							/////////////////														
							$j('.popModal').append('<p class="hotel">'+d.nameHotel+'</p>');
							$j('.popModal').append(imagen+'<p class="room">'+ d.nameRoom + _Querys + '</p>');
							$j('.popModal').append(descripcion+bedding+roomView);
							
							//ARMAR LA LISTA DE AMENIDADES
							if(d.roomAmenities != '' && typeof d.roomAmenities!='undefined'){        
                                if (d.roomAmenities.length > 1) { //debe ser mayor de uno, ya que siempre tiene uno vacio
								    $j('.popModal').append('<p>'+labels.ra+'</p>\n\t<ul class="rAmenities">\n\t</ul>\n');
									list = '';
								    howMany = d.roomAmenities.length;
								    for(i=0;i<howMany;i++){
									    if(d.roomAmenities[i].amenitie!=''){
										    list +='<li>' + d.roomAmenities[i].amenitie + '</li>\n\t';
									    }
								    }								
								    $j('.rAmenities').append(list);
								    $j('.xPop').html('<img src="/_lib/images/Bestday/closePopInfoRoom.gif"/> ' + fdic.trad(disClose,opts.idioma));
                                }
							}							
						
							//POLITICAS DE CANCELCIÓN
							var objCancel = $j('input[name=IAN_'+values[1]+'_cancellationPolicy]');
							objCancel =(objCancel.length > 0) ? objCancel : $j('input[name=Room_'+values[1]+'_cancellationPolicy]');
							cancelP = (objCancel.length > 0) ? objCancel.val() :'';							
							//if (!HayDatos && typeof cancelP !='undefined') {
								$j('.xPop').html('<img src="/_lib/images/Bestday/closePopInfoRoom.gif"/> ' + fdic.trad(disClose,opts.idioma));
							//}				
							if(cancelP !=''){									
								$j('.popModal').append('<p>'+labels.cp+cancelP+'</p>');
							}
						
						}else {
							$j('.xPop').html('<img src="/_lib/images/Bestday/closePopInfoRoom.gif"/> ' + fdic.trad(disClose,opts.idioma));  //CERRAR
							$j('.popModal').append('<p>'+ fdic.trad(disNoAvailable,opts.idioma) + _Querys + '</p>');
						}
						
						//ULTIMO CSS (dividimos el css en dos partes para acelerar la carga)
						$j('.popModal').css('textAlign','justify');
						$j('.popModal p').css({'fontSize':'11px','padding':'0px','margin':'5px'});
						$j('.roomDesc p').css({'fontSize':'11px','padding':'0px','margin':'0px'});
						$j('.popModal .roomPhoto').css({'margin':'10px','float':'right','border':'3px solid #e6e6b7'});
						$j('.rAmenities').css({'fontSize':'11px'});
						$j('.rAmenities li').css({'list-style-image':'url(/_lib/images/Bestday/list_bull.gif)'});
						$j('.popModal .hotel').css({'color':'#06c','fontSize':'17px'});
						$j('.popModal .room').css({'color':'#06c','fontSize':'14px'});
						
					});
					////////////////////////////////////////////////////////////////////
					}else{
									
					
					    ////////////////////////////////////////////////////////////////////
					    $j.get(opts.url,{Hotel:values[0], Room:values[1], Idioma:opts.idioma, Requery:req, tipo:'AvRoomRules', Llegada: DateLlegada, Salida: DateSalida},function(data){
    					
    					
						    try {	
																
						    	var verUrl= opts.url + '?Hotel=' + values[0] + '&Room=' + values[1] + '&Idioma=' + opts.idioma + '&Requery=' + req + '&tipo=AvRoomRules' + '&Llegada=' + DateLlegada + '&Salida=' + DateSalida;
							    //alert(verUrl);                     				 

                                var _Querys=''; var stringData = data.toString();											
						        var _dat = $j.fn.roomInfo.getStructureData(stringData);
                                var _Querys = _dat.SQL; //querys
                                var justUsefulNodes = _dat.Struct; //estructura de datos
						        d = eval(justUsefulNodes);
							    var HayDatos = false;
                                if (typeof d!='undefined' && d!=null) { HayDatos = (d.Error!='' && typeof d.Error!='undefined') ? false: true; }
                            							
							    //ARMAR INFORMACIÓN (DETALLES)
							    if (HayDatos) {
    								
								    /////////////////														
								    $j('.popModal').append('<p>'+d.cancellationPolicy + _Querys + '</p>');
    								
								    //CERRAR
								    $j('.xPop').html('<img src="/_lib/images/Bestday/closePopInfoRoom.gif"/> ' + fdic.trad(disClose,opts.idioma));
    															
							    }	else {							
								    $j('.xPop').html('<img src="/_lib/images/Bestday/closePopInfoRoom.gif"/> ' + fdic.trad(disClose,opts.idioma));  //CERRAR
								    $j('.popModal').append('<p>'+ fdic.trad(disNoAvailable,opts.idioma) +'</p>');
							    }
    						
						    }catch(ex) {
							    $j('.xPop').html('<img src="/_lib/images/Bestday/closePopInfoRoom.gif"/> ' + fdic.trad(disClose,opts.idioma));  //CERRAR
							    $j('.popModal').append('<p>'+ fdic.trad(disNoAvailable,opts.idioma) + _Querys + '</p>');
						    }finally{
    							
						    }
    																		
						    //ULTIMO CSS (dividimos el css en dos partes para acelerar la carga)
						    $j('.popModal p').css({'fontSize':'11px','padding':'0px','margin':'5px'});
						    $j('.roomDesc p').css({'fontSize':'11px','padding':'0px','margin':'0px'});
						    $j('.popModal .roomPhoto').css({'margin':'10px','float':'right','border':'3px solid #e6e6b7'});
						    $j('.rAmenities').css({'fontSize':'11px'});
						    $j('.rAmenities li').css({'list-style-image':'url(/_lib/images/Bestday/list_bull.gif)'});
						    $j('.popModal .hotel').css({'color':'#06c','fontSize':'17px'});
						    $j('.popModal .room').css({'color':'#06c','fontSize':'14px'});
						    $j('.popModalCont').css({'height':'auto'});
						    $j('.popModal').css({'textAlign':'justify','height':'auto'});
    						
					    });
					    ////////////////////////////////////////////////////////////////////

					}
				}
				
				$j.fn.roomInfo.getSource();
				
				
				//PREVENIR COMPORAMIENTO DEL LINK
				return false;
				
			});
		});
	}
})(jQuery);

