var blnSlidingPanel;
var blnMoveLeft;
var blnAutoSlide;
var objCurrentPanel;
var intAutoPanelNum = 2;
var intCurrentPanel = 1;
var intCurrPanelPos;
var objNextPanel;
var intNextPanel;
var intNextPanelPos;
var intTotalNumPanels;
var intPanelWidth = 900;
var intMovePanelBy = 50;
var objPreviousButton;
var objNextButton;
var timerSlidePanel;
var timeoutLoop;



function startSlidePanel()
{
slidePanel(intAutoPanelNum,true);
}



function slidePanel(intNextPanelNum,blnAutoSliding)
{
if (blnSlidingPanel != true)
    {
    blnSlidingPanel = true;
    blnAutoSlide = blnAutoSliding;

    if (!blnAutoSlide)
    {
    clearTimeout(timeoutLoop);
    }

    objPreviousButton = document.getElementById("btnPrevious");
    objPreviousButton.style.display = "none";

    objNextButton = document.getElementById("btnNext");
    objNextButton.style.display = "none";

    intNextPanel = intNextPanelNum;

    if (intCurrentPanel < intNextPanel)
        {
        blnMoveLeft = true;
        intNextPanelPos = intPanelWidth;
        }
    else
        {
        blnMoveLeft = false;
        intNextPanelPos = -intPanelWidth;
        }

    intCurrPanelPos = 0;

    objCurrentPanel = document.getElementById("homeSlider" + intCurrentPanel);

    objNextPanel = document.getElementById("homeSlider" + intNextPanel);
    objNextPanel.style.left = intNextPanelPos + "px";
    objNextPanel.style.display = "block";

    timerSlidePanel = setInterval(slidingPanel,20);
    }
}



function slidingPanel()
{
if (intNextPanelPos != 0)
    {
    if (blnMoveLeft)
        {
        intNextPanelPos = (intNextPanelPos - intMovePanelBy < 0) ? 0 : intNextPanelPos - intMovePanelBy;
        intCurrPanelPos = intCurrPanelPos - intMovePanelBy;
        }
    else
        {
        intNextPanelPos = (intNextPanelPos + intMovePanelBy > 0) ? 0 : intNextPanelPos + intMovePanelBy;
        intCurrPanelPos = intCurrPanelPos + intMovePanelBy;
        }

    objCurrentPanel.style.left = intCurrPanelPos + "px";
    objNextPanel.style.left = intNextPanelPos + "px";
    }
else
    {
    clearInterval(timerSlidePanel);
    intCurrentPanel = intNextPanel;
    blnSlidingPanel = false;

    ResetPanelButtons();
    }
}



function ResetPanelButtons()
{
if (intNextPanel == 1)
    {
    objPreviousButton.onclick = function(){slidePanel(intTotalNumPanels,false);};
    }
else
    {
    objPreviousButton.onclick = function(){slidePanel(intNextPanel - 1,false);};
    }

if (intNextPanel == intTotalNumPanels)
    {
    objNextButton.onclick = function(){slidePanel(1,false);};
    intAutoPanelNum = 1;
    }
else
    {
    objNextButton.onclick = function(){slidePanel(intNextPanel + 1,false);};
    intAutoPanelNum++;
    }

objPreviousButton.style.display = "block";
objNextButton.style.display = "block";

    if (blnAutoSlide)
    {
    timeoutLoop = setTimeout(startSlidePanel,5000);
    }
}



function initialize()
{
if (GBrowserIsCompatible())
    {
    var map = new GMap2(document.getElementById("map_canvas"));
    map.setCenter(new GLatLng(53.33306418440911, -6.248495578765869), 14);
    map.setUIToDefault();

    var baseIcon = new GIcon(G_DEFAULT_ICON);
    baseIcon.shadow = "http://www.google.com/mapfiles/shadow50.png";
    baseIcon.iconSize = new GSize(20, 34);
    baseIcon.shadowSize = new GSize(37, 34);
    baseIcon.iconAnchor = new GPoint(9, 34);
    baseIcon.infoWindowAnchor = new GPoint(9, 2);

    var letteredIcon = new GIcon(baseIcon);
    letteredIcon.image = "http://www.google.com/mapfiles/markerS.png";

    markerOptions = { icon:letteredIcon };

    var marker = new GMarker(new GLatLng(53.33306418440911, -6.248495578765869), markerOptions);

    GEvent.addListener(marker, "click", function() {
    marker.openInfoWindowHtml("Foreign Tax Returns Ltd<br />31 Mespil Road<br />Dublin 4");
    });

    map.addOverlay(marker);
    }
}



/* ***** VALIDATION ***** */
function getFormElement(arrFormElements, strFormPartID)
{
var objOutput;

for (var intLooper = 0; intLooper < arrFormElements.length; intLooper++)
    {
    if (arrFormElements[intLooper].id.indexOf(strFormPartID) != -1)
        {
        objOutput = arrFormElements[intLooper];
        break;
        }
    }

return objOutput;
}



