var pageWasChangedThroughAJAX = false;

$(document).ready( function() {

	$('form[name="addDeliveryAddress"] input[type="radio"]').click(function() {

		addressType = $(this).val();

		if (addressType != "billingaddress") {

			addressType_help = $('#FIELD_address_type_help').val();

			var parameters = 'screen=dstore.account.ajax.modifydeliveryaddress&FIELD_address_type='+addressType+'&FIELD_address_type_help='+addressType_help;

			inputfields = decodeURIComponent($('.modifydeliveryaddress input').serialize());

			var parameters = parameters + "&" + inputfields;

			$.ajax({
				   type: "GET",
				   url: DSTORE_BASE_URL + "/" + localeString + "/index.php",
				   data: parameters,
				   dataType: 'json',
				   success: function(msg)
				   {
						$('#container_deliveryaddress_register').children().detach();
						$('#container_deliveryaddress_register').html(unescape(msg.MAIN));

						documentready();

						if ($('form[name="addDeliveryAddress"] input[name="screen"]').attr("value") != undefined) {
							screenName = $('form[name="addDeliveryAddress"] input[name="screen"]').attr("value");
							screenName = screenName.replace("modifydeliveryaddress", "deliveryaddress");
							$('form[name="addDeliveryAddress"] input[name="screen"]').attr("value", screenName);
						}

				   },
				   error: function(xhr, textStatus, errorThrown)
				   {
//					   alert(xhr.responseText);
				   }
				});
		} else {
			$('#container_deliveryaddress_register').html("");
		}

		$('#FIELD_address_type_help').attr("value", addressType);

	});

	$('form[name="registerForm"] input[name="FIELD_address_type"]').click(function()
	{
		addressType = $(this).val();

		if (addressType != "billingaddress") {

			addressType_help = $('#FIELD_address_type_help').val();

			var parameters = 'screen=dstore.order.ajax.modifydeliveryaddress&noxtrabtn=1&FIELD_address_type='+addressType+'&FIELD_address_type_help='+addressType_help;

			inputfields = decodeURIComponent($('.modifydeliveryaddress input').serialize());

			var parameters = parameters + "&" + inputfields;

			$.ajax({
				   type: "GET",
				   url: DSTORE_BASE_URL + "/" + localeString + "/index.php",
				   data: parameters,
				   dataType: 'json',
				   success: function(msg)
				   {
						$('#container_deliveryaddress_register').children().detach();
						$('#container_deliveryaddress_register').html(unescape(msg.MAIN));

						documentready();

						if ($('form[name="addDeliveryAddress"] input[name="screen"]').attr("value") != undefined) {
							screenName = $('form[name="addDeliveryAddress"] input[name="screen"]').attr("value");
							screenName = screenName.replace("modifydeliveryaddress", "deliveryaddress");
							$('form[name="addDeliveryAddress"] input[name="screen"]').attr("value", screenName);
						}

				   },
				   error: function(xhr, textStatus, errorThrown)
				   {

//					   alert(xhr.responseText);
				   }
				});
		} else {
			$('#container_deliveryaddress_register').html("");
		}

		$('#FIELD_address_type_help').attr("value", addressType);

	});

	$.history.init(function(url) {
		load(url, $(this).hasClass("onlyproductlist"));
	});

	$("a.cvc_link").click(function(e)
	{

		var closeString;

		if(localeString == "en_GB")
			closeString = "close";
		else
			closeString = "Schlie&szlig;en";

		$('#AjaxContainer').html('<a href="#" class="simplemodal-close" title="Schliessen">' + closeString + '</a><br><br><img src="' + DSTORE_BASE_URL + '/customGates/resources/binaries/universal/logos/visakarte.jpg" alt="" />');
		
		ModalDialog = $('#AjaxContainer').modal({
				overlayCss: {
				backgroundColor: '#000',
				cursor: 'wait'
			},
				containerCss: {
				width: 400,
				height: 250,
				overflow: 'auto',
				border: '1px solid #3a3a3a',
				backgroundColor: '#FFF'
			},
				onShow : function(dialog){ }
			});
	});

	$("a.content").click(function(e) {
		e.preventDefault();
		postingID = $(this).attr("rel");

		var src;
		if(SSL_AREA)
			src = 'screen=dstore.misc.ajax.contentssl&pid='+postingID;
		else
			src = 'screen=dstore.misc.ajax.content&pid='+postingID;

		$.ajax({
			   type: "GET",
			   url: DSTORE_BASE_URL + "/" + localeString + "/index.php",
			   data: src,
			   dataType: 'json',
			   success: function(msg)
			   {
				   
				   content = (msg.MAIN);
				   content = content.replace('%80', '%26euro%3B');
					$('#AjaxContainer').html(unescape(content));

					ModalDialog = $('#AjaxContainer').modal({
						overlayCss: {
					   		backgroundColor: '#000'
					  	},
					  	
					  	containerCss: {
						    height: 650,
						    width: 580,
						    overflow: 'auto',
						    border: '1px solid #3a3a3a',
						    backgroundColor: '#FFF'
					  	},
					  	overlayClose: true,
					  	onShow : function(dialog){
						  $('#simplemodal-overlay').hide().fadeIn("slow");
						  $('#simplemodal-container').hide().fadeIn("slow");
						  
					  	}
					});
			   },
			   error: function(xhr)
			   {
//				   alert(xhr.responseText);
			   }
			});
	});

	$("a.ajaxlink").live("click", function(event){

		event.preventDefault();

		var link = $(this).attr("href");
		link = link.replace(DSTORE_BASE_URL,'');
		link = DSTORE_BASE_URL + "#!" + link.substring(1);

		var hashbang =  '!' + link.split('#!')[1];
		window.location.hash = hashbang;

		// load(link) wird automatisch von history aufgerufen, wenn sich der hash aendert
		return false;

	});

	$('#search_field').focus(function(){

		if($(this).attr("value") != "SUCHE" && $(this).attr("value") != "SEARCH" && $(this).attr("value") != "")
		{
			inputString = $(this).val();
			getSuggestions(inputString);
		}
	});

}); // $(document).ready( function()

