﻿/*
=================================================================================
Stay in touch web control
=================================================================================
*/

function lclOpenContactUsForm() {
    if (document.getElementById("closedForm"))
        document.getElementById("closedForm").style.display = "none";
    if (document.getElementById("openForm"))
        document.getElementById("openForm").style.display = "block";
    if (document.getElementById("thankYou"))
        document.getElementById("thankYou").style.display = "none";
}

function lclCloseContactUsForm() {
    if (document.getElementById("closedForm"))
        document.getElementById("closedForm").style.display = "block";
    if (document.getElementById("openForm"))
        document.getElementById("openForm").style.display = "none";
    if (document.getElementById("thankYou"))
        document.getElementById("thankYou").style.display = "none";
}

function lclShowThankYou() {
    if (document.getElementById("closedForm"))
        document.getElementById("closedForm").style.display = "none";
    if (document.getElementById("openForm"))
        document.getElementById("openForm").style.display = "none";
    if (document.getElementById("thankYou"))
        document.getElementById("thankYou").style.display = "block";
}


function RetrieveYourFavouritesOnComplete(result, txtResult, methodName) {
    document.getElementById("divYourFavourites").innerHTML = result;
}

function YourFavouritesError(error, userContext, methodName) {
    if (error != null)
    //alert(error.get_message());
        alert("An error occured while processing your request");
}

function showTab(tabID, descriptionID) {
    clearTabs();

    document.getElementById(tabID).className = "selected";
    document.getElementById(descriptionID).style.display = "block";
}


function clearTabs() {
    // remove selected class from all tabs
    if (document.getElementById("ctl00_ctl00_ContentPlaceHolderPageFrame_ContentPlaceHolderMain_liEcommTab1"))
        document.getElementById("ctl00_ctl00_ContentPlaceHolderPageFrame_ContentPlaceHolderMain_liEcommTab1").className = "";

    if (document.getElementById("ctl00_ctl00_ContentPlaceHolderPageFrame_ContentPlaceHolderMain_liEcommTab2"))
        document.getElementById("ctl00_ctl00_ContentPlaceHolderPageFrame_ContentPlaceHolderMain_liEcommTab2").className = "";

    if (document.getElementById("ctl00_ctl00_ContentPlaceHolderPageFrame_ContentPlaceHolderMain_liEcommTab3"))
        document.getElementById("ctl00_ctl00_ContentPlaceHolderPageFrame_ContentPlaceHolderMain_liEcommTab3").className = "";

    if (document.getElementById("ctl00_ctl00_ContentPlaceHolderPageFrame_ContentPlaceHolderMain_liEcommTab4"))
        document.getElementById("ctl00_ctl00_ContentPlaceHolderPageFrame_ContentPlaceHolderMain_liEcommTab4").className = "";

    if (document.getElementById("ctl00_ctl00_ContentPlaceHolderPageFrame_ContentPlaceHolderMain_liEventTab1"))
        document.getElementById("ctl00_ctl00_ContentPlaceHolderPageFrame_ContentPlaceHolderMain_liEventTab1").className = "";
        
    if (document.getElementById("ctl00_ctl00_ContentPlaceHolderPageFrame_ContentPlaceHolderMain_liEventTab2"))
        document.getElementById("ctl00_ctl00_ContentPlaceHolderPageFrame_ContentPlaceHolderMain_liEventTab2").className = "";

    if (document.getElementById("ctl00_ctl00_ContentPlaceHolderPageFrame_ContentPlaceHolderMain_liEventTab3"))
        document.getElementById("ctl00_ctl00_ContentPlaceHolderPageFrame_ContentPlaceHolderMain_liEventTab3").className = "";

    if (document.getElementById("ctl00_ctl00_ContentPlaceHolderPageFrame_ContentPlaceHolderMain_liEventTab4"))
        document.getElementById("ctl00_ctl00_ContentPlaceHolderPageFrame_ContentPlaceHolderMain_liEventTab4").className = "";

    if (document.getElementById("ctl00_ctl00_ContentPlaceHolderPageFrame_ContentPlaceHolderMain_liEventTab5"))
        document.getElementById("ctl00_ctl00_ContentPlaceHolderPageFrame_ContentPlaceHolderMain_liEventTab5").className = "";

    // hide all content in tabs
    document.getElementById("divOpt1").style.display = "none";

    if (document.getElementById("divOpt2"))
        document.getElementById("divOpt2").style.display = "none";

    if (document.getElementById("divOpt3"))
        document.getElementById("divOpt3").style.display = "none";

    if (document.getElementById("divOpt4"))
        document.getElementById("divOpt4").style.display = "none";

    if (document.getElementById("divOpt5"))
        document.getElementById("divOpt5").style.display = "none";

}

