(function ($) {
// VERTICALLY ALIGN FUNCTION
$.fn.vAlignM = function() {
	return this.each(function(i){
	var ah = $(this).height();
	var ph = $(this).parent().height();
	var mh = (ph - ah) / 2;
	$(this).css('margin-top', mh);
	});
};
})(jQuery);

(function ($) {
// VERTICALLY ALIGN FUNCTION
$.fn.vAlignP = function() {
	return this.each(function(i){
	var ah = $(this).height();
	var ph = $(this).parent().height();
	var mh = (ph - ah) / 2;
	$(this).css('padding-top', mh);
	});
};
})(jQuery);

jQuery.fn.equalizeCols = function(){
  var height = 0;
  return this.css("height","auto").each(function(){
    height = Math.max( height, jQuery(this).outerHeight() );
  }).css("height", height);
}; 

var MenuClassID = 1;
var FirstMenuClassID = [];

function BuildSubMenu(MainContainer, LastContainer, ulmenu, menulink) {
	var MyLI = ulmenu.children('li');
	
	if (MyLI.size() > 0) {
		var ContainerUL = $('<ul></ul>');
		LastContainer.append(ContainerUL);		
		MyLI.each( function(i) {
			var TheLink = $(this).find('a').eq(0);
			ContainerUL.append(TheLink);
			var InnerUL = $(this).find('ul');
			if (InnerUL.size() > 0) {
				var MyMenuLink = $(menulink).clone();
				var InnerLink = $(TheLink).addClass("MenuLink").attr("target",MenuClassID).clone();
				var MyContainer = $('<div class="MyMenuContainer" id="MyMenu' + MenuClassID++ + '"></div>');
				MyMenuLink.append($('<span> &gt; </span>')).append(InnerLink);
				MyContainer.append(MyMenuLink);
				MainContainer.append(MyContainer);
				BuildSubMenu(MainContainer, MyContainer, InnerUL, MyMenuLink);
			}
			TheLink.wrap('<li></li>');
		});
		LastContainer.append($('<div class="MenuBackLink"><a href="#" target="0" class="MenuLink">' + TEXT_MENU_BACK + '</a></div>'));
	}
}

function BuildMenu(container, menu) {
	var SubMenu = menu.children('li');
	if (SubMenu.size() > 0) {
		$(SubMenu).each(function(i) {
			var MyLink = $('<div class="MenuNav"></div>');
			MyLink.append($(this).find('a').eq(0).clone().addClass("MenuLink").attr("target",MenuClassID));

			BuildAllMenu($(this).find('a').eq(0).addClass("MenuLink").attr("target",MenuClassID), $(this).find('ul').eq(0));
			FirstMenuClassID.push(MenuClassID);
			var MyContainer = $('<div class="MyMenuContainer" id="MyMenu' + MenuClassID++ + '"></div>');
			MyContainer.append(MyLink);
			container.append(MyContainer);
			MyLink.prepend($('<span> &gt; </span>'));
			MyLink.prepend($('<a href="#" class="MenuLink" target="0">' + TEXT_MENU_CATALOG + '</a>'));
			BuildSubMenu(container, MyContainer, $(this).find('ul').eq(0), MyLink);
		});		
	}
}

function BuildAllMenu(MenuLink, _MyUL) {

	var SubMenu = _MyUL.children('li');
	var MyLI = $('<li></li>');
	$('#AllMenu > ul').append(MyLI);
	MyLI.append(MenuLink.clone());

	if (SubMenu.size() > 0) {
		var MyDiv = $('<div class="CatalogMenuDiv"></div>');
		MyDiv.addClass("CatalogMenuDiv" + MenuClassID);
		var MyUL = $('<ul></ul>');
		var MyLink = $('<div class="MenuNav"></div>');
		$('#CatalogMenu').append(MyDiv);
		$(MyDiv).append(MyLink);
		MyLink.append(MenuLink.clone());
		$(MyDiv).append(MyUL);
	}
}

function ShowNotice(responseText, statusText) {
	$("#NoticeContainer").html(responseText);
	$("#NoticeContainer").fadeIn('slow');
	UpdateCartAndWishListInfo();
}

function CloseNotice() {
	$("#NoticeContainer").fadeOut('slow');
}

function UpdateCartAndWishListInfo() {
	$.ajax({
		type: "GET",
		url: "getcartandwishlistinfo.php",
		dataType: "xml",
		success: function(xml) {
				var NoOfWishList = $(xml).find('NoOfWishList').text();
				var NoOfCartItems = $(xml).find('NoOfCartItems').text();
				$('#NoOfWishList').html(NoOfWishList);
				$('#NoOfCartItems').html(NoOfCartItems);
		}
	});
}

function addCommas( sValue ) 
{ 
	var sRegExp = new RegExp('(-?[0-9]+)([0-9]{3})');
	
	while(sRegExp.test(sValue)) { 
	sValue = sValue.replace(sRegExp, '$1,$2'); 
	} 
	return sValue; 
} 