function registerSendLoginForm(){
	$('#SmallTrolleyLogin .submit').click(function() {
		mail = $('#small_trolley .ajax_small_trolley #FIELD_mail').val();
		password = $('#small_trolley .ajax_small_trolley #FIELD_password').val();
		
		if(SSL_AREA)	
			data = 'screen=dstore.order.ajax.ssl_small_trolley_login&ClassName=Login&task=login&FIELD_mail=' + mail + '&FIELD_password=' + password;
		else
			data = 'screen=dstore.order.ajax.small_trolley_login&ClassName=Login&task=login&FIELD_mail=' + mail + '&FIELD_password=' + password;

		$.ajax({
			   type: "GET",
			   url: DSTORE_BASE_URL + "/" + localeString + "/index.php",
			   data: data,
			   dataType: 'json',
			   success: function(msg)
			   {
					$('.ajax_small_trolley .login_area .login_link ').html(unescape(msg.TOP));
					$('#login').html(unescape(msg.MAIN));
					$("body").removeClass("wait");
					registerSendLoginForm();

					cartMessageTimer = setTimeout(function(){
						$('.ajax_small_trolley .container #login.spacer .accountmenu .msgContainer').fadeOut();
						}, 2000);
				},
			   error: function(xhr, textStatus, errorThrown)
			   {
//				   alert(xhr.responseText);
				   $("body").removeClass("wait");
			   }
			});
	});
}

