// ---------- PERTH ROYAL SHOW Core JavaScript Document


// ---------- Cufon Text to Canvas replacement
Cufon.replace('.serif', { fontFamily: 'TheSerif', hover: true });
Cufon.replace('#utils ul, #subnav a, #subnav span', { fontFamily: 'TheSerif', hover: true });

// ---------- On Document Ready
$(document).ready(function() {
	
	//#nav_tickets a.tickets, #sitemap_nav_tickets a, #nav_buy_tickets_online a.buy_tickets_online,
    $("#buy_tickets_online a, #navfooter_buy_tickets_online1 a.buy_tickets_online1, #navfooter_buy_tickets_online a.buy_tickets_online, a.buy-tickets-now").click(function() {
        if (this.href.indexOf("Ticket-Prices.aspx") == -1) {
            popWindowTickets();
            return false;
        } else {
            return true;
        }
    });
    
    // My Day Planner bar
    if ($("#my-day-planner").is(':visible')) {
        $("body").attr("id", "mdpBar");
        // If IE6
        if ($.browser.msie && $.browser.version.substr(0, 1) < 7) {
            $("#site-wrapper").css("overflow-x", "hidden");
            dayPlannerBar();
            $(window).resize(function() {
                dayPlannerBar();
            });
        }
    } else {
        $("body").removeAttr("id");
        $("#site-wrapper").removeAttr("style");
    }

    // Add Target Blank to external links
    $("a[rel=external]").each(function() { $(this).attr("target", "_blank"); });


    // Drop Down Menus
    $("#navigation ul").superfish({
        delay: 50,
        speed: 300,
        centerOnScroll: true
    });


    // Show/Hide default input values on focus/blur
    fullSiteSearch = $("#utils input.text").val();
    $("#utils input.text").focus(function() {
        if ($(this).val() == fullSiteSearch) {
            $(this).val("");
        }
    }).blur(function() {
        if ($(this).val() == "") {
            $(this).val(fullSiteSearch);
        }
    });

    sectionSearchVal = $("input[id$=searchcalendar]").val();
    $("input[id$=searchcalendar]").focus(function() {
        if ($(this).val() == sectionSearchVal) {
            $(this).val("");
        }
    }).blur(function() {
        if ($(this).val() == "") {
            $(this).val(sectionSearchVal);
        }
    });



    // IE 6 Only Hover
    if ($.browser.msie && $.browser.version.substr(0, 1) < 7) {
        ie6();
    }

    // Ajax Modal
    $("a.ajax-modal").fancybox({
        'padding': 0,
        'margin': 0,
        'autoDimensions': true,
        'overlayOpacity': 0.7,
        'overlayColor': '#000',
        'titleShow': false,
        'transitionIn': 'fade',
        'transitionOut': 'fade'
    });

    // Show Map
    $(".map-locations li:nth-child(-n+3)").addClass("row1");
       

});



// ---------- Functions

// IE6 Only
function ie6() {
	
	$("#subnav li").hover(function() {
		$(this).addClass("hover");
	}, function() {
		$(this).removeClass("hover");
	});

    $.ajaxSetup({cache:false});
}


function dayPlannerBar() {
	
	var h = $(window).height() - 45;
	$("#site-wrapper").height(h);

}

function popWindowTickets() {
	var winH = 584;
	var winW = 980;
	if($.browser.msie) {
		var winH = 613;
	}
	if($.browser.safari) {
		var winH = 599;
	}

	var left = (screen.width/2)-(winW/2);
	var top = (screen.height/2)-(winH/2);

	
    window.open('https://s.perthroyalshow.com.au/Tix0Select.aspx', "popUpWindow", 'height=' + winH + ',width=' + winW + ',top=' + top + ',left=' + left + ',status=0,toolbar=0,menubar=0,location=0,scrollbars=1,resizable=0');

    return false;
    
}
function popWindow(url) {
	var winH = 584;
	var winW = 980;
	if($.browser.msie) {
		var winH = 613;
	}
	if($.browser.safari) {
		var winH = 599;
	}

	var left = (screen.width/2)-(winW/2);
	var top = (screen.height/2)-(winH/2);
	
    window.open(url, "popUpWindow", 'height=' + winH + ',width=' + winW + ',status=0,toolbar=0,menubar=0,location=0,scrollbars=1,resizable=0');
}

