var ss_INTERVAL;
var ss_STEPS = 25;		

function doPage()
{	//Recorre los disponibles a paginar
	count=0;
	for (i=0; i<_AllHot.length; i++){
		if (_AllHot[i].Enabled==true) count++;
	}
	nPages=Math.round(count/itemsByPage);
	if ((itemsByPage*nPages)<count) nPages++;
}

function ShowPage(n,Sorted)
{
	PageStart=(n-1)*itemsByPage;
	elements=0;  //numero de elementos mostrados
	nitem=0;
	count=0; //mantiene el recorrido de los elementos validos para la pagina;
	for (i=0;i<itemsByPage;i++){
		if (Page[i].Index) elements++;
		 Page[i].Index=null;
    }
	for (i=0; i<_AllHot.length&&nitem<itemsByPage;i++){
		if (_AllHot[i].Enabled==true){	

					if (count>=PageStart&&count<(PageStart+itemsByPage)){
			          Page[nitem].Index=i;
			          nitem++;
			          } 
			         count++;			
				
		}
	}
	PgT = $('PageContainerTop');
	PgB = $('PageContainerBottom');	
	cres= pagina; //texto en en o es
	if (nPages>1)
	     {
	       if (n>1)
			{cres= cres + "<a href='javascript:ShowPage(" + eval(n-1) + ",false);'>" + MsgPrevious + "</a>";}		   
	    }	
	for (i=1;i<=nPages;i++)
	{
	    
		if (cres!=pagina) cres= cres + "|";
		if (i==n) 	
		{
		 if((eval(i)%23) == 0 ){cres= cres + "<div></div>" + i;}
		 else{cres= cres + "&nbsp;" + i + "&nbsp;";}
		}
		else 
		{
		 if((eval(i)%23) == 0 ){cres= cres + "<div></div><a href='javascript:ShowPage(" + i + ",false);'>" + i + "</a>";}
		 else{cres= cres + "&nbsp;<a href='javascript:returntoPage(" + i + ");'>" + i + "</a>&nbsp;";}
		}
	}	
		if (nPages>1)
	     {
	       if (n<nPages)
			{cres= cres + "|" + "&nbsp;<a href='javascript:ShowPage(" + eval(n+1) + ",false);'>" + MsgNext + "</a>";}		   
		
	     }	
	
	if (currentPage!=n||Sorted==true||elements<itemsByPage) PageVisible=false;
	currentPage=n;
	if (PgT) PgT.innerHTML=cres;
	if (PgB) PgB.innerHTML=cres;	
	if (!PageVisible) showHotels();
	//manda pedir las tarifas si aun no ha obtenido la tarifa
	doHoc();
	
}
function returntoPage(i)
{
	
	ShowPage(i,false);
	//smoothScroll();
}

function SortBy(by,ele)
{ //1
    if (sortedBy) sortedBy.className="smallSortItem"  //regresa a su anterior estado
   // if (lastorder==by) lastDirectionOrder= lastDirectionOrder*(-1);  //cambia de ascendente a descendente o bis
    lastorder=by;
    sortedBy=$(ele);  //obten el elemento a cambiar de estado
     /*if (sortedBy){
     if (lastDirectionOrder==-1)   //descendente
         sortedBy.className='smallSortItemDown' 
      else   
         sortedBy.className='smallSortItemUp' 
    }*/
    switch  (by){ //2
       case 'UvPicks' :
			 //SortCounter(1);
			 if (IdPortal ==39 || IdPortal ==40 || IdPortal==57 || IdPortal==59 || IdPortal==50 || IdPortal==58){sortByUvPicks2(lastDirectionOrder);}
			 else{sortByUvPicks(lastDirectionOrder);}
             
             sortedBy.className='smallSortItemUp';
           break;
       case 'Name' :
			 //SortCounter(2);
             sortByName(lastDirectionOrder);
           break;
	   case 'Price' :
		     //SortCounter(3);
	         sortByPrice(lastDirectionOrder);
	       break; 
    } //1
   var hotRates=doPage(currentPage);   
   ShowPage(currentPage,true);
} //0