function load(link, onlyProductList)
{
	if(link == "")
		if(pageWasChangedThroughAJAX)
			window.location.reload(true);
		else
			return;

	if(link.indexOf('!') == -1)
		return;

	$("body").addClass("wait");

	$('#right .selectBox').detach();

	link = link.replace('!','/');

	var params = "locale="+localeString+"&url=" + escape(link);
	
	$.ajax({
	   type: "GET",
	   url: DSTORE_BASE_URL + "/customGates/scripts/decodesmarturl.php",
	   data: params,
	   dataType: 'json',
	   success: function(parameters)
	   {
		   parameters = unescape(parameters);
		   
			$("body").removeClass("wait");
			
			// Produktliste nur laden wenn es sich um einen shop-screen handelt
			if(parameters.indexOf('screen=dstore.shop') === -1)
				return;

			$("body .category").html('<div class="loading"><img src="' + DSTORE_BASE_URL + '/customGates/resources/binaries/universal/icons/loading.gif" /><br><br><img src="' + DSTORE_BASE_URL + '/customGates/resources/binaries/'+localeString+'/headlines/artikel_werden_geladen.png" /></div>');
			
			if ( onlyProductList )
			{
				reloadProductlist(DSTORE_BASE_URL + "/index.php?" + parameters);
			}
			else
			{
				reloadProductlistAndGuidedNavigation(DSTORE_BASE_URL + "/index.php?" + parameters);
			}
			
			$('html,body').animate({scrollTop: $("body").offset().top},'slow');
			pageWasChangedThroughAJAX = true;
			return false;
		},
	   error: function(xhr, textStatus, errorThrown)
	   {
//		   alert(xhr.responseText);
		   $("body").removeClass("wait");
	   }
	})
}

function changeProductListSorting(url)
{
	var sorting = $("select#sortby").val();
	var currentHash = window.location.hash;
	
	// kein Hash vorhanden
	if(currentHash == null || currentHash == '')
	{
		var link = document.URL;
		link = link.replace(DSTORE_BASE_URL,'');
		link = DSTORE_BASE_URL + "#!" + link.substring(1);

		var hashbang =  '!' + link.split('#!')[1];
		hashbang = hashbang + '?Sort=' + sorting;
		window.location.hash = hashbang;
	}
	// bereits ein Hash vorhanden
	else
	{
		var endsWithTop;
	
		if(currentHash.match("#top$"))
		{
			currentHash = currentHash.substring(0, currentHash.length - 4);
			endsWithTop = true;
		}
		else
			endsWithTop = false;
		
		// ist bereits ein Sort Parameter im hash?
		if(currentHash.indexOf('Sort=') != -1)
		{
			// als einziger Parameter?
			if(currentHash.indexOf('&') == -1)
			{
				currentHash = currentHash.split('?')[0] + '?Sort=' + sorting;
			}
			else
			{
				var hassplit = currentHash.split('?');
				var partBefore = hassplit[0];
				var partAfter = hassplit[1];
				var params = partAfter.split('&');
				
				for(var i=0; i < params.length; i++) 
				{
					if(params[i].indexOf('Sort') == 0)
						params[i] = 'Sort=' + sorting;
				}
				
				currentHash = partBefore + '?' + params.join('&');
			}
		}
		else
		{
			if(currentHash.indexOf('?') == -1)
			{
				currentHash = currentHash + '?Sort=' + sorting;
			}
			else
			{
				currentHash = currentHash + '&Sort=' + sorting;
			}
		}
		
		if(endsWithTop)
			currentHash = currentHash + "#top";
			
		window.location.hash = currentHash;
	}

	url = url + '&Sort=' + sorting;
	reloadProductlistAndGuidedNavigation(url);
}

function reloadProductlist(url)
{
	var parameters = url.split('?')[1];


	parameters = parameters.replace(/dstore.shop.reload_productlist_/,'dstore.shop.ajax.reload_productlist_');
	parameters = parameters.replace(/dstore.shop.category/,'dstore.shop.ajax.reload_productlist_category');
	parameters = parameters.replace(/dstore.shop.markenshop/,'dstore.shop.ajax.reload_productlist_markenshop');
	parameters = parameters.replace(/dstore.shop.products_of_brand/,'dstore.shop.ajax.reload_productlist_brand');
	parameters = parameters.replace(/dstore.shop.titus_aktion/,'dstore.shop.ajax.reload_productlist_titus_aktion');
	parameters = parameters.replace(/dstore.shop.tipps_des_tages/,'dstore.shop.ajax.tipps_des_tages');

	$("body").addClass("wait");
	
	$.ajax({
		   type: "GET",
		   url: DSTORE_BASE_URL + "/" + localeString + "/index.php",
		   data: parameters,
		   dataType: 'json',
		   success: function(msg)
		   {
				if (msg.MAIN.length > 0) {
					$('#main').children().detach();
					$('#main').html(unescape(msg.MAIN));
				}

				if (msg.RIGHT.length > 0) { 
					$('#right').children().detach();
					$('#right').html(unescape(msg.RIGHT));
				}

				documentready();
				$("body").removeClass("wait");
			},
		   error: function(xhr, textStatus, errorThrown)
		   {
//			   alert(xhr.responseText);
			   $("body").removeClass("wait");
		   }
		})
}