function validateEmail(str) {
    var at = "@"
    var dot = "."
    var lat = str.indexOf(at)
    var lstr = str.length
    var ldot = str.indexOf(dot)

    if (str.indexOf(at) == -1)
        return false

    if (str.indexOf(at) == -1 || str.indexOf(at) == 0 || str.indexOf(at) == lstr)
        return false

    if (str.indexOf(dot) == -1 || str.indexOf(dot) == 0 || str.indexOf(dot) == lstr)
        return false

    if (str.indexOf(at, (lat + 1)) != -1)
        return false

    if (str.substring(lat - 1, lat) == dot || str.substring(lat + 1, lat + 2) == dot)
        return false

    if (str.indexOf(dot, (lat + 2)) == -1)
        return false

    if (str.indexOf(" ") != -1)
        return false

    return true
}

function showLoginModal(id, type, eventDate) {
    var params = "";

    if (id != null) {
        params += "?id=" + id;
    }
    if (type != null) {
        params += "&type=" + type;
    }
    if (eventDate != null) {
        params += "&eventDate=" + eventDate;
    }
    
    $.fancybox(
	    {
	        'href': '/Modules/PlanMyDays/Views/Frontend/LoginModal.aspx' +params,
	        'padding': 0,
	        'margin': 0,
	        'autoDimensions': true,
	        'overlayOpacity': 0.7,
	        'overlayColor': '#000',
	        'titleShow': false,
	        'transitionIn': 'fade',
	        'transitionOut': 'fade'
	    }
	);

    return false;
}
function openBox(url) {
    $.fancybox(
	    {
	        'href': url,
	        'padding': 0,
	        'margin': 0,
	        'autoDimensions': true,
	        'overlayOpacity': 0.7,
	        'overlayColor': '#000',
	        'titleShow': false,
	        'transitionIn': 'fade',
	        'transitionOut': 'fade'
	    }
	);
}
//Triggers
function addEvent(eventDate, eventID, divID, reload)
{
    var itemDiv = "#" + divID;
    var buttonMarkup = $(itemDiv).html();
    $(itemDiv).html('<img alt="Adding to Plan My Day, Please Wait..." src="/wsimages/loader-event-display.gif">');

    $.ajax({
        type: "POST",
        url: "/Modules/PlanMyDays/Views/Frontend/PlanMyDayRequests.aspx/AddEvent",
        data: "{eventDate:'" + eventDate + "', eventID:'" + eventID + "'}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function(ret) {
            if (ret.d != "false") {
                if (reload != undefined) {
                    location.reload(true);
                }
                $(itemDiv).fadeOut(function() {
                    $(itemDiv).html('<span class="already-added">+</span>');
                });
                incrementBarCount();
                $(itemDiv).fadeIn();
                return false;

            } else {
            $(itemDiv).html(buttonMarkup);
            showLoginModal(eventID, "Event", eventDate);
            }
        }
    });

    
    return false;
}


function addEventShowModal(eventDate, eventID, divID, reload) {
    var itemDiv = "a[id$=planmydayLink]";
    $.ajax({
        type: "POST",
        url: "/Modules/PlanMyDays/Views/Frontend/PlanMyDayRequests.aspx/AddEvent",
        data: "{eventDate:'" + eventDate + "', eventID:'" + eventID + "'}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (ret) {
            if (ret.d != "false") {
                if (reload != undefined) {
                    location.reload(true);
                }
                $(itemDiv).fadeOut(function () {
                    $(itemDiv).removeClass('add-to-planner');
                    $(itemDiv).toggleClass('already-added');
                });
                //setTimeout("ShowbagButton();", 1000);
                incrementBarCount();
                $(itemDiv).fadeIn();
                if (reload) {
                    location.reload(true);
                } else {

                }
                return false;

            } else {
                showLoginModal(eventID, "Event", eventDate);
            }
        }
    });

    return false;
}


