var g4n = {};
g4n.res = {
		wrapper : "#wrapper",
		outerWrapper :"#outer-wrapper",
		header : "#header",
		mainMenuWrap : "#main-menu-wrap",
		userMenuWrap : "#user-menu-wrap",
		otherMenu : "#other-menu",
		tabsMenu : "#tabs-menu",
		userMenu : "#user-menu",
		content : "#content",
		nav : "#nav",
		footer : "#footer",
		panels : "#panels",
		panelNavigation : "#panel-navigation",
		tabsMenu : "#tabs-menu",
		footerMenus :"#footer-menus",
		bottomMenu : "#bottom-menus",
		userMenu : "#user-menu",
		newProductPanel :"#newproduct-panel",
		productSpecialsPanel : "#productspecials-panel",
		advsearchPanel : "#advsearch-panel",
		currencyPanel :"#currency-panel",
		cartPanel : "#accountPanel",
		searchPanel :"#search-panel",
		promotionPanel : "#promotion-panel",
		locationsJSON : function(){
			
		}
};
g4n.buttons = [
	'#signin-button',
	'#continue-button',
	'#pageid_forgotpassword .infoBoxContents a.button-big', //forgot password page
	'#btn-login-button',
	'#btn-profile-continue',
	'#btn-change-billing-address',
	'#btn-change-address',
	'#btn-continue-checkout',
	'#use-address-main',
	'#registry-tell-a-friend-link',// pageid_list
	'#continue-shopping',//pageid_list
	'#update-list',//pageid_list
	'#list-add-to-basket',
	'#submitbutton'//pageid_registrytellafriend
];

function CSVToArray(strData,providedStrDelimiter){var strDelimiter=(providedStrDelimiter||","),objPattern=new RegExp(("(\\"+strDelimiter+'|\\r?\\n|\\r|^)(?:"([^"]*(?:""[^"]*)*)"|([^"\\'+strDelimiter+"\\r\\n]*))"),"gi"),arrData=[[]],arrMatches=null,strMatchedDelimiter,strMatchedValue;while(arrMatches=objPattern.exec(strData)){strMatchedDelimiter=arrMatches[1];if(strMatchedDelimiter.length&&(strMatchedDelimiter!=strDelimiter)){arrData.push([])}if(arrMatches[2]){strMatchedValue=arrMatches[2].replace(new RegExp('""',"g"),'"')}else{strMatchedValue=arrMatches[3]}arrData[arrData.length-1].push(strMatchedValue)}arrData.splice(arrData.length-1,"1");return(arrData)};
g4n.layout = {
    "defaultLayout": function(){
		(function($){
			var $wrapper = $(g4n.res.wrapper),
				$outerWrapper = $(g4n.res.outerWrapper),
				$header = $(g4n.res.header),
				$footer = $(g4n.res.footer),
				$nav = $(g4n.res.nav);
			// $(g4n.res.userMenu).addClass('hMenu').prependTo($outerWrapper);
			$(g4n.res.tabsMenu).appendTo($header);
			$(g4n.res.bottomMenu).prependTo($footer);
			$footer.prepend("<div id='locations-panel' class='panel'></div>");
			$("#sitefooter").appendTo($footer);
		}(jQuery));
    },
	"contentBlocks": function (){
		if($("#locations-panel").length){
			$.getJSON("/contentBlocks/locationsPanel/locations.json",function(data){
				var $locationsPanel = $("#locations-panel"),
					$ul = $("<ul class='locations'></ul>");
				$locationsPanel.append("<h1>Neighborhood Shops</h1>");
				$.each(data,function(index,storeData){
					$("#tmpl-locations-footer").tmpl(storeData).appendTo($ul);
				});
				$locationsPanel.append($ul);
			});
		};
		if($("#contact-locations").length){
			$.getJSON("/contentBlocks/locationsPanel/locations.json",function(data){
				var $contactLocations = $("#contact-locations");
				$.each(data,function(index,storeData){
					$("#tmpl-locations-contactPage").tmpl(storeData).appendTo($contactLocations);
				});
			});
		}
	},
	"pagination": function(){
		var $paginationTable = $("table.pagination").eq(0),
			$links = $paginationTable.find("a").remove(),
			$paginationWrap = $("<div class='pagination-wrapper'></div>"),
			$ul = $("<ul class='pagination hMenu'></ul>");
			$links.each(function(){
				var $li = $("<li></li>");
				$li.append($(this)).appendTo($ul);
			});
			$paginationWrap.append($ul).insertAfter("#searchresult");
			
			$paginationTable.remove();
	},
    "init": function(){
        g4n.layout.defaultLayout();
		g4n.layout.contentBlocks();
		g4n.layout.pagination();
    }
};
$(function(){
g4n.layout.init();
});