function checkEnquiry()
{
var blnForm_Validated = true;
var strMessage = "Please fill in the highlighted form fields.\n";

var arrInputs = document.getElementById("contactRight").getElementsByTagName("input");
var arrTextareas = document.getElementById("contactRight").getElementsByTagName("textarea");

var txtFirst_Name = getFormElement(arrInputs, "txtFirst_Name");
var txtSurname = getFormElement(arrInputs, "txtSurname");
var txtEmail = getFormElement(arrInputs, "txtEmail");
var txtPhone = getFormElement(arrInputs, "txtPhone");
var txtEnquiry = getFormElement(arrTextareas, "txtEnquiry");

txtFirst_Name.className = "";
txtSurname.className = "";
txtEmail.className = "";
txtPhone.className = "";
txtEnquiry.className = "";

if (txtFirst_Name.value == "")
    {
    blnForm_Validated = false;
    txtFirst_Name.className = "fillForm";
    }

if (txtSurname.value == "")
    {
    blnForm_Validated = false;
    txtSurname.className = "fillForm";
    }

if (txtEmail.value == "")
    {
    blnForm_Validated = false;
    txtEmail.className = "fillForm";
    }

if (txtPhone.value == "")
    {
    blnForm_Validated = false;
    txtPhone.className = "fillForm";
    }

if (txtEnquiry.value == "")
    {
    blnForm_Validated = false;
    txtEnquiry.className = "fillForm";
    }

if (!blnForm_Validated)
    {
    alert(strMessage);
    }

return blnForm_Validated;
}



function checkCallback()
{
var blnForm_Validated = true;
var strMessage = "Please fill in the highlighted form fields.\n";

var arrInputs = document.getElementById("reqCallback").getElementsByTagName("input");

var txtCB_First_Name = getFormElement(arrInputs, "txtCB_First_Name");
var txtCB_Surname = getFormElement(arrInputs, "txtCB_Surname");
var txtCB_Phone = getFormElement(arrInputs, "txtCB_Phone");
var txtCB_Email = getFormElement(arrInputs, "txtCB_Email");

txtCB_First_Name.className = "";
txtCB_Surname.className = "";
txtCB_Phone.className = "";
txtCB_Email.className = "";

if (txtCB_First_Name.value == "")
    {
    blnForm_Validated = false;
    txtCB_First_Name.className = "fillForm";
    }

if (txtCB_Surname.value == "")
    {
    blnForm_Validated = false;
    txtCB_Surname.className = "fillForm";
    }

if (txtCB_Phone.value == "")
    {
    blnForm_Validated = false;
    txtCB_Phone.className = "fillForm";
    }

if (txtCB_Email.value == "")
    {
    blnForm_Validated = false;
    txtCB_Email.className = "fillForm";
    }

if (!blnForm_Validated)
    {
    alert(strMessage);
    }

return blnForm_Validated;
}
/* ***** VALIDATION ***** */



function doWebsiteBy(blnOnOff, strPath)
{
if (blnOnOff == 1)
    {
    document.getElementById("websiteByNames").className = "showThis";
    document.getElementById("seraphimImg").src = strPath + "images/seraphim1.gif";
    document.getElementById("demonDesignImg").src = strPath + "images/demondesign1.gif";
    }
else
    {
    document.getElementById("websiteByNames").className = "hideThis";
    document.getElementById("seraphimImg").src = strPath + "images/seraphim.gif";
    document.getElementById("demonDesignImg").src = strPath + "images/demondesign.gif";
    }
}



/* ***** REQUEST CALLBACK ***** */
function showCallBack()
{
var divReqCallback = document.getElementById("reqCallback");
divReqCallback.style.display = "block";

centerElementOnScreen(divReqCallback);
}



function closeCallBack()
{
document.getElementById("reqCallback").style.display = "none";
}


function centerElementOnScreen(element)
{
var scrollTop = document.body.scrollTop;
var scrollLeft = document.body.scrollLeft;
var viewPortHeight = document.body.clientHeight;
var viewPortWidth = document.body.clientWidth;

if (document.compatMode == "CSS1Compat")
    {
    scrollTop = document.documentElement.scrollTop;
    scrollLeft = document.documentElement.scrollLeft;
    viewPortHeight = document.documentElement.clientHeight;
    viewPortWidth = document.documentElement.clientWidth;
    }

var topOffset = Math.ceil(viewPortHeight/2 - element.offsetHeight/2);
var leftOffset = Math.ceil(viewPortWidth/2 - element.offsetWidth/2);
//var topOffset = Math.ceil((viewPortHeight/2) - (409/2));
//var leftOffset = Math.ceil((viewPortWidth/2) - (715/2));

var top = scrollTop + topOffset;//w=715 h=409
var left = scrollLeft + leftOffset;

//element.style.position = "absolute";
element.style.top = top + "px";
element.style.left = left + "px";
}
/* ***** REQUEST CALLBACK ***** */