document.addEvent("domready", function() {
	
	// Login Menu Panel
	if ($("sign-in-link") && $("login-panel")) {
		
		var sign_in_link = $("sign-in-link");
		var login_panel = $("login-panel");
		login_panel.is_open = false;
		login_panel.is_over = false;
		login_panel.has_focus = false;
		
		login_panel.open_panel = function() {
			sign_in_link.addClass("active");
			login_panel.setStyle("display", "block");
			login_panel.is_open = true;
		};
		
		login_panel.close_panel = function() {
			sign_in_link.removeClass("active");
			login_panel.setStyle("display", "none");
			login_panel.is_open = false;
		};
		
		sign_in_link.getElement("a").addEvents({
			"click": function(evt) {
				
				evt.stop();
				login_panel.open_panel();
				
			}
		});
		
		sign_in_link.addEvents({	
			"mouseenter" : function(evt) {
				
				login_panel.is_over = true;
				
				if(login_panel.is_open == false && login_panel.is_over == true) {
					login_panel.open_panel();
				}
				
			},
			
			"mouseleave" : function(evt) {
				
				login_panel.is_over = false;
				
				(function() {
					if (login_panel.has_focus == false && login_panel.is_over == false) {
						login_panel.close_panel();
					}
				}).delay(1000);
				
			}
		});
		
		var login_panel_inputs = login_panel.getElements("input[type=text], input[type=password]");
		login_panel_inputs.each(function(input, index) {
			
			input.addEvents({
				focus: function() {
					
					login_panel.has_focus = true;
					if (login_panel.is_open == false) {
						
						login_panel.open_panel();
						
					}
					
				}, 
				
				blur: function() {
				
				login_panel.has_focus = false;
				
				(function(){
					
					if (login_panel.has_focus == false && login_panel.is_over == false) {
						login_panel.close_panel();
					}
					
				}).delay(100);
					
				}
			});
			
		});
		
	}
	
	// My Account Menu Panel
	if ($('account-info') && $("account-info-panel")) {
		
		var account_info = $("account-info");
		var account_info_panel = $("account-info-panel");
		account_info_panel.is_open = false;
		account_info_panel.is_over == false;
		
		account_info.getElement("a").addEvents({
			"click": function(evt) {
				
				evt.stop();
				account_info.addClass("active");
				account_info_panel.setStyle("display", "block");
				account_info_panel.is_open = true;
				
			}
		});
		
		account_info.addEvents({			
			"mouseenter" : function(evt) {
				
				account_info_panel.is_over == true;

				(function() {
					if (account_info_panel.is_open == false && account_info_panel.is_over == true) {
						sign_in_link.addClass("active");
						login_panel.setStyle("display", "block");
						login_panel.is_open = true;
					}
				}).delay(1000);
				
			},
			
			"mouseleave" : function(evt) {
				
				account_info_panel.is_over == false;
				
				account_info.removeClass("active");
				account_info_panel.setStyle("display", "none");
				account_info_panel.is_open = false;
				
			}
		});
		
	}
	
	// primary navigation
	if ($("primary-navigation")) {
		
		var sub_menus = $("primary-navigation").getElements("li ul");
		sub_menus.each(function(item, index){
			
			var li = item.getParent("li");
			li.addClass("sub-menu");
			li.addEvents({
				mouseenter: function() {
					
					li.addClass("open");
					
				},
				
				mouseleave: function() {
					
					li.removeClass("open");
					
				}
			});
			
		});
		
	}
	
	if ($("all-slides")) {

	    var herobox = new PanelCarousel("all-slides", {
	        stylesheet: "/javascripts/libs/classes/PanelCarousel_ni.css",
			panelClass: ".slide",
			animationStyle: "fader",
			sliderDuration: 750,
            slideDuration: 7000,
			showNextPreviousButtons: true
		});
		
	}
	
	// Textfield Placeholders
	var inputs = $$("input[type=text], input[type=password], textarea");
	if (inputs.length > 0) {
			
		inputs.each(function(item, index){
				
			item = new TextfieldPlaceholder(item);
		
		});
		
	}

    if (inputArtistFilter = $("AutoCompleteTextBrand")) {
        var ArtistDataSource = function (ui, term) {
            var data = [];

            // wildcard select items in hidden drop down list (lowercase comparison since selector is case sensitive.  Data from code has been converted to lower case too)
            var elements = $('AutoCompleteDropDownBrand').getElements('option[value^=' + term.toLowerCase() + ']');

            for (i = 0; i <= 4 && i < elements.length; i++) {
                var suggestion = elements[i].get('html')
                data[i] = { "value": suggestion, "label": suggestion, "html": "<span>" + suggestion + "</span>" };
            }

            ui.autocompleter('suggest', data);
            return true;
        }
        var ArtistOptions = {
            'delay': 500,
            'minLength': 1,
            'allowNewValues': true,
            'source': ArtistDataSource,
            'onCreate': function (ui) {
                var menu = ui.autocompleter('menu');
                var coords = ui.getCoordinates();
                menu.setPosition({ x: coords.left, y: coords.top + coords.height + 1 });
            }
        };
        inputArtistFilter.autocompleter(ArtistOptions);
        inputArtistFilter.autocompleter('option', 'onChange', function (ui) {
            $('AutoCompleteTextBrand').set('value', (ui.autocompleter('value') == '') ? '' : ui.autocompleter('value'));
        }
            );
    }

    if (inputArtistFilter = $("AutoCompleteTextBrandLocation")) {
        var ArtistDataSource = function (ui, term) {
            var data = [];

            // wildcard select items in hidden drop down list (lowercase comparison since selector is case sensitive.  Data from code has been converted to lower case too)
            var elements = $('AutoCompleteDropDownBrandLocation').getElements('option[value^=' + term.toLowerCase() + ']');

            for (i = 0; i <= 4 && i < elements.length; i++) {
                var suggestion = elements[i].get('html')
                data[i] = { "value": suggestion, "label": suggestion, "html": "<span>" + suggestion + "</span>" };
            }

            ui.autocompleter('suggest', data);
            return true;
        }
        var ArtistOptions = {
            'delay': 500,
            'minLength': 1,
            'allowNewValues': true,
            'source': ArtistDataSource,
            'onCreate': function (ui) {
                var menu = ui.autocompleter('menu');
                var coords = ui.getCoordinates();
                menu.setPosition({ x: coords.left, y: coords.top + coords.height + 1 });
            }
        };
        inputArtistFilter.autocompleter(ArtistOptions);
        inputArtistFilter.autocompleter('option', 'onChange', function (ui) {
            $('AutoCompleteTextBrandLocation').set('value', (ui.autocompleter('value') == '') ? '' : ui.autocompleter('value'));
        }
            );
    }
	
	if ($("product-image")) {
		
		var product_gallery = new ThumbnailGallery.Extra($("product-image-container"), {
			mainImageContainerSelector: "#product-image",
			thumbnailImagesContainerSelector: "+ > ul.product-list",
			thumbnailClick: function(target) {
				
				var uri = new URI(target.getParent("a").get("href"));
				var largeimage = uri.get("data").large;
				
				// This is for the Lightbox thinger.
				$("product-image").set("href", largeimage);
				
			},
			
			sliderUnitWidth: 125
		});
		
		var lightbox = new Lightbox.Extra({
			targetSelector: "#product-image",
			useGalleryObject: product_gallery,
			beforeShow: function() {
				window.scrollTo(0,0);
			},
			buttonClick: function(target, index) {
				
				var uri = new URI(lightbox.thumbnailImages[index].get("href"));
				var largeimage = uri.get("data").large;
				
				// This is for the Lightbox thinger.
				$("product-image").set("href", largeimage);
				
			}
		});
		
		lightbox.targets.each(function(item, index){
			
			item.addEvent("click", function(evt) {
				evt.stop();
				lightbox.loadContent(item.get("href"));
			});
			
		});
		
	}

    if ($("cvc")) {

        var cvc_button = $("cvc-button");
        var example = $("cvc");
        // console.log(cvc_button);

        cvc_button.addEvent('mouseover', function (e) {
            e.stop();
            example.fade("hide");
            example.setStyle("display", "block");
            example.fade("in");
        });

        cvc_button.addEvent('mouseout', function (e) {
            e.stop();
            example.fade("out");
        });
    }
});

// Robert - Copied from cap.js since ni makes use of these functions
//validation javascript

//myles aug25 2011 validation.. had to split last element because field are named differently
var objArray;
var errData;
function showError(myData) {
    var myArray = myData.split('*');
    objArray = myArray[1].split(",");
    for (i = 0; i < objArray.length; i++) {
        myObj = document.getElementById(objArray[i].toString());
        myObj.style.background = "yellow";
    }
}
function hiliteShow() {
    objArray = fieldArray;
    for (i = 0; i < objArray.length; i++) {
        var myFieldArray = new Array();
        myFieldArray = objArray[i].split('_');
        var fieldToHilite = myFieldArray[myFieldArray.length - 1];
        myObj = document.getElementById(fieldToHilite);
        if (myObj) {
            myObj.style.backgroundColor = '#FFFFB0';
        }
    }
}
function hiliteErrors(arr1, arr2) {
    fieldArray = arr1;
    msgArray = arr2;
    window.onload = hiliteShow;
}