$(document).ready(function () {
	$('div.blueTabs.cornered ul li ').hover(function () {
		$(this).children('div.ie7Rel').children('div.blueCorner').css('background-image', 'url(\'/Images/MainSite/sitepages/blueCorner-hover.gif\')');
		$(this).css('background-color', '#ffffff');
	}, function () {
		$(this).children('div.ie7Rel').children('div.blueCorner').css('background-image', 'url(\'/Images/MainSite/sitepages/blueCorner.gif\')');
		$(this).css('background-color', '#e5eff9');
	});

	// INDUSTRY TAB POPUP
	$('.cornered ul li').hover(function (e) {
		if ($.browser.msie) {
			if (parseInt($.browser.version) == '6') {
				$('.blueTabs.cornered ul li div').css('position', 'relative');
			}
			if (parseInt($.browser.version) == '7') {
				$('.blueTabs.cornered ul li').css('z-index', '0');
				$('.blueTabs.cornered ul li div').css('z-index', '0');
				$('.blueTabs.cornered ul li').css('position', 'static');
				$(this).children('div').children('span.popupBox').css('top', '20px');
			}
		}
		$(this).children('div').children('span.popupBox').css('z-index', 2000);
		if ((e.pageX + 300) > $(window).width()) {
			$(this).children('div').children('span.popupBox').find('span.topLeftArrow').removeClass('topLeftArrow').addClass('topLeft');
			$(this).children('div').children('span.popupBox').find('span.topRight').removeClass('topRight').addClass('topRightArrow');
			$(this).children('div').children('span.popupBox').css('left', 'auto');
			$(this).children('div').children('span.popupBox').css('right', '215px');
		}
		$(this).children('div').children('span.popupBox').css('display', 'block');
	}, function () {
		$(this).children('div').children('span.popupBox').css('display', 'none');
		if ($.browser.msie) {
			if (parseInt($.browser.version) != '6') {
				$(this).next('li').children('div').children('div.blueCorner').css('display', 'block');
			}
		}

	});


	// Ecomm Special Offer Popup box
	var specialOfferIconHovered = false;
	var specialOfferPopupBoxHovered = false;

	$('div.ecommDetailImage div.itemSpecialOffer span.popupBox, div.itemDesc a span.popupBox, div.ecommContent a span.popupBox').hover(function (e) {
		specialOfferPopupBoxHovered = true;
	}, function (e) {
		specialOfferPopupBoxHovered = false;
		if (!specialOfferIconHovered)
			$(this).hide();
	});

	$('div.ecommDetailImage div.itemSpecialOffer span, div.itemDesc a span.specialOffer, div.ecommContent a span.specialOffer').bind('mouseover', function (e) {
		$('div.itemDesc a').css('z-index', 0);
		$(this).next('span.popupBox').parents('a').css('z-index', 20);
		if ((e.pageX + 300) > $(window).width()) {
			$(this).next('span.popupBox').find('span.topLeftArrow').removeClass('topLeftArrow').addClass('topLeft');
			$(this).next('span.popupBox').find('span.topRight').removeClass('topRight').addClass('topRightArrow');
			$(this).next('span.popupBox').css('left', 'auto');
			$(this).next('span.popupBox').css('right', '34px');
		}
		$(this).next('span.popupBox').css('display', 'block');
	});

	$('div.ecommDetailImage div.itemSpecialOffer span, div.itemDesc a span.specialOffer, div.ecommContent a span.specialOffer').bind('mouseout', function (e) {
		$(this).oneTime(10, function () {
			if (!specialOfferPopupBoxHovered) {
				$('div.itemDesc a').css('z-index', 0);
				$(this).next('span.popupBox').css('display', 'none');
			}
		});
	});


	// hide table rows
	$('div.itemDetailContainer').hide();
	$('tr.detail').addClass("hiddenRow");
	$('tr.evenDetail').addClass("hiddenRow");

	$('a.expandLink').click(function (event) {
		var rowClicked = $(this).closest('tr');
		if (rowClicked.hasClass("expanded")) {
			//	HIDE
			rowClicked.next().children('td').eq(0).children('div.itemDetailContainer').eq(0).slideToggle(700, function () {
				rowClicked.next().toggleClass("hiddenRow");
				rowClicked.toggleClass("expanded");
			});
		} else {
			//	SHOW
			rowClicked.toggleClass("expanded");
			rowClicked.next().toggleClass("hiddenRow");
			rowClicked.next().children('td').eq(0).children('div.itemDetailContainer').eq(0).slideToggle(700);
		}
	});
	//$('#overlay').fadeTo(0, 0);

	// hide the all of the element with class hidden on page load
	$(".hidePanel").hide();
	if ($.browser.msie && ($.browser.version).match(/^6\./)) {
		$('div.basketContentPanel div.basketSummary ul').hide();
	}
	// add the panelSwitch class
	$(".viewMore a").click(function (event) {
		//change link image on basket
		$(this).toggleClass("close");
		//change link text on basket
		if ($(this).html() == 'Show') {
			$(".viewMore a").text("Hide");
			// toggle basket
			$(".basketContentPanel").slideDown('def', function () {
				if ($.browser.msie && ($.browser.version).match(/^6\./)) {
					$('div.basketContentPanel div.basketSummary ul').show();
				}
			});
			// $(".basketContent").show('def');
			// $(".contentTable").show('def');
			// $(".basketSummary").show('def');
			// $(".basketContentBg").show('def');
		} else {
			$(".viewMore a").text("Show");
			// toggle basket
			if ($.browser.msie && ($.browser.version).match(/^6\./)) {
				$('div.basketContentPanel div.basketSummary ul').hide();
			}
			$(".basketContentPanel").slideUp('def');
		};
		return false;
	});
	if ($.browser.msie && ($.browser.version).match(/^6\./)) {
		$(".loginPanelContainer").hide();
		$(".loginPanelContainer").css('visibility', 'visible');
	}
	$(".loginButtonContainer a").click(function (event) {
		$('.loginPanelBg .logonShowHideDiv').show();
		$('.loginPanelBg .passwordShowHideDiv').hide();
		$('.loginPanelContainer').show();
		$('.loginPanelContainer .errorMsg').remove();
		$('.loginPanelContainer li.formError').removeClass('formError');
		$('.loginPanelContainer input').val('');
		return false;
	});

	$(".loginTab a").click(function () {
		$('.loginPanelContainer').hide();
		return false;
	});


	$("a.moreIndustries").click(function (event) {
		//toggle idustries div
		$(this).toggleClass("open");
		$(".moreIndustriesDiv").toggleClass("close");
		return false;
	});

	//    $('a.expandPanelLink').click(function() {
	//        $(this).next('div.expandPanel').slideToggle();
	//        return false;
	//    });
	$('a.expandPanelClose').click(function () {
		$(this).parents('div.expandPanelContainer').children('a.expandPanelLink').click();
		return false;
	});

	//    $(".removeLink a").click(function(event) {
	//        $(this).closest('tr').fadeOut("def");
	//    });

	//	$("a.youDetailsToggle").toggle(function(event){
	//		$('.yourDetailsTable').slideUp("fast");
	//		$(this).html('Add me - I am attending');
	//		$(this).css('background-image','none');
	//		return false;
	//	},function(){
	//		$('.yourDetailsTable').slideDown("fast");
	//		$(this).html('Remove me - I am not attending');
	//		$(this).css('background-image','url(/Pira/Images/ecomm/yourDetailsLink.gif)');
	//		
	//		return false;
	//	});

	// toggle 'my details' on events regs pages
	//    $('.checkBox a').click(function(event) {
	//        var currentImg = $(this).children('img').attr('src');
	//        var pattern = /(\/Pira)*?\/Images\/(.+?)\/ecomm\/checkboxTicked.gif/i;
	//        if (currentImg.match(pattern)) {
	//            $(this).children('img').attr('src', currentImg.replace(pattern, "$1/Images/$2/ecomm/checkboxEmpty.gif"));
	//            $(this).closest('tr').removeClass('selected');
	//        } else {
	//            $(this).children('img').attr('src', currentImg.replace(/(\/Pira)*?\/Images\/(.+?)\/ecomm\/checkboxEmpty.gif/i, "$1/Images/$2/ecomm/checkboxTicked.gif"));
	//            $(this).closest('tr').addClass('selected');
	//        }
	//        //return false;
	//    });

	// define start position
	var activeSpotlightPos = 1;
	// count how many spotlight divs there are - make it max
	var activeSpotlightFinish = $(".panelWrapper").children('div').length;
	// diplay the info in middle
	$("li.numberDisplay").html(activeSpotlightPos + ' / ' + activeSpotlightFinish)
	// fade the previous button to begin with
	$("a.prevPanel").parent().fadeTo("fast", 0.33);
	// hompage spotlight control functions - RIGHT
	$("a.nextPanel").click(function () {
		if (activeSpotlightPos != activeSpotlightFinish) {
			// animate panel
			$(".panelWrapper").animate({
				marginLeft: "-=454px"
			}, 1000);
			activeSpotlightPos++;
			// activeate pervious button
			$("a.prevPanel").parent().fadeTo("fast", 1);
			// display active panel
			$("li.numberDisplay").html(activeSpotlightPos + ' / ' + activeSpotlightFinish)
		}
		// if current active panel is last one fade button
		if (activeSpotlightPos == activeSpotlightFinish) $("a.nextPanel").parent().fadeTo("slow", 0.33);
		return false;
	});
	// hompage spotlight control functions - LEFT
	$("a.prevPanel").click(function () {
		if (activeSpotlightPos != 1) {
			$(".panelWrapper").animate({
				marginLeft: "+=454px"
			}, 1000);
			activeSpotlightPos--;
			// activeate next button
			$("a.nextPanel").parent().fadeTo("fast", 1);
			$("li.numberDisplay").html(activeSpotlightPos + ' / ' + activeSpotlightFinish)
		}
		// if current active panel is first one fade button
		if (activeSpotlightPos == 1) $("a.prevPanel").parent().fadeTo("slow", 0.33);
		return false;
	});

	$("a.overlayOpen").click(
	function (event) {
		if ((navigator.userAgent).search(new RegExp(/msie 6\./i)) != -1) {
			$('select').css('visibility', 'hidden');
			$('#overlay').css("height", ($('body').height() + 18));
		} else {
			$('#overlay').css("height", $('body').height());
		}
		$('#contentHolder div.content').removeClass('overlayed');
		$('#someID').fadeIn();
		$('#overlay').show();
		$('#overlay').fadeTo("slow", 0.7);
		if ((navigator.userAgent).search(new RegExp(/msie 6\./i)) == -1) {
			return false;
		}
	});

	$(".overlay a#overlayClose").click(
		function (event) {
			$('#contentHolder div.content').addClass('overlayed');
			$('#someID').fadeOut();
			$('#overlay').fadeTo("slow", 0.4);
			//$('#overlay').fadeTo("slow", 0.4, function() { $('#overlay').hide(); if((navigator.userAgent).search(new RegExp(/msie 6\./i)) != -1) { $('select').css('visibility', 'visible'); } });
			return false;
		}
	);

	$('a.addToBasketLink').click(function () {
		$(this).removeClass('addToBasketLink');
		$(this).addClass('addedToBasketLink');	

		$(this).oneTime(3000, function() {
			$(this).addClass('addToBasketLink');
			$(this).removeClass('addedToBasketLink');
		});
	});
});

