function hide_id(nodeId)
{
    var node = document.getElementById(nodeId);
    if (node)
    {
        node.className=node.className.replace('showed', '');
        node.className += ' hidden';
    }
}

function show_id(nodeId)
{
    var node = document.getElementById(nodeId);
    if (node)
    {
        node.className=node.className.replace('hidden', '');
        node.className += ' showed';
    }
}

function toggle_id(nodeId)
{
    var node = document.getElementById(nodeId);
    if (node)
    {
        if (node.className.indexOf('hidden') != -1)
            node.className=node.className.replace('hidden', 'showed')
        else if (node.className.indexOf('showed') != -1)
            node.className=node.className.replace('showed', 'hidden')
        else node.className += ' showed';
    }
}

function setPrintCSS(isPrint) {
    // By Akella cssing.org.ua
    if (document.getElementsByTagName)
        x = document.getElementsByTagName('link');
    else
    {
        return;
    }
    for (var i=0;i<x.length;i++) {
        if(x[i].title == 'printview'){
            x[i].disabled = !isPrint;
        }
        if(x[i].title == 'screenview'){
            x[i].disabled = isPrint;
        }
    }
}



function moveHintsN(e)
{
    document.getElementById('hints').style.visibility = "visible";
    var z = []; 		
    if (!e) e = event;
    if (e.pageX)
    {
        z['left'] = e.pageX ;
        z['top'] = e.pageY-20;
    }
    else
    {
        z['left'] = e.clientX + document.body.scrollLeft + document.documentElement.scrollLeft;
        z['top'] = e.clientY + document.body.scrollTop + document.documentElement.scrollTop - 20;
    }
    z['height'] = 30;
    z['width'] = 20;		
    setPosition(document.getElementById('hints'), z);
}



function hideHintsN(e)
{
    document.onmousemove = null;
    document.onmouseout = null;
    document.getElementById('hints').style.visibility = "hidden";
}

function showHints(text, el)
{
    if (text == "") return;
    document.getElementById('hints').innerHTML = text;
    document.onmousemove = moveHintsN;
    document.onmouseout = hideHintsN;
}

function getBounds(tElement)
{
    var left = tElement.offsetLeft,
    top = tElement.offsetTop,
    parent;
    console.debug(left + ' ' + top);
    for (parent = tElement.offsetParent; parent; parent = parent.offsetParent)
    {
        left += parent.offsetLeft;
        top += parent.offsetTop;
    }
    return {
        left: left, 
        top: top, 
        width: tElement.offsetWidth, 
        height: tElement.offsetHeight
        };
}

function setPosition()
{
    var scrollTop = document.documentElement.scrollTop,
    tElement = arguments[0],
    tBounds = arguments[1],
    w = tElement.clientWidth,
    h = tElement.clientHeight,
    winW = document.documentElement.clientWidth,
    winH = document.documentElement.clientHeight,
    vPX = 0,
    tHeightNotSet = true;

    if ((w + tBounds.left > winW) && (winW - w + tBounds.left > w))
        tElement.style.left = tBounds.left - w + tBounds.width + 'px';
    else
        tElement.style.left = tBounds.left + 'px';

    if (h + tBounds.top > winH + scrollTop)
    {
        if (h - tBounds.top > 0)
            if (h + tBounds.top - winH - scrollTop > h - tBounds.top)
                tHeightNotSet = false;
    }
	
    if ((tBounds.top + h > winH + scrollTop) && tHeightNotSet)
        if (tBounds.top - h - scrollTop > 0)
            tHeightNotSet = false;
	
    if ((winH - tBounds.top + scrollTop - h - tBounds.height < 0) && (tBounds.top - scrollTop - h > winH - tBounds.top + scrollTop - h - tBounds.height))
        tHeightNotSet = false;
    //alert(tBounds.height);
    if (tHeightNotSet)
        tElement.style.top = tBounds.top + tBounds.height + vPX + 'px';
    else
        tElement.style.top = tBounds.top - h - vPX + 'px';
}




/*
CUSTOM FORM ELEMENTS
*/

var checkboxHeight = "25";
var radioHeight = "25";


/* No need to change anything after this */

document.write('<style type="text/css">input.styled { display: none; } select.styled { position: relative; opacity: 0; filter: alpha(opacity=0); z-index: 5; }</style>');

var Custom = {
    init: function() {
        var inputs = document.getElementsByTagName("input"), span = Array(), textnode, option, active;
        for(a = 0; a < inputs.length; a++) {
            //				alert(inputs[a].className);
            if((inputs[a].type == "checkbox" || inputs[a].type == "radio") && inputs[a].className.indexOf("styled")>=0) {	
                //			if((inputs[a].type == "checkbox" || inputs[a].type == "radio") && inputs[a].className == "styled") {
                span[a] = document.createElement("span");
                span[a].className = inputs[a].type;

                if(inputs[a].checked == true) {
                    if(inputs[a].type == "checkbox") {
                        position = "0 -" + (checkboxHeight*2) + "px";
                        span[a].style.backgroundPosition = position;
                    } else {
                        position = "0 -" + (radioHeight*2) + "px";
                        span[a].style.backgroundPosition = position;
                    }
                }
                inputs[a].parentNode.insertBefore(span[a], inputs[a]);

                inputs[a].onchange = Custom.clear;
                span[a].onmousedown = Custom.pushed;
                span[a].onmouseup = Custom.check;
                document.onmouseup = Custom.clear;
            }
        }
        inputs = document.getElementsByTagName("select");
        for(a = 0; a < inputs.length; a++) {
            if(inputs[a].className == "styled") {
                option = inputs[a].getElementsByTagName("option");
                active = option[0].childNodes[0].nodeValue;
                textnode = document.createTextNode(active);
                for(b = 0; b < option.length; b++) {
                    if(option[b].selected == true) {
                        textnode = document.createTextNode(option[b].childNodes[0].nodeValue);
                    }
                }
                span[a] = document.createElement("span");
                span[a].className = "select";
                span[a].id = "select" + inputs[a].name;
                span[a].appendChild(textnode);
                inputs[a].parentNode.insertBefore(span[a], inputs[a]);
                inputs[a].onchange = Custom.choose;
            }
        }
    },
    pushed: function() {
        element = this.nextSibling;
        if(element.checked == true && element.type == "checkbox") {
            this.style.backgroundPosition = "0 -" + checkboxHeight*3 + "px";
        } else if(element.checked == true && element.type == "radio") {
            this.style.backgroundPosition = "0 -" + radioHeight*3 + "px";
        } else if(element.checked != true && element.type == "checkbox") {
            this.style.backgroundPosition = "0 -" + checkboxHeight + "px";
        } else {
            this.style.backgroundPosition = "0 -" + radioHeight + "px";
        }
    },
    check: function() {

        element = this.nextSibling;
        if(element.checked == true && element.type == "checkbox") {
            this.style.backgroundPosition = "0 0";
            element.checked = false;
        } else {
            if(element.type == "checkbox") {
                this.style.backgroundPosition = "0 -" + checkboxHeight*2 + "px";
            } else {
				
                this.style.backgroundPosition = "0 -" + radioHeight*2 + "px";
                group = this.nextSibling.name;
                inputs = document.getElementsByTagName("input");
                for(a = 0; a < inputs.length; a++) {
                    if(inputs[a].name == group && inputs[a] != this.nextSibling) {
                        inputs[a].previousSibling.style.backgroundPosition = "0 0";
                    }
                }
            }
            element.checked = true;
        }
    },
    clear: function() {
        inputs = document.getElementsByTagName("input");
        for(var b = 0; b < inputs.length; b++) {
            if(inputs[b].type == "checkbox" && inputs[b].checked == true && inputs[b].className == "styled") {
                inputs[b].previousSibling.style.backgroundPosition = "0 -" + checkboxHeight*2 + "px";
            } else if(inputs[b].type == "checkbox" && inputs[b].className == "styled") {
                inputs[b].previousSibling.style.backgroundPosition = "0 0";
            } else if(inputs[b].type == "radio" && inputs[b].checked == true && inputs[b].className.indexOf("styled") >=0) {
                inputs[b].previousSibling.style.backgroundPosition = "0 -" + radioHeight*2 + "px";
            } else if(inputs[b].type == "radio" && inputs[b].className.indexOf("styled")>=0) {
                inputs[b].previousSibling.style.backgroundPosition = "0 0";
            }
        }
    },
    choose: function() {
        option = this.getElementsByTagName("option");
        for(d = 0; d < option.length; d++) {
            if(option[d].selected == true) {
                document.getElementById("select" + this.name).childNodes[0].nodeValue = option[d].childNodes[0].nodeValue;
            }
        }

        if (this.getAttribute('onchange1'))
        {
            eval(this.getAttribute('onchange1'))
        }
    }
}

/* * ************** customcheckbox ******************/