$(document).ready(function(){

	$(":text").labelify();
	$(":password").labelify();

	$("#LoginButton").click(function (ev) {
		ev.preventDefault();
		$('#frmLogin').submit();
	});

	$('#FrontpageMainPhoto span').vAlignP();
	$('#FrontpageLowerLeft span').vAlignM();
	$('#FrontpageLowerRight span').vAlignM();
	$('#ProductListHeader div').vAlignP();
	$('#PageHeader div').vAlignP();
	 
	$('#MainMenu > ul > li:first').addClass('first');
	$('#MainMenu > ul > li:last').addClass('last');
	 
	BuildMenu($('#Menu'), $('#MenuData > ul'));
	
	$.each(FirstMenuClassID, function(i){
		var MyDiv = $('.CatalogMenuDiv' + FirstMenuClassID[i]);
		var MyUL = $(MyDiv).find('ul').eq(0);
		$('#MyMenu' + FirstMenuClassID[i] + '> ul > li').each(function(i) {
			MyUL.append($(this).clone());
		});
		
		if ($('#MyMenu' + FirstMenuClassID[i] + '> ul > li').length > 12)
			MyDiv.append($('<div class="MenuMoreLink"><a href="#" target="' + FirstMenuClassID[i] + '" class="MenuLink">More+</a></div>'));
	});
	

	$(function(){
		$('#Menu > div > ul').columnize({buildOnce: true, width: 110, height: 60, overflow: {id : "#hideme", height : 60, doneFunc : function() {} } });
		$('div.CatalogMenuDiv > ul').columnize({buildOnce: true, width: 100, height: 60, overflow: {id : "#hideme", height : 60, doneFunc : function() {} } });
	});
	
	$('#Menu > div').hide();
	$('#AllMenu').hide();

	$('#HotMenu a').click( function(ev) {
		ev.preventDefault();
		if (!$(this).hasClass('MenuLink'))
			location.href = "productlist.php?id=" + $(this).attr('cat_id');
	});
	$('#CatalogMenu a').click( function(ev) {
		ev.preventDefault();
		if (!$(this).hasClass('MenuLink'))
			location.href = "productlist.php?id=" + $(this).attr('cat_id');
	});
	$('#Menu a').click( function(ev) {
		ev.preventDefault();
		if (!$(this).hasClass('MenuLink'))
			location.href = "productlist.php?id=" + $(this).attr('cat_id');
	});

	
	$('a.MenuLink').click( function(ev) {
		ev.preventDefault();
		if ($(this).attr('target') == '0') {
			$('#Menu > div').hide();
			$('#AllMenu').hide();
			$('#CatalogMenu').fadeIn("slow");
		}
		else {
			$('#CatalogMenu').hide();
			$('#Menu > div').hide();
			$('#MyMenu' + $(this).attr('target')).fadeIn("slow");
			$('#AllMenu').fadeIn("slow");
		}
	});

	$('.ViewByColor').msDropDown();
	$('#LanguageSelection').msDropDown();
	$('#CurrencySelection').msDropDown();
	
	var zIndexNumber = 4000;
	$('div:not([id*="fancy"])').each(function() {
		$(this).css('z-index', zIndexNumber);
		zIndexNumber -= 10;
	});

	$('a.MySubmitButton').click( function(ev) {
		ev.preventDefault();
		if ($(this).attr('target') != '0') {
			$('#' + $(this).attr('target')).submit();
		}
	});
	
 	if (myjs != '') {
 		jQuery.getScript("js/" + myjs);
 	}

 	$('a[href="loadpage.php?id=2"]').click( function(ev) {
 		ev.preventDefault();
 		window.open("loadpage.php?id=2", 'tnc', 'toolbar=0,scrollbars=1,location=0,statusbar=0,menubar=0,resizable=1,width=1000,height=880,left = 0,top = 0');
 	});

 	$('a[href="crystalpoint.php"]').click( function(ev) {
 		ev.preventDefault();
 		window.open("crystalpoint.php", 'cp', 'toolbar=0,scrollbars=1,location=0,statusbar=0,menubar=0,resizable=1,width=1000,height=880,left = 0,top = 0');
 	});
 	
 	$('a.BtnAddToWishList').click( function(ev) {
 		ev.preventDefault();
 		$("#NoticeContainer").load($(this).attr('href'));
 		$("#NoticeContainer").css("left", $(this).offset().left);
 		$("#NoticeContainer").css("top", $(this).offset().top + 30);
 		$("#NoticeContainer").fadeIn('slow');
 		UpdateCartAndWishListInfo();
 	});
 	
 	$('a.WishListAddToShoppingBag').click( function(ev) {
 		ev.preventDefault();
 		$("#NoticeContainer").load($(this).attr('href'));
 		$("#NoticeContainer").css("left", $(this).offset().left);
 		$("#NoticeContainer").css("top", $(this).offset().top + 30);
 		$("#NoticeContainer").fadeIn('slow');
 		UpdateCartAndWishListInfo();
 	});
 	
 	$('#frmAddToShoppingBag').ajaxForm();
 	$('#frmAddToShoppingBag').submit(function() { 
		var options = { 
			success:	ShowNotice  // post-submit callback 
		};
    	$(this).ajaxSubmit(options); 
 		$("#NoticeContainer").css("left", $('#BtnAddToShoppingBag').offset().left);
 		$("#NoticeContainer").css("top", $('#BtnAddToShoppingBag').offset().top + 30);
	    return false; 
	});

	$('.AddProductToFrm').ajaxForm();
 	$('.AddProductToFrm').submit(function() { 
		var options = { 
			success:	ShowNotice  // post-submit callback 
		};
    	$(this).ajaxSubmit(options); 
    	var Offset = $(this).find('a.AddProductToSelectSubmitButton').offset();
 		$("#NoticeContainer").css("left", Offset.left);
 		$("#NoticeContainer").css("top", Offset.top + 30);
	    return false; 
	});
 	
 	
 	$('.ProductListCellInfo').equalizeCols();
 	
 	$("#NewsTicker > ul").newsticker();
 	$("#NewsTicker > ul").css("display", "block");
 	$("#FrontpageLeftTopContainer > ul").newsticker();
 	$("#FrontpageLeftTopContainer > ul").css("display", "block");
// 	$('a.cp_link').fancybox();
});