function reloadProductlistAndGuidedNavigation(url)
{
	var parameters = url.split('?')[1];

	parameters = parameters.replace(/dstore.shop.category/,'dstore.shop.ajax.category');
	parameters = parameters.replace(/dstore.shop.schuhe/,'dstore.shop.ajax.schuhe');
	parameters = parameters.replace(/dstore.shop.markenshop/,'dstore.shop.ajax.markenshop');
	parameters = parameters.replace(/dstore.shop.products_of_brand/,'dstore.shop.ajax.products_of_brand');
	parameters = parameters.replace(/dstore.shop.titus_aktion/,'dstore.shop.ajax.titus_aktion');
	parameters = parameters.replace(/dstore.shop.tipps_des_tages/,'dstore.shop.ajax.tipps_des_tages');

	$("body").addClass("wait");
	$.ajax({
		   type: "GET",
		   url: DSTORE_BASE_URL + "/" + localeString + "/index.php",
		   data: parameters,
		   dataType: 'json',
		   success: function(msg)
		   {
				if (msg.MAIN.length > 0) {
					$('#main').children().detach();
					$('#main').html(unescape(msg.MAIN));
				} 
				
				if (msg.LEFT.length > 0) {
					$('#left').children().detach();
					$('#left').html(unescape(msg.LEFT));
				}

				if (msg.RIGHT.length > 0) {
					$('#right').children().detach();
					$('#right').html(unescape(msg.RIGHT));
				}

				documentready();
				$("body").removeClass("wait");
			},
		   error: function(xhr, textStatus, errorThrown)
		   {
			   //console.log(xhr.responseText);
			   $("body").removeClass("wait");
		   }
		})
}

function openTrolleyOverlay()
{
	$("body").addClass("wait");

	$('#small_trolley .ajax_small_trolley').detach();

//	$('body').css({'overflow':'hidden'});

	if(SSL_AREA)	
		scr = 'screen=dstore.order.ajax.ssl_small_trolley';
	else
		scr = 'screen=dstore.order.ajax.small_trolley';
	
	$.ajax({
	   type: "GET",
	   url: DSTORE_BASE_URL + "/" + localeString + "/index.php",
	   data: scr,
	   dataType: 'json',
	   success: function(msg)
	   {
			$('#small_trolley').append(unescape(msg.MAIN));

			$('#small_trolley #login').html(unescape(msg.MIDDLE));
			$('#small_trolley #trolley').html(unescape(msg.RIGHT));
			$('.ajax_small_trolley').animate({top:'0px'}, 1000, function()
			{
				$('#scraan').css({'display': 'block', 'z-index': '2' , opacity: 0,'width':$(document).width(),'height':$(document).height()});
				$('#scraan').animate({opacity: 0.7}, 1000);
				$('#scraan').click(function() {
					closeTrolleyOverlay();
				});
			});

			$('#small_trolley_items ul').jcarousel({
				vertical: true,
				scroll: 2,
				start: 0
			});

			if ($('.items ul > li').size() < 3) {
				$('.jcarousel-prev').css('display', 'none');
				$('.jcarousel-next').css('display', 'none');
			} else {
				$('.jcarousel-prev').css('display', 'block');
				$('.jcarousel-next').css('display', 'block');	
			}
			// Da ipad schmaler muss hier die breite ein wenig geändert werden.
			if(navigator.platform != 'iPad' && navigator.platform != 'iPhone' && navigator.platform != 'iPod')
			{
				$('.ajax_small_trolley .container #login.spacer .login .container_input label').css('width', '130px');
			}
			
			$("#small_trolley_close").click(function() {
				closeTrolleyOverlay();
			});
			$("body").removeClass("wait");
			registerSendLoginForm();
		},
	   error: function(xhr, textStatus, errorThrown)
	   {
//			console.log(xhr);
		   $("body").removeClass("wait");
	   }
	})
}