function customchkbox()
{
    var checks = $("dl.opentime dd label");
    var checksLnt = checks.length;
    for(var i=0; i<checksLnt; i++)
    {
        var curr = checks[i];
        var box = checks[i].firstChild;
        if (box.nodeName == 'INPUT') {
            box.className = 'lost';
            box.style.left = '-9999em';
            checks[i].className += box.type;
            checks[i].className += (box.checked) ? '-on' : '-off';
        }
        else break;

        box.onclick = function()
        {
            var label = this.parentNode;
            label.className = (label.className.indexOf('-on')+1) ? label.className.replace('-on','-off') : label.className.replace('-off','-on');
        }
    }
}

function customchkbox2()
{
    var checks = $("dl.service-list dd label");
    var checksLnt = checks.length;
    for(var i=0; i<checksLnt; i++)
    {
        var curr = checks[i];
        var box = checks[i].firstChild;
        if (box.nodeName == 'INPUT') {
            box.className = 'lost';
            box.style.left = '-9999em';
            checks[i].className = box.type;
            checks[i].className += (box.checked) ? '-on' : '-off';
        }
        else break;

        box.onclick = function()
        {
            var label = this.parentNode;
            label.className = (label.className.indexOf('-on')+1) ? label.className.replace('-on','-off') : label.className.replace('-off','-on');
        }
    }
}

function customchkbox3()
{
    var checks = $("fieldset.confirm label");
    var checksLnt = checks.length;
    for(var i=0; i<checksLnt; i++)
    {
        var curr = checks[i];
        var box = checks[i].firstChild;
        if (box.nodeName == 'INPUT') {
            box.className = 'lost';
            box.style.left = '-9999em';
            checks[i].className += box.type;
            checks[i].className += (box.checked) ? '-on' : '-off';
        }
        else break;

        box.onclick = function()
        {
            var label = this.parentNode;
            label.className = (label.className.indexOf('-on')+1) ? label.className.replace('-on','-off') : label.className.replace('-off','-on');
        }
    }
}

/**
 *
 * Date picker
 * Author: Stefan Petre www.eyecon.ro
 *
 * Dual licensed under the MIT and GPL licenses
 *
 */
