function wrapStuff(){	
	jQuery('body').find('input:radio, input:checkbox').addClass('checkradio');

	// html wrapping
	// radiobuttons and checkboxes	
	jQuery(".checkradio").each(function(){
		if(!jQuery(this).hasClass("wrapped")){
			var span = jQuery('<span />').insertBefore(jQuery(this));
			span.addClass('checkradiowrapper');
			span.append(jQuery(this));
			var closeSpan = jQuery('<span />');
			closeSpan.addClass('endwrapper');
			closeSpan.appendTo(span);
			jQuery(this).addClass("wrapped");
		}
	});
}

jQuery(document).ready(function(){	

	// gradient around elements
	jQuery(".wrapme").each(function(index){
		jQuery(this).html('<span class="gradientwrapper">'+jQuery(this).html()+'</span>');
	});	
	
	// add classes to form elements
	jQuery('body').find('textarea').addClass('textarea');
	jQuery('body').find('select').addClass('dropdown');
	jQuery('body').find('input:text').addClass('textfield');
	
	wrapStuff();
	
	// widget structure
	jQuery(".widget").each(function(index){
		jQuery(this).html('<div class="outer guiblock"><div class="inner guiblock">'+jQuery(this).html()+'</div></div>');
	});

	// // panel structure
	// jQuery(".panel").each(function(index){
	// 	jQuery(this).html('<div class="outer guiblock"><div class="inner guiblock">'+jQuery(this).html()+'</div></div>');
	// });
	
	// widgets
	jQuery(".widget, .cleanwidget").draggable({
			handle:			'.header',
			cancel:			'.content, .footer',
			cursor:			'move',
			scroll:			true,
			zIndex:			999,
			stack: 			{group:	'#contentcontainer .widget, #contentcontainer .cleanwidget', min: 2}
			//snap:			'#contentcontainer',
			//containment:	'#contentcontainer',
			//snapMode:		'outer',
			//distance:		10
	});
	
	// last-child additions
	jQuery("ul.footernav li:last-child").addClass("last-child");	

	// hovers !!! TODO - programmers make the dancebattle categorylist clickable !!!
	jQuery(".widget .header, .widget.dancebattle .categorylist li").hover(
	function () {
		jQuery(this).addClass('hover');
	  }, 
	  function () {
		jQuery(this).removeClass('hover');
	});	
	// select replacement
	jQuery('.dropdown').sSelect({
		ddMaxHeight:'200px'
	});
	// superfish main navigation
	jQuery('ul.horizontallist.headernav').superfish({
			delay:			350,
			animation:		{opacity:'show', height:'show'},
			speed:			'fast',
			disableHI:		true,
			autoArrows:  	false,
			dropShadows:	false
	});
	
	
	
	// generic dialog
	jQuery(".genericdialog").dialog({
			autoOpen:				false,
			closeOnEscape:			true,
			resizable:				false,
			draggable:				false,
			bgiframe:				false,
			width:					940,
			modal:					true,
			stack:					true,			
			open:					function(){ 
										jQuery("#header, #footer").hide();
											jQuery(".genericdialog select.dropdown").resetSS();
											// center the image within enlarged canvas!
											//jQuery(".enlargedcanvas img").center();
									},			
			close:					function(){ jQuery("#header, #footer").show(); }
	});
	
	// generic dialog link
	jQuery(".triggergenericdialog").click(function(){
		jQuery(".genericdialog").dialog('open');
	});
	
	jQuery(".triggerchangeimage").click(function(){
		var newsrc = jQuery(this).attr("rel");
		jQuery("#dialogphoto").attr("src", newsrc);
		//jQuery(".enlargedcanvas img").center();
	});

	// confirmation dialog
	jQuery(".confirmationdialog").dialog({
			autoOpen:				false,
			closeOnEscape:			true,
			resizable:				false,
			draggable:				false,
			bgiframe:				false,
			width:					340,
			modal:					true,
			stack:					true,
			open:					function(){ 
										jQuery("#header, #footer").hide();
										jQuery(".confirmationdialog select.dropdown").resetSS();
									},			
			close:					function(){ jQuery("#header, #footer").show(); }						
	});
	
	// confirmation dialog link
	jQuery(".triggerconfirmationdialog").click(function(){
		jQuery(".confirmationdialog").dialog('open');
	});
	
	// first vertical scroller	
	jQuery('.firstverticalscroller .scrollitem:first').attr('id','firstverticalscroller-start');
	jQuery(".firstverticalscroller").smoothDivScroll({
		horizontal:				false,
		scrollWrapper:			"div.scrollwrapper",
		scrollableArea:			"div.scrollablearea",
		scrollingHotSpotLeft:	"div.hotspottop",
		scrollingHotSpotRight:	"div.hotspotbottom",			
		scrollingSpeed: 		5,
		autoScroll: 			"onstart",
		autoScrollDirection: 	"backandforth",
		//pauseAutoScroll:		"mouseover",
		startAtElementId:		"firstverticalscroller-start"
	});
	// second vertical scroller
	jQuery('.secondverticalscroller .scrollitem:last').attr('id','secondverticalscroller-start');
	jQuery(".secondverticalscroller").smoothDivScroll({
		horizontal:				false,
		scrollWrapper:			"div.scrollwrapper",
		scrollableArea:			"div.scrollablearea",
		scrollingHotSpotLeft:	"div.hotspottop",
		scrollingHotSpotRight:	"div.hotspotbottom",			
		scrollingSpeed: 		5,
		autoScroll: 			"onstart",
		autoScrollDirection: 	"backandforth",
		//pauseAutoScroll:		"mouseover",
		startAtElementId:		"secondverticalscroller-start"
	});

	// horizontal scroller
	jQuery(".firsthorizontalscroller, .secondhorizontalscroller").smoothDivScroll({
		scrollWrapper:			"div.scrollwrapper",
		scrollableArea:			"div.scrollablearea",
		scrollingHotSpotLeft:	"div.hotspotleft",
		scrollingHotSpotRight:	"div.hotspotright",			
		scrollingSpeed: 		10,
		//mouseDownSpeedBooster:1,
		autoScroll: 			"onstart",
		autoScrollDirection: 	"backandforth",
		//autoScrollSpeed:		2,
		pauseAutoScroll:		"mouseover",
		startAtElementId:		"firstscroller-start"
	});
	
	jQuery("ul#newsticker").liScroll(); 
	
	// background highlight animation
	jQuery("ul.headernav ul li, .widget.dancebattle .userdata, .pagination ul li a, .buttonlink, ul.highlightnav li, ul.highlightitemnav li, ul.footernav li").each(function(){
		jQuery(this).hover(
			function() {
				var span = jQuery('<span />');				
				span.addClass('highlightfader');
				jQuery(this).append(span);
				span.fadeIn("fast");
			},function() {
				jQuery(this).children('span.highlightfader').fadeOut("slow", function(){ jQuery(this).remove(); });
		});
	});
	
	// expand / collapse widgets
	jQuery(".widget .header a.foldlink").click(function() {
		jQuery(this).toggleClass("expanded");
			if (jQuery(this).hasClass('expanded')) {
				} else {	
			}
		jQuery(this).parents(".widget:first").find(".header").toggleClass("collapsed");
		jQuery(this).parents(".widget:first").find(".content").slideToggle("fast");
	});
	
//	jQuery.blockUI.defaults.css = {};
//	jQuery.blockUI.defaults = {
//		overlayCSS:  { 
//			backgroundColor:		'#000', 
//			opacity:			0.75 
//		},
//		baseZ:						2000,
//		fadeIn:						250,
//		fadeOut:					250,
//		showOverlay:				true,
//		timeout:					3000
//	};
	
	jQuery(".ajaxloader").ajaxStart(function(){
	   jQuery(this).show();
	});
	jQuery(".ajaxloader").ajaxComplete(function(){
	   jQuery(this).hide();
	});
	
    // z-index the dropdowns for IE
//    if (jQuery.browser.msie) {
//    	(function() {
//            var zIndexNumber = 200;
//            jQuery("#header select[class*=dropdown]").each(function() {
//            	jQuery(this).css('zIndex', zIndexNumber);
//            	jQuery(this).parents().css('zIndex', zIndexNumber +10);
//                zIndexNumber += 10;
//            });
//            
//            var zIndexNumber = 200;
//            jQuery("#contentcontainer select[class*=dropdown]").each(function() {
//            	jQuery(this).css('zIndex', zIndexNumber);
//            	jQuery(this).parents().css('zIndex', zIndexNumber -10);
//                zIndexNumber -= 10;
//            });
//        });
//    }
	
	// z-index the dropdowns for IE
	if (jQuery.browser.msie) {
		jQuery(function() {
			var zIndexNumber = 200;
			jQuery("select[class*=dropdown]").each(function() {
				jQuery(this).css('zIndex', zIndexNumber);
				jQuery(this).parents().css('zIndex', zIndexNumber -10);					
				zIndexNumber -= 10;
			});
		});
	} 	

	
	//Product update    
    jQuery('.scrollitem a').click(function(){
		jQuery.ajax({
			type:"GET",
			url:BASE_URL+'ccat/product/ajax/id/'+jQuery(this).attr('rel')+'/'+STORE_LANG,
			dataType:'html',
			success: function(result){
				jQuery('#productcontainer').html(result);
				
	    		jQuery('#productcontainer').find('select').addClass('dropdown');
	    		jQuery('#productcontainer .dropdown').sSelect({ddMaxHeight:'200px'});
	
	    		// generic dialog link
	    		jQuery('#productcontainer').find(".triggergenericdialog").click(function(){
	    			jQuery(".genericdialog").dialog('open');
	    		});
	    		
	    		jQuery('#productcontainer').find(".triggerchangeimage").click(function(){
	    			//var newsrc = jQuery('#productcontainer').attr("rel");
	    			var newsrc = jQuery(this).attr("rel");
	    			jQuery("#dialogphoto").attr("src", newsrc);
	    			//jQuery(".enlargedcanvas img").center();
	    		});		
    		
	    		// z-index the dropdowns for IE
	    		if (jQuery.browser.msie) {
	    			jQuery(function() {
	    				var zIndexNumber = 200;
	    				jQuery("select[class*=dropdown]").each(function() {
	    					jQuery(this).css('zIndex', zIndexNumber);
	    					jQuery(this).parents().css('zIndex', zIndexNumber -10);					
	    					zIndexNumber -= 10;
	    				});
	    			});
	    		} 	    		
    		}    		
    	});
		
		jQuery.ajax({
			type:"GET",
			url:BASE_URL+'ccat/product/ajaxdialog/id/'+jQuery(this).attr('rel')+'/'+STORE_LANG,
			dataType:'html',
			success: function(result){
				jQuery('#productdialog').html(result);
				
	    		jQuery('#productdialog').find('select').addClass('dropdown');
	    		jQuery('#productdialog .dropdown').sSelect({ddMaxHeight:'200px'});
	
	    		jQuery('#productdialog').find(".triggerchangeimage").click(function(){
	    			//var newsrc = jQuery('#productcontainer').attr("rel");
	    			var newsrc = jQuery(this).attr("rel");
	    			jQuery("#dialogphoto").attr("src", newsrc);
	    			//jQuery(".enlargedcanvas img").center();
	    		});		
    		
	    		// z-index the dropdowns for IE
	    		if (jQuery.browser.msie) {
	    			jQuery(function() {
	    				var zIndexNumber = 200;
	    				jQuery("select[class*=dropdown]").each(function() {
	    					jQuery(this).css('zIndex', zIndexNumber);
	    					jQuery(this).parents().css('zIndex', zIndexNumber -10);					
	    					zIndexNumber -= 10;
	    				});
	    			});
	    		} 	    		
    		}    		
    	});		
    });
});

