// emailCheck by Sandeep V. Tamhankar (stamhankar@hotmail.com)
function emailCheck (emailStr, log) {
	if (!log) log = alert;

	var checkTLD=1;
	var knownDomsPat=/^(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum)$/;
	var emailPat=/^(.+)@(.+)$/;
	var specialChars="\\(\\)><@,;:\\\\\\\"\\.\\[\\]";
	var validChars="\[^\\s" + specialChars + "\]";
	var quotedUser="(\"[^\"]*\")";
	var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
	var atom=validChars + '+';
	var word="(" + atom + "|" + quotedUser + ")";
	var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
	var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");
	var matchArray=emailStr.match(emailPat);
	if (matchArray==null) {
		log(languageLibrary["incorrectMail"]);
		return false;
	}
	var user=matchArray[1];
	var domain=matchArray[2];
	for (i=0; i<user.length; i++) {
		if (user.charCodeAt(i)>127) {
			log(languageLibrary["illegalUsername"]);
			return false;
		}
	}
	for (i=0; i<domain.length; i++) {
		if (domain.charCodeAt(i)>127) {
			log(languageLibrary["illegalDomain"]);
			return false;
		}
	}
	
	if (user.match(userPat)==null) {
		log(languageLibrary["invalidUsername"]);
		return false;
	}
	
	var IPArray=domain.match(ipDomainPat);
	if (IPArray!=null) {
		for (var i=1;i<=4;i++) {
			if (IPArray[i]>255) {
				log(languageLibrary["invalidIP"]);
				return false;
			}
		}
		return true;
	}
	
	var atomPat=new RegExp("^" + atom + "$");
	var domArr=domain.split(".");
	var len=domArr.length;
	for (i=0;i<len;i++) {
		if (domArr[i].search(atomPat)==-1) {
			log(languageLibrary["invalidDomain"]);
			return false;
		}
	}
	
	if (checkTLD && domArr[domArr.length-1].length!=2 && 
		domArr[domArr.length-1].search(knownDomsPat)==-1) {
		log(languageLibrary["invalidDomainExt"]);
		return false;
	}
	
	if (len<2) {
		log(languageLibrary["domainNotFound"]);
		return false;
	}
	
	return true;
}	
function showForm()
{
    document.getElementById("error_box").style.display = "none";
    $("#rhForm > #ajaxOutput").hide();
    $("#rhForm > fieldset").show();
    $("#rhForm > fieldset > *").fadeIn("fast");
}
function ajaxProHandler(response)
{
    $("#rhForm > #ajaxOutput > p").hide();
    $("#rhForm > #ajaxOutput > p").removeClass("loading");
    var responseText;
    if(response.value == 'error' || response.error != null)
    {
        $("#rhForm > #ajaxOutput > p").addClass("ajaxError");
        responseText = languageLibrary["mailAjaxCancel"]; 
    } else {
        $("#rhForm > #ajaxOutput > p").addClass("ajaxSuceess");
        responseText = languageLibrary["mailAjaxSuccess"]; 
    }
    responseText += languageLibrary["mailAjaxReturn"]; 
    $("#rhForm > #ajaxOutput > p").html(responseText);
    $("#rhForm > #ajaxOutput > p").show();
    
    return false;
}
function check(str) {
	if (emailCheck(str, function(str) { document.getElementById("error_box").innerHTML += str })) {
		document.getElementById("error_box").style.display = "none";
		$("#rhForm > fieldset > *").fadeOut("fast", function(){ $("#rhForm > fieldset").hide(); $("#rhForm > #ajaxOutput").show(); });
		Hotelesrh.HotelWeb.DefaultPage.ManageSubscription($("#MailList").val(), $("#email").val(), ajaxProHandler)
		return false;
	} else {
		document.getElementById("error_box").style.display="block";
		document.getElementById("error_box").innerHTML = languageLibrary["invalidEmail"];
		return false
	}		
}

function numhabs(cuantas) {
	for(i=2;i<=4;i++){
		document.getElementById("hab"+i).style.display = "none";
	}	
	for(i=1;i<=cuantas+1;i++){
		document.getElementById("hab"+i).style.display = "block";	
	}
	
	if(cuantas==0) {
		var hab1 = document.getElementById("hab1");
		hab1.getElementsByTagName("label")[0].style.display = "none";	
	}else {
		var hab1 = document.getElementById("hab1");
		hab1.getElementsByTagName("label")[0].style.display = "inline";	
	}
}

function consulta_precios()
{
	d = document.getElementById("dia").value;
	m = document.getElementById("mes").value
	y = this.today.getFullYear();
	noches = document.getElementById("noches").value;
	url = 'https://hotelesrh.igmssl.com/hotelrhinternacional/reservas.php?action=OTA_consulta_precios&dia=' + d + '&mes=' + m + '&anyo=' + y + '&noches=' + noches + '&idioma=ES&id_referer=';
	win=window.open(url,"precios","width=600,height=500,top=100,left=100,scrollbars=yes");
	win.focus();
	return false;
}
	