function showForgotPassword(parentDivID) {
    $('#' + parentDivID + ' .loginPanelBg').show();
    $('#' + parentDivID + ' .loginPanelBg .errorMsg').remove();
    $('#' + parentDivID + ' .loginPanelBg li.formError').removeClass('formError');
    $('#' + parentDivID + ' .loginPanelBg input').val('');
    $('#' + parentDivID + ' .loginPanelBg .logonShowHideDiv').hide();
    $('#' + parentDivID + ' .loginPanelBg .passwordShowHideDiv').show();
}

function showLogon(parentDivID) {
    $('#' + parentDivID + ' .loginPanelBg').show();
    $('#' + parentDivID + ' .loginPanelBg .errorMsg').remove();
    $('#' + parentDivID + ' .loginPanelBg li.formError').removeClass('formError');
    $('#' + parentDivID + ' .loginPanelBg input').val('');
    $('#' + parentDivID + ' .loginPanelBg .passwordShowHideDiv').hide();
    $('#' + parentDivID + ' .loginPanelBg .logonShowHideDiv').show();
}

function groupBooked() {
    $('.groupBook').is(':checked') ? $(".hidePanel").show() : $(".hidePanel").hide();
}



function expandPanelLink(elementClickedID)
{
    $('#' + elementClickedID).next('div.expandPanel').slideToggle();
    return false;
}

function getPurchasedBy(elementClickedID, elementToUpdateID, contactID)
{
    PageMethods.GetPurchasedBy(elementClickedID, elementToUpdateID, contactID, getPurchasedBySuccess, getPurchasedByError);
    return false;
}

function getPurchasedByError(error, userContext, methodName)
{
    if (error !== null)
    {
        alert("error:  " + error.get_message());
    }
}

function getPurchasedBySuccess(result, txtresult, methodName)
{
    elementToUpdateID = result[1];
    document.getElementById(elementToUpdateID).innerHTML = result[2];
    expandPanelLink(result[0]);
    return false;
}

function expandLink(elementClickedID)
{
    var rowClicked = $('#' + elementClickedID).closest('tr');
    if (rowClicked.hasClass("expanded"))
    {
        //	HIDE
        rowClicked.next().children('td').eq(0).children('div.itemDetailContainer').eq(0).slideToggle(700, function()
        {
            rowClicked.next().toggleClass("hiddenRow");
            rowClicked.toggleClass("expanded");
        });
    } else
    {
        //	SHOW
        rowClicked.toggleClass("expanded");
        rowClicked.next().toggleClass("hiddenRow");
        rowClicked.next().children('td').eq(0).children('div.itemDetailContainer').eq(0).slideToggle(700);
    }
}

function getDelegateList(elementClickedID, elementToUpdateID, MembershipAccountNumber, eventID)
{
    var rowClicked = $('#' + elementClickedID).closest('tr');
    if (rowClicked.hasClass("expanded"))
    {
        //close it
        expandLink(elementClickedID);
    }
    else
    {
        PageMethods.GetDelegateList(elementClickedID, elementToUpdateID, MembershipAccountNumber, eventID, getDelegateListSuccess, getDelegateListError);
    }
    return false;
}

function getDelegateListError(error, userContext, methodName)
{
    if (error !== null)
    {
        alert("error:  " + error.get_message());
    }
}

function getDelegateListSuccess(result, txtresult, methodName)
{
    elementToUpdateID = result[1];
    document.getElementById(elementToUpdateID).innerHTML = result[2];
    expandLink(result[0]);
    return false;
}

/*
=================================================================================
Testing section
=================================================================================
*/

function showfoodSection(sectionId) {
    document.getElementById("foodSection1").style.display = "none";
    document.getElementById("foodSection2").style.display = "none";
    document.getElementById("foodSection3").style.display = "none";
    if (document.getElementById("foodSection4"))
        document.getElementById("foodSection4").style.display = "none";
    document.getElementById("foodSection" + sectionId).style.display = "block";

    RemoveClassName(document.getElementById("foodSectionSelectorItem1"), "selected");
    RemoveClassName(document.getElementById("foodSectionSelectorItem2"), "selected");
    RemoveClassName(document.getElementById("foodSectionSelectorItem3"), "selected");
    RemoveClassName(document.getElementById("foodSectionSelectorItem4"), "selected");
    AddClassName(document.getElementById("foodSectionSelectorItem" + sectionId), "selected", true);

    switch (sectionId) {
        case "1":
            document.getElementById("foodSectionSelectorItem1").style.backgroundImage = "none";
            document.getElementById("foodSectionSelectorItem2").style.backgroundImage = "url('/Images/MainSite/homepage/sectionSelectorDivider.gif')";
            document.getElementById("foodSectionSelectorItem3").style.backgroundImage = "url('/Images/MainSite/homepage/sectionSelectorDivider.gif')";
            break;
        case "2":
            document.getElementById("foodSectionSelectorItem1").style.backgroundImage = "none";
            document.getElementById("foodSectionSelectorItem2").style.backgroundImage = "none";
            document.getElementById("foodSectionSelectorItem3").style.backgroundImage = "url('/Images/MainSite/homepage/sectionSelectorDivider.gif')";
            break;
        case "3":
            document.getElementById("foodSectionSelectorItem1").style.backgroundImage = "url('/Images/MainSite/homepage/sectionSelectorDivider.gif')";
            document.getElementById("foodSectionSelectorItem2").style.backgroundImage = "none";
            document.getElementById("foodSectionSelectorItem3").style.backgroundImage = "none";
            break;
        case "4":
            document.getElementById("foodSectionSelectorItem1").style.backgroundImage = "url('/Images/MainSite/homepage/sectionSelectorDivider.gif')";
            document.getElementById("foodSectionSelectorItem2").style.backgroundImage = "url('/Images/MainSite/homepage/sectionSelectorDivider.gif')";
            document.getElementById("foodSectionSelectorItem3").style.backgroundImage = "none";
            break;
    }
}

