/*
 * DISABLE CONSOLE CALLS IN PRODUCTION, OR IF CONSOLE NOT FOUND
 */
var DEBUG_MODE = true;
// Set this value to false for production
if (!((document.domain == "localhost") || (document.domain == "127.0.0.1"))){
    DEBUG_MODE = false;
}

if(typeof(console) === 'undefined') {
    console = {}
}

if(!DEBUG_MODE || typeof(console.log) === 'undefined') {
    // FYI: Firebug might get cranky...
    console.log = console.error = console.info = console.debug = console.warn = console.trace = console.dir = console.dirxml = console.group = console.groupEnd = console.time = console.timeEnd = console.assert = console.profile = function() {};
}

/* columnizer */
(function($){$.fn.columnize=function(options){var defaults={width:400,columns:false,buildOnce:false,overflow:false,doneFunc:function(){},target:false,ignoreImageLoading:true,float:"left",lastNeverTallest:false};var options=$.extend(defaults,options);return this.each(function(){var $inBox=options.target?$(options.target):$(this);var maxHeight=$(this).height();var $cache=$('<div></div>');var lastWidth=0;var columnizing=false;$cache.append($(this).children().clone(true));if(!options.ignoreImageLoading&&!options.target){if(!$inBox.data("imageLoaded")){$inBox.data("imageLoaded",true);if($(this).find("img").length>0){var func=function($inBox,$cache){return function(){if(!$inBox.data("firstImageLoaded")){$inBox.data("firstImageLoaded","true");$inBox.empty().append($cache.children().clone(true));$inBox.columnize(options);}}}($(this),$cache);$(this).find("img").one("load",func);$(this).find("img").one("abort",func);return;}}}
$inBox.empty();columnizeIt();if(!options.buildOnce){$(window).resize(function(){if(!options.buildOnce&&$.browser.msie){if($inBox.data("timeout")){clearTimeout($inBox.data("timeout"));}
$inBox.data("timeout",setTimeout(columnizeIt,200));}else if(!options.buildOnce){columnizeIt();}else{}});}
function columnize($putInHere,$pullOutHere,$parentColumn,height){while($parentColumn.height()<height&&$pullOutHere[0].childNodes.length){$putInHere.append($pullOutHere[0].childNodes[0]);}
if($putInHere[0].childNodes.length==0)return;var kids=$putInHere[0].childNodes;var lastKid=kids[kids.length-1];$putInHere[0].removeChild(lastKid);var $item=$(lastKid);if($item[0].nodeType==3){var oText=$item[0].nodeValue;var counter2=options.width/18;if(options.accuracy)
counter2=options.accuracy;var columnText;var latestTextNode=null;while($parentColumn.height()<height&&oText.length){if(oText.indexOf(' ',counter2)!='-1'){columnText=oText.substring(0,oText.indexOf(' ',counter2));}else{columnText=oText;}
latestTextNode=document.createTextNode(columnText);$putInHere.append(latestTextNode);if(oText.length>counter2){oText=oText.substring(oText.indexOf(' ',counter2));}else{oText="";}}
if($parentColumn.height()>=height&&latestTextNode!=null){$putInHere[0].removeChild(latestTextNode);oText=latestTextNode.nodeValue+oText;}
if(oText.length){$item[0].nodeValue=oText;}else{return false;}}
if($pullOutHere.children().length){$pullOutHere.prepend($item);}else{$pullOutHere.append($item);}
return $item[0].nodeType==3;}
function split($putInHere,$pullOutHere,$parentColumn,height){if($pullOutHere.children().length){$cloneMe=$pullOutHere.children(":first");$clone=$cloneMe.clone(true);if($clone.attr("nodeType")==1&&!$clone.hasClass("dontend")){$putInHere.append($clone);if($clone.is("img")&&$parentColumn.height()<height+20){$cloneMe.remove();}else if(!$cloneMe.hasClass("dontsplit")&&$parentColumn.height()<height+20){$cloneMe.remove();}else if($clone.is("img")||$cloneMe.hasClass("dontsplit")){$clone.remove();}else{$clone.empty();if(!columnize($clone,$cloneMe,$parentColumn,height)){if($cloneMe.children().length){split($clone,$cloneMe,$parentColumn,height);}}
if($clone.get(0).childNodes.length==0){$clone.remove();}}}}}
function singleColumnizeIt(){if($inBox.data("columnized")&&$inBox.children().length==1){return;}
$inBox.data("columnized",true);$inBox.data("columnizing",true);$inBox.empty();$inBox.append($("<div class='first last column' style='width:98%; padding: 3px; float: "+options.float+";'></div>"));$col=$inBox.children().eq($inBox.children().length-1);$destroyable=$cache.clone(true);if(options.overflow){targetHeight=options.overflow.height;columnize($col,$destroyable,$col,targetHeight);if(!$destroyable.children().find(":first-child").hasClass("dontend")){split($col,$destroyable,$col,targetHeight);}
while(checkDontEndColumn($col.children(":last").length&&$col.children(":last").get(0))){var $lastKid=$col.children(":last");$lastKid.remove();$destroyable.prepend($lastKid);}
var html="";var div=document.createElement('DIV');while($destroyable[0].childNodes.length>0){var kid=$destroyable[0].childNodes[0];for(var i=0;i<kid.attributes.length;i++){if(kid.attributes[i].nodeName.indexOf("jQuery")==0){kid.removeAttribute(kid.attributes[i].nodeName);}}
div.innerHTML="";div.appendChild($destroyable[0].childNodes[0]);html+=div.innerHTML;}
var overflow=$(options.overflow.id)[0];overflow.innerHTML=html;}else{$col.append($destroyable);}
$inBox.data("columnizing",false);if(options.overflow){options.overflow.doneFunc();}}
function checkDontEndColumn(dom){if(dom.nodeType!=1)return false;if($(dom).hasClass("dontend"))return true;if(dom.childNodes.length==0)return false;return checkDontEndColumn(dom.childNodes[dom.childNodes.length-1]);}
function columnizeIt(){if(lastWidth==$inBox.width())return;lastWidth=$inBox.width();var numCols=Math.round($inBox.width()/options.width);if(options.columns)numCols=options.columns;if(numCols<=1){return singleColumnizeIt();}
if($inBox.data("columnizing"))return;$inBox.data("columnized",true);$inBox.data("columnizing",true);$inBox.empty();$inBox.append($("<div style='width:"+(Math.round(100/numCols)-2)+"%; padding: 3px; float: "+options.float+";'></div>"));$col=$inBox.children(":last");$col.append($cache.clone());maxHeight=$col.height();$inBox.empty();var targetHeight=maxHeight/numCols;var firstTime=true;var maxLoops=3;var scrollHorizontally=false;if(options.overflow){maxLoops=1;targetHeight=options.overflow.height;}else if(options.height&&options.width){maxLoops=1;targetHeight=options.height;scrollHorizontally=true;}
for(var loopCount=0;loopCount<maxLoops;loopCount++){$inBox.empty();var $destroyable;try{$destroyable=$cache.clone(true);}catch(e){$destroyable=$cache.clone();}
$destroyable.css("visibility","hidden");for(var i=0;i<numCols;i++){var className=(i==0)?"first column":"column";var className=(i==numCols-1)?("last "+className):className;$inBox.append($("<div class='"+className+"' style='width:"+(Math.round(100/numCols)-2)+"%; float: "+options.float+";'></div>"));}
var i=0;while(i<numCols-(options.overflow?0:1)||scrollHorizontally&&$destroyable.children().length){if($inBox.children().length<=i){$inBox.append($("<div class='"+className+"' style='width:"+(Math.round(100/numCols)-2)+"%; float: "+options.float+";'></div>"));}
var $col=$inBox.children().eq(i);columnize($col,$destroyable,$col,targetHeight);if(!$destroyable.children().find(":first-child").hasClass("dontend")){split($col,$destroyable,$col,targetHeight);}else{}
while(checkDontEndColumn($col.children(":last").length&&$col.children(":last").get(0))){var $lastKid=$col.children(":last");$lastKid.remove();$destroyable.prepend($lastKid);}
i++;}
if(options.overflow&&!scrollHorizontally){var IE6=false;var IE7=(document.all)&&(navigator.appVersion.indexOf("MSIE 7.")!=-1);if(IE6||IE7){var html="";var div=document.createElement('DIV');while($destroyable[0].childNodes.length>0){var kid=$destroyable[0].childNodes[0];for(var i=0;i<kid.attributes.length;i++){if(kid.attributes[i].nodeName.indexOf("jQuery")==0){kid.removeAttribute(kid.attributes[i].nodeName);}}
div.innerHTML="";div.appendChild($destroyable[0].childNodes[0]);html+=div.innerHTML;}
var overflow=$(options.overflow.id)[0];overflow.innerHTML=html;}else{$(options.overflow.id).empty().append($destroyable.children().clone(true));}}else if(!scrollHorizontally){$col=$inBox.children().eq($inBox.children().length-1);while($destroyable.children().length)$col.append($destroyable.children(":first"));var afterH=$col.height();var diff=afterH-targetHeight;var totalH=0;var min=10000000;var max=0;var lastIsMax=false;$inBox.children().each(function($inBox){return function($item){var h=$inBox.children().eq($item).height();lastIsMax=false;totalH+=h;if(h>max){max=h;lastIsMax=true;}
if(h<min)min=h;}}($inBox));var avgH=totalH/numCols;if(options.lastNeverTallest&&lastIsMax){targetHeight=targetHeight+30;if(loopCount==maxLoops-1)maxLoops++;}else if(max-min>30){targetHeight=avgH+30;}else if(Math.abs(avgH-targetHeight)>20){targetHeight=avgH;}else{loopCount=maxLoops;}}else{$inBox.children().each(function(i){$col=$inBox.children().eq(i);$col.width(options.width+"px");if(i==0){$col.addClass("first");}else if(i==$inBox.children().length-1){$col.addClass("last");}else{$col.removeClass("first");$col.removeClass("last");}});$inBox.width($inBox.children().length*options.width+"px");}
$inBox.append($("<br style='clear:both;'>"));}
$inBox.find('.column').find(':first.removeiffirst').remove();$inBox.find('.column').find(':last.removeiflast').remove();$inBox.data("columnizing",false);if(options.overflow){options.overflow.doneFunc();}
options.doneFunc();}});};})(jQuery);