function mapload() {
	var map = new GMap2(document.getElementById("map"));
	map.addControl(new GSmallMapControl());
	map.addControl(new GMapTypeControl());
	map.setCenter(new GLatLng(38.536677,-0.131986), 13);
	
	var icon = new GIcon();
    icon.image = "http://www.hotelrhinternacional.com/imgLib/map_icon.png";
    icon.shadow = "http://www.hotelrhinternacional.com/imgLib/map_icon_shadow.png";
    icon.iconSize = new GSize(24, 30);
    icon.shadowSize = new GSize(34, 25);
    icon.iconAnchor = new GPoint(12, 29);
    icon.infoWindowAnchor = new GPoint(12, 29);

	var point = new GLatLng(38.536677,-0.131986);
	var marker = new GMarker(point, icon);
	map.addOverlay(marker);
	
	GEvent.addListener(marker, "click", function() {
        marker.openInfoWindowHtml("<p class='infoWindowText'>Hotel RH Internacional **</p><p>Paseo de la Carretera, 40 - 03501 Benidorm</p><p>Telf: 96 585 02 71 | Fax: 96 585 07 66</p>");
  });
	

}	
	
function init() {
	this.today = new Date();

	var thisMonth = this.today.getMonth();
	var thisDay = this.today.getDate();
	var thisYear = this.today.getFullYear();

	this.selMonth = document.getElementById('mes');
	this.selDay = document.getElementById('dia');

	this.selMonth.selectedIndex = thisMonth;
	this.selDay.selectedIndex = thisDay-1;
	document.getElementById('anyo').value = thisYear;
    
    cal = new YAHOO.widget.CalendarGroup("cal",
                                        "contenedor",
                                        { selected : (thisMonth+1)+"/"+thisYear,
                                          mindate : (thisMonth+1)+"/"+thisDay+"/"+thisYear,
                                          iframe : true,
                                          close: true,
                                          title : languageLibrary["calendarCaption"]
                                        }); 
    
    cal.cfg.setProperty("MONTHS_SHORT",   languageLibrary["MONTHS_SHORT"]); 
    cal.cfg.setProperty("MONTHS_LONG",    languageLibrary["MONTHS_LONG"]); 
    cal.cfg.setProperty("WEEKDAYS_1CHAR", languageLibrary["WEEKDAYS_1CHAR"]); 
    cal.cfg.setProperty("WEEKDAYS_SHORT", languageLibrary["WEEKDAYS_SHORT"]); 
    cal.cfg.setProperty("WEEKDAYS_MEDIUM",languageLibrary["WEEKDAYS_MEDIUM"]); 
    cal.cfg.setProperty("WEEKDAYS_LONG",  languageLibrary["WEEKDAYS_LONG"]);  
     cal.cfg.setProperty("START_WEEKDAY",  1);  
     
    cal.selectEvent.subscribe(setDate, cal, true);
	
	cal.render();
	
	YAHOO.util.Event.addListener("showCalendarLink", "click", showCalendar, cal, true); 
			
	mapload();
}

function showCalendar()
{
	cal.show();
	var pos = YAHOO.util.Dom.getXY("showCalendarLink");
	YAHOO.util.Dom.setXY(cal.oDomContainer, [pos[0],pos[1]-16]);
}

function setDate(type, args, obj) { 
    var date = cal.getSelectedDates()[0];
	selMonth.selectedIndex=date.getMonth();
	selDay.selectedIndex=date.getDate()-1;
	cal.hide();
	
	dia = new String(date.getDate());
	if(dia.length<2){
		dia = "0" + dia;			
	}
	
	mes = new String(date.getMonth());
	if(mes.length<2){
		mes = "0" + mes;			
	}
	
	ano = new String(date.getFullYear());
	document.getElementById('anyo').value = ano;
	
	var fecha = dia + "/" + mes + "/" + ano;
	
	document.getElementById('f_ini').value=fecha;
}

function changeDate() {	
    var month = this.selMonth.selectedIndex;
	var day = this.selDay.selectedIndex + 1;
	var year = this.today.getFullYear();

	cal.select((month+1) + "/" + day + "/" + year);
	cal.setMonth(month);
	cal.render();
}

YAHOO.util.Event.addListener(window, "load", init);	

YAHOO.util.Event.addListener(window, "unload", GUnload);		

$(document).ready( function(){ 
	$('#ofertas').innerfade({ 
		speed: 650, 
		timeout: 8000, 
		type: 'random', 
		containerheight: '200px' 
	});
	$('#paquetes').innerfade({ 
		speed: 650, 
		timeout: 7000, 
		type: 'random', 
		containerheight: '200px' 
	});
	documentLanguage = $("body").attr("class");
 } 
 );