(function ($) {
    var DatePicker = function () {
        var	ids = {},
        views = {
            years: 'datepickerViewYears',
            moths: 'datepickerViewMonths',
            days: 'datepickerViewDays'
        },
        tpl = {
            wrapper: '<div class="datepicker"><a href="" onclick="dtclose();" class="btn_close_calendar" title="close calendar">x</a><div class="datepickerBorderT" /><div class="datepickerBorderB" /><div class="datepickerBorderL" /><div class="datepickerBorderR" /><div class="datepickerBorderTL" /><div class="datepickerBorderTR" /><div class="datepickerBorderBL" /><div class="datepickerBorderBR" /><div class="datepickerContainer"><table cellspacing="0" cellpadding="0"><tbody><tr></tr></tbody></table></div></div>',
            head: [
            '<td>',
            '<table cellspacing="0" cellpadding="0">',
            '<thead>',
            '<tr>',
            '<th class="datepickerGoPrev"><a href="#"><span><%=prev%></span></a></th>',
            '<th colspan="6" class="datepickerMonth"><a href="#"><span></span></a></th>',
            '<th class="datepickerGoNext"><a href="#"><span><%=next%></span></a></th>',
            '</tr>',
            '<tr class="datepickerDoW">',
            '<th><span><%=week%></span></th>',
            '<th><span><%=day1%></span></th>',
            '<th><span><%=day2%></span></th>',
            '<th><span><%=day3%></span></th>',
            '<th><span><%=day4%></span></th>',
            '<th><span><%=day5%></span></th>',
            '<th><span><%=day6%></span></th>',
            '<th><span><%=day7%></span></th>',
            '</tr>',
            '</thead>',
            '</table></td>'
            ],
            space : '<td class="datepickerSpace"><div></div></td>',
            days: [
            '<tbody class="datepickerDays">',
            '<tr>',
            '<th class="datepickerWeek"><a href="#"><span><%=weeks[0].week%></span></a></th>',
            '<td class="<%=weeks[0].days[0].classname%>"><a href="#"><span><%=weeks[0].days[0].text%></span></a></td>',
            '<td class="<%=weeks[0].days[1].classname%>"><a href="#"><span><%=weeks[0].days[1].text%></span></a></td>',
            '<td class="<%=weeks[0].days[2].classname%>"><a href="#"><span><%=weeks[0].days[2].text%></span></a></td>',
            '<td class="<%=weeks[0].days[3].classname%>"><a href="#"><span><%=weeks[0].days[3].text%></span></a></td>',
            '<td class="<%=weeks[0].days[4].classname%>"><a href="#"><span><%=weeks[0].days[4].text%></span></a></td>',
            '<td class="<%=weeks[0].days[5].classname%>"><a href="#"><span><%=weeks[0].days[5].text%></span></a></td>',
            '<td class="<%=weeks[0].days[6].classname%>"><a href="#"><span><%=weeks[0].days[6].text%></span></a></td>',
            '</tr>',
            '<tr>',
            '<th class="datepickerWeek"><a href="#"><span><%=weeks[1].week%></span></a></th>',
            '<td class="<%=weeks[1].days[0].classname%>"><a href="#"><span><%=weeks[1].days[0].text%></span></a></td>',
            '<td class="<%=weeks[1].days[1].classname%>"><a href="#"><span><%=weeks[1].days[1].text%></span></a></td>',
            '<td class="<%=weeks[1].days[2].classname%>"><a href="#"><span><%=weeks[1].days[2].text%></span></a></td>',
            '<td class="<%=weeks[1].days[3].classname%>"><a href="#"><span><%=weeks[1].days[3].text%></span></a></td>',
            '<td class="<%=weeks[1].days[4].classname%>"><a href="#"><span><%=weeks[1].days[4].text%></span></a></td>',
            '<td class="<%=weeks[1].days[5].classname%>"><a href="#"><span><%=weeks[1].days[5].text%></span></a></td>',
            '<td class="<%=weeks[1].days[6].classname%>"><a href="#"><span><%=weeks[1].days[6].text%></span></a></td>',
            '</tr>',
            '<tr>',
            '<th class="datepickerWeek"><a href="#"><span><%=weeks[2].week%></span></a></th>',
            '<td class="<%=weeks[2].days[0].classname%>"><a href="#"><span><%=weeks[2].days[0].text%></span></a></td>',
            '<td class="<%=weeks[2].days[1].classname%>"><a href="#"><span><%=weeks[2].days[1].text%></span></a></td>',
            '<td class="<%=weeks[2].days[2].classname%>"><a href="#"><span><%=weeks[2].days[2].text%></span></a></td>',
            '<td class="<%=weeks[2].days[3].classname%>"><a href="#"><span><%=weeks[2].days[3].text%></span></a></td>',
            '<td class="<%=weeks[2].days[4].classname%>"><a href="#"><span><%=weeks[2].days[4].text%></span></a></td>',
            '<td class="<%=weeks[2].days[5].classname%>"><a href="#"><span><%=weeks[2].days[5].text%></span></a></td>',
            '<td class="<%=weeks[2].days[6].classname%>"><a href="#"><span><%=weeks[2].days[6].text%></span></a></td>',
            '</tr>',
            '<tr>',
            '<th class="datepickerWeek"><a href="#"><span><%=weeks[3].week%></span></a></th>',
            '<td class="<%=weeks[3].days[0].classname%>"><a href="#"><span><%=weeks[3].days[0].text%></span></a></td>',
            '<td class="<%=weeks[3].days[1].classname%>"><a href="#"><span><%=weeks[3].days[1].text%></span></a></td>',
            '<td class="<%=weeks[3].days[2].classname%>"><a href="#"><span><%=weeks[3].days[2].text%></span></a></td>',
            '<td class="<%=weeks[3].days[3].classname%>"><a href="#"><span><%=weeks[3].days[3].text%></span></a></td>',
            '<td class="<%=weeks[3].days[4].classname%>"><a href="#"><span><%=weeks[3].days[4].text%></span></a></td>',
            '<td class="<%=weeks[3].days[5].classname%>"><a href="#"><span><%=weeks[3].days[5].text%></span></a></td>',
            '<td class="<%=weeks[3].days[6].classname%>"><a href="#"><span><%=weeks[3].days[6].text%></span></a></td>',
            '</tr>',
            '<tr>',
            '<th class="datepickerWeek"><a href="#"><span><%=weeks[4].week%></span></a></th>',
            '<td class="<%=weeks[4].days[0].classname%>"><a href="#"><span><%=weeks[4].days[0].text%></span></a></td>',
            '<td class="<%=weeks[4].days[1].classname%>"><a href="#"><span><%=weeks[4].days[1].text%></span></a></td>',
            '<td class="<%=weeks[4].days[2].classname%>"><a href="#"><span><%=weeks[4].days[2].text%></span></a></td>',
            '<td class="<%=weeks[4].days[3].classname%>"><a href="#"><span><%=weeks[4].days[3].text%></span></a></td>',
            '<td class="<%=weeks[4].days[4].classname%>"><a href="#"><span><%=weeks[4].days[4].text%></span></a></td>',
            '<td class="<%=weeks[4].days[5].classname%>"><a href="#"><span><%=weeks[4].days[5].text%></span></a></td>',
            '<td class="<%=weeks[4].days[6].classname%>"><a href="#"><span><%=weeks[4].days[6].text%></span></a></td>',
            '</tr>',
            '<tr>',
            '<th class="datepickerWeek"><a href="#"><span><%=weeks[5].week%></span></a></th>',
            '<td class="<%=weeks[5].days[0].classname%>"><a href="#"><span><%=weeks[5].days[0].text%></span></a></td>',
            '<td class="<%=weeks[5].days[1].classname%>"><a href="#"><span><%=weeks[5].days[1].text%></span></a></td>',
            '<td class="<%=weeks[5].days[2].classname%>"><a href="#"><span><%=weeks[5].days[2].text%></span></a></td>',
            '<td class="<%=weeks[5].days[3].classname%>"><a href="#"><span><%=weeks[5].days[3].text%></span></a></td>',
            '<td class="<%=weeks[5].days[4].classname%>"><a href="#"><span><%=weeks[5].days[4].text%></span></a></td>',
            '<td class="<%=weeks[5].days[5].classname%>"><a href="#"><span><%=weeks[5].days[5].text%></span></a></td>',
            '<td class="<%=weeks[5].days[6].classname%>"><a href="#"><span><%=weeks[5].days[6].text%></span></a></td>',
            '</tr>',
            '</tbody>'
            ],
            months: [
            '<tbody class="<%=className%>">',
            '<tr>',
            '<td colspan="2"><a href="#"><span><%=data[0]%></span></a></td>',
            '<td colspan="2"><a href="#"><span><%=data[1]%></span></a></td>',
            '<td colspan="2"><a href="#"><span><%=data[2]%></span></a></td>',
            '<td colspan="2"><a href="#"><span><%=data[3]%></span></a></td>',
            '</tr>',
            '<tr>',
            '<td colspan="2"><a href="#"><span><%=data[4]%></span></a></td>',
            '<td colspan="2"><a href="#"><span><%=data[5]%></span></a></td>',
            '<td colspan="2"><a href="#"><span><%=data[6]%></span></a></td>',
            '<td colspan="2"><a href="#"><span><%=data[7]%></span></a></td>',
            '</tr>',
            '<tr>',
            '<td colspan="2"><a href="#"><span><%=data[8]%></span></a></td>',
            '<td colspan="2"><a href="#"><span><%=data[9]%></span></a></td>',
            '<td colspan="2"><a href="#"><span><%=data[10]%></span></a></td>',
            '<td colspan="2"><a href="#"><span><%=data[11]%></span></a></td>',
            '</tr>',
            '</tbody>'
            ]
        },
        defaults = {
            flat: false,
            starts: 1,
            prev: '&#9664;',
            next: '&#9654;',
            lastSel: false,
            mode: 'single',
            view: 'days',
            calendars: 1,
            format: 'Y-m-d',
            position: 'bottom',
            eventName: 'click',
            onRender: function(){
                return {};
            
        },
        onChange: function(){
            return true;
        },
        onShow: function(){
            return true;
        },
        onBeforeShow: function(){
            return true;
        },
        onHide: function(){
            return true;
        },
        locale: {
            days: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"],
            daysShort: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"],
            daysMin: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa", "Su"],
            months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
            monthsShort: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],
            weekMin: 'wk'
        }
    },
    fill = function(el) {
        var options = $(el).data('datepicker');
        var cal = $(el);
        var currentCal = Math.floor(options.calendars/2), date, data, dow, month, cnt = 0, week, days, indic, indic2, html, tblCal;
        cal.find('td>table tbody').remove();
        for (var i = 0; i < options.calendars; i++) {
            date = new Date(options.current);
            date.addMonths(-currentCal + i);
            tblCal = cal.find('table').eq(i+1);
            switch (tblCal[0].className) {
                case 'datepickerViewDays':
                    dow = formatDate(date, 'B, Y');
                    break;
                case 'datepickerViewMonths':
                    dow = date.getFullYear();
                    break;
                case 'datepickerViewYears':
                    dow = (date.getFullYear()-6) + ' - ' + (date.getFullYear()+5);
                    break;
            }
            tblCal.find('thead tr:first th:eq(1) span').text(dow);
            dow = date.getFullYear()-6;
            data = {
                data: [],
                className: 'datepickerYears'
            }
            for ( var j = 0; j < 12; j++) {
                data.data.push(dow + j);
            }
            html = tmpl(tpl.months.join(''), data);
            date.setDate(1);
            data = {
                weeks:[], 
                test: 10
            };
            month = date.getMonth();
            var dow = (date.getDay() - options.starts) % 7;
            date.addDays(-(dow + (dow < 0 ? 7 : 0)));
            week = -1;
            cnt = 0;
            while (cnt < 42) {
                indic = parseInt(cnt/7,10);
                indic2 = cnt%7;
                if (!data.weeks[indic]) {
                    week = date.getWeekNumber();
                    data.weeks[indic] = {
                        week: week,
                        days: []
                    };
                }
                data.weeks[indic].days[indic2] = {
                    text: date.getDate(),
                    classname: []
                };
                if (month != date.getMonth()) {
                    data.weeks[indic].days[indic2].classname.push('datepickerNotInMonth');
                }
                if (date.getDay() == 0) {
                    data.weeks[indic].days[indic2].classname.push('datepickerSunday');
                }
                if (date.getDay() == 6) {
                    data.weeks[indic].days[indic2].classname.push('datepickerSaturday');
                }
                var fromUser = options.onRender(date);
                var val = date.valueOf();
                if (fromUser.selected || options.date == val || $.inArray(val, options.date) > -1 || (options.mode == 'range' && val >= options.date[0] && val <= options.date[1])) {
                    data.weeks[indic].days[indic2].classname.push('datepickerSelected');
                }
                if (fromUser.disabled) {
                    data.weeks[indic].days[indic2].classname.push('datepickerDisabled');
                }
                if (fromUser.className) {
                    data.weeks[indic].days[indic2].classname.push(fromUser.className);
                }
                data.weeks[indic].days[indic2].classname = data.weeks[indic].days[indic2].classname.join(' ');
                cnt++;
                date.addDays(1);
            }
            html = tmpl(tpl.days.join(''), data) + html;
            data = {
                data: options.locale.monthsShort,
                className: 'datepickerMonths'
            };
            html = tmpl(tpl.months.join(''), data) + html;
            tblCal.append(html);
        }
    },
    parseDate = function (date, format) {
        if (date.constructor == Date) {
            return new Date(date);
        }
        var parts = date.split(/\W+/);
        var against = format.split(/\W+/), d, m, y, h, min, now = new Date();
        for (var i = 0; i < parts.length; i++) {
            switch (against[i]) {
                case 'd':
                case 'e':
                    d = parseInt(parts[i],10);
                    break;
                case 'm':
                    m = parseInt(parts[i], 10)-1;
                    break;
                case 'Y':
                case 'y':
                    y = parseInt(parts[i], 10);
                    y += y > 100 ? 0 : (y < 29 ? 2000 : 1900);
                    break;
                case 'H':
                case 'I':
                case 'k':
                case 'l':
                    h = parseInt(parts[i], 10);
                    break;
                case 'P':
                case 'p':
                    if (/pm/i.test(parts[i]) && h < 12) {
                        h += 12;
                    } else if (/am/i.test(parts[i]) && h >= 12) {
                        h -= 12;
                    }
                    break;
                case 'M':
                    min = parseInt(parts[i], 10);
                    break;
            }
        }
        return new Date(
            y === undefined ? now.getFullYear() : y,
            m === undefined ? now.getMonth() : m,
            d === undefined ? now.getDate() : d,
            h === undefined ? now.getHours() : h,
            min === undefined ? now.getMinutes() : min,
            0
            );
    },
    formatDate = function(date, format) {
        var m = date.getMonth();
        var d = date.getDate();
        var y = date.getFullYear();
        var wn = date.getWeekNumber();
        var w = date.getDay();
        var s = {};
        var hr = date.getHours();
        var pm = (hr >= 12);
        var ir = (pm) ? (hr - 12) : hr;
        var dy = date.getDayOfYear();
        if (ir == 0) {
            ir = 12;
        }
        var min = date.getMinutes();
        var sec = date.getSeconds();
        var parts = format.split(''), part;
        for ( var i = 0; i < parts.length; i++ ) {
            part = parts[i];
            switch (parts[i]) {
                case 'a':
                    part = date.getDayName();
                    break;
                case 'A':
                    part = date.getDayName(true);
                    break;
                case 'b':
                    part = date.getMonthName();
                    break;
                case 'B':
                    part = date.getMonthName(true);
                    break;
                case 'C':
                    part = 1 + Math.floor(y / 100);
                    break;
                case 'd':
                    part = (d < 10) ? ("0" + d) : d;
                    break;
                case 'e':
                    part = d;
                    break;
                case 'H':
                    part = (hr < 10) ? ("0" + hr) : hr;
                    break;
                case 'I':
                    part = (ir < 10) ? ("0" + ir) : ir;
                    break;
                case 'j':
                    part = (dy < 100) ? ((dy < 10) ? ("00" + dy) : ("0" + dy)) : dy;
                    break;
                case 'k':
                    part = hr;
                    break;
                case 'l':
                    part = ir;
                    break;
                case 'm':
                    part = (m < 9) ? ("0" + (1+m)) : (1+m);
                    break;
                case 'M':
                    part = (min < 10) ? ("0" + min) : min;
                    break;
                case 'p':
                case 'P':
                    part = pm ? "PM" : "AM";
                    break;
                case 's':
                    part = Math.floor(date.getTime() / 1000);
                    break;
                case 'S':
                    part = (sec < 10) ? ("0" + sec) : sec;
                    break;
                case 'u':
                    part = w + 1;
                    break;
                case 'w':
                    part = w;
                    break;
                case 'y':
                    part = ('' + y).substr(2, 2);
                    break;
                case 'Y':
                    part = y;
                    break;
            }
            parts[i] = part;
        }
        return parts.join('');
    },
    extendDate = function(options) {
        if (Date.prototype.tempDate) {
            return;
        }
        Date.prototype.tempDate = null;
        Date.prototype.months = options.months;
        Date.prototype.monthsShort = options.monthsShort;
        Date.prototype.days = options.days;
        Date.prototype.daysShort = options.daysShort;
        Date.prototype.getMonthName = function(fullName) {
            return this[fullName ? 'months' : 'monthsShort'][this.getMonth()];
        };
        Date.prototype.getDayName = function(fullName) {
            return this[fullName ? 'days' : 'daysShort'][this.getDay()];
        };
        Date.prototype.addDays = function (n) {
            this.setDate(this.getDate() + n);
            this.tempDate = this.getDate();
        };
        Date.prototype.addMonths = function (n) {
            if (this.tempDate == null) {
                this.tempDate = this.getDate();
            }
            this.setDate(1);
            this.setMonth(this.getMonth() + n);
            this.setDate(Math.min(this.tempDate, this.getMaxDays()));
        };
        Date.prototype.addYears = function (n) {
            if (this.tempDate == null) {
                this.tempDate = this.getDate();
            }
            this.setDate(1);
            this.setFullYear(this.getFullYear() + n);
            this.setDate(Math.min(this.tempDate, this.getMaxDays()));
        };
        Date.prototype.getMaxDays = function() {
            var tmpDate = new Date(Date.parse(this)),
            d = 28, m;
            m = tmpDate.getMonth();
            d = 28;
            while (tmpDate.getMonth() == m) {
                d ++;
                tmpDate.setDate(d);
            }
            return d - 1;
        };
        Date.prototype.getFirstDay = function() {
            var tmpDate = new Date(Date.parse(this));
            tmpDate.setDate(1);
            return tmpDate.getDay();
        };
        Date.prototype.getWeekNumber = function() {
            var tempDate = new Date(this);
            tempDate.setDate(tempDate.getDate() - (tempDate.getDay() + 6) % 7 + 3);
            var dms = tempDate.valueOf();
            tempDate.setMonth(0);
            tempDate.setDate(4);
            return Math.round((dms - tempDate.valueOf()) / (604800000)) + 1;
        };
        Date.prototype.getDayOfYear = function() {
            var now = new Date(this.getFullYear(), this.getMonth(), this.getDate(), 0, 0, 0);
            var then = new Date(this.getFullYear(), 0, 0, 0, 0, 0);
            var time = now - then;
            return Math.floor(time / 24*60*60*1000);
        };
    },
    layout = function (el) {
        var options = $(el).data('datepicker');
        var cal = $('#' + options.id);
        if (!options.extraHeight) {
            var divs = $(el).find('div');
            options.extraHeight = divs.get(0).offsetHeight + divs.get(1).offsetHeight;
            options.extraWidth = divs.get(2).offsetWidth + divs.get(3).offsetWidth;
        }
        var tbl = cal.find('table:first').get(0);
        var width = tbl.offsetWidth;
        var height = tbl.offsetHeight;
        cal.css({
            width: width + options.extraWidth + 'px',
            height: height + options.extraHeight + 'px'
        }).find('div.datepickerContainer').css({
            width: width + 'px',
            height: height + 'px'
        });
    },
    click = function(ev) {
        if ($(ev.target).is('span')) {
            ev.target = ev.target.parentNode;
        }
        var el = $(ev.target);
        if (el.is('a')) {
            ev.target.blur();
            if (el.hasClass('datepickerDisabled')) {
                return false;
            }
            var options = $(this).data('datepicker');
            var parentEl = el.parent();
            var tblEl = parentEl.parent().parent().parent();
            var tblIndex = $('table', this).index(tblEl.get(0)) - 1;
            var tmp = new Date(options.current);
            var changed = false;
            var fillIt = false;
            if (parentEl.is('th')) {
                if (parentEl.hasClass('datepickerWeek') && options.mode == 'range' && !parentEl.next().hasClass('datepickerDisabled')) {
                    var val = parseInt(parentEl.next().text(), 10);
                    tmp.addMonths(tblIndex - Math.floor(options.calendars/2));
                    if (parentEl.next().hasClass('datepickerNotInMonth')) {
                        tmp.addMonths(val > 15 ? -1 : 1);
                    }
                    tmp.setDate(val);
                    options.date[0] = (tmp.setHours(0,0,0,0)).valueOf();
                    tmp.setHours(23,59,59,0);
                    tmp.addDays(6);
                    options.date[1] = tmp.valueOf();
                    fillIt = true;
                    changed = true;
                    options.lastSel = false;
                } else if (parentEl.hasClass('datepickerMonth')) {
                    tmp.addMonths(tblIndex - Math.floor(options.calendars/2));
                    switch (tblEl.get(0).className) {
                        case 'datepickerViewDays':
                            tblEl.get(0).className = 'datepickerViewMonths';
                            el.find('span').text(tmp.getFullYear());
                            break;
                        case 'datepickerViewMonths':
                            tblEl.get(0).className = 'datepickerViewYears';
                            el.find('span').text((tmp.getFullYear()-6) + ' - ' + (tmp.getFullYear()+5));
                            break;
                        case 'datepickerViewYears':
                            tblEl.get(0).className = 'datepickerViewDays';
                            el.find('span').text(formatDate(tmp, 'B, Y'));
                            break;
                    }
                } else if (parentEl.parent().parent().is('thead')) {
                    switch (tblEl.get(0).className) {
                        case 'datepickerViewDays':
                            options.current.addMonths(parentEl.hasClass('datepickerGoPrev') ? -1 : 1);
                            break;
                        case 'datepickerViewMonths':
                            options.current.addYears(parentEl.hasClass('datepickerGoPrev') ? -1 : 1);
                            break;
                        case 'datepickerViewYears':
                            options.current.addYears(parentEl.hasClass('datepickerGoPrev') ? -12 : 12);
                            break;
                    }
                    fillIt = true;
                }
            } else if (parentEl.is('td') && !parentEl.hasClass('datepickerDisabled')) {
                switch (tblEl.get(0).className) {
                    case 'datepickerViewMonths':
                        options.current.setMonth(tblEl.find('tbody.datepickerMonths td').index(parentEl));
                        options.current.setFullYear(parseInt(tblEl.find('thead th.datepickerMonth span').text(), 10));
                        options.current.addMonths(Math.floor(options.calendars/2) - tblIndex);
                        tblEl.get(0).className = 'datepickerViewDays';
                        break;
                    case 'datepickerViewYears':
                        options.current.setFullYear(parseInt(el.text(), 10));
                        tblEl.get(0).className = 'datepickerViewMonths';
                        break;
                    default:
                        var val = parseInt(el.text(), 10);
                        tmp.addMonths(tblIndex - Math.floor(options.calendars/2));
                        if (parentEl.hasClass('datepickerNotInMonth')) {
                            tmp.addMonths(val > 15 ? -1 : 1);
                        }
                        tmp.setDate(val);
                        switch (options.mode) {
                            case 'multiple':
                                val = (tmp.setHours(0,0,0,0)).valueOf();
                                if ($.inArray(val, options.date) > -1) {
                                    $.each(options.date, function(nr, dat){
                                        if (dat == val) {
                                            options.date.splice(nr,1);
                                            return false;
                                        }
                                    });
                                } else {
                                    options.date.push(val);
                                }
                                break;
                            case 'range':
                                if (!options.lastSel) {
                                    options.date[0] = (tmp.setHours(0,0,0,0)).valueOf();
                                }
                                val = (tmp.setHours(23,59,59,0)).valueOf();
                                if (val < options.date[0]) {
                                    options.date[1] = options.date[0] + 86399000;
                                    options.date[0] = val - 86399000;
                                } else {
                                    options.date[1] = val;
                                }
                                options.lastSel = !options.lastSel;
                                break;
                            default:
                                options.date = tmp.valueOf();
                                break;
                        }
                        break;
                }
                fillIt = true;
                changed = true;
            }
            if (fillIt) {
                fill(this);
            }
            if (changed) {
                options.onChange.apply(this, prepareDate(options));
            }
        }
        return false;
    },
    prepareDate = function (options) {
        var tmp;
        if (options.mode == 'single') {
            tmp = new Date(options.date);
            return [formatDate(tmp, options.format), tmp, options.el];
        } else {
            tmp = [[],[], options.el];
            $.each(options.date, function(nr, val){
                var date = new Date(val);
                tmp[0].push(formatDate(date, options.format));
                tmp[1].push(date);
            });
            return tmp;
        }
    },
    getViewport = function () {
        var m = document.compatMode == 'CSS1Compat';
        return {
            l : window.pageXOffset || (m ? document.documentElement.scrollLeft : document.body.scrollLeft),
            t : window.pageYOffset || (m ? document.documentElement.scrollTop : document.body.scrollTop),
            w : window.innerWidth || (m ? document.documentElement.clientWidth : document.body.clientWidth),
            h : window.innerHeight || (m ? document.documentElement.clientHeight : document.body.clientHeight)
        };
    },
    isChildOf = function(parentEl, el, container) {
        if (parentEl == el) {
            return true;
        }
        if (parentEl.contains) {
            return parentEl.contains(el);
        }
        if ( parentEl.compareDocumentPosition ) {
            return !!(parentEl.compareDocumentPosition(el) & 16);
        }
        var prEl = el.parentNode;
        while(prEl && prEl != container) {
            if (prEl == parentEl)
                return true;
            prEl = prEl.parentNode;
        }
        return false;
    },
    show = function (ev) {
        var cal = $('#' + $(this).data('datepickerId'));
        if (!cal.is(':visible')) {
            var calEl = cal.get(0);
            fill(calEl);
            var options = cal.data('datepicker');
            options.onBeforeShow.apply(this, [cal.get(0)]);
            var pos = $(this).offset();
            var viewPort = getViewport();
            var top = pos.top;
            var left = pos.left;
            var oldDisplay = $.curCSS(calEl, 'display');
            cal.css({
                visibility: 'hidden',
                display: 'block'
            });
            layout(calEl);
            switch (options.position){
                case 'top':
                    top -= calEl.offsetHeight;
                    break;
                case 'left':
                    left -= calEl.offsetWidth;
                    break;
                case 'right':
                    left += this.offsetWidth;
                    break;
                case 'bottom':
                    top += this.offsetHeight;
                    break;
            }
            if (top + calEl.offsetHeight > viewPort.t + viewPort.h) {
                top = pos.top  - calEl.offsetHeight;
            }
            if (top < viewPort.t) {
                top = pos.top + this.offsetHeight + calEl.offsetHeight;
            }
            if (left + calEl.offsetWidth > viewPort.l + viewPort.w) {
                left = pos.left - calEl.offsetWidth;
            }
            if (left < viewPort.l) {
                left = pos.left + this.offsetWidth
            }
            cal.css({
                visibility: 'visible',
                display: 'block',
                top: top + 'px',
                left: left + 'px'
            });
            if (options.onShow.apply(this, [cal.get(0)]) != false) {
                cal.show();
            }
            $(document).bind('mousedown', {
                cal: cal, 
                trigger: this
            }, hide);
        }
        return false;
    },
    hide = function (ev) {
        if (ev.target != ev.data.trigger && !isChildOf(ev.data.cal.get(0), ev.target, ev.data.cal.get(0))) {
            if (ev.data.cal.data('datepicker').onHide.apply(this, [ev.data.cal.get(0)]) != false) {
                ev.data.cal.hide();
            }
            $(document).unbind('mousedown', hide);
        }
    };
    return {
        init: function(options){
            options = $.extend({}, defaults, options||{});
            extendDate(options.locale);
            options.calendars = Math.max(1, parseInt(options.calendars,10)||1);
            options.mode = /single|multiple|range/.test(options.mode) ? options.mode : 'single';
            return this.each(function(){
                if (!$(this).data('datepicker')) {
                    options.el = this;
                    if (options.date.constructor == String) {
                        options.date = parseDate(options.date, options.format);
                        options.date.setHours(0,0,0,0);
                    }
                    if (options.mode != 'single') {
                        if (options.date.constructor != Array) {
                            options.date = [options.date.valueOf()];
                            if (options.mode == 'range') {
                                options.date.push(((new Date(options.date[0])).setHours(23,59,59,0)).valueOf());
                            }
                        } else {
                            for (var i = 0; i < options.date.length; i++) {
                                options.date[i] = (parseDate(options.date[i], options.format).setHours(0,0,0,0)).valueOf();
                            }
                            if (options.mode == 'range') {
                                options.date[1] = ((new Date(options.date[1])).setHours(23,59,59,0)).valueOf();
                            }
                        }
                    } else {
                        options.date = options.date.valueOf();
                    }
                    if (!options.current) {
                        options.current = new Date();
                    } else {
                        options.current = parseDate(options.current, options.format);
                    }
                    options.current.setDate(1);
                    options.current.setHours(0,0,0,0);
                    var id = 'datepicker_' + parseInt(Math.random() * 1000), cnt;
                    options.id = id;
                    $(this).data('datepickerId', options.id);
                    var cal = $(tpl.wrapper).attr('id', id).bind('click', click).data('datepicker', options);
                    if (options.className) {
                        cal.addClass(options.className);
                    }
                    var html = '';
                    for (var i = 0; i < options.calendars; i++) {
                        cnt = options.starts;
                        if (i > 0) {
                            html += tpl.space;
                        }
                        html += tmpl(tpl.head.join(''), {
                            week: options.locale.weekMin,
                            prev: options.prev,
                            next: options.next,
                            day1: options.locale.daysMin[(cnt++)%7],
                            day2: options.locale.daysMin[(cnt++)%7],
                            day3: options.locale.daysMin[(cnt++)%7],
                            day4: options.locale.daysMin[(cnt++)%7],
                            day5: options.locale.daysMin[(cnt++)%7],
                            day6: options.locale.daysMin[(cnt++)%7],
                            day7: options.locale.daysMin[(cnt++)%7]
                        });
                    }
                    cal
                    .find('tr:first').append(html)
                    .find('table').addClass(views[options.view]);
                    fill(cal.get(0));
                    if (options.flat) {
                        cal.appendTo(this).show().css('position', 'relative');
                        layout(cal.get(0));
                    } else {
                        cal.appendTo(document.body);
                        $(this).bind(options.eventName, show);
                    }
                }
            });
        },
        showPicker: function() {
            return this.each( function () {
                if ($(this).data('datepickerId')) {
                    show.apply(this);
                }
            });
        },
        hidePicker: function() {
            return this.each( function () {
                if ($(this).data('datepickerId')) {
                    $('#' + $(this).data('datepickerId')).hide();
                }
            });
        },
        setDate: function(date, shiftTo){
            return this.each(function(){
                if ($(this).data('datepickerId')) {
                    var cal = $('#' + $(this).data('datepickerId'));
                    var options = cal.data('datepicker');
                    options.date = date;
                    if (options.date.constructor == String) {
                        options.date = parseDate(options.date, options.format);
                        options.date.setHours(0,0,0,0);
                    }
                    if (options.mode != 'single') {
                        if (options.date.constructor != Array) {
                            options.date = [options.date.valueOf()];
                            if (options.mode == 'range') {
                                options.date.push(((new Date(options.date[0])).setHours(23,59,59,0)).valueOf());
                            }
                        } else {
                            for (var i = 0; i < options.date.length; i++) {
                                options.date[i] = (parseDate(options.date[i], options.format).setHours(0,0,0,0)).valueOf();
                            }
                            if (options.mode == 'range') {
                                options.date[1] = ((new Date(options.date[1])).setHours(23,59,59,0)).valueOf();
                            }
                        }
                    } else {
                        options.date = options.date.valueOf();
                    }
                    if (shiftTo) {
                        options.current = new Date (options.mode != 'single' ? options.date[0] : options.date);
                    }
                    fill(cal.get(0));
                }
            });
        },
        getDate: function(formated) {
            if (this.size() > 0) {
                return prepareDate($('#' + $(this).data('datepickerId')).data('datepicker'))[formated ? 0 : 1];
            }
        },
        clear: function(){
            return this.each(function(){
                if ($(this).data('datepickerId')) {
                    var cal = $('#' + $(this).data('datepickerId'));
                    var options = cal.data('datepicker');
                    if (options.mode != 'single') {
                        options.date = [];
                        fill(cal.get(0));
                    }
                }
            });
        },
        fixLayout: function(){
            return this.each(function(){
                if ($(this).data('datepickerId')) {
                    var cal = $('#' + $(this).data('datepickerId'));
                    var options = cal.data('datepicker');
                    if (options.flat) {
                        layout(cal.get(0));
                    }
                }
            });
        }
    };
}();
    $.fn.extend({
        DatePicker: DatePicker.init,
        DatePickerHide: DatePicker.hidePicker,
        DatePickerShow: DatePicker.showPicker,
        DatePickerSetDate: DatePicker.setDate,
        DatePickerGetDate: DatePicker.getDate,
        DatePickerClear: DatePicker.clear,
        DatePickerLayout: DatePicker.fixLayout
    });
})(jQuery);