function showmaterialsSection(sectionId) {
    document.getElementById("materialsSection1").style.display = "none";
    document.getElementById("materialsSection2").style.display = "none";
    document.getElementById("materialsSection3").style.display = "none";
    document.getElementById("materialsSection4").style.display = "none";
    document.getElementById("materialsSection" + sectionId).style.display = "block";

    RemoveClassName(document.getElementById("materialsSectionSelectorItem1"), "selected");
    RemoveClassName(document.getElementById("materialsSectionSelectorItem2"), "selected");
    RemoveClassName(document.getElementById("materialsSectionSelectorItem3"), "selected");
    RemoveClassName(document.getElementById("materialsSectionSelectorItem4"), "selected");
    AddClassName(document.getElementById("materialsSectionSelectorItem" + sectionId), "selected", true);

    switch (sectionId) {
        case "1":
            document.getElementById("materialsSectionSelectorItem1").style.backgroundImage = "none";
            document.getElementById("materialsSectionSelectorItem2").style.backgroundImage = "url('/Images/MainSite/homepage/sectionSelectorDivider.gif')";
            document.getElementById("materialsSectionSelectorItem3").style.backgroundImage = "none";
            break;
        case "2":
            document.getElementById("materialsSectionSelectorItem1").style.backgroundImage = "none";
            document.getElementById("materialsSectionSelectorItem2").style.backgroundImage = "none";
            document.getElementById("materialsSectionSelectorItem3").style.backgroundImage = "none";
            break;
        case "3":
            document.getElementById("materialsSectionSelectorItem1").style.backgroundImage = "url('/Images/MainSite/homepage/sectionSelectorDivider.gif')";
            document.getElementById("materialsSectionSelectorItem2").style.backgroundImage = "none";
            document.getElementById("materialsSectionSelectorItem3").style.backgroundImage = "none";
            break;
    }
}

function showpackagingSection(sectionId) {
    document.getElementById("packagingSection1").style.display = "none";
    document.getElementById("packagingSection2").style.display = "none";
    document.getElementById("packagingSection3").style.display = "none";
    if (document.getElementById("packagingSection4"))
        document.getElementById("packagingSection4").style.display = "none";
    document.getElementById("packagingSection" + sectionId).style.display = "block";

    RemoveClassName(document.getElementById("packagingSectionSelectorItem1"), "selected");
    RemoveClassName(document.getElementById("packagingSectionSelectorItem2"), "selected");
    RemoveClassName(document.getElementById("packagingSectionSelectorItem3"), "selected");
    RemoveClassName(document.getElementById("packagingSectionSelectorItem4"), "selected");
    AddClassName(document.getElementById("packagingSectionSelectorItem" + sectionId), "selected", true);

    switch (sectionId) {
        case "1":
            document.getElementById("packagingSectionSelectorItem1").style.backgroundImage = "none";
            document.getElementById("packagingSectionSelectorItem2").style.backgroundImage = "url('/Images/MainSite/homepage/sectionSelectorDivider.gif')";
            document.getElementById("packagingSectionSelectorItem3").style.backgroundImage = "url('/Images/MainSite/homepage/sectionSelectorDivider.gif')";
            break;
        case "2":
            document.getElementById("packagingSectionSelectorItem1").style.backgroundImage = "none";
            document.getElementById("packagingSectionSelectorItem2").style.backgroundImage = "none";
            document.getElementById("packagingSectionSelectorItem3").style.backgroundImage = "url('/Images/MainSite/homepage/sectionSelectorDivider.gif')";
            break;
        case "3":
            document.getElementById("packagingSectionSelectorItem1").style.backgroundImage = "url('/Images/MainSite/homepage/sectionSelectorDivider.gif')";
            document.getElementById("packagingSectionSelectorItem2").style.backgroundImage = "none";
            document.getElementById("packagingSectionSelectorItem3").style.backgroundImage = "none";
            break;
        case "4":
            document.getElementById("packagingSectionSelectorItem1").style.backgroundImage = "url('/Images/MainSite/homepage/sectionSelectorDivider.gif')";
            document.getElementById("packagingSectionSelectorItem2").style.backgroundImage = "url('/Images/MainSite/homepage/sectionSelectorDivider.gif')";
            document.getElementById("packagingSectionSelectorItem3").style.backgroundImage = "none";
            break;
    }
}

function showDistributionSection(sectionId) {
    document.getElementById("distributionSection1").style.display = "none";
    document.getElementById("distributionSection2").style.display = "none";
    document.getElementById("distributionSection3").style.display = "none";
    if (document.getElementById("distributionSectionSelectorItem4"))
        document.getElementById("distributionSection4").style.display = "none";
    document.getElementById("distributionSection" + sectionId).style.display = "block";

    RemoveClassName(document.getElementById("distributionSectionSelectorItem1"), "selected");
    RemoveClassName(document.getElementById("distributionSectionSelectorItem2"), "selected");
    RemoveClassName(document.getElementById("distributionSectionSelectorItem3"), "selected");
    if (document.getElementById("distributionSectionSelectorItem4"))
        RemoveClassName(document.getElementById("distributionSectionSelectorItem4"), "selected");
    AddClassName(document.getElementById("distributionSectionSelectorItem" + sectionId), "selected", true);

    switch (sectionId) {
        case "1":
            document.getElementById("distributionSectionSelectorItem1").style.backgroundImage = "none";
            document.getElementById("distributionSectionSelectorItem2").style.backgroundImage = "url('/Images/MainSite/homepage/sectionSelectorDivider.gif')";
            document.getElementById("distributionSectionSelectorItem3").style.backgroundImage = "url('/Images/MainSite/homepage/sectionSelectorDivider.gif')";
            break;
        case "2":
            document.getElementById("distributionSectionSelectorItem1").style.backgroundImage = "none";
            document.getElementById("distributionSectionSelectorItem2").style.backgroundImage = "none";
            document.getElementById("distributionSectionSelectorItem3").style.backgroundImage = "url('/Images/MainSite/homepage/sectionSelectorDivider.gif')";
            break;
        case "3":
            document.getElementById("distributionSectionSelectorItem1").style.backgroundImage = "url('/Images/MainSite/homepage/sectionSelectorDivider.gif')";
            document.getElementById("distributionSectionSelectorItem2").style.backgroundImage = "none";
            document.getElementById("distributionSectionSelectorItem3").style.backgroundImage = "none";
            break;
        case "4":
            document.getElementById("distributionSectionSelectorItem1").style.backgroundImage = "url('/Images/MainSite/homepage/sectionSelectorDivider.gif')";
            document.getElementById("distributionSectionSelectorItem2").style.backgroundImage = "url('/Images/MainSite/homepage/sectionSelectorDivider.gif')";
            document.getElementById("distributionSectionSelectorItem3").style.backgroundImage = "none";
            break;
    }
}

function RemoveClassName(objElement, strClass) {
    if (objElement && objElement.className) {
        var arrList = objElement.className.split(' ');
        var strClassUpper = strClass.toUpperCase();
        for (var i = 0; i < arrList.length; i++) {
            if (arrList[i].toUpperCase() == strClassUpper) {
                arrList.splice(i, 1);
                i--
            }
        }
        objElement.className = arrList.join(' ');
    }
}

