﻿if (!SC)
    var SC = {};

function basePath() {
    return '/centrum/sv/';
}

function replaceDiacritics(s) {
    var s;

    var diacritics = [
        /[\300-\306]/g, /[\340-\346]/g, // A, a
        /[\310-\313]/g, /[\350-\353]/g, // E, e
        /[\314-\317]/g, /[\354-\357]/g, // I, i
        /[\322-\330]/g, /[\362-\370]/g, // O, o
        /[\331-\334]/g, /[\371-\374]/g,  // U, u
        /[\321]/g, /[\361]/g, // N, n
        /[\307]/g, /[\347]/g, // C, c
    ];

    var chars = ['A', 'a', 'E', 'e', 'I', 'i', 'O', 'o', 'U', 'u', 'N', 'n', 'C', 'c'];

    for (var i = 0; i < diacritics.length; i++) {
        s = s.replace(diacritics[i], chars[i]);
    }

    return s;
}

function initFriendlyUrlControl(parentControlId, friendlyUrlControlId) {
    $('#' + parentControlId).keyup(function() {
        $('#' + friendlyUrlControlId).val(replaceDiacritics($(this).val().toLowerCase()).replace(/å/gi, "a").replace(/ä/gi, "a").replace(/ö/gi, "o").replace(/&/gi, "-").replace(/[^a-zA-Z0-9-_\s]/gi, "").replace(/[\s]/g, "-").replace(/^[^a-z]+/gi, '').replace(/[^a-z]+$/gi, '').replace(/[-]+/gi, "-"));
    });
}

