var _imgLoading = '<img src="'+_rootImg+'images/load.gif" alt="Loading..." />'

window.onload = function() {
    if($$("reserve") != null)addEvent("click", "reserve", getDate);
    if($$("formMail") != null)addEvent("submit", "formMail", function(){if(!validateMail($$("formMail"))){try{arguments[0].preventDefault()}catch(e){arguments[0].returnValue=false}}});
    if($$("errors") != null)$$("errors").style.display = "none";
    if($$("loading-mail") != null)$$("loading-mail").style.display = "none"
    addEvent("click", "sign-up", signUp)
    if (typeof _slide != "undefined" && _slide != null) {
        var images = [];
        if (_slide=="home") {
            images = [
                {image: 'images/hotel-connecticut-fairfield1.jpg', link: '#'},
                {image: 'images/hotel-connecticut-fairfield4.jpg', link: '#'},
                {image: 'images/hotel-connecticut-fairfield5.jpg', link: '#'}
            ]
            initAnimated("slides", 1112, 473, images, 700);
        }
        if (_slide=="around") {
            images = [
                {image: '../images/connecticut-tourist-attractions1.jpg', link: '#'},
                {image: '../images/connecticut-tourist-attractions2.jpg', link: '#'},
                {image: '../images/connecticut-tourist-attractions3.jpg', link: '#'},
                {image: '../images/connecticut-tourist-attractions4.jpg', link: '#'},
                {image: '../images/connecticut-tourist-attractions5.jpg', link: '#'}
            ]
            initAnimated("slides-other", 710, 369, images, 500);
        }
        if (_slide=="social") {
            images = [
                {image: '../images/westport-fairfield-weddings1.jpg', link: '#'},
                {image: '../images/westport-fairfield-weddings2.jpg', link: '#'}
            ]
            initAnimated("slides-social", 710, 369, images, 500);
        }
        if (_slide=="accomm") {
            images = [
                {image: '../images/westport-fairfield-hotel1.jpg', link: '#'},
                {image: '../images/westport-fairfield-hotel2.jpg', link: '#'},
                {image: '../images/westport-fairfield-hotel3.jpg', link: '#'},
                {image: '../images/westport-fairfield-hotel5.jpg', link: '#'},
                {image: '../images/westport-fairfield-hotel6.jpg', link: '#'}
            ]
            initAnimated("slides-other", 710, 370, images, 500);
        }
    }
}

function validateSignUp(form) {
    var validate = true;
    with(form) {
        if(!isObligatory(name)) {
            setText(name, "The name field is required.")
            validate = false;
        }
        if(!isObligatory(email)) {
            setText(email, "The email field is required.");
            validate = false;
        } else {
            if (!isEmail(email)) {
                setText(email, "The email field is not valid.");
                validate = false;    
            }
        }
        if (!validate) {
            return false;
        }
        var url = _root+"ajax.php?accion=setData&contenido="+name.value+";"+email.value+";"+phone.value+";"+cell.value+";"+fax.value;
    }
    buscarDatos(url, "viewSignUp", "")
    return false;
}

function viewSignUp() {
    alert("Registration was successful!")
    cerrarPanel();
}


function validateMail (form) {
    var validate = true;
    $("#errors").hide();
    with(form) {
        if(!isObligatory(firstName)) {
            setText(firstName, "The first name field is required.")
            validate = false;
        }
        if(!isObligatory(lastName)) {
            setText(lastName,"The last name field is required.");
            validate = false;
        }
        if(!isObligatory(email)) {
            setText(email, "The email field is required.");
            validate = false;
        } else {
            if (!isEmail(email)) {
                setText(email, "The email field is not valid.");
                validate = false;    
            }
        }
        if(!isObligatory(address)) {
            setText(address, "The address field is required.");
            validate = false;
        }
        if(!isObligatory(city)) {
            setText(city, "The city field is required.");
            validate = false;
        }
        if(!isObligatory(state)) {
            setText(state, "The State/Province field is required.");
            validate = false;
        }
        if(!isObligatory(zip)) {
            setText(zip, "The ZIP/Postal Code field is required.");
            validate = false;
        }
    }
    if (!validate) {
        return false;
    }
    
    $("#loading-mail").show();
    $("#buton-mail").hide();
    var url = _root+"ajax.php";
    var datos = $(form).serialize();  
    $.get(url, datos, function(response) {  
        $("#errors").html(response);
        $("#errors").show("slow");
        $("#loading-mail").hide();
        $("#buton-mail").show();
        form.reset();
    });  
    return false;
}

function setText (input, text) {
    var rows = input.parentNode.parentNode.getElementsByTagName("td");
    rows[2].innerHTML = text;
}

function isObligatory(input) {
    var rows = input.parentNode.parentNode.getElementsByTagName("td");
    with(input) {
        if (value == null || value.length == 0 || /^\s+$/.test(value)) {
            rows[2].className = "obligatory";
            style.background = "#FFD4D4";
            return false;
        }    
        rows[2].className = "";
        rows[2].innerHTML = ""
        style.background = "#FFFFFF";
    }
    return true;
}