function addSideshow(sideshowID, divID, reload) 
{
    var itemDiv = "#" + divID;
    $.ajax({
        type: "POST",
        url: "/Modules/PlanMyDays/Views/Frontend/PlanMyDayRequests.aspx/AddSideshow",
        data: "{sideshowID:'" + sideshowID + "'}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function(ret) {
            if (ret.d != "false") {
                if (reload != undefined) {
                    location.reload(true);
                }
                $(itemDiv).fadeOut(function() {
                    $(itemDiv).replaceWith('<span class="added serif">Already in Plan My Day</span>');
                });
                incrementBarCount();
                $(itemDiv).fadeIn();

                return false;

            } else {
                showLoginModal(sideshowID, "Sideshow", null);
            }
        }
    });

    return false;
}

function ShowbagButton(itemDiv) {
    $("#planmydayLink").fadeOut(function() {
        //$(itemDiv).replaceWith('<span id="justadded" class="already-added">Added in Plan My Day</span>');
        $("#planmydayLink").addClass('add-to-planner');
        $("#planmydayLink").toggleClass('already-added');
    });
    $("#planmydayLink").fadeIn();
}
function addShowbag(showbagID, reload) {
    var itemDiv = "a[id$=planmydayLink]";
    $.ajax({
        type: "POST",
        url: "/Modules/PlanMyDays/Views/Frontend/PlanMyDayRequests.aspx/AddShowbag",
        data: "{showbagID:'" + showbagID + "'}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function(ret) {
            if (ret.d != "false") {
                if (reload != undefined) {
                    location.reload(true);
                }
                $(itemDiv).fadeOut(function() {
                    $(itemDiv).removeClass('add-to-planner');
                    $(itemDiv).toggleClass('already-added');
                });
                setTimeout("ShowbagButton();", 1000);
                incrementBarCount();
                $(itemDiv).fadeIn();
                if (reload) {
                    location.reload(true);
                } else {
                    
                }
                return false;

            } else {
            showLoginModal(showbagID, "Showbag", null);
            }
        }
    });

    return false;
}

function addAttraction(attractionID, reload) {
    var itemDiv = ".Item"+attractionID;
    $.ajax({
        type: "POST",
        url: "/Modules/PlanMyDays/Views/Frontend/PlanMyDayRequests.aspx/AddAttraction",
        data: "{attractionID:'" + attractionID + "'}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function(ret) {
            if (ret.d != "false") {

                if (reload != undefined) {
                    location.reload(true);
                }
                $(itemDiv).fadeOut(function() {
                    $(itemDiv).replaceWith('<span class="already-added">+</span>');
                });
                incrementBarCount();
                $(itemDiv).fadeIn();
                
                return false;

            } else {
                showLoginModal(attractionID, "Attraction", null);
            }
        }
    });

    return false;
}