function AddClassName(objElement, strClass, blnMayAlreadyExist) {
    if (objElement.className) {
        var arrList = objElement.className.split(' ');
        if (blnMayAlreadyExist) {
            var strClassUpper = strClass.toUpperCase();
            for (var i = 0; i < arrList.length; i++) {
                if (arrList[i].toUpperCase() == strClassUpper) {
                    arrList.splice(i, 1);
                    i--;
                }
            }
        }
        arrList[arrList.length] = strClass;
        arrList.splice(0, 0, strClass);
        objElement.className = arrList.join(' ');
    } else {
        objElement.className = strClass;
    }
}

function HasClassName(objElement, strClass) {
    if (objElement.className) {
        var arrList = objElement.className.split(' ');
        var strClassUpper = strClass.toUpperCase();
        for (var i = 0; i < arrList.length; i++) {
            if (arrList[i].toUpperCase() == strClassUpper) {
                return true;
            }
        }
    }
    return false;
}


function resetTestingNav() {
    document.getElementById("testingPanelNavFood").className = "item";
    document.getElementById("testingPanelNavMaterials").className = "item";
    document.getElementById("testingPanelNavPackaging").className = "item";
    document.getElementById("testingPanelNavDistribution").className = "item";
}

function resetTestingContent() {
    document.getElementById("testingPanelContentOverview").style.display = "none";
    document.getElementById("testingPanelContentFood").style.display = "none";
    document.getElementById("testingPanelContentFood").style.visibility = "hidden";
    document.getElementById("testingPanelContentMaterials").style.display = "none";
    document.getElementById("testingPanelContentMaterials").style.visibility = "hidden";
    document.getElementById("testingPanelContentPackaging").style.display = "none";
    document.getElementById("testingPanelContentPackaging").style.visibility = "hidden";
    document.getElementById("testingPanelContentDistribution").style.display = "none";
    document.getElementById("testingPanelContentDistribution").style.visibility = "hidden";
}

function testingPanelHover(showId) {
    resetTestingNav();
    document.getElementById("testingPanelNav" + showId).className = "item selected";

    resetTestingContent();
    document.getElementById("testingPanelContent" + showId).style.display = "block";
    document.getElementById("testingPanelContent" + showId).style.visibility = "visible";
}

function testingPanelShowOverview() {
    resetTestingNav();
    resetTestingContent();
    if (document.getElementById("panelMainContentIndustry"))
        document.getElementById("panelMainContentIndustry").style.display = "none";
    document.getElementById("testingPanelContentOverview").style.display = "block";
    document.getElementById("panelMainContentOverview").style.display = "block";
}

function testingPanelShowIndustry() {
    document.getElementById("panelMainContentOverview").style.display = "none";
    if (document.getElementById("panelMainContentIndustry"))
        document.getElementById("panelMainContentIndustry").style.display = "block";
}

function ShowLostSessionOrderOverlay(paymentReceived, orderNumber) {
    Revolution.LayoutPath = '/Modules/Layout.aspx';
    Revolution.GenerateOverlay('showTechnicalIssues', function (o) {
        Revolution.GetLayout('TechnicalIssues&pr=' + paymentReceived + '&o=' + orderNumber, function (l) {
            $(o).find('div.overlayContentInnerContainer').html(l);
            ShowOverlayContent(o, function () {
                //callback 
            });
        });
    });
}

function ShowOverlayContent(o, c, addToWidth) {
    if (addToWidth === undefined) {
        addToWidth = 0
    }
    var renderDelay = 100;
    if ($.browser.msie) {
        renderDelay = 400;
    }
    $(o).oneTime(renderDelay, function () {
        $(o).find('div.ajaxLoaderContainer').hide();
        $(o).animate({
            width: $(o).find('div.overlayContentInner').outerWidth() + 22 - addToWidth,
            left: ($(window).width() / 2) - (($(o).find('div.overlayContentInner').outerWidth() + 32) / 2)
        }, 400, function () { $(o).find('div.overlayContentInner').css('position', 'relative'); });
        $(o).find('div.overlayContentInnerContainer').animate({
            height: $(o).find('div.overlayContentInner').outerHeight(),
            width: $(o).find('div.overlayContentInner').outerWidth()
        }, 400, function () {
            var ic = $(this);
            $(this).oneTime(400, function () {
                ic.css('height', 'auto');
            });
            if (!$.browser.msie) {
                $(o).find('div.overlayContentInner').fadeTo(0, 0).css('visibility', 'visible').fadeTo(300, 1, function () {
                    $(o).find('a.overlayClose, a.otherClose').unbind('click').click(function () {
                        $(o).hide(0, function () { $(this).remove(); });
                        $('#overlay').fadeOut($(this).css('visibility', 'hidden'));
                    });
                    if (typeof (c) == 'function') { c(); }
                });
            } else {
                $(o).find('div.overlayContentInner').css('visibility', 'visible');
                $(o).find('a.overlayClose, a.otherClose').unbind('click').click(function () {
                    $(o).hide(0, function () { $(this).remove(); });
                    $('#overlay').fadeOut($(this).css('visibility', 'hidden'));
                });
                if (typeof (c) == 'function') { c(); }
            }
        });
    });
}

