﻿function PerformSearch() {
    var queryElement = document.getElementById('txtQuery');
    if (queryElement) {
        if (queryElement.value.length < 3) {
            alert('Search query must be longer than 2 characters'); return;
        }
        else {
            location.href = 'searchresults.aspx?q=' + escape(queryElement.value);
        }
    }
}
//
// Set the default button for the site
//
function ExecuteDefaultButton(event) {
    if (!event) var event = window.event;
    if (event.keyCode == 13) {
        event.preventDefault ? event.preventDefault() : event.returnValue = false; event.cancel = true;
        if (document.getElementById('btnSearch'))
            document.getElementById('btnSearch').click();
    }
}
function setEnterKey() {
    document.onkeydown = ExecuteDefaultButton;
    if (window.addEventListener) {
        window.addEventListener('keydown', ExecuteDefaultButton, false);
    } else if (window.attachEvent) {
        window.attachEvent('onkeydown', ExecuteDefaultButton);
    }
}
function PrintPrev(url) {
    if (url)
        window.open(url, "Print_Preview", "");
}
function Toggle(elmId, me) {
    LoadCategory(elmId);
    if (me.className == 'menuTDSelected')
        return;
    $('td.menuTDSelected').each(function() {
        $(this).removeClass('menuTDSelected');
        $(this).addClass('menuTD');
        var currSub = $(this).attr('sub');
        if (currSub != 'undefined') {
            $('#' + currSub).slideUp(500);
        }
    });
    $(me).removeClass('menuTD');
    $(me).addClass('menuTDSelected');
    $('#sub_' + elmId).slideDown(500);
}
function ResetTopMenu() {
    ResetSlide();
    ResetSideMenu();
    $('td.topMenuSelected').each(function() {
        $(this).removeClass('topMenuSelected');
        $(this).addClass('topMenu');
    });
}
function ResetSideMenu() {
    $('div.subMenuDivSelected').each(function() {
        $(this).removeClass('subMenuDivSelected');
        $(this).addClass('subMenuDiv');
    });
}
function ResetSlide() {
    window.clearTimeout(timeoutID);
    activeSlide = false;
}
function LoadSubCategory(id, me) {
    ResetTopMenu();
    $(me).removeClass('subMenuDiv');
    $(me).addClass('subMenuDivSelected');
    $('#tdContent').hide(1, function() {
        $('#divLoader').show();
        Ajax.ExecuteRequest("contentloader.aspx?scid=" + id, true, null, loadCallback);
    });
}
function LoadCategory(id) {
    ResetTopMenu();
    $('#tdContent').hide(1, function() {
        $('#divLoader').show();
        Ajax.ExecuteRequest("contentloader.aspx?cid=" + id, true, null, loadCallback);
    });
}
function LoadContent(id) {
    ResetTopMenu();
    $('#tdContent').hide(1, function() {
        $('#divLoader').show();
        Ajax.ExecuteRequest("contentloader.aspx?id=" + id, true, null, loadCallback);
    });
}
function LoadGallery(gid, id) {
    ResetSlide();
    $('#tdContent').hide(1, function() {
        $('#divLoader').show();
        Ajax.ExecuteRequest(String.Format("contentloader.aspx?gid={0}&id={1}", gid, id), true, null, loadCallback);
    });
}
function loadCallback(responseText) {
    var parts = responseText.split('|');
    if (parts[0] == "link") {
       // if (parts[2] != "_blank") window.location.href = parts[1];
        // else window.open(parts[1], "", "");
        window.location.href = parts[1];
        return;
    }
    else {
        $('#tdContent').show();
        SetInnerHTML('tdContent', parts[0]);
        if (parts.length > 1)
            document.title = parts[1];
    }
    $('#divLoader').hide();
}
/* Gallery events */
var currenGallery;
function ResetSquare() {
    $('img.imgLink').each(function() {
        $(this).attr("src", "images/square.jpg")
    });
}
function LoadImage(imageId, galleryId) {
    $getElement('prog').style.display = 'block';
    currenGallery = galleryId;
    ResetSquare();
    var curSq = $getElement("sq_" + imageId);
    if (curSq) curSq.src = "images/square_b.jpg";
    var url = String.Format("galleryhandler.ashx?imgId={0}&galleryId={1}", imageId, galleryId);
    if (Cache.Contains(imageId)) {
        callBack(Cache.Get(imageId));
    } else {
        Ajax.ExecuteRequest(url, true, null, callBack);
    }
    window.location.href = window.location.href.replace(/(#.*)?$/, "#") + String.Format("{0}|{1}", imageId, galleryId);
}
// prev, next, filename, title,description, (index + 1), imgId
var firstTime = true;

function callBack(retVal) {
    var parts = retVal.split('|');
    //   if (firstTime) {
    SetInnerHTML("imgHolder", "<img src='image.axd?src=~/Uploaded_Files/galleries/" + parts[2] + "&h=290&w=560&q=95' onload='HideLoader();' class='img_g' id='imgH' />");
    //       firstTime = false;
    //    }
    //   else SwapEffect("<img src='image.axd?src=~/Uploaded_Files/galleries/" + parts[2] + "&h=290&w=560&q=95' onload='HideLoader();' class='img_g' id='imgH' />");

    SetInnerHTML("spanImageIndex", parts[5]);
    SetInnerHTML("spanTitle", parts[3]);
    if (parts[0] == "-1") { $getElement('imgBack').onclick = Function.emptyMethod; $getElement('imgBack').style.cursor = 'default'; }
    else { $getElement('imgBack').onclick = function() { LoadImage(parts[0], currenGallery); }; $getElement('imgBack').style.cursor = 'pointer'; }
    if (parts[1] == "-1") { $getElement('imgNext').onclick = Function.emptyMethod; $getElement('imgNext').style.cursor = 'default'; }
    else { $getElement('imgNext').onclick = function() { LoadImage(parts[1], currenGallery); }; $getElement('imgNext').style.cursor = 'pointer'; }

    $getElement('imgEnlarge').onclick = function() { EnlargeImage(parts[2]); }
    $getElement('imgHolder').onclick = function() { EnlargeImage(parts[2]); }

    Cache.Insert(parts[6], retVal);

    if (parts[1] != "-1") { Preload(parts[1], currenGallery); }
    if (parts[0] != "-1") { setTimeout('Preload(' + parts[0] + "," + currenGallery + ');', 1500); }
}

function Preload(id, galleryId) {
    if (Cache.Contains(id)) return;
    var url = String.Format("galleryhandler.ashx?imgId={0}&galleryId={1}", id, galleryId);
    Ajax.ExecuteRequest(url, true, null, PreloadCallback);
}
function PreloadCallback(s) {
    var parts = s.split('|');
    var img = new Image();
    img.src = "image.axd?src=~/Uploaded_Files/galleries/" + parts[2] + "&h=290&w=560&q=95";
    Cache.Insert(parts[6], s);
}

function HideLoader() {
    if ($getElement('prog')) $getElement('prog').style.display = 'none';
}
function ShowLoader() {
    if ($getElement('prog')) $getElement('prog').style.display = 'block';
}
function SwapEffect(s) {
    var imgHolder1 = document.getElementById("imgHolder1");
    var imgHolder = document.getElementById("imgHolder");
   // alert("before: " + imgHolder1.style.display);
    if (imgHolder1.style.display === 'none') {
        SetInnerHTML(imgHolder1, s);
        $('#imgHolder').fadeOut(500);
        $('#imgHolder1').fadeIn(500);
    }
    else {
        SetInnerHTML(imgHolder, s);
        $('#imgHolder1').fadeOut(500);
        $('#imgHolder').fadeIn(500);
    }
    // FadeOut('imgHolder', 10, function() {
    //     SetInnerHTML('imgHolder', s);
    //     FadeIn('imgHolder', 10, null);
    //   });

}

function EnlargeImage(fileName) {
    document.body.style.overflow = 'hidden';
    ShowLoader();
    var myImage = new Image();
    myImage.name = "someimg";
    myImage.onload = MaximizeImage;
    var height = document.body.clientHeight - 50;
    myImage.src = String.Format("image.axd?src=~/Uploaded_Files/galleries/{0}&h={1}&q=100", fileName, height);
}
function EnlargeGraveImage(fileName) {
    document.body.style.overflow = 'hidden';
    ShowLoader();
    var myImage = new Image();
    myImage.name = "someimg";
    myImage.onload = MaximizeImage;
    var height = document.body.clientHeight - 50;
    myImage.src = String.Format("image.axd?src=~/Uploaded_Files/images/graves/{0}&h={1}&q=100", fileName, height);
}
function MaximizeImage() {
    window.scrollTo(0, 0);
    var width = document.body.clientWidth + document.body.scrollLeft;
    var height = document.body.clientHeight + document.body.scrollTop;

    var backGroundLayer = document.createElement('div');
    backGroundLayer.style.zIndex = 2;
    backGroundLayer.id = 'backGroundLayer';
    backGroundLayer.onclick = CloseFullScreen;
    backGroundLayer.style.position = 'absolute';
    backGroundLayer.style.top = '0px';
    backGroundLayer.style.left = '0px';
    backGroundLayer.style.height = height + 'px';
    backGroundLayer.style.width = width + 'px';
    backGroundLayer.style.backgroundColor = 'black';
    backGroundLayer.style.opacity = '.5';
    backGroundLayer.style.filter += ("progid:DXImageTransform.Microsoft.Alpha(opacity=50)");
    document.body.appendChild(backGroundLayer);

    var size = { 'height': this.height, 'width': this.width };
    var imageLayer = document.createElement('div');
    imageLayer.name = 'imageLayer';
    imageLayer.id = 'imageLayer';
    imageLayer.onclick = CloseFullScreen;
    imageLayer.style.overflow = 'auto';
    imageLayer.style.padding = '0px';
    imageLayer.style.height = (size.height + 20) + 'px';
    imageLayer.style.width = (size.width + 20) + 'px';
    imageLayer.style.position = 'absolute';
    imageLayer.style.zIndex = 3;
    imageLayer.style.overflow = 'hidden';
    imageLayer.style.backgroundColor = 'white';
    imageLayer.style.border = '4px solid silver';
    imageLayer.innerHTML = '<div style="border:solid 5px white;text-aligh:center;"><a href="#" title="Close" id="zoom_close" style="position:absolute; top:0; left:0;"> \
                    <img src="images/closebox.png" alt="Close" style="border:none; margin:0; padding:0;" /> \
                  </a><img src="' + this.src + '" /></div>';
    imageLayer.style.top = '10px';
    imageLayer.style.left = (width / 2) - (size.width / 2) + 'px';
    document.body.appendChild(imageLayer);
    HideLoader();
}

//
//  Close the full message  view
//
function CloseFullScreen() {
    document.body.removeChild($getElement('backGroundLayer'));
    document.body.removeChild($getElement('imageLayer'));
    document.body.style.overflow = '';
}

var activeSlide = false;
var timeoutID;
function SlideImage(imageId, galleryId) {
    if (activeSlide == false) return;
    currenGallery = galleryId;
    var url = String.Format("galleryhandler.ashx?imgId={0}&galleryId={1}", imageId, galleryId);
    var retVal = Ajax.ExecuteRequest(url, false, null, null);
    var parts = retVal.split('|');
    var imgUrl = "image.axd?src=~/Uploaded_Files/galleries/" + parts[2] + "&h=290&w=560&q=95";
    var imgPre = new Image();
    imgPre.onload = function() {
        SwapEffect("<img src='" + imgUrl + "' style='border: 1px solid #B7B7B7;' vspace='5' />");
        setTimeout( function(){ SetInnerHTML("spanTitle", parts[3]) },600);
    }
    imgPre.src = imgUrl;
    if (parts[1] != "-1") {
        timeoutID = setTimeout(String.Format("SlideImage({0},{1});", parts[1], currenGallery), 5000);
    }
}