g4n.pageHacks = function(){

	if($("#pageid_contact").length){
		$("#contactform > table").addClass("form_table");
	}

	for (var i = g4n.buttons.length - 1; i >= 0; i--){
		$(g4n.buttons[i]).addClass("button");
	};
	if($("#pageid_checkoutstep2").length){
		(function(){
			var $selectShipWrap = $("#checkout-section-shippingaddress"),
			$shippingForm = $("#shippingform"),
				$shipMethWrap = $("#checkout-section-shipping"),
				$giftCardWrap = $("#checkout-section-giftcard"),
				$commentWrap = $("#checkout-section-comment"),
				$continueWrap = $("checkout-section-continue"),
				$headers = $selectShipWrap.find("td.main");
				$shippingForm.find("div").children("table").addClass("first-level")
					.find(">table").addClass("second-level");
					
					
	       $("#btn-make-payment").addClass("button action");
		}());
	}
};
g4n.pageHacks();


g4n.reveal = function(){
	$(g4n.res.wrapper).removeClass('hide');
};
g4n.reveal();


g4n.userInterface = function(){
	var $searchTextInputs = $(".search-form input[type=text]");
	$searchTextInputs.bind("focus",function(){
		var $this = $(this);
		$this.data("origVal",$this.attr("value"));
		$this.attr("value","");
	});
	$searchTextInputs.bind("blur",function(){
		var $this = $(this);
		$this.attr("value",$this.data("origVal"));
	});
};
g4n.userInterface();
// * @example <p id="one" class="some_class {item_id: 1, item_label: 'Label'}">This is a p</p>
// * @before $.metadata.setType("class")
// * @after $("#one").metadata().item_id == 1; $("#one").metadata().item_label == "Label"
// * @desc Reads metadata from the class attribute

var playSound = function(){
	var $soundLinks = $(".sound"),
		$soundCache = $("<span id='soundCache'></span>"),
		$soundSwitch = $("<span>Sound <a href='#' sound='on'>On</a></span>");
	$.metadata.setType("class");
	if($soundLinks.length){
		$("body").append($soundCache);
	}
	$soundLinks.each(function(){
		var $this = $(this),
			soundFile = $this.metadata().soundfile,
			$object = $("<embed />").attr({
				"src":'/contentBlocks/sounds/' + soundFile,
				"autostart":false,
				"loop":false
				});
			$soundCache.html($object);
	});
//	$("a.onOff").toggle(function(){
//			$(this).attr("sound","off").text("Off");
//		},
//		function(){
//			$(this).attr("sound","on").text("On");
//		});
		
	$soundLinks.hover(
		function(){
			var onOff = $("a.onOff").attr("sound"),
				onOff = 'on',
				$this = $(this),
				soundFile = $this.metadata().soundfile,
				$object;
				if(onOff === "on"){
					$object = $("<embed />").attr({
						"src":'/contentBlocks/sounds/' + soundFile,
						"autostart":true,
						"loop":false,
						"style" : "height:0 ; width:0 ; visibility : hidden;"
						});
					$object.insertAfter($this);
				}
		},
		function(){
			$(this).next("embed").remove();
		}
		);
};
//playSound();