function sortByPrice(dir){  //x contiene el arreglo ya sea OW o RT	
    function compare(a,b){  		
		var a1,b1; 	
		
		a1=fmtMoney(a.LowRate,a.Decimals);
		b1=fmtMoney(b.LowRate,b.Decimals);			
		
		if (eval(a1) >eval(b1)) 
		 {			 
		  if (eval(b1)!=0 || dir==-1)
		   {return 1 * dir} 
		  else{return -1 * dir}		  
         }
        else
         {         
         if (eval(a1)!=0 || dir==-1)
           {return -1 * dir}
           else {return 1 * dir}
         }
        
    }    
    _AllHot.sort(compare);
}  
/*
function sortByUvPicks(dir){  //x contiene el arreglo ya sea OW o RT
    function compare(a,b){
        if (a.Number>b.Number)
            return 1 * dir
        else
            return -1 * dir;   
    }
    _AllHot.sort(compare);
}  
*/

function MatchCity(c,c2)
{
 if (FormatDestino(c).indexOf(c2)>=0) return true;
 else return false;
}

function sortByUvPicks(dir){  //x contiene el arreglo ya sea OW o RT	
dir=1;
    function compare(a,b){  		
		var a1,b1; 			
		a1=fmtMoney(a.LowRate,a.Decimals);
		b1=fmtMoney(b.LowRate,b.Decimals);	
		if((a.Id=='258' || a.Id=='1564' || a.Id=='1594' || a.Id=='1585' || a.Id=='1283'  || a.Id=='1584' || a.Id=='1586' || a.Id=='1593'  || a.Id=='1583') && a.getRates==1){return -1;}
		if((b.Id=='258' || b.Id=='1564' || b.Id=='1594' || b.Id=='1585' || b.Id=='1283' || b.Id=='1584' || b.Id=='1586' || b.Id=='1593'  || b.Id=='1583') && b.getRates==1){return 1;}		
		
		if(DestinoSel=='' && (MatchCity(a.CityName,$(iCityName).value) || MatchCity(a.Address,$(iCityName).value)) && (MatchCity(b.CityName,$(iCityName).value)==false && MatchCity(b.Address,$(iCityName).value)==false)) return -1;
        if(DestinoSel=='' && (MatchCity(a.CityName,$(iCityName).value)==false && MatchCity(a.Address,$(iCityName).value)==false) && (MatchCity(b.CityName,$(iCityName).value) || MatchCity(b.Address,$(iCityName).value))) return 1;
        
		if (a.HasUvNetRates==1 && b.HasUvNetRates ==0) {return -1;}
        if (a.HasUvNetRates==0 && b.HasUvNetRates ==1) {return 1;}
        if (a.HasUvNetRates==1 && b.HasUvNetRates ==0) {return -1;}
      
      
      
        
        
       /* 
         if (a.RichContent==1 && b.RichContent ==0) {return -1;}
                if (a.RichContent==0 && b.RichContent ==1) {return 1;}
                
                
		if ( (a.getRates==0 && b.getRates==0) && a.RichContent==1){return -1;}				
		if ( (a.getRates==0 && b.getRates==0) && b.RichContent==1){return 1;} 	*/		
		if (eval(a1)>eval(b1)) 
		 {			 
			if ((a.getRates==1 && b.getRates==0) || (a.getRates==b.getRates && eval(b1)==0)){ return -1; }		 			
			return 1;  		  
         }
        else
         {        
            
			if (a.getRates==0 && b.getRates==1){ return 1; }
			if (eval(a1)!=0) { return -1;}         
			if (eval(a1)==0 && eval(b1)==0)
			{
			    
				if (a.getRates==0 && b.getRates==0){ return 0; }
				if (a.Rates)
				{
					var Rstrc=false;
					for (var i=0;i<a.Rates.Rooms && Rstrc==false;i++ )
					{
						var rtp=a.Rates.Rooms[i].Plans;
						for (var k=0; k<rtp.length && Rstrc==false;k++)
						{
							if (eval(rtp[k].Message.substring(0,rtp[k].Message.indexOf('-')-1))!=6){ Rstrc=true; }      
						}               
					}
					if (Rstrc==true) { return -1; }            
				}           
			}    
			if (a.getRates==1 && b.getRates==0){ return -1;	}
			return 1;           
         }
        
         return 0;       
    }    
    _AllHot.sort(compare);
}