var PiraEvents = new function() {

    this.TechnicalIssue = function() {
        Revolution.GenerateOverlay('showTechnicalIssues', function(o) {
            Revolution.GetLayout('TechnicalIssues', function(l) {
                $(o).find('div.overlayContentInnerContainer').html(l);
                ShowOverlayContent(o, function() {
                    //callback 
                });
            });
        });
    };

    this.NewRegister = function(overlayName) {
        Revolution.GenerateOverlay('showNewRegister', function(o) {
            $('.overlayed').css('z-index', '1');
            $(o).addClass('ecommOverlay');
            if ($.browser.msie) {
                if (parseInt($.browser.version) == '6') {
                    $('select').filter(function() {
                        return $(this).parents('.overlay').length < 1;
                    }).addClass('hideOverlay');
                }
            };
            Revolution.GetLayout(overlayName, function(l) {
                $(o).find('div.overlayContentInnerContainer').html(l);
                ShowOverlayContent(o, function() {
                    if ($.browser.msie) {
                        if (parseInt($.browser.version) == '6') {
                            $('.overlayClose').click(function() {
                                $('select').removeClass('hideOverlay');
                            });
                        }
                    };
                    $('.overlayClose').click(function() {
                        $('.overlayed').css('z-index', '99999');
                    });

                    if (overlayName == 'NewRegister') {
                        // Click event to button
                        $('#ibtnCreateAccount').unbind('click').click(function() {
                            PiraEvents.AddNewAccount();
                        });
                    }
                    else {
                        $('#ibtnCreateAccount').unbind('click').click(function() {
                            PiraEvents.AddNewEventAccount();
                        });
                    }

                    // Add 'enter key' event
                    if (overlayName == 'NewRegister') {
                        $('div.formContainer').keypress(function(e) {
                            if (e.keyCode == 13)
                                PiraEvents.AddNewAccount();
                        });
                    }
                    else {
                        $('div.formContainer').keypress(function(e) {
                            if (e.keyCode == 13)
                                PiraEvents.AddNewEventAccount();
                        });
                    }

                    // Add change event to the country dropdown to get a list of states
                    $('#ddlCountry').change(function() {
                        $.ajax({
                            type: "POST",
                            url: '/Modules/Ajax.aspx/GetStates',
                            dataType: "json",
                            data: '{"countryID" : ' + $(this).val() + '}',
                            contentType: "application/json; charset=utf-8",
                            success: function(response) {
                                // Remove existing select
                                $('#liCounty select').remove();

                                if (response.d.HTML == '') {
                                    // Hide state li if nothing is returned
                                    $('#liCounty').addClass('hidden');
                                }
                                else {
                                    // Show states
                                    $('#liCounty').append(response.d.HTML);
                                    $('#liCounty label').html(response.d.StateLabel + '<span class="mandatory">*</span>');
                                    $('#liCounty').removeClass('hidden');
                                }
                            },
                            error: function() {
                                alert("Unable to retrieve States");
                            }
                        });
                    });
                });
            });
        });
    };

    this.AddNewAccount = function() {
        // If valid, add new account		
        if (PiraEvents.ValidateAccountForm()) {
            // Check user exists
            $.ajax({
                type: "POST",
                url: '/Modules/Ajax.aspx/CheckUserExists',
                dataType: "json",
                data: '{"emailAddress" : "' + trim($('#txtEmailAddress').val()) + '"}',
                async: false,
                contentType: "application/json; charset=utf-8",
                success: function(response) {
                    var found = response.d.Found;
                    var hasCredentials = response.d.HasCredentials;

                    // The username already exists
                    if (found == true && hasCredentials == true) {
                        $('#liErrorUserAlreadyExists').removeClass('hidden');
                        $('#divErrorList').removeClass('hidden');
                        $('#liEmailAddress').addClass('formError');
                    }
                    else {
                        // The username doesn't exist so add the new user
                        var jsData = {};
                        jsData.found = found;
                        jsData.hasCredentials = hasCredentials;
                        jsData.company = trim($('#txtCompany').val());
                        jsData.address1 = trim($('#txtAddress1').val());
                        jsData.address2 = trim($('#txtAddress2').val());
                        jsData.address3 = trim($('#txtAddress3').val());
                        jsData.city = trim($('#txtCity').val());
                        jsData.postcode = trim($('#txtPostcode').val());

                        if ($('#ddlState').length > 0) {
                            jsData.stateID = parseInt($('#ddlState').val());
                        }
                        else {
                            jsData.stateID = 0;
                        }

                        jsData.countryID = parseInt($('#ddlCountry').val());
                        jsData.phone = trim($('#txtTelephone').val());
                        jsData.fax = trim($('#txtFax').val());
                        jsData.mobile = trim($('#txtMobile').val());
                        jsData.email = trim($('#txtEmailAddress').val());
                        jsData.title = trim($('#txtTitle').val());
                        jsData.firstName = trim($('#txtFirstName').val());
                        jsData.lastName = trim($('#txtSurname').val());
                        jsData.jobTitle = trim($('#txtJobTitle').val());
                        jsData.password = trim($('#txtPassword').val());
                        jsData.siteID = $('#hfSiteID').val();

                        $.ajax({
                            type: "POST",
                            url: '/Modules/Ajax.aspx/CreateEcommAccount',
                            dataType: "json",
                            data: JSON.stringify(jsData),
                            async: false,
                            contentType: "application/json; charset=utf-8",
                            success: function(response) {

                                window.location.href = response.d.URL;
                            },
                            error: function() {
                                alert('Error adding Contact');
                            }
                        });
                    }
                },
                error: function() {
                    alert("Check User failed");
                }
            });
        }
    };

    this.AddNewEventAccount = function() {
        // If valid, add new account
        if (PiraEvents.ValidateAccountForm()) {
            // Check user exists
            $.ajax({
                type: "POST",
                url: '/Modules/Ajax.aspx/CheckUserExists',
                dataType: "json",
                data: '{"emailAddress" : "' + trim($('#txtEmailAddress').val()) + '"}',
                async: false,
                contentType: "application/json; charset=utf-8",
                success: function(response) {
                    var found = response.d.Found;
                    var hasCredentials = response.d.HasCredentials;

                    // The username already exists
                    if (found == true && hasCredentials == true) {
                        $('#liErrorUserAlreadyExists').removeClass('hidden');
                        $('#divErrorList').removeClass('hidden');
                        $('#liEmailAddress').addClass('formError');
                    }
                    else {
                        // The username doesn't exist so add the new user
                        var jsData = {};
                        jsData.found = found;
                        jsData.hasCredentials = hasCredentials;
                        jsData.company = trim($('#txtCompany').val());

                        if ($('#txtVATNumber').length > 0) {
                            jsData.vatNumber = $('#txtVATNumber').val();
                        }
                        else {
                            jsData.vatNumber = '';
                        }

                        jsData.address1 = trim($('#txtAddress1').val());
                        jsData.address2 = trim($('#txtAddress2').val());
                        jsData.address3 = trim($('#txtAddress3').val());
                        jsData.city = trim($('#txtCity').val());
                        jsData.postcode = trim($('#txtPostcode').val());

                        if ($('#ddlState').length > 0) {
                            jsData.stateID = parseInt($('#ddlState').val());
                        }
                        else {
                            jsData.stateID = 0;
                        }

                        jsData.countryID = parseInt($('#ddlCountry').val());
                        jsData.phone = trim($('#txtTelephone').val());
                        jsData.mobile = trim($('#txtMobile').val());
                        jsData.email = trim($('#txtEmailAddress').val());
                        jsData.title = trim($('#txtTitle').val());
                        jsData.firstName = trim($('#txtFirstName').val());
                        jsData.lastName = trim($('#txtSurname').val());
                        jsData.jobTitle = trim($('#txtJobTitle').val());
                        jsData.password = trim($('#txtPassword').val());

                        jsData.badgeName = trim($('#txtBadgeName').val());
                        jsData.extension = trim($('#txtExtension').val());

                        jsData.siteID = $('#hfSiteID').val();

                        $.ajax({
                            type: "POST",
                            url: '/Modules/Ajax.aspx/CreateEventAccount',
                            dataType: "json",
                            data: JSON.stringify(jsData),
                            async: false,
                            contentType: "application/json; charset=utf-8",
                            success: function(response) {

                                window.location.href = response.d.URL;
                            },
                            error: function() {
                                alert('Error adding Contact');
                            }
                        });
                    }
                },
                error: function() {
                    alert("Check User failed");
                }
            });
        }
    };

    this.ClearValidation = function() {
        // Remove box at top
        $('div.#divErrorList').addClass('hidden');
        $('div.#divErrorList ul li').each(function() {
            $(this).addClass('hidden');
        });

        // Remove styling from round text boxes
        $('.formError').each(function() {
            $(this).removeClass('formError');
        });
    };

    this.ValidateTextBox = function(textBoxID, validationMessage) {
        if (trim($('#' + textBoxID).val()) == '') {
            $('#' + textBoxID).parents('li').addClass('formError');
            $('#' + validationMessage).removeClass('hidden');
            return false;
        }
        else {
            return true;
        }
    };

    this.ValidateDropDown = function(dropDownID, validateMessage) {
        if (!$('#' + dropDownID).hasClass('hidden') && $('#' + dropDownID).val() == '0') {
            $('#' + dropDownID).parents('li').addClass('formError');
            $('#' + validateMessage).removeClass('hidden');
            return false;
        }
        else {
            return true;
        }
    };

    this.ValidateAccountForm = function() {
        var valid = true;
        // Clear existing validation styles
        PiraEvents.ClearValidation();

        // We had this before: valid && PiraEvents.ValidateTextBox('txtFirstName', 'liErrorFirstName');
        // So if the first one is invalid then when we get to the second one and test valid first, if it's false we don't bother 
        // to do the function call, because we already know the outcome to be false

        valid = PiraEvents.ValidateTextBox('txtFirstName', 'liErrorFirstName') && valid;
        valid = PiraEvents.ValidateTextBox('txtSurname', 'liErrorSurname') && valid;
        valid = PiraEvents.ValidateTextBox('txtJobTitle', 'liErrorJobTitle') && valid;
        valid = PiraEvents.ValidateTextBox('txtTelephone', 'liErrorTelephone') && valid;
        valid = PiraEvents.ValidateTextBox('txtCompany', 'liErrorCompany') && valid;
        valid = PiraEvents.ValidateTextBox('txtAddress1', 'liErrorAddress') && valid;
        valid = PiraEvents.ValidateTextBox('txtCity', 'liErrorCity') && valid;
        valid = PiraEvents.ValidateTextBox('txtPostcode', 'liErrorPostcode') && valid;
        valid = PiraEvents.ValidateTextBox('txtEmailAddress', 'liErrorEmailAddress') && valid;
        valid = PiraEvents.ValidateTextBox('txtPassword', 'liErrorPassword') && valid;
        valid = PiraEvents.ValidateTextBox('txtPasswordConfirm', 'liErrorPasswordConfirm') && valid;

        valid = PiraEvents.ValidateDropDown('ddlCountry', 'liErrorCountry') && valid;
        valid = PiraEvents.ValidateDropDown('ddlState', 'liErrorCounty') && valid;

        // Valid postcode - needed for US and Canada
        if ($('#txtPostcode').val() != '' && $('#ddlCountry').val() == 81 || $('#ddlCountry').val() == 235) {
            var postcode = $('#txtPostcode').val();

            if (postcode.length < 5 || postcode.length > 9) {
                $('#liPostcode').addClass('formError');
                valid = false;
            }
            else {

                // Extra formatting for Canada
                if ($('#ddlCountry').val() == 81) {
                    // Going to hit the server for this just to ensure existing functionality isn't lost.
                    $.ajax({
                        type: "POST",
                        url: '/Modules/Ajax.aspx/CheckCanadianPostCode',
                        dataType: "json",
                        data: '{"postcode" : "' + postcode + '"}',
                        async: false,
                        contentType: "application/json; charset=utf-8",
                        success: function(response) {
                            if (response.d.Valid == false) {
                                $('#liPostcode').addClass('formError');
                                $('#liErrorPostcode').removeClass('hidden');
                                valid = false;
                            }
                        },
                        error: function() {
                            alert("Valid postcode check failed");
                            valid = false;
                        }
                    });
                }
            }

        }

        // Validate phone number
        if ($('#txtTelephone').val() != '') {
            var phone = $('#txtTelephone').val();
            $.ajax({
                type: "POST",
                url: '/Modules/Ajax.aspx/ValidatePhone',
                dataType: "json",
                data: '{"phone" : "' + phone + '"}',
                async: false,
                contentType: "application/json; charset=utf-8",
                success: function(response) {
                    if (response.d.Valid == false) {
                        $('#liTelephone').addClass('formError');
                        $('#liErrorTelephoneInvalid').removeClass('hidden');
                        valid = false;
                    }
                },
                error: function() {
                    alert("Validate phone number failed");
                    valid = false;
                }
            });
        }

        // Validate emailaddress
        if ($('#txtEmailAddress').val() != '' && !validateEmail($('#txtEmailAddress').val())) {
            $('#liEmailAddress').addClass('formError');
            $('#liErrorEmailAddressInvalid').removeClass('hidden');
            valid = false;
        }

        // Validate password and check it matches confirm
        if ($('#txtPassword').val() != '') {
            var password = $('#txtPassword').val();

            // Hit server to check p/w in correct format
            $.ajax({
                type: "POST",
                url: '/Modules/Ajax.aspx/ValidatePassword',
                dataType: "json",
                data: '{"password" : "' + password + '"}',
                async: false,
                contentType: "application/json; charset=utf-8",
                success: function(response) {
                    if (response.d.Valid == false) {
                        $('#liPassword').addClass('formError');
                        $('#liErrorPasswordInvalid').removeClass('hidden');
                        valid = false;
                    }
                    else {
                        // If it's valid, check the confirm matches
                        if (password != $('#txtPasswordConfirm').val()) {
                            $('#liPassword').addClass('formError');
                            $('#liPasswordConfirm').addClass('formError');
                            $('#liErrorPasswordNotMatched').removeClass('hidden');
                            valid = false;
                        }
                    }
                },
                error: function() {
                    alert("Valid password check failed");
                    valid = false;
                }
            });
        }

        if (!valid) {
            $('div.#divErrorList').removeClass('hidden');
        }
        else {
            $('div.#divErrorList').addClass('hidden');
        }

        return valid;
    };

    this.GroupInfo = function() {
        Revolution.GenerateOverlay('showGroupInfo', function(o) {
            $(o).addClass('ecommOverlay');
            if ($.browser.msie) {
                if (parseInt($.browser.version) == '6') {
                    $('select').filter(function() {
                        return $(this).parents('.overlay').length < 1;
                    }).addClass('hideOverlay');
                }
            }
            Revolution.GetLayout('GroupInfo', function(l) {
                $(o).find('div.overlayContentInnerContainer').html(l);
                ShowOverlayContent(o, function() {
                    if ($.browser.msie) {
                        if (parseInt($.browser.version) == '6') {
                            $('.overlayClose').click(function() {
                                $('select').removeClass('hideOverlay');
                            });
                        }
                    };

                    $('#divGroupXStandard').html(eventXStandard.groupInfo);
                });
            });
        });
    };

    this.ShowEditOrganiserOverlay = function() {
        //alert('dzfz');
        Revolution.GenerateOverlay('editDelegate', function(o) {
            $('.overlayed').css('z-index', '1');
            $(o).addClass('ecommOverlay');
            if ($.browser.msie) {
                if (parseInt($.browser.version) == '6') {
                    $('select').filter(function() {
                        return $(this).parents('.overlay').length < 1;
                    }).addClass('hideOverlay');
                }
            };
            Revolution.GetLayout("EditOrganiser", function(l) {
                $(o).find('div.overlayContentInnerContainer').html(l);

                var jsData = {};

                ShowOverlayContent(o, function() {
                    if ($.browser.msie) {
                        if (parseInt($.browser.version) == '6') {
                            $('.overlayClose').click(function() {
                                $('select').removeClass('hideOverlay');
                            });
                        }
                    };
                    $('.overlayClose').click(function() {
                        $('.overlayed').css('z-index', '99999');
                    });

                    // Populate data
                    $.ajax({
                        type: "POST",
                        url: '/Modules/Ajax.aspx/GetOrganiserDetails',
                        dataType: "json",
                        data: JSON.stringify(jsData),
                        async: false,
                        contentType: "application/json; charset=utf-8",
                        success: function(response) {
                            $('#txtTitle').val(response.d.Title);
                            $('#txtFirstName').val(response.d.FirstName);
                            $('#txtSurname').val(response.d.Surname);
                            $('#txtCompany').val(response.d.Company);
                            $('#txtJobTitle').val(response.d.JobTitle);
                            $('#txtEmailAddress').val(response.d.Email);
                            $('#txtBadgeName').val(response.d.BadgeName);
                            $('#txtTelephone').val(response.d.Telephone);

                            // Click event to button
                            $('#ibtnEditDelegate').unbind('click').click(function() {
                                PiraEvents.EditOrganiser(response.d.RelationshipID, response.d.AddressID);
                            });

                            $('div.formContainer').keypress(function(e) {
                                if (e.keyCode == 13)
                                    PiraEvents.EditOrganiser(response.d.RelationshipID, response.d.AddressID);
                            });
                        },
                        error: function() {
                            alert('Error editing Contact');
                        }
                    });

                });
            });
        });
    };

    this.EditOrganiser = function(relationshipID, addressID) {
        if (PiraEvents.ValidateEditOrganiser()) {
            // Check user exists
            $('.ajaxLoader.editNext').show().css('opacity', '0.7');
            var jsData = {};

            jsData.phone = trim($('#txtTelephone').val());
            jsData.email = trim($('#txtEmailAddress').val());
            jsData.title = trim($('#txtTitle').val());
            jsData.firstName = trim($('#txtFirstName').val());
            jsData.lastName = trim($('#txtSurname').val());
            jsData.company = trim($('#txtCompany').val());

            jsData.jobTitle = trim($('#txtJobTitle').val());
            jsData.phone = trim($('#txtTelephone').val());
            jsData.email = trim($('#txtEmailAddress').val());

            if (trim($('#txtBadgeName').val()) != '') {
                jsData.badgeName = trim($('#txtBadgeName').val());
            }
            else {
                jsData.badgeName = '';
            }

            jsData.addressID = addressID;
            jsData.relationshipID = relationshipID;

            $.ajax({
                type: "POST",
                url: '/Modules/Ajax.aspx/EditOrganiser',
                dataType: "json",
                data: JSON.stringify(jsData),
                async: false,
                contentType: "application/json; charset=utf-8",
                success: function(response) {
                    $('.ajaxLoader.editNext').hide();
                    $('#tbDelegate').html(response.d.HTML);
                    $('.organiserError').hide();
                    $('#editDelegate').remove();

                    $('.overlayed').css('z-index', '99999');
                },
                error: function() {
                    alert('Error editing Contact');
                }
            });
        }
    };

    this.ValidateEditOrganiser = function() {
        var valid = true;

        // Clear existing validation styles
        PiraEvents.ClearValidation();

        // We had this before: valid && PiraEvents.ValidateTextBox('txtFirstName', 'liErrorFirstName');
        // So if the first one is invalid then when we get to the second one and test valid first, if it's false we don't bother 
        // to do the function call, because we already know the outcome to be false

        valid = PiraEvents.ValidateTextBox('txtFirstName', 'liErrorFirstName') && valid;
        valid = PiraEvents.ValidateTextBox('txtSurname', 'liErrorSurname') && valid;
        valid = PiraEvents.ValidateTextBox('txtJobTitle', 'liErrorJobTitle') && valid;
        valid = PiraEvents.ValidateTextBox('txtTelephone', 'liErrorTelephone') && valid;
        valid = PiraEvents.ValidateTextBox('txtCompany', 'liErrorCompany') && valid;
        valid = PiraEvents.ValidateTextBox('txtEmailAddress', 'liErrorEmailAddress') && valid;


        // Validate phone number
        if ($('#txtTelephone').val() != '') {
            var phone = $('#txtTelephone').val();
            $.ajax({
                type: "POST",
                url: '/Modules/Ajax.aspx/ValidatePhone',
                dataType: "json",
                data: '{"phone" : "' + phone + '"}',
                async: false,
                contentType: "application/json; charset=utf-8",
                success: function(response) {
                    if (response.d.Valid == false) {
                        $('#liTelephone').addClass('formError');
                        $('#liErrorTelephoneInvalid').removeClass('hidden');
                        valid = false;
                    }
                },
                error: function() {
                    alert("Validate phone number failed");
                    valid = false;
                }
            });
        }

        // Validate emailaddress
        if ($('#txtEmailAddress').val() != '' && !validateEmail($('#txtEmailAddress').val())) {
            $('#liEmailAddress').addClass('formError');
            $('#liErrorEmailAddressInvalid').removeClass('hidden');
            valid = false;
        }


        if (!valid) {
            $('div.#divErrorList').removeClass('hidden');
        }
        else {
            $('div.#divErrorList').addClass('hidden');
        }

        return valid;
    };


    this.TabXHR = undefined;

    function ShowOverlayContent(o, c, addToWidth) {
        if (addToWidth === undefined) {
            addToWidth = 0;
        }
        var renderDelay = 100;
        if ($.browser.msie) {
            renderDelay = 400;
        }
        $(o).oneTime(renderDelay, function() {
            $(o).find('div.ajaxLoaderContainer').hide();
            $(o).animate({
                width: $(o).find('div.overlayContentInner').outerWidth() + 22 - addToWidth,
                left: ($(window).width() / 2) - (($(o).find('div.overlayContentInner').outerWidth() + 32) / 2)
            }, 400, function() { $(o).find('div.overlayContentInner').css('position', 'relative'); });
            $(o).find('div.overlayContentInnerContainer').animate({
                height: $(o).find('div.overlayContentInner').outerHeight(),
                width: $(o).find('div.overlayContentInner').outerWidth()
            }, 400, function() {
                var ic = $(this);
                $(this).oneTime(400, function() {
                    ic.css('height', 'auto');
                });
                if (!$.browser.msie) {
                    $(o).find('div.overlayContentInner').fadeTo(0, 0).css('visibility', 'visible').fadeTo(300, 1, function() {
                        $(o).find('a.overlayClose, a.otherClose').unbind('click').click(function() {
                            $(o).hide(0, function() { $(this).remove(); });
                            $('#overlayScreen').fadeOut($(this).css('visibility', 'hidden'));
                        });
                        if (typeof (c) == 'function') { c(); }
                    });
                } else {
                    $(o).find('div.overlayContentInner').css('visibility', 'visible');
                    $(o).find('a.overlayClose, a.otherClose').unbind('click').click(function() {
                        $(o).hide(0, function() { $(this).remove(); });
                        $('#overlayScreen').fadeOut($(this).css('visibility', 'hidden'));
                    });
                    if (typeof (c) == 'function') { c(); }
                }
            });
        });
    }
};

function validateEmail(elementValue) {
    var emailPattern = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;
    return emailPattern.test(elementValue);
}

function submitCodes(evt) {
	//look for the window.event in case event isnt passed in
	
	var keyCode;
	evt = evt || window.event;
	keyCode = evt.keyCode || evt.which;
	
	if(keyCode == 13) {
		
		return EcommBasket.CheckProduct();;
		
	}
	return true;
}