SC.main = {

	init: function () {
		this.prepareTransparency();
		//this.prepareLinefalls();
		this.prepareSearch();
		//this.prepareNews();
		this.prepareLists();
		this.prepareAddCategory();
		this.prepareMap();
		this.prepareStoreMenu();
		this.prepareFancyBoxImages();
		this.prepareStoreSwitch();

		this.prepareShare();
		this.preparePrint();

		this.prepareLoveGenFancyBox();

		this.toggleFlashPlayer();
	},

	prepareStoreSwitch: function () {
		if ($('.switchi-menu li:first').css('display') == 'none') {
			$('.switchi-menu li:visible').addClass('selected');
			$('.switchi-menu li:visible').addClass('first-item');
		}
		else {
			$('.switchi-menu li:first').addClass('selected');
			$('.switchi-menu li:first').addClass('first-item');
		}

		$('.switchi-menu .img-select a').click(function () {
			$('.map').hide();
			$('.image').show();
			$('.switchi-menu .img-select').addClass('selected');
			$('.switchi-menu .loc-select').removeClass('selected');
			return false;
		});

		$('.switchi-menu .loc-select a').click(function () {
			$('.map').show();
			$('.image').hide();
			$('.switchi-menu .img-select').removeClass('selected');
			$('.switchi-menu .loc-select').addClass('selected');
			return false;
		});
	},

	prepareMap: function () {
		/*clearHighlight();
		showArea('area_1131');*/
	},

	toggleFlashPlayer: function () {
		$('.startplayer-container').hide();
		$('.play-toggler').click(function () {
			var videoId = $(this).attr('title');
			var videoObj = $('#' + videoId);
			var file = $(this).attr('rel')
			videoObj.toggle();
			$(this).parent().hide();

			var c = document.getElementById(videoId);
			if (!c) {
				var d = document.createElement("div");
				d.setAttribute("id", videoId);
				document.getElementById(videoId + '_wrapper').appendChild(d);
			}


			if (swfobject.hasFlashPlayerVersion('9')) {
				swfobject.embedSWF('/bazment/centrum/flash/scvp.swf', videoId, '490px', '272px', '9', '/bazment/Centrum/flash/expressinstall.swf', { movieId: videoId, autoplay: true, url: '/uploads/files/' + file + '.flv' }, { menu: false, wmode: 'transparent', allowFullScreen: true });
			}

			return false;
		});
	},

	prepareStoreMenu: function () {

		$('.store a').click(function () {
			var link = $(this);
			var storeId = link.attr('rel');
			link.addClass('sub-selected');
			SC.main.getStoreData(storeId);
			swfobject.removeSWF('sollentuna_mapbrowser');

			var div = document.createElement("div");
			div.setAttribute('id', 'sollentuna_mapbrowser');

			document.getElementById('map-container').appendChild(div);

			swfobject.embedSWF('/bazment/centrum/flash/sollentuna_mapbrowser.swf', 'sollentuna_mapbrowser', '490', '327', '9', '/bazment/centrum/flash/expressinstall.swf', {}, { allowScriptAccess: 'always', menu: false, wmode: 'opaque', allowFullScreen: true });
			return false;
		});

		$('.homepage a').hide();
		/*$('.contact-info a').hide();*/

		$('.list-by-category a').click(function () {
			$('.list-all a').removeClass('sub-selected');
			$('.list-by-category a').addClass('sub-selected');
			$('#store-type-container').show();
			return false;
		});
		$('.categories a').click(function () {
			$('#store-container h2').show();
			$('#store-container').show();
			$('.store').hide();
			$('.category').removeClass('sub-selected');
			$('#' + this.id).addClass('sub-selected');
			$('.' + this.id).show();
			return false;
		});

		$('ul.store-menu').css('display', 'block');
		$('#store-container .store').hide();
		var cat = $('.categories .sub-selected').attr('id');
		$('.' + cat).show();
	},
	getStoreDataByAreaId: function (areaId) {
		$('.map').hide();
		$.ajax({
			type: 'POST',
			contentType: 'application/json; charset=utf-8',
			url: '/bazment/centrum/services/storeservice.asmx/GetStoreByAreaId',
			data: '{"areaId":' + areaId + '}',
			success: function (data) {
				SC.main.fillStoreData(data);
			},
			dataType: 'json'
		});
	},

	getStoreData: function (storeId) {
		$('.map').hide();
		$.ajax({
			type: 'POST',
			contentType: 'application/json; charset=utf-8',
			url: '/bazment/centrum/services/storeservice.asmx/GetStore',
			data: '{"storeId":' + storeId + '}',
			success: function (data) {
				SC.main.fillStoreData(data);
			},
			dataType: 'json'
		});
	},

	fillStoreData: function (data) {
		if (data.d == null) return;
		$('.store-info h1').html(data.d.Name);
		$('.store-info .description').html('<p>' + data.d.Description + '</p>');
		$('.store-info .opening-time').html(data.d.OpenHours);
		$('#storelevel h2').html('Plan ' + data.d.Areaid.toString().charAt(0));
		if (data.d.Phone != null)
			$('.store-info .key-phone').html('Tel: <span class="phone">' + data.d.Phone + '</span><br/>');
		else
			$('.store-info .key-phone').html('');
		if (data.d.Fax != null)
			$('.store-info .key-fax').html('Fax: <span class="fax">' + data.d.Fax + '</span><br/>');
		else
			$('.store-info .key-fax').html('');
		if (data.d.Email != null)
			$('.store-info .key-email').html('E-post: <span class="email"><a href="mailto:' + data.d.Email + '">' + data.d.Email + '</a></span><br/>');
		else
			$('.store-info .key-email').html('');
		if (data.d.Web != null)
			$('.store-info .key-web').html('Webbplats: <span class="web"><a class="no-arrow" href="http://' + data.d.Web + '">' + data.d.Web + '</a></span>');
		else
			$('.store-info .key-web').html('');

		var lev = data.d.Areaid.toString().charAt(0);

		$('.level-menu li').removeClass('selected');
		$('.level-menu .lev' + lev).addClass('selected');

		$('ul.store-menu a').removeClass('sub-selected');

		/*$('ul.categories-menu a').removeClass('sub-selected');
		$('ul.categories-menu #cat_' + data.d.CategoryId).addClass('sub-selected');
        
		$('ul.store-menu').css('display', 'block');
		$('#store-container .store').hide();
		var cat = $('.categories .sub-selected').attr('id');
		$('.' + cat).show();
		},
		getStoreDataByAreaId: function(areaId){
		$('.map').hide();
		$.ajax({
		type: 'POST',
		contentType: 'application/json; charset=utf-8',
		url: '/bazment/centrum/services/storeservice.asmx/GetStoreByAreaId',
		data: '{"areaId":' + areaId + '}',
		success: function(data) {
		SC.main.fillStoreData(data);
		},
		dataType: 'json'
		});
		},
    
		getStoreData: function(storeId){
		$('.map').hide();
		$.ajax({
		type: 'POST',
		contentType: 'application/json; charset=utf-8',
		url: '/bazment/centrum/services/storeservice.asmx/GetStore',
		data: '{"storeId":' + storeId + '}',
		success: function(data) {
		SC.main.fillStoreData(data);
		},
		dataType: 'json'
		});
		},
    
		fillStoreData: function(data){
		if(data.d == null) return;
		$('.store-info h1').html(data.d.Name);
		$('.store-info .description').html('<p>' + data.d.Description + '</p>');
		$('.store-info .opening-time').html(data.d.OpenHours);
		$('#storelevel h2').html('Plan ' + data.d.Areaid.toString().charAt(0));
		if(data.d.Phone != null)
		$('.store-info .key-phone').html('Tel: <span class="phone">' + data.d.Phone + '</span><br/>');
		else
		$('.store-info .key-phone').html('');
		if(data.d.Fax != null)
		$('.store-info .key-fax').html('Fax: <span class="fax">' + data.d.Fax + '</span><br/>');
		else
		$('.store-info .key-fax').html('');
		if(data.d.Email != null)
		$('.store-info .key-email').html('E-post: <span class="email"><a href="mailto:' + data.d.Email + '">' + data.d.Email + '</a></span><br/>');
		else
		$('.store-info .key-email').html('');
		if(data.d.Web != null)
		$('.store-info .key-web').html('Webbplats: <span class="web"><a class="no-arrow" href="http://' + data.d.Web + '">' + data.d.Web + '</a></span>');
		else
		$('.store-info .key-web').html('');
            
		var lev = data.d.Areaid.toString().charAt(0);
       
		$('.level-menu li').removeClass('selected');
		$('.level-menu .lev' + lev).addClass('selected');

		$('ul.store-menu a').removeClass('sub-selected');
  
		/*$('ul.categories-menu a').removeClass('sub-selected');
		$('ul.categories-menu #cat_' + data.d.CategoryId).addClass('sub-selected');
        
		$('ul.store-menu .store').hide();*/
		$('ul.store-menu .cat_' + data.d.CategoryId).show();
		$('ul.store-menu a').removeClass('sub-selected');
		$('ul.store-menu #str_' + data.d.Id).addClass('sub-selected');


		$('.store-main-editor').hide();
		$('.store-info').show();

		if (data.d.HasPhoto) {
			$('.map').show();
			$('#store-image').attr("src", data.d.PhotoRef + '/content/?anonymous=true&sitename=SollentunaC');
			$('.logo').css('padding', '0px');
			$('.logo img').attr("src", '');
			$('.map').hide();
			$('img-select').show();
			$('.image').show();
			$('.switchi-menu li:first').css('display', 'inline');
			$('.switchi-menu li:first').addClass('selected');
			$('.switchi-menu li:first').addClass('first-item');
			$('.switchi-menu .loc-select').removeClass('selected');
			$('.switchi-menu .loc-select').removeClass('first-item');
		}
		else {
			$('.map').show();
			$('img-select').hide();
			$('.image').hide();
			$('.switchi-menu li:first').css('display', 'none');
			$('.switchi-menu li:first').removeClass('selected');
			$('.switchi-menu li:first').removeClass('first-item');
			$('.switchi-menu .loc-select').addClass('selected');
			$('.switchi-menu .loc-select').addClass('first-item');
		}
		if (data.d.HasLogo) {
			$('.logo img').attr("src", data.d.LogoRef + '/content/?anonymous=true&sitename=SollentunaC');
			$('.logo').css('padding', '10px');
		}
		startAreaId = data.d.Areaid.toString();
	},

	prepareTransparency: function () {
		$.ifixpng('image/pixel.gif');
		$('.transparent, .search-submit, .search-input, .play-video, #share-container').ifixpng();
	},

	prepareLinefalls: function () {
		swfobject.embedSWF('/bazment/centrum/flash/linefall.swf', 'linefall', '40px', '100%', '9', '/bazment/centrum/flash/expressinstall.swf', {}, { menu: false, wmode: 'transparent' });
	},

	searchsubmit: $('.search-submit button'),
	searchfield: $('.search-input .text-input'),
	spotlight: $('#spotlight'),
	prepareSearch: function () {
		if (this.searchsubmit.length === 0) return;
		this.searchsubmit.hide();
		$('.search-submit').append('<a href="">Sök</a>');
		$('.search-submit a').click(function () {
			if ($('.text-input').val() != unescape('B%F6rja skriv din s%F6kning...'))
				location.href = basePath() + 'sok/' + $('.text-input').val().toLowerCase().replace(/\./gi, '').trim() + '/';
			return false;
		});

		if (this.searchfield.length === 0) return;
		this.searchfield.val(unescape('B%F6rja skriv din s%F6kning...'));
		this.searchfield.focus(function () {
			if (this.value == unescape('B%F6rja skriv din s%F6kning...')) {
				this.value = '';
			}
		});
		this.searchfield.blur(function () {
			if (this.value == '') {
				this.value = unescape('B%F6rja skriv din s%F6kning...');
			}
		});

		if (this.spotlight.length === 0) return;
		this.searchfield.keyup(function (e) {
			if ($(this).val().length > 2) {
				if (e.keyCode == 13) {
					if ($('.text-input').val() != unescape('B%F6rja skriv din s%F6kning...'))
						location.href = basePath() + 'sok/' + $('.text-input').val().toLowerCase().replace(/\./gi, '').trim() + '/';
				}
				$.ajax({
					type: 'POST',
					contentType: 'application/json; charset=utf-8',
					url: '/bazment/centrum/services/searchService.asmx/Search',
					data: '{"site":"' + SC.Settings.SiteId + '", "take":"3", "value":"' + $(this).val().toLowerCase() + '"}',
					success: function (data) {
						SC.main.spotlight.html('');
						if (data.d) {
							for (i = 0; i < data.d.length; i++) {
								cat = data.d[i];
								SC.main.spotlight.append('<a href="' + (cat.Link + $('.text-input').val()).toLowerCase() + '/" class="spotlight-cat">' + cat.Name + ' (' + cat.Hits + ' ' + unescape('tr%E4ffar') + ')</a>');
								for (j = 0; j < cat.Items.length; j++) {
									hit = cat.Items[j];
									SC.main.spotlight.append('<a href="' + hit.Link.toLowerCase() + '/" class="spotlight-hit">' + hit.Name + '</a>');
								}
							}
						}
						SC.main.spotlight.slideDown(300, function () {
							$.keynav.reset();
							$('#spotlight a').keynav('jfocus', 'jblur');
						})
					},
					dataType: 'json'
				});
			} else {
				SC.main.spotlight.slideUp(300, function () {
					$.keynav.reset();
				});
			}
		});
	},

	newsexpansion: $('.news-expansion'),
	prepareNews: function () {
		if (this.newsexpansion.length === 0) return;

		this.newsexpansion.each(function () {
			if ($(this).html().length > 1) {
				$(this).hide();
				$(this).parent().append('<p class="expand-news"><a href="">' + 'Läs mer' + '</a></p>');
			}
		});

		this.newsexpansion.next().find('a').click(function () {
			$(this).text(($(this).parent().prev().is(':visible') ? 'Läs mer' : 'Stäng'));
			$(this).parent().prev().slideToggle(500);
			return false;
		});
	},

	listcontainer: $('.list-menu-container'),
	prepareLists: function () {
		if (this.listcontainer.length === 0) return;

		this.listcontainer.each(function () {
			var list = $(this);
			var i = 0;
			list.find('.list-menu').each(function () {
				if (i++ > 0) {
					$(this).hide();
				}
			});
			if (i > 1) {

				list.append('<div class="switch-container paging"><a class="switch switch-prev" title="Föregående" href="">Föregående</a><span class="counter">1</span>/' + i + '<a class="switch switch-next" title="Nästa" href="">Nästa</a></div>');
				list.find('a.switch-next').click(function () {
					return SC.main.contentSwitch(list, 'list-menu');
				});
				list.find('a.switch-prev').click(function () {
					return SC.main.contentSwitch(list, 'list-menu', true);
				});
			}

		});
	},

	contentSwitch: function (par, sel, dir) {
		var list = par.find('.' + sel);
		var total = list.length;
		var current = list.data('current') || 1;
		list.each(function () {
			if ($(this).css('display') == 'block') {
				$(this).hide();

				if (!dir) {
					if ($(this).next().hasClass(sel)) {
						$(this).next().show();
						current++;
					} else {
						par.find('.' + sel + ':first').show();
						current = 1;
					}
				} else {
					if ($(this).prev().hasClass(sel)) {
						$(this).prev().show();
						current--;
					} else {
						par.find('.' + sel + ':last').show();
						current = total;
					}
				}
				par.find('.counter').html(current);
				list.data('current', current)
				return false;
			}
		});
		return false;

	},

	categorysubmit: $('#add'),
	categoryfield: $('.category-text-input'),
	categoryfriendlynamefield: $('#friendlyname'),
	categorylist: $('.store-category'),
	prepareAddCategory: function () {
		this.categorysubmit.click(function (e) {

			if (SC.main.categoryfield.val().trim().length < 1 || SC.main.categoryfriendlynamefield.val().trim().length < 1) {
				alert('Fyll båda kategorifälten.');
				return false;
			}

			SC.main.categoryfield.attr("disabled", "disabled");
			SC.main.categoryfriendlynamefield.attr("disabled", "disabled");
			SC.main.categorysubmit.attr("disabled", "disabled");

			$.ajax({
				type: 'POST',
				contentType: 'application/json; charset=utf-8',
				url: '/bazment/centrum/services/StoreService.asmx/CreateType',
				data: '{"site":"' + SC.Settings.SiteId + '", "name":"' + SC.main.categoryfield.val() + '", "friendlyName":"' + SC.main.categoryfriendlynamefield.val() + '"}',
				success: function (data) {
					SC.main.categorylist.append('<option value="' + data.d + '">' + SC.main.categoryfield.val() + '</option>');
					SC.main.categoryfield.removeAttr("disabled");
					SC.main.categoryfriendlynamefield.removeAttr("disabled");
					SC.main.categorysubmit.removeAttr("disabled");
				},
				error: function (a, b, c) {
					SC.main.categoryfield.removeAttr("disabled");
					SC.main.categoryfriendlynamefield.removeAttr("disabled");
					SC.main.categorysubmit.removeAttr("disabled");
				},
				dataType: 'json'
			});
		});
	},

	prepareFancyBoxImages: function () {
		$('a.fancybox').fancybox({ overlayOpacity: 0.7 });
		$('a[target=fancybox]').fancybox({ overlayOpacity: 0.7, frameWidth: 691, frameHeight: 424, callbackOnStart: function () { $('#fancy_close').css('opacity', 1); } });
	},

	prepareLoveGenFancyBox: function () {
		$('a.lovegen').fancybox({ overlayOpacity: 0.7, frameWidth: 540, frameHeight: 448, padding: 0, callbackOnStart: function () { $('#fancy_close').css('opacity', 0); } });
		$('a.lovegen').css('display', 'none');
		$('a.lovegen').click();
	},

	prepareShare: function () {
		$('#fn-share').hover(function () {
			$(this).addClass('js-expanded');
		}, function () {
			$(this).removeClass('js-expanded');
		}).children('a').click(function () {
			return false;
		});
	},
	preparePrint: function () {
		if ($('.food-teaser-column').length === 0) return;

		$('#fn-print').show();
		$('#fn-print').click(function () {

			// $( 'body' ).append( '<div class="food-teaser-column"><a href="/Uploads/Images/216.jpg" rel="fancybox" class="fancybox"><img alt="" src="/Bazment/Alias/Images/?Fetaostcigarrer_liten.jpg"/></a><p><strong>Fetaostcigarrer med spetsad fikonchutney, ca 12 st</strong></p><p> </p><p><span style="text-decoration: underline;">Ingredienser</span><br/>200 g fetaost<br/>1 dl creme fraiche<br/>1 citron, skalet från<br/>1 paket Filodeg, kyld/tinad ca 270 g<br/>50 g flytande smör- och rapsolja<br/>1 dl fikonmarmelad<br/>1,5 msk glögg<br/>lite balsamvinäger</p><p> </p><p>Gör så här:<br/>Mosa fetaost med creme fraiche. Smaka av med citronskal, salt och svartpeppar. Dela filodegsarken på mitten så att de blir kvadratiska. Lägg 1,5 tsk ostkräm i en sträng på mitten av filodegsarket. Vik ihop degen en gång så att det blir en trekant. Tryck till kanterna, vik in över och under delen mot mitten och rulla ihop till en cigarr, ca 7 cm lång.  Lägg cigarrerna på en plåt, pensla med smält smör och grädda i 200º i ca 15 minuter. Blanda marmelad och glögg. Smaka av med balsamvinäger. Garnera eventuellt med granatäpplekärnor. </p></div>' );

			var guide = $('.food-teaser-column');
			var title = guide.find('p:first strong').html();
			var text = guide.clone();
			text = text.find('p:first').wrap('<h1></h1>').end().html();

			top.printme = window.open('', 'printme', 'width=600,height=830,menubar=0,toolbar=0,status=0,scollbars=1,resizable=1');
			top.focus();

			top.printme.document.write('<html><head>');
			top.printme.document.write('<link type="text/css" rel="stylesheet" href="/bazment/centrum/style/default.css" media="all" />');
			top.printme.document.write('<link type="text/css" rel="stylesheet" href="/bazment/centrum/style/general.css" media="all" />');
			top.printme.document.write('<link type="text/css" rel="stylesheet" href="/bazment/centrum/style/guideprint.css" media="all" />');
			top.printme.document.write('<title>' + title + '</title>');
			top.printme.document.write('</head><body>');
			top.printme.document.write('<div class="column large-column">' + text + '</div>');
			top.printme.document.write('<div class="column medium-column"><img src="/bazment/centrum/image/mat_print.png" alt="sollentuna" /></div>');
			top.printme.document.write('</body></html>');

			top.printme.document.close();
			top.printme.print();
			top.printme.close();

			return false;
		});
	}
};
var SlideShow = new $OO.Class({
	__construct: function(stage, thumbs, index) {
		this.setStage(stage);
		this.setThumbs(thumbs, index || 0);
	},
	setStage: function(target) {
		this.stage = $(target);
		/*this.stage.click(function() {
			alert('Open in lightbox: ' + $(this).attr('src'));
		});*/

	},
	setThumbs: function(target, index) {
		var stage = this.stage;
		if (stage) {
			this.thumbs = $(target);
			this.thumbs.click(function() {
				stage.attr('src', $(this).attr('href'))
				return false;
			});
			$(this.thumbs[index]).trigger('click');
		}
	}
});
var AnimatedSlideShow = new $OO.Class({
	__construct: function(stage, thumbs, slide, prev, next, steps, index) {
		$OO.Extend(new SlideShow(stage, thumbs, index || 0), this);
		this.setNavigation(slide, prev, next, steps || 1);
	},
	triggerNext: function() {
		this.next.trigger('click');
	},
	triggerPrev: function() {
		this.prev.trigger('click');
	},
	setNavigation: function(slide, prev, next, steps) {
		var slide = this.slide = $(slide);
		var next = this.next = $(next);
		var prev = this.prev = $(prev);

		var number = this.thumbs.length;
		var width = (this.thumbs.width() + 1);
		var offset = Math.round(slide.width() / width);

		slide.css('width', number * width);
		slide.data('clicks', 0);

		number -= offset;
		number = Math.ceil(number / steps);
		width *= steps;

		prev.click(function() {
			var clicks = slide.data('clicks') - 1;

			if (clicks < 0) {
				$(this).parent().addClass('disabled');
				return false;
			} else
				if (clicks <= 0) {
				$(this).parent().addClass('disabled');
			} else {
				$(this).parent().removeClass('disabled');
			}
			next.parent().removeClass('disabled');

			slide.animate({ marginLeft: width * clicks * -1 + 'px' }, 200, 'swing');
			slide.data('clicks', clicks)
			return false;
		});
		next.click(function() {
			var clicks = slide.data('clicks') + 1;

			if (clicks > number) {
				$(this).parent().addClass('disabled');
				return false;
			} else
				if (clicks >= number) {
				$(this).parent().addClass('disabled');
			} else {
				$(this).parent().removeClass('disabled');
			}
			prev.parent().removeClass('disabled');

			slide.animate({ marginLeft: width * clicks * -1 + 'px' }, 200, 'swing');
			slide.data('clicks', clicks);
			return false;
		})
	}
});

$(document).ready(function() {
	SC.main.init();

	var slideGallery = new AnimatedSlideShow(
		'#NewsVideo img', '#gallery-thumbs a',
		'#gallery-thumbs ul', '#gallery-prev a', '#gallery-next a'
	);
});