function SortByUbPrices(a,b)
{
		var a1,b1; 			
		a1=fmtMoney(a.LowRate,a.Decimals);
		b1=fmtMoney(b.LowRate,b.Decimals);
		
		if (a.Provider==0 && b.Provider==1)
			 {
		    	return -1;
			 }
		if (a.Provider==1 && b.Provider==0)
			 {
				return 1;
	    	 }	
		
		
		if (eval(a1)>eval(b1)) 
		 {			 
			if ((a.getRates==1 && b.getRates==0) || (a.getRates==b.getRates && eval(b1)==0)){ return -1; }		 
			return 1;  		  
         }
        else
         {                 
			if (a.getRates==0 && b.getRates==1){ return 1; }
			if (eval(a1)!=0) { return -1;}         
			if (eval(a1)==0 && eval(b1)==0)
			{
				if (a.getRates==0 && b.getRates==0){ return 0; }				   
			}    
			if (a.getRates==1 && b.getRates==0){ return -1;	}
			return 1;           
         }
         return 0;     
				
}

function sortByUvPicks2(dir){  //x contiene el arreglo ya sea OW o RT	
dir=1;
    function compare(a,b){ 	
		
		if (a.Emprhotur=='Y')
		 {
		    if(b.Emprhotur=='Y')
		     {
				if (a.AmhmRes=='Y')
				 {
					if (b.AmhmRes=='N')
					 {
					  return -1;
					 }					
				 }
				else if(b.AmhmRes=='Y')
				{
				 return 1;
				}
				
				
				
				//ordenar por tarifa 
				return SortByUbPrices(a,b);				
		     }
		    else
		     {		      
		      return -1;//primero a
		     }
		 }
		else
		 {
			if(b.Emprhotur=='Y')
		     {
		      return 1;
		     }
		    if (a.AmhmRes=='Y' && b.AmhmRes=='N') {return -1;}
		    if (a.AmhmRes=='N' && b.AmhmRes=='Y') {return 1;}
			
		    return SortByUbPrices(a,b);	
		 }		
		  
    }    
    _AllHot.sort(compare);
}





function sortByName(dir){  //x contiene el arreglo ya sea OW o RT
    function compare(a,b){
        if (a.Name.toLowerCase().trim() >b.Name.toLowerCase().trim())
            return 1 * dir
        else
            return -1 * dir;
    }
    _AllHot.sort(compare);
}

	
				
function smoothScroll() 
{
 	 var destinationLink = document.getElementById('ahome');
 // If we didn't find a destination, give up and let the browser do
 // its thing
	 if (!destinationLink) {return true;}
	 
 // Find the destination's position
 	var destx = destinationLink.offsetLeft;  
	var desty = destinationLink.offsetTop;
	var thisNode = destinationLink;
	while (thisNode.offsetParent && (thisNode.offsetParent != document.body)) 
	{
	   thisNode = thisNode.offsetParent;
	   destx += thisNode.offsetLeft;
	   desty += thisNode.offsetTop;
	}
 // Stop any current scrolling
 	clearInterval(ss_INTERVAL);
 	cypos = ss_getCurrentYPos();
 
 	ss_stepsize = parseInt((desty-cypos)/ss_STEPS);
	ss_INTERVAL = setInterval('ss_scrollWindow('+ss_stepsize+','+desty+',"ahome")',10);
 
// And stop the actual click happening
 	if (window.event) 
	{
	   window.event.cancelBubble = true;
	   window.event.returnValue = false;
	}
	
} 



function ss_scrollWindow(scramount,dest,anchor) 
{
 wascypos = ss_getCurrentYPos();
 isAbove = (wascypos < dest);
 window.scrollTo(0,wascypos + scramount);
 iscypos = ss_getCurrentYPos();
 isAboveNow = (iscypos < dest);
 if ((isAbove != isAboveNow) || (wascypos == iscypos)) {
   // if we've just scrolled past the destination, or
   // we haven't moved from the last scroll (i.e., we're at the
   // bottom of the page) then scroll exactly to the link
   window.scrollTo(0,dest);
   // cancel the repeating timer
   clearInterval(ss_INTERVAL);
   // and jump to the link directly so the URL's right
   location.hash = anchor;
 }
}