function submitForm(formId){
    jQuery(formId).submit();
}

function showImage(productId,imageId){
	var url = BASE_URL+'ccat/product/showimage/product/'+productId+'/image/'+imageId;
	jQuery.ajax({
		type: 'GET',
		url: url,		
		success: function(imageUrl) {
			if(imageUrl != ''){
				jQuery('img.product-image').attr('src',imageUrl);
			}
		}
	});

}

function switchColor(sender,target,arrOptions) {
	jQuery(target).html(arrOptions[jQuery(sender).val()]);
	jQuery(target).resetSS();
	changePhotos(jQuery(sender));
}

function switchSize(sender,target) {
	var productId= jQuery(sender).val();
	jQuery(target).attr('name','super_group['+productId+']');
}

function changePhotos(sender) {
	var newdialogphotofront = jQuery('#a_dialog_front').attr('data_base') + '_' + jQuery(sender).val() + '_F_01.jpg';
	var newdialogphotoback = jQuery('#a_dialog_back').attr('data_base') + '_' + jQuery(sender).val() + '_B_01.jpg';
	var newdialogphotod1 = jQuery('#a_dialog_detail1').attr('data_base') + '_' + jQuery(sender).val() + '_D_01.jpg';
	var newdialogphotod2 = jQuery('#a_dialog_detail2').attr('data_base') + '_' + jQuery(sender).val() + '_D_02.jpg';
	var newdialogphotod3 = jQuery('#a_dialog_detail3').attr('data_base') + '_' + jQuery(sender).val() + '_D_03.jpg';
	
	var newthumbfront = jQuery('#view_thumb_front').attr('rel') + '_' + jQuery(sender).val() + '_F_01.jpg';
	var newthumbback = jQuery('#view_thumb_back').attr('rel') + '_' + jQuery(sender).val() + '_B_01.jpg';
	var newthumbdetail1 = jQuery('#view_thumb_detail1').attr('rel') + '_' + jQuery(sender).val() + '_D_01.jpg';
	var newthumbdetail2 = jQuery('#view_thumb_detail2').attr('rel') + '_' + jQuery(sender).val() + '_D_02.jpg';
	var newthumbdetail3 = jQuery('#dialog_thumb_detail3').attr('rel') + '_' + jQuery(sender).val() + '_D_03.jpg';
	
	// dialogphoto
	jQuery.ajax({
				type:"POST",
				url:BASE_URL + "proxi/checkimage.php",
				dataType:"json",
				data:{'newdialogphotofront':newdialogphotofront,'newdialogphotoback':newdialogphotoback,'newdialogphotod1':newdialogphotod1,'newdialogphotod2':newdialogphotod2,'newdialogphotod3':newdialogphotod3,'newthumbfront':newthumbfront,'newthumbback':newthumbback,'newthumbdetail1':newthumbdetail1,'newthumbdetail2':newthumbdetail2,'newthumbdetail3':newthumbdetail3},
				success: 
					function(data) {
						//newdialogphotofront
						if( !data.newdialogphotofront ) {
							jQuery('#dialogphoto').attr('src', NO_IMAGE_AVAILABLE + "550x550.jpg");
							jQuery('#a_dialog_front').attr('rel', NO_IMAGE_AVAILABLE + "550x550.jpg");
						}
						else {
							jQuery('#dialogphoto').attr('src', newdialogphotofront);
							jQuery('#a_dialog_front').attr('rel', newdialogphotofront);
						}
						//newdialogphotoback
						if( !data.newdialogphotoback ) {
							jQuery('#a_dialog_back').attr('rel', NO_IMAGE_AVAILABLE + "550x550.jpg");
						}
						else {
							jQuery('#a_dialog_back').attr('rel', newdialogphotoback);
						}						
						//newdialogphotod1
						if( !data.newdialogphotod1 ) {
							jQuery('#a_dialog_detail1').attr('rel', NO_IMAGE_AVAILABLE + "550x550.jpg");
						}
						else {
							jQuery('#a_dialog_detail1').attr('rel', newdialogphotod1);
						}						
						//newdialogphotod2
						if( !data.newdialogphotod2 ) {
							jQuery('#a_dialog_detail2').attr('rel', NO_IMAGE_AVAILABLE + "550x550.jpg");
						}
						else {
							jQuery('#a_dialog_detail2').attr('rel', newdialogphotod2);
						}
						//newdialogphotod1
						if( !data.newdialogphotod3 ) {
							jQuery('#a_dialog_detail3').attr('rel', NO_IMAGE_AVAILABLE + "550x550.jpg");
						}
						else {
							jQuery('#a_dialog_detail3').attr('rel', newdialogphotod3);
						}						
						
						//newthumbfront
						if( !data.newthumbfront ) {
							jQuery('#view_thumb_front, #dialog_thumb_front').attr('src', NO_IMAGE_AVAILABLE + "45x45.jpg");
							jQuery('#view_thumb_front, #dialog_thumb_front').attr('style', 'display:none;');
						}
						else {
							jQuery('#view_thumb_front, #dialog_thumb_front').attr('src', newthumbfront);
							jQuery('#view_thumb_front, #dialog_thumb_front').attr('style', 'display:block;');
						}			
						// newthumbback
						if( !data.newthumbback) {
							jQuery('#view_thumb_back, #dialog_thumb_back').attr('src', NO_IMAGE_AVAILABLE + "45x45.jpg");
							jQuery('#view_thumb_back, #dialog_thumb_back').attr('style', 'display:none;');
						}
						else {
							jQuery('#view_thumb_back, #dialog_thumb_back').attr('src', newthumbback);
							jQuery('#view_thumb_back, #dialog_thumb_back').attr('style', 'display:block;');
						}
						// newthumbdetail1
						if( !data.newthumbdetail1) {
							jQuery('#view_thumb_detail1, #dialog_thumb_detail1').attr('src', NO_IMAGE_AVAILABLE + "45x45.jpg");
							jQuery('#view_thumb_detail1, #dialog_thumb_detail1').attr('style', 'display:none;');
						}
						else {
							jQuery('#view_thumb_detail1, #dialog_thumb_detail1').attr('src', newthumbdetail1);
							jQuery('#view_thumb_detail1, #dialog_thumb_detail1').attr('style', 'display:block;');
						}
						// newthumbdetail2
						if( !data.newthumbdetail2 ) {
							jQuery('#view_thumb_detail2, #dialog_thumb_detail2').attr('src', NO_IMAGE_AVAILABLE + "45x45.jpg");
							jQuery('#view_thumb_detail2, #dialog_thumb_detail2').attr('style', 'display:none;');
						}
						else {
							jQuery('#view_thumb_detail2, #dialog_thumb_detail2').attr('src', newthumbdetail2);
							jQuery('#view_thumb_detail2, #dialog_thumb_detail2').attr('style', 'display:block;');
						}
						// newthumbdetail3
						if( !data.newthumbdetail3 ) {
							jQuery('#dialog_thumb_detail3').attr('src', NO_IMAGE_AVAILABLE + "45x45.jpg");
							jQuery('#dialog_thumb_detail3').attr('style', 'display:none;');
						}
						else {
							jQuery('#dialog_thumb_detail3').attr('src', newthumbdetail3);
							jQuery('#dialog_thumb_detail3').attr('style', 'display:block;');
						}
					}
				});
}