(function($){var template;var counter=0;$.notifications=function(msg,options){counter++;var settings=$.extend({},$.notifications.defaults,options);if(!template){template=$('<div id="jquery-notifications"></div>').appendTo(document.body);}
var n=$('<div class="'+settings.type+'" id="jquery-notifications-'+counter+'">'+msg+'</div>').hide().appendTo("#jquery-notifications");if(settings.effect=="fade"){n.fadeIn(settings.fadeSpeed);}else{n.slideDown(settings.fadeSpeed);}
if(settings.stick){var close=$('<a href="javascript:void(0);">'+settings.close+'</a>').click(function(){if(settings.effect=="fade"){$(this.parentNode).fadeOut(settings.fadeSpeed,function(){$(this).remove();});}
else{$(this.parentNode).slideUp(settings.fadeSpeed,function(){$(this).remove();});}});close.appendTo(n);}
if(!settings.stick){var notificationsDelayer=delayTimer(settings.timeout);notificationsDelayer(update,{counter:counter,effect:settings.effect,fadeSpeed:settings.fadeSpeed});}};$.notifications.success=function(msg,options){return $.notifications(msg,$.extend({},options,{type:"success"}));};$.notifications.error=function(msg,options){return $.notifications(msg,$.extend({stick:true},options,{type:"error"}));};$.notifications.warning=function(msg,options){return $.notifications(msg,$.extend({},options,{type:"warning"}));};function update(params){if(params.effect=="fade"){$("#jquery-notifications-"+params.counter).fadeOut(params.fadeSpeed,function(){$(this).remove();});}else{$("#jquery-notifications-"+params.counter).slideUp(params.fadeSpeed,function(){$(this).remove();});}}
function delayTimer(delay){var timer;return function(fn,params){timer=clearTimeout(timer);if(fn)
timer=setTimeout(function(){fn(params);},delay);return timer;};}
$.notifications.defaults={type:"notice",timeout:10000,stick:false,fadeSpeed:800,close:"x",effect:"fade"};$.n=$.notifications;})(jQuery);