function isEmail(input) {
    var rows = input.parentNode.parentNode.getElementsByTagName("td");
    if(!(/^[a-zA-Z0-9._%-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/.test(input.value))) {
        rows[2].className = "obligatory";
        input.style.background = "#FFD4D4";
        return false;
    }
    rows[2].className = "";
    rows[2].innerHTML = ""
    input.style.background = "#FFFFFF";
    return true;
}

function initAnimated(slideId, imgWidth, imgHeight, images, fade) {
    new Banner({
        divId: 'banner', 
        slideId: slideId,
        slideShowControlsId: 'slide-show-controls',
        width: imgWidth,	// container width px
        height: imgHeight,	// container height px
        nextDelay: 8000, 	// delay in ms between images
        fadeDelay: fade, 	// length of alpha fade in ms
        slides: images
    });
}

function viewTab() {
    for (var i=0; i<$$("labels").getElementsByTagName("li").length; i++) {
        $$("tab"+i).style.display = arguments[0]==i?"block":"none";
        $$("label"+i).className = arguments[0]==i?"select":"";
    }
}

function signUp () {
    new Panel("<p>"+_imgLoading+"</p>")
    buscarDatos(_root+"ajax.php?accion=sign", "view", "panelContent")
}

function view() {
    $$(arguments[1]).innerHTML = arguments[0];
    if($$("closeSignUp") != null)addEvent("click", "closeSignUp", cerrarPanel);
    if($$("formSignUp") != null)addEvent("submit", "formSignUp", function(){if(!validateSignUp($$("formSignUp"))){try{arguments[0].preventDefault()}catch(e){arguments[0].returnValue=false}}});
}

function isNumber(e) {
    e = e || window.event
    var key = e.keyCode || e.which;
    if (key==8 || key==46 || key==37 || key==39)
        return true;
    return (key <= 13 || (key >= 48 && key <= 57))?true:false;
}

function getDate() {
    var date = $$("date").value;
    if (date == "" || date.length == 0) {
        $$("date").focus();
        return false;
    }
    var days = $$("days").value;
    if (days == "" || days.length == 0) 
        days = "1"
    var today = new Date(date);
    today.setDate(today.getDate()+parseInt(days));
    date = date.split("/");
    /*
    var url = "http://www.ascendcollection.com/ires/en-US/html/RateDisplay?hotel=CT146&month="+date[0]+"&day="+date[1]+"&depart_month="+(today.getMonth()+1)+"&depart_day="+today.getDate()+"&nadult=1&nchild=0"
    location.href=url
    */
    $("#resFrm #month").val(date[0]);
    $("#resFrm #day").val(date[1]);
    $("#resFrm #depart_month").val(today.getMonth()+1);
    $("#resFrm #depart_day").val(today.getDate());
    $("#resFrm").submit();

    return true;
}

function addEvent(event, elem, func) {
    elem = $$(elem);
    if (elem.addEventListener) {  // W3C DOM
        elem.addEventListener(event,func,false);
        return true;
    } else
    if (elem.attachEvent) { // IE DOM
        var r = elem.attachEvent("on"+event, func);
        return r;
    } else {
        throw 'No es posible aniadir evento';
        return false;
    }
}

var Panel = function () {
    this.container = this.getContainer();
    this.setBody(arguments[0]);
}

Panel.prototype = {
    getContainer: function () {
        var divShadow = document.createElement('div');
        divShadow.className = "panelShadow";
        divShadow.id= "panelShadow";
        document.body.appendChild(divShadow);
        var div = document.createElement('div');
        div.className = "panel";
        div.id = "panel";
        $$("cpanel").appendChild(div);
        var container = document.createElement('div');
        container.className = "content"
        div.appendChild(container);
        return container;
    },
    setBody:  function(text) {
        var div = document.createElement('div');
        div.id = "panelContent";
        div.innerHTML = text;
        this.container.appendChild(div);
    }
}

function cerrarPanel() {
    $$("cpanel").removeChild($$("panel"));
    document.body.removeChild($$("panelShadow"));    
}

function $$() {
    return document.getElementById(arguments[0]);
}

function buscarDatos(url, callback_function, id) {
    var d = new Date();
    var time = d.getTime();
    url = url + '&nocachetime='+time;
    var return_xml = false;
    var http_request = false;
    if (window.XMLHttpRequest) { // Mozilla, Safari,...
        http_request = new XMLHttpRequest();
        if (http_request.overrideMimeType) {
            http_request.overrideMimeType('text/xml');
        }
    } else
    if (window.ActiveXObject) { // IE
        try {
            http_request = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
            try {
                http_request = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e) {}
        }
    }
    if (!http_request) {
        alert('This browser is not supported.');
        return false;
    }
    http_request.onreadystatechange = function() {
        if (http_request.readyState == 4) {
            if (http_request.status == 200) {
                if (return_xml) {
                    eval(callback_function + '(http_request.responseXML)');
                } else {
                    eval(callback_function + '(http_request.responseText, \''+id+'\')');
                }
            } else {
                alert('Error found on request:(Code: ' + http_request.status + ')');
            }
        }
    }
    http_request.open('GET', url, true);
    http_request.send(null);
    return true;
}