function checkPostcode(htmlPostcode,htmlHuisnummer,htmlStraat,htmlWoonplaats){
	strPostcode=jQuery(htmlPostcode).val();
	strHuisnummer=jQuery(htmlHuisnummer).val();
	jQuery.ajax({
		type:"POST",
		url:BASE_URL + "proxi/postcodecheck.php",
		dataType:"json",
		data:{'postcode':strPostcode,'huisnummer':strHuisnummer},
		success: 
			function(data) {
				jQuery(htmlStraat).val(data['straatnaam']);
				jQuery(htmlWoonplaats).val(data['woonplaats']);				
			}
		});	
}

function setLocation(location) {
	// Set location cookie
	var date = new Date();
	date.setTime(date.getTime()+2592000000); // 1 month
	document.cookie = 'cc_country='+location+'; expires='+date.toGMTString()+'; path=/';

	// Get info from url
	var url = window.location.href;
	var query = window.location.search;
	if (query != '') query = query.substring(1); // remove question mark
	var hekje = url.indexOf('#');
	var fragment = hekje == -1 ? '' : url.substring(hekje);

	var vraag = url.indexOf('?');
	var end = vraag == -1 ? (hekje == -1 ? url.length : hekje) : vraag;
	var page = url.substring(0, end);

	var parts = query.split('&');

	for (var i=0; i<parts.length; i++) {
		if (parts[i].substring(0, 14) == '___from_store=') {
			window.location.reload();
			return;
		}
	}

	var lang = location == 'NL' || location == 'BE' ? 'nl' : 'fr';
	parts[parts.length] = '___store=' + lang;

	var newUrl = page + '?' + parts.join('&') + fragment;
	window.location.href = newUrl;
}