var gallery_mouseenter_enabled = true;

$.fn.equalizeHeights = function(){
    max_height = Math.max.apply(this, $(this).map(function(){return $(this).height()}).get());
    return $(this).height(max_height);
}

// Array Remove - By John Resig (MIT Licensed)
Array.rm = function(array, from, to) {
  var rest = array.slice((to || from) + 1 || array.length);
  array.length = from < 0 ? array.length + from : from;
  return array.push.apply(array, rest);
};

function rotate(x, y, xm, ym, a) {
    var cos = Math.cos,
        sin = Math.sin,

        a = a * Math.PI / 180, // Convert to radians because that's what
                               // JavaScript likes

        // Subtract midpoints, so that midpoint is translated to origin
        // and add it in the end again
        xr = (x - xm) * cos(a) - (y - ym) * sin(a)   + xm,
        yr = (x - xm) * sin(a) + (y - ym) * cos(a)   + ym;

    return [xr, yr];
}

function initialize() {};

$(document).ready(function(){
    if($("#top-info a").length > 1){
        console.log("Found the top banner images!!!");
        var a = $($("#top-info a")[0]).attr("class").split("_");
        var timeout = 4000;
        if(a.length == 2 && parseInt(a[1], 10)){
            timeout = parseInt(a[1], 10);
        }
        window.setTimeout('switchTopBanner(0)', timeout);
    }

    $("input.button").removeAttr("disabled");
    $("#nav > li").hover(function(){
        $(this).find("ul").show();
    }, function(){
        $(this).find("ul").hide();
    });
    var imgs = $("div.header-image");
    if(imgs.length > 1){
        window.setTimeout("switchImage(0)", 5000);
    }
    $("#accommodation-images > a > img").mouseenter(function(){
       $("div.accommodation-image").hide();
       $($("div.accommodation-image")[$.inArray(this, $("#accommodation-images > a > img"))]).show();
    });
    $("#gallery-images img").mouseenter(function(){
       if(gallery_mouseenter_enabled){
           $("div.gallery-image").hide();
           $($("div.gallery-image")[$.inArray(this, $("#gallery-images img"))]).show();
       }
    });
    $("#gallery-images img").click(function(){
        $("div.gallery-image").hide();
        $($("div.gallery-image")[$.inArray(this, $("#gallery-images img"))]).show();
        gallery_mouseenter_enabled = false;
    });
    $("#gallery-images").mouseleave(function(){
        gallery_mouseenter_enabled = true;
    });
    $("#id_keywords").focus(function(){
        if($(this).val() == 'search eg camp'){
            $(this).val('');
        }
    });
    $('a[rel]').attr("target", "_blank").click(function(){
        if($(this).attr("rel") == "external"){
            return true;
        }
        pageTracker._trackPageview($(this).attr('rel'));
        $.get($(this).attr("rel"));
        return true;
    });
    $('a[href^="http://"]').attr("target", "_blank");

    if($("#content-footer-ads ul li").length < 5){
        $("#content-footer-ads ul").css({
            width:$("#content-footer-ads ul li").length * 181
        });
    }
    $("label[for=id_accept]").css({width:'auto', fontSize:"10px"});
    $("form").submit(function(){
        var f = $(this);
        var fld = f.find("input[type=hidden]");
        var s = fld[0].name;
        var r = s.split("").reverse().join("");
        fld[0].value = r;
        f.find("input.button")
            .val('Sending Request')
            .attr('disabled', 'disabled');
        $.post(f.attr("action"),
            f.serialize(),
            function(data) {
                f.find("input.button")
                    .removeAttr('disabled')
                    .val('Sent');
                if(data.type == 'error'){
                    $.n(data.msg);
                }
                else
                {
                    $.n.success(data.msg);
                }
            },
            'json'
        );
        return false;
    });

    $("#content.wide-sidebar #main, #content.wide-sidebar #sidebar").equalizeHeights();
    $("#main #front-ads ul li").equalizeHeights();

    $("#fb_wall li").each(function(){
        $(this).find("br").remove();
        $('<div class="clear" />').insertBefore($(this).find("img:first").parent());
        //~ if (!$(this).clone().children().remove().end().text().trim()) $(this).children("br").remove();
    })

});
function equalizeContent(){
    $("#main, #sidebar").equalizeHeights();
    console.log("Sidebar height:",$("#sidebar").height());

}
function switchTopBanner(ix) {
    var imgs = $("#top-info a");
    var current = ix;
    if(++ix >= imgs.length) { ix = 0; }
    $(imgs[current]).fadeOut(1000);
    $(imgs[ix]).fadeIn(1000);
    var a = $(imgs[ix]).attr("class").split("_");
    var timeout = 4000;
    if(a.length == 2 && parseInt(a[1], 10)){
        timeout = parseInt(a[1], 10);
    }
    window.setTimeout('switchTopBanner(' + ix + ')', timeout);
}

function switchImage(ix) {
    var imgs = $("div.header-image");
    var current = ix;
    if(++ix >= imgs.length) { ix = 0; }
    $(imgs[current]).fadeOut(1000);
    $(imgs[ix]).fadeIn(1000);
    window.setTimeout('switchImage(' + ix + ')', 5000);
}