function ss_getCurrentYPos() 
{
 if (document.body && document.body.scrollTop)
   return document.body.scrollTop;
 if (document.documentElement && document.documentElement.scrollTop)
   return document.documentElement.scrollTop;
 if (window.pageYOffset)
   return window.pageYOffset;
 return 0;
}
 
function FillDestino()
{
    var NewCurrentPage;
    var ddl = $('ddlDestinos');


	for (var iDestiny=0; iDestiny<_AllHot.length-1;iDestiny++){	


			Prop=_AllHot[iDestiny];

			if (Prop)
			{		
			
			var cityName= Prop.CityName;
			 cityName=FormatDestino(cityName)

             if(cityName!='')
             {
             var sw=0;             
            for (var items=0;items<=ddl.options.length-1 && sw==0;items++)
			     {			        
			      if (ddl.options[items].value==cityName)   
			       { sw=1;}
			     }
			     
			    if (sw==0)
			    {

			        var elOptNew = document.createElement('option');
                    elOptNew.text = capitalizeMe(cityName);
                    //if (cityName.split('@').length>4) {elOptNew.text = cityName + cityName.split('@')[1];}
                    
                    elOptNew.value = cityName;
                    var elOptOld = ddl.options[ddl.selectedIndex];  
                       try {
                          ddl.add(elOptNew, elOptOld); // standards compliant; doesn't work in IE
                        }
                        catch(ex) {
                          ddl.add(elOptNew, ddl.selectedIndex); // IE only
                        }
                        
                        //lo ordenamos
                        arrTexts = new Array();
                        arrValues = new Array();

                        for(var idx=0; idx<ddl.length; idx++)  {
                         if(ddl.options[idx].value!='')
                         {        
                          
                          arrValues[idx] = ddl.options[idx].value;
                         }
                        }

                        arrValues.sort();
                          ddl.options[0].text = lblAll;
                          ddl.options[0].value = "";
                        for(var idx=0; idx<ddl.length-1; idx++)  {
                          ddl.options[idx+1].text = capitalizeMe(arrValues[idx]);
                          ddl.options[idx+1].value = arrValues[idx];
                        }
                        ddl.selectedIndex=0;
                        


			    }
			 }   
   
  

   
						
			
		
	}
	}
} 
 
 
 function SortListing()
 {
    var ddl=$('ddlSortBy');
   switch  (ddl.value){ //2
       case '0' :
            lastDirectionOrder=1;
            return SortBy('UvPicks','aUnivisit');
        break;
       case '1' :
          lastDirectionOrder=1;
            return SortBy('Name','aName');
        break;
        case '2' :
            lastDirectionOrder=-1;
            return SortBy('Name','aName');
            
        break;
        case '3' :
            lastDirectionOrder=1;
            return SortBy('Price','aPrice');
        break;
        case '4' :
            lastDirectionOrder=-1;
            return SortBy('Price','aPrice');
        break;
    }
 }
 
function ShowDestino()
{
    var ddl = $('ddlDestinos');
    var elOptOld = ddl.options[ddl.selectedIndex];  
    DestinoSel = elOptOld.value;
    ShowArea();
}

function ShowArea()
 {
 _AllHot = new Array();  //segments.. 
 _Markers = new Array();
 CurrentProvider=null;
 GettingRates=false;
 sbHttp=null;
 sbHocHttp=null;
 lastorder=1;   // 'sin orden
 lastDirectionOrder=1; //ASC? ASC=1
 sortedBy=null;
 currentPage=1;
 Page= new Array(); //Mantiene el Orden de los objetos.
 PageVisible=false;
 Providers=new Array();
 Parsing=false;
 $('SearchingImage').style.display='';	
 divGetMoreH.style.display='none';
    InitPage();
    SearchHotels();		
	setTimeout('HideSearching()',30000);	
 }