(function(){
    var cache = {};

    this.tmpl = function tmpl(str, data){
        // Figure out if we're getting a template, or if we need to
        // load the template - and be sure to cache the result.
        var fn = !/\W/.test(str) ?
        cache[str] = cache[str] ||
        tmpl(document.getElementById(str).innerHTML) :

        // Generate a reusable function that will serve as a template
        // generator (and which will be cached).
        new Function("obj",
            "var p=[],print=function(){p.push.apply(p,arguments);};" +

            // Introduce the data as local variables using with(){}
            "with(obj){p.push('" +

            // Convert the template into pure JavaScript
            str
            .replace(/[\r\t\n]/g, " ")
            .split("<%").join("\t")
            .replace(/((^|%>)[^\t]*)'/g, "$1\r")
            .replace(/\t=(.*?)%>/g, "',$1,'")
            .split("\t").join("');")
            .split("%>").join("p.push('")
            .split("\r").join("\\'")
            + "');}return p.join('');");

        // Provide some basic currying to the user
        return data ? fn( data ) : fn;
    };
})();

/*Validate form*/
function validateForm(e) {
    var elem = $("."+ e +" input, select, textarea");
    var err = "";
    for (var i=0; i<elem.length; i++) {
        if ($(elem[i]).attr("required") == "required" && $(elem[i]).val() == "" && !$(elem[i]).is(':hidden'))
        {
            err += "<li><strong>"+ $(elem[i]).attr("placeholder") +"</strong> - required to be filled</li>";
        }
    }
    if (err != "") {
        err = "<span>You forgot or did not correctly enter one or more fields. Please correct these errors:</span><ul>" + err + "</ul>";
        $("#fill_form").html(err).addClass("visible");
        return false;
    }
    else return true;
}

function validateForm2(e) {
    var elem = $("."+ e +" input, select, textarea");
    var err = "";
    for (var i=0; i<elem.length; i++) {
        if ($(elem[i]).attr("required") == "required" && !$(elem[i]).is(':hidden'))
        {
            if ($(elem[i]).attr("type") != 'checkbox' && $(elem[i]).val() == "")
                err += "<li><strong>"+ $(elem[i]).attr("placeholder") +"</strong> - required to be filled</li>";
            else
            if (($(elem[i]).attr("type") == 'checkbox' || $(elem[i]).attr("type") == 'radio') && !$(elem[i]).attr("checked"))
                err += "<li><strong>"+ $(elem[i]).attr("placeholder") +"</strong> - required to be set</li>";
        }
    }
    if (err != "") {
        err = "<span>You forgot or did not correctly enter one or more fields. Please correct these errors:</span><ul>" + err + "</ul>";
        $("#fill_form").html(err).addClass("visible");
        return false;
    }
    else return true;
}


var map;
var geocoder;
function initialize() {
    map = new GMap2(document.getElementById("destination_map"));
    map.setCenter(new GLatLng(34, 0), 15);
    //map.addControl(new GSmallMapControl());
    //map.addControl(new GMapTypeControl());
    geocoder = new GClientGeocoder();
    showLocation();
}
function addAddressToMap(response) {
    map.clearOverlays();
    if (!response || response.Status.code != 200) {
        divMap = document.getElementById("destination_map");
        divMap.innerHTML = '<strong>Maps & Directions for this location is currently unavailable.</strong>';
    //divMap.style.display = 'none';
    } else {
        place = response.Placemark[0];
        point = new GLatLng(place.Point.coordinates[1],
            place.Point.coordinates[0]);
        marker = new GMarker(point);
        map.addOverlay(marker);
        marker.openInfoWindowHtml("<div id='msgaddr'>" + place.address + "</div><form class='get_dir' action='http://maps.google.com/maps' method='get' target='_blank'><label for='saddr'>Get Directions:</label><br /><input type='text' name='saddr' id='saddr' /><input type='hidden' name='daddr' value='" + place.address + "' /><input type='submit' id='btn_go' value='Go' /></form>");
    }
}
function showLocation() {
    if (address != "") geocoder.getLocations(address, addAddressToMap);
    else
    {
        var m = new GLatLng(addressLat, addressLng);
        map.setCenter(m, 15);
        map.addOverlay(new GMarker(m));
    }
}
/**
* LightGallery v1.3
* Author: Dmitri Ischenko ischenkodv@gmail.com
* Freely distributable under MIT-style license
*/
var lightgallery=(function(){
    var h,g,c,a,H,ad,J={
        showOverlay:true,
        overlayColor:"#000",
        overlayOpacity:0.85,
        zoomStep:0.2,
        animate:true,
        framesNumber:20,
        speed:30,
        resizeSync:false,
        enableZoom:true,
        fadeImage:true,
        alias:"lightgallery",
        fullSize:false,
        minPadding:15
    },al={
        next:"Next",
        prev:"Previous",
        zoomIn:"Zoom In",
        zoomOut:"Zoom Out",
        fullSize:"Full Size",
        fitScreen:"Fit screen",
        close:"Close",
        image:"Image",
        of:"of"
    },p,T,Q,s,L,b,k,x,l,aj,d,B,w,ai,af="hidden",am="visible",y="block",U="none",z="opacity",I="left",S="top",i="width",P="height",an="px",A="div",Y=window,R=document,f;
    var r={
        setLangVars:function(G){
            t(al,G)
            },
        init:function(at){
            if(at){
                t(J,at)
                }
                J.fullSize=J.fullSize?1:0;
            if(!a){
                return V()
                }
                if(/MSIE ([^;]+)/.test(navigator.userAgent)){
                p=parseFloat(RegExp["$1"])
                }
                f=[];
            var av=R.getElementsByTagName("a"),au=new RegExp("^"+J.alias+"\\[([a-zA-Z]+)\\]|"+J.alias+"$"),ar;
            for(var aq=0,ap=av.length;aq<ap;aq++){
                if(av[aq].rel&&(ar=av[aq].rel.match(au))){
                    m(av[aq],"click",r.showImage);
                    if(ar=ar[1]){
                        av[aq].__gallery__=ar;
                        if(!f[ar]){
                            f[ar]=[]
                            }
                            av[aq].__index__=f[ar].push(av[aq])-1
                        }
                    }
            }
            var G=R.getElementsByTagName("body")[0];
    G.appendChild(ai=ao(A,{
        id:"LG_overlay",
        events:{
            click:r.close
            }
        }));
G.appendChild(T=D());
    innerCont=T.lastChild;
    m((G.attachEvent)?G:Y,"keypress",v);
    (x=ao("img")).onload=function(){
    e();
    l.setAttribute("src",x.src);
    q(J.fullSize,true);
    o()
    };
    
g=T.offsetHeight;
c=p?200:T.offsetWidth;
h=0;
ab(ai,{
    background:(J.overlayColor),
    display:U
});
aa(ai,J.overlayOpacity)
    },
open:function(){
    if(d){
        return
    }
    n();
    l.style.display=y;
    q();
    ab(T,{
        visibility:am,
        display:y
    });
    d=1
    },
close:function(){
    M();
    ab(T,{
        visibility:af,
        display:U
    });
    d=0;
    x.src=l.src=""
    },
zoomIn:function(){
    r.Zoom(1+J.zoomStep)
    },
zoomOut:function(){
    r.Zoom(1-J.zoomStep)
    },
zoomNormal:function(){
    if(this.$disabled){
        return
    }
    r.Zoom(l.width==x.width&&l.height==x.height?0:1)
    },
Zoom:function(G){
    ah();
    q(G)
    },
showImage:function(ap){
    var G=this.__index__;
    N(ap||Y.event);
    if(this.__gallery__&&G>-1){
        aj=this.__gallery__;
        r.show(G)
        }else{
        r.showSingle(this)
        }
    },
showSingle:function(G){
    r.open();
    ah();
    E();
    x.src=G.href;
    Q.innerHTML=G.title;
    b.innerHTML="";
    s.style.visibility=L.style.visibility=af
    },
show:function(ap){
    if(ap<0||ap>f[aj].length-1||(J.animate&&ad)){
        return
    }
    r.open();
    var G=f[aj],aq=L.style,ar=s.style;
    ah();
    E();
    ad=1;
    x.src=G[ap].href;
    Q.innerHTML=G[ap].title;
    b.innerHTML=al.image+" "+(ap+1)+" "+al.of+" "+G.length;
    B=ap;
    ac()?aq.visibility=am:aq.visibility=af;
    u()?ar.visibility=am:ar.visibility=af;
    Y.focus()
    },
next:function(){
    r.show(B+1)
    },
prev:function(){
    r.show(B-1)
    }
};

function ac(){
    return(B<(f[aj].length-1))?true:false
    }
    function u(){
    return(B)?true:false
    }
    function o(){
    var G=f[aj];
    if(!G){
        return
    }
    if(G[B+1]){
        (new Image).src=G[B+1].href
        }
        if(G[B-1]){
        (new Image).src=G[B-1].href
        }
    }
function n(ap){
    if(J.showOverlay){
        var G=C();
        ab(ai,{
            width:G[0]+"px",
            height:G[1]+"px"
            });
        if(ai.style.display!=y){
            ab(ai,{
                display:y
            });
            F(ai,{
                end:J.overlayOpacity*100,
                onend:ap
            })
            }
        }else{
    if(typeof ap=="function"){
        ap.call(this)
        }
    }
}
function M(){
    ae(ai,{
        start:J.overlayOpacity*100,
        onEnd:function(){
            ai.style.display=U
            }
        })
}
function q(aH,aB){
    var au,aL,az,aJ,aE=J.minPadding*2,aD=J.framesNumber,aI=x.width,aK=x.height,aF=C(),aq=aF[2],av=aF[3],aw=aq-aE-h,aM=av-aE-g;
    if(aH==0||(aB&&!aH)){
        if(aI>aw||aK>aM){
            var aA=aw,aG=aw*aK/aI;
            if(aG>aM){
                aG=aM;
                aA=aM*aI/aK
                }
                az=(l.width=aA)+h;
            aJ=(l.height=aG)+g
            }else{
            az=(l.width=aI)+h;
            aJ=(l.height=aK)+g
            }
        }else{
    if(aH==1){
        az=(l.width=aI)+h;
        aJ=(l.height=aK)+g
        }else{
        if(aH<1||aH>1){
            az=(l.width*=aH)+h;
            aJ=(l.height*=aH)+g
            }else{
            az=aJ=300;
            var ap=true
            }
        }
}
if(au=(az>(aw+h)||aJ>(aM+g))){
    aL=al.fitScreen;
    fsClass="LG_fitScreen"
    }else{
    if(l.width!=aI||l.height!=aK){
        aL=al.fullSize;
        fsClass="LG_zoomNormal"
        }
    }
k.$disabled=false;
if(l.width==aI){
    if(au){
        k.id=fsClass;
        k.setAttribute("title",aL)
        }else{
        k.id="LG_zoom_disabled";
        k.$disabled=true
        }
    }else{
    k.id="LG_zoomNormal";
    k.setAttribute("title",al.fullSize)
    }
    az=Math.max(az,c);
var aN=W(),ax=(av>aJ?(av-aJ)/2:J.minPadding)+aN[1],ay=(aq>az?(aq-az)/2:J.minPadding)+aN[0],aC=(az/3)+"px",G=(aJ-g-10)+"px";
ab(L,{
    width:aC,
    height:G
});
ab(s,{
    width:aC,
    height:G
});
if(J.animate&&!ap){
    var at=new K(T,aD,J.speed);
    if(J.resizeSync){
        at.addThread(i,0,az,0,aD).addThread(I,0,ay,0,aD).addThread(P,0,aJ,0,aD).addThread(S,0,ax,0,aD)
        }else{
        var aO=Math.ceil(aD/2);
        at.addThread(i,0,az,0,aO).addThread(I,0,ay,0,aO).addThread(P,0,aJ,aO,aD).addThread(S,0,ax,aO,aD)
        }
        at.onEnd=function(){
        n();
        O()
        };
        
    at.run()
    }else{
    ab(T,{
        top:ax+an,
        left:ay+an,
        width:az+an,
        height:aJ+an
        });
    n();
    O()
    }
}
function O(){
    innerCont.style.display=y;
    if(J.fadeImage){
        F(l,{
            frames:8,
            speed:J.speed,
            onEnd:function(){
                ad=0
                }
            })
    }else{
    aa(l,100);
    ad=0
    }
}
function ah(){
    innerCont.style.display=U
    }
    function E(){
    w.style.display=y
    }
    function e(){
    w.style.display=U
    }
    function D(){
    var ap,G;
    if(J.enableZoom){
        ap=ao(A,{
            id:"LG_zoomIn",
            title:al.zoomIn,
            events:{
                click:r.zoomIn
                }
            });
    G=ao(A,{
        id:"LG_zoomOut",
        title:al.zoomOut,
        events:{
            click:r.zoomOut
            }
        })
}
return ao(A,{
    id:"LG_container"
},w=ao(A,{
    id:"LG_loading"
}),ao(A,{
    id:"LG_innerCont"
},ao(A,{
    id:"LG_panel"
},ap,G,k=ao(A,{
    id:"LG_zoomNormal",
    title:al.fullSize,
    events:{
        click:r.zoomNormal
        }
    }),b=ao(A,{
    id:"LG_imgIndex"
},al.image+" 20 "+al.of+" 20 "),ao(A,{
    id:"LG_closeBtn",
    title:al.close,
    events:{
        click:r.close
        }
    }),ao(A,{
    style:"clear:both"
})),l=ao("img",{
    id:"LG_pic",
    width:300,
    height:300
}),Q=ao(A,{
    id:"LG_titleBar"
}),s=ao(A,{
    id:"LG_prevLink",
    title:al.prev,
    events:{
        click:r.prev,
        mouseover:Z,
        mouseout:ag
    }
}),L=ao(A,{
    id:"LG_nextLink",
    title:al.next,
    events:{
        click:r.next,
        mouseover:Z,
        mouseout:ag
    }
})))
}
function v(ap){
    if(!d){
        return
    }
    var ap=ap||Y.event,G=ap.keyCode?ap.keyCode:(ap.which?ap.which:ap.charCode);
    switch(G){
        case 110:
            r.next();
            break;
        case 98:
            r.prev();
            break;
        case 102:
            r.zoomNormal();
            break;
        case 43:
            r.zoomIn();
            break;
        case 45:
            r.zoomOut();
            break;
        case 27:
            r.close();
        default:
            return
            }
            N(ap)
    }
    function Z(){
    F(this)
    }
    function ag(){
    ae(this)
    }
    function F(ap,G){
    G=G||{};
    
    G.start=G.start||0;
    G.end=G.end||100;
    ak(ap,G)
    }
    function ae(ap,G){
    G=G||{};
    
    G.start=G.start||100;
    G.end=G.end||0;
    ak(ap,G)
    }
    function ak(aq,ap){
    if(J.animate){
        var G=new K(aq,ap.frames||5,ap.speed||40);
        G.addThread(z,ap.start,ap.end);
        G.onStart=ap.onStart;
        G.onEnd=ap.onEnd;
        G.run()
        }else{
        aa(aq,ap.end);
        if(typeof ap.onEnd=="function"){
            ap.onEnd()
            }
        }
}
function N(G){
    if(G.preventDefault){
        G.preventDefault()
        }else{
        G.returnValue=false
        }
    }
function m(aq,ap,G){
    if(Y.addEventListener){
        m=function(au,at,ar){
            au.addEventListener(at,ar,false)
            }
        }else{
    if(Y.attachEvent){
        m=function(au,at,ar){
            var av=function(){
                ar.call(au,Y.event)
                };
                
            au.attachEvent("on"+at,av)
            }
        }
}
return m(aq,ap,G)
}
function t(aq,ap){
    for(var G in ap){
        aq[G]=ap[G]
        }
    }
    function ab(ap,G){
    if(ap){
        t(ap.style,G)
        }
    }
function C(){
    var ar,ap,aq,au,G=R.body,at=R.documentElement;
    if(Y.innerHeight&&Y.scrollMaxY){
        ar=G.scrollWidth;
        ap=Y.innerHeight+Y.scrollMaxY
        }else{
        if(G.scrollHeight>G.offsetHeight){
            ar=G.scrollWidth;
            ap=G.scrollHeight
            }else{
            if(at&&at.scrollHeight>at.offsetHeight){
                ar=at.scrollWidth;
                ap=at.scrollHeight
                }else{
                ar=G.offsetWidth;
                ap=G.offsetHeight
                }
            }
    }
if(Y.innerHeight){
    aq=Y.innerWidth;
    au=Y.innerHeight
    }else{
    if(at&&at.clientHeight){
        aq=at.clientWidth;
        au=at.clientHeight
        }else{
        if(G){
            aq=G.clientWidth;
            au=G.clientHeight
            }
        }
}
return[ar<aq?aq:ar,ap<au?au:ap,aq,au]
}
function W(){
    var aq=0,ap=0,G=R.body,ar=R.documentElement;
    if(typeof(Y.pageYOffset)=="number"){
        ap=Y.pageYOffset;
        aq=Y.pageXOffset
        }else{
        if(G&&(G.scrollLeft||G.scrollTop)){
            ap=G.scrollTop;
            aq=G.scrollLeft
            }else{
            if(ar&&(ar.scrollLeft||ar.scrollTop)){
                ap=ar.scrollTop;
                aq=ar.scrollLeft
                }
            }
    }
return[aq,ap]
}
function X(aq,G){
    var ar=R.defaultView;
    if(aq.style[G]){
        return aq.style[G]
        }else{
        if(aq.currentStyle){
            return aq.currentStyle[G]
            }else{
            if(ar&&ar.getComputedStyle){
                G=G.replace(/([A-Z])/g,"-$1");
                var ap=ar.getComputedStyle(aq,"");
                return ap&&ap.getPropertyValue(G.toLowerCase())
                }
            }
    }
return null
}
function aa(){
    aa=arguments[0].filters?function(G,ap){
        G.style.filter="alpha(opacity="+ap+")"
        }:function(G,ap){
        G.style.opacity=ap/100
        };
        
    aa(arguments[0],arguments[1])
    }
    function ao(aq,ap){
    var av=R.createElement(aq);
    if(ap){
        for(var at in ap){
            if(at=="events"){
                for(var ar in ap[at]){
                    m(av,ar,ap[at][ar])
                    }
                }else{
            var aw=ap[at];
            if(typeof aw!="undefined"){
                if(at=="class"){
                    av.className=aw
                    }else{
                    av.setAttribute(at,aw)
                    }
                }
        }
        }
}
for(var au=2,G=arguments.length;au<G;au++){
    switch(typeof arguments[au]){
        case"string":
            av.innerHTML+=arguments[au];
            break;
        case"object":
            av.appendChild(arguments[au])
            }
        }
return av
}
function j(){
    if(!H){
        if(!R.body){
            return setTimeout(j,13)
            }
            H=true;
        r.init()
        }
    }
function V(){
    if(a){
        return
    }
    a=true;
    if(R.readyState==="complete"){
        return j()
        }
        if(R.addEventListener){
        R.addEventListener("DOMContentLoaded",function ap(){
            R.removeEventListener("DOMContentLoaded",ap,false);
            j()
            },false)
        }else{
        if(R.attachEvent){
            R.attachEvent("onreadystatechange",function at(){
                if(document.readyState==="complete"){
                    R.detachEvent("onreadystatechange",at);
                    j()
                    }
                });
        var aq=false;
        try{
            aq=Y.frameElement==null
            }catch(ar){}
        if(R.documentElement.doScroll&&aq){
            function G(){
                if(H){
                    return
                }
                try{
                    R.documentElement.doScroll("left")
                    }catch(au){
                    setTimeout(G,1);
                    return
                }
                j()
                }
                G()
            }
        }
}
}
function K(aq,ap,G){
    if(!aq){
        return null
        }
        this.E=aq;
    this.N=ap||0;
    this.F=[];
    this.S=G||10
    }
    K.prototype={
    addThread:function(at,aq,G,ar,ap){
        if(!at||G===undefined||G===null){
            return
        }
        if(at!=z){
            aq=parseFloat(X(this.E,at))
            }
            ar=ar||0;
        ap=ap||this.N;
        var aw=this.F,av=(ap-ar)||1,au=(aq-G)/av;
        for(;ar<ap;ar++){
            if(!aw[ar]){
                aw[ar]={}
            }
            aw[ar][at]=(aq-=au)
            }
            return this
    },
P:function(){
    var ar=this.F.shift(),ap=[],aq=p;
    if(ar){
        for(var G in ar){
            ap.push(G=="opacity"?(aq?"filter: alpha(opacity="+ar[G]+")":"opacity: "+ar[G]/100):G+": "+ar[G]+"px")
            }
            this.E.style.cssText+="; "+ap.join("; ")
        }else{
        if(typeof this.onEnd=="function"){
            this.onEnd()
            }
            clearInterval(this.I)
        }
    },
run:function(){
    clearInterval(this.I);
    this.P();
    if(typeof this.onStart=="function"){
        this.onStart()
        }
        var G=this;
    if(this.N>1){
        this.I=setInterval(function(){
            G.P()
            },this.S)
        }
    }
};

return r
})();

function dtclose() {
    $(".datepicker").fadeOut();
    return false;
}
function blockHeight()
{
	var d = $("body.index .daily-spa-special").height();
	var h = $("body.index .hot-offer").height();
	var f = $("body.index .fetured-spa").height();		
	var m = Math.max(d,h,f);

	$("body.index .daily-spa-special").height(m);
	$("body.index .hot-offer").height(m);
	$("body.index .fetured-spa").height(m);		


}
function blockHeightdesc()
{
	var ddes = $("body.index .daily-spa-special div.desc").height();
	var hdes = $("body.index .hot-offer div.desc").height();
	var fdes = $("body.index .fetured-spa div.desc").height();		
	var mdes = Math.max(ddes,hdes,fdes);

	$("body.index .daily-spa-special div.desc").height(mdes);
	$("body.index .hot-offer div.desc").height(mdes);
	$("body.index .fetured-spa div.desc").height(mdes);		


}



/* *********************************
        ON LOAD
********************************* */
window.onload = function(){
    Custom.init();
	blockHeight();
	blockHeightdesc();
    customchkbox();
    customchkbox2();
    customchkbox3();
    lightgallery.init();
    if (document.getElementById("destination_map")){
        initialize();
    }
}

$(document).ready(function() {
    $("a.learn-more").click(function() {
        $("#popup_wrapper").fadeIn();
        return false;
    })


    $("a.btn_close-popup").click(function() {
        $("#popup_wrapper").fadeOut();
        return false;
    })						   
    $("a.learn-more-2").click(function() {
        $("#popup_wrapper-2").fadeIn();
        return false;
    })


    $("a.btn_close-popup").click(function() {
        $("#popup_wrapper-2").fadeOut();
        return false;
    })						   
    $("a.learn-more-3").click(function() {
        $("#popup_wrapper-3").fadeIn();
        return false;
    })


    $("a.btn_close-popup").click(function() {
        $("#popup_wrapper-3").fadeOut();
        return false;
    })						   
								   
    $("#footer ul#subnav li.ns a ").click(function() {
        $("#popup_wrapper-4").fadeIn();
        return false;
    })

    $("a.btn_close-popup").click(function() {
        $("#popup_wrapper-4").fadeOut();
        return false;
    })

						   
    $("dl.opentime dd input").change(function() {
        var Father = $(this).parent().parent();
        if ($(this).parent("label").is(".checkbox-on")) {
            $(Father).addClass("closed");
            $(Father).children("select").attr("disabled" , "disabled")
            }
        else {
            $(Father).removeClass("closed");
            $(Father).children("select").attr("disabled" , "")
            }
        $(function () {
            if ($.browser.msie) {
                $('input:checkbox').click(function () {
                    this.blur();
                    this.focus();
                });
            }
        });
    })
    $("div.view-example a").click(function() {
        $("#certpopup").fadeIn();
        return false;
    })
    $("a.btn_close-popup").click(function() {
        $("#certpopup").fadeOut();
        return false;
    })

    if (document.getElementById("sign_up_email")){
        if (document.getElementById("sign_up_email").value != ""){
            document.getElementById('sign_up_email').className='filled';
        }
        document.getElementById('sign_up_email').onfocus=function(){
            this.className='filled';
        }
        document.getElementById('sign_up_email').onblur=function(){
            if(this.value!=''){
                this.className='filled';
            } else {
                this.className='';
            }
        }
}

if (document.getElementById("sign_up_zip")) {
    if (document.getElementById("sign_up_zip").value != ""){
        document.getElementById('sign_up_zip').className='filled';
    }
    document.getElementById('sign_up_zip').onfocus=function(){
        this.className='filled';
    }
    document.getElementById('sign_up_zip').onblur=function(){
        if(this.value!=''){
            this.className='filled';
        } else {
            this.className='';
        }
    }
}
      
if (document.getElementById("customer_password")) {	  
    if (document.getElementById("customer_password").value != ""){
        document.getElementById('customer_password').className='filled';
    }
    document.getElementById('customer_password').onfocus=function(){
        this.className='filled';
    }
    document.getElementById('customer_password').onblur=function(){
        if(this.value!=''){
            this.className='filled';
        } else {
            this.className='';
        }
    }
}

if (document.getElementById("spa_owner_password")) {
    if (document.getElementById("spa_owner_password").value != ""){
        document.getElementById('spa_owner_password').className='filled';
    }
    document.getElementById('spa_owner_password').onfocus=function(){
        this.className='filled';
    }
    document.getElementById('spa_owner_password').onblur=function(){
        if(this.value!=''){
            this.className='filled';
        } else {
            this.className='';
        }
    }
}

if (document.getElementById("customer_email")) {
    if (document.getElementById("customer_email").value != ""){
        document.getElementById('customer_email').className='filled';
    }
    document.getElementById('customer_email').onfocus=function(){
        this.className='filled';
    }
    document.getElementById('customer_email').onblur=function(){
        if(this.value!=''){
            this.className='filled';
        } else {
            this.className='';
        }
    }
}

if (document.getElementById("spa_owner_email")) {
    if (document.getElementById("spa_owner_email").value != ""){
        document.getElementById('spa_owner_email').className='filled';
    }
    document.getElementById('spa_owner_email').onfocus=function(){
        this.className='filled';
    }
    document.getElementById('spa_owner_email').onblur=function(){
        if(this.value!=''){
            this.className='filled';
        } else {
            this.className='';
        }
    }
}
  
});