function closeTrolleyOverlay()
{
	$('body').css({'overflow':'visible'});
	$('#scraan').css('display', 'none');

	$('.ajax_small_trolley').animate({top:'-380px'}, 1000, function(){
		$('#small_trolley .ajax_small_trolley').detach();
	});
	
}

function smallTrolleyLogin()
{


}

function openShareProductDialog(TreeNodeID)
{
	if( TreeNodeID > 0 ) {
		var getData = "screen=dstore.shop.ajax.share_product&TreeNodeID=" + TreeNodeID;
	}
	else {
		var getData = "screen=dstore.shop.ajax.share_product";
	}

	$.ajax({
		   type: "GET",
		   url: DSTORE_BASE_URL + "/" + localeString + "/index.php",
		   data: getData,
		   dataType: 'json',
		   success: function(msg)
		   {
				$('#AjaxContainer').html(unescape(msg.MAIN));

				ModalDialog = $('#AjaxContainer').modal({
					overlayCss: {
				    backgroundColor: '#000'
				  },
				  overlayClose: true,
				  containerCss: {
				    border: '1px solid #3a3a3a',
				    backgroundColor: '#FFF'
				  },
				  onShow : function(dialog){
					  $('#simplemodal-overlay').hide().fadeIn("slow");
					  $('#simplemodal-container').hide().fadeIn("slow");
					  $('#recommend_submit').click(function (e) {
					  		e.preventDefault();
					  		sendShareProductData(ModalDialog);
					  	});
				  }
				});
		   },
		   error: function(xhr)
		   {
//			   alert(xhr.responseText);
		   }
		});
}

function sendShareProductData(ModalDialog)
{
	$.ajax({
	   type: "GET",
	   url: DSTORE_BASE_URL + "/" + localeString + "/index.php",
	   data: $('#share_product_form').serialize(),
	   dataType: 'json',
	   success: function(msg)
	   {
			ModalDialog.close();

		   	$('#AjaxContainer').html(unescape(msg.MAIN));

		   	ModalDialog = $('#AjaxContainer').modal({
					overlayCss: {
				    backgroundColor: '#000',
				    cursor: 'wait'
				  },
				  containerCss: {
				    height: 500,
				    width: 450,
				    backgroundColor: '#FFF',
				    border: '1px solid #3a3a3a'
				  },
				  onShow : function(dialog){
					  $('#recommend_submit').click(function (e) {
					  		e.preventDefault();
					  		sendShareProductData(ModalDialog);
					  	});

					  $('#simplemodal-close').click(function (e) {
						  ModalDialog.close();
					  	});
				  }
				});
	   },
	   error: function(xhr)
	   {
//		   alert(xhr.responseText);
	   }

   });
}

function getSuggestions(inputString) {

	if($.trim(inputString).length < 3) {
		$('#suggestions').fadeOut();
	} else {

		parameters = "input="+inputString+"&localeString=" + localeString;

		$.ajax({
		   type: "GET",
		   url: DSTORE_BASE_URL + "/customGates/scripts/getSearchSuggestions.php",
		   data: parameters,
		   dataType: 'json',
		   success: function(msg)
		   {
			   if(msg != null)
			   {
				   $('#suggestions').fadeIn();
				   $('#suggestions').html(unescape(msg));
			   }
			   else
			   {
				   $('#suggestions').fadeOut();
			   }
		   },
		   error: function(xhr)
		   {
//			   alert(xhr.responseText);
		   }

	   });

   }
}

function reloadCurrentProductList(){
	if(window.location.hash != ''){
		link = window.location.hash;
		link = link.substring(1);
	}
	else{
		link = window.location.href;
		link = link.replace(DSTORE_BASE_URL,'');
		link = link.replace('/','!');
	}
	
	load(link, 1);
}