function Join(name, emailAddress, privacy, mailingList) {
    var id = "";
    var type = "";
    var eventDate = "";

    $(".errormessage").html('<img alt="Submitting Form, Please Wait..." src="/wsimages/loader-event-display.gif">');
    
    if ($('input[name=id]=').val() != null);
    id = $('input[name=id]').val();

    if ($('input[name=type]').val() != null);
    type = $('input[name=type]').val();

    if ($('input[name=eventDate]').val() != null);
    eventDate = $('input[name=eventDate]').val();

    var aErrors = new Array(0);
    var validForm = true;

    if ($.trim($(".f-name").val()) == '') {
        aErrors.push('- Please enter your first name\n');
    }

    if ($.trim($(".f-email").val()) == '') {
        aErrors.push('- Please enter your email address\n');
    } else {
        if (validateEmail($(".f-email").val()) == false) {
            aErrors.push('- Invalid email address format\n');
        }
        if ($.trim($(".f-email2").val()) == '') {
            aErrors.push('- Please repeat your email address\n');
        } else {
            if (validateEmail($(".f-email2").val()) == false) {
                aErrors.push('- Your second email is invalid\n');
            } else {
                if ($(".f-email").val() != $(".f-email2").val()) {
                    aErrors.push("- Your emails don't match\n");
                }
            }
        }
    }

    if ($.trim($(".f-pass").val()) == '') {
        aErrors.push('- Please enter a password\n');
    } else {
        if ($.trim($(".f-pass2").val()) == '') {
            aErrors.push('- Please repeat your password\n');
        } else {
            if ($(".f-pass").val() != $(".f-pass2").val()) {
                aErrors.push("- Your passwords don't match\n");
            }
        }
    }

    if (!$(".f-privacy input:checkbox").is(":checked")) {
        aErrors.push('- You must agree to the privacy policy\n');
    }

    if (aErrors.length) {

        if (aErrors.length > 1) {
            var prefix = 'Some errors occurred:\n\n';
            var suffix = '\nPlease correct these errors and try again.'
        } else {
            var prefix = 'An error has occurred:\n\n';
            var suffix = '\nPlease correct this error and try again.'
        }

        var errorMessage = prefix;
        for (var i = 0; i < aErrors.length; i++) {
            errorMessage += aErrors[i];
        }
        errorMessage += suffix;

        alert(errorMessage);
        $(".errormessage").html('');
        return false;

    } else {
        var check = confirm('Please confirm that you wish to sign up using this as your email address: \n' + $(".f-email").val());
        if (!check) {
            $(".errormessage").html('');
            return false;
        }
    }

    $.ajax({
        type: "POST",
        url: "/Modules/PlanMyDays/Views/Frontend/PlanMyDayRequests.aspx/Join",
        data: "{Name:'" + name + "', EmailAddress:'" + emailAddress + "', Password:'" + $(".f-pass").val() + "', Privacy:'" + privacy + "', MailingList:'" + mailingList + "'}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function(ret) {
            if (ret.d == "false") {
                // $(".errormessage").html("<div id=\"error-message\">You are already logged in</div>");
                alert("You are already logged in");
                location.reload(true);
            } else if (ret.d == "added") {
                if (id != "" && type != "") {
                    if (type == "Event") {
                        addEvent(eventDate, id, "Item", true);
                    } else if (type == "Attraction") {
                        addAttraction(id,true);
                    } else if (type == "Showbag") {
                        addShowbag(id, true);
                    } else if (type == "Sideshow") {
                        addSideshow(id, "", true);
                    }
                }
            } else {
                // $(".errormessage").html("<div id=\"error-message\">" + ret.d + "</div>");
                $(".errormessage").html("");
                alert(ret.d);
            }
        }
    });
    return false;
}

function incrementBarCount() 
{
    var itemDiv = "#my-day-planner div.block-container div.total strong ";
    var count = parseInt($(itemDiv).html());
    count++;
    $(itemDiv).fadeOut(function() {
        $(itemDiv).html(count);
        $(itemDiv).fadeIn();
    });
}


function UpdateBar() {
    $.ajax({
        type: "POST",
        url: "/Modules/PlanMyDays/Views/Frontend/PlanMyDayRequests.aspx/UpdateBar",
        data: "{}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function(ret) {
            var itemDiv = "#my-day-planner div.block-container div.total ";
                $(itemDiv).fadeOut(function() {
                    $(itemDiv).html(ret.d);
                    $(itemDiv).fadeIn();
                });
           
        }
    });
    return false;
}

function RemoveItem(ItemID){
    
    $.ajax({
        type: "POST",
        url: "/Modules/PlanMyDays/Views/Frontend/PlanMyDayRequests.aspx/RemoveItem",
        data: "{PlanMyDayID:'" + ItemID + "'}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function(ret) {
            window.location.reload(true);
        }
    });
    return false;
}

//End Triggers
