function showBox(id,msg) {
	div = $(id);
	if (div) {
		if (msg) {
			div.innerHTML = msg;
			div.style.display = 'block';
		} else {
			div.innerHTML = '';
			div.style.display = 'none';
		}
	}
}

// show a system message on page top or specified div
function showSystemMsg(msg, id) {
	if ($(id)) {
  		showBox(id, msg);
	} else {
  		showBox('system_msg', msg);
	}
}

// show a system error on page top or specified div
function showSystemErr(msg,id) {
	if ($(id)) {
  		showBox(id, msg);
	} else {
  		showBox('system_err', msg);
	}
}

// hide a system message on page top
function hideSystemMsg() {
	showBox('system_msg', '');
}

// hide a system error on page top
function hideSystemErr() {
	showBox('system_err', '');
}

var currentSelection2 = '';

function setColor(color) {
	$('prod-color').value = color;
	$('bloglink').href =  blogURL + '/color/' + color;
	var caption = "Color";
	if(color>0) caption = $('colorEntry'+color).innerHTML;
	
	
	currentSelection = 'colorEntry'+color;
	if (currentSelection2){
		$(currentSelection2).removeClassName('currentSelection');
	}
	$(currentSelection).addClassName('currentSelection');
	currentSelection2 = currentSelection;

	new Ajax.Request(ajaxURL + 'Marketplace/articleDetailData/article/'+ articleId + '/color/' + color, {
		method: 'get',
		onSuccess: function(response) {
			var articleData = response.responseText.evalJSON(true);
			var count = 0;
			var compositionImage = '';

			articleImageChanger = new MarketplaceImageChanger();
			articleImageChanger.initField('article'+ articleId, 'design'+ articleId, 'zoomLink');

			articleData.views.each(function(item) {
				$('viewImage'+item.viewId).src = item.thumbLink;
				articleImageChanger.addImage(item.viewId,item.hugeLink, item.compositionImageLink, item.zoomImageLink);
                if(item.compositionImageLink != '') {
                    compositionImage = item.compositionImageLink;
                }
				if(item.viewId == currentView || (currentView == 0 && count == 0))	{
                    if($('article'+articleId)) {
                        $('article'+articleId).src = item.hugeLink;
                    }
                    if($('design'+articleId)) {
                        $('design'+articleId).src = compositionImage;
                    }
                    if($('zoomLink')) {
                        MagicZoom.update($('zoomLink'), item.zoomImageLink, item.hugeLink);
                        //$('zoomLink').href = item.zoomImageLink;
                        //MagicZoom.refresh();
                    }
				}
				count++;
			});
			$('SizesBarEntries').innerHTML = "";
			var selectedSizeValid = false;
			var stockout = true;
			articleData.sizes.each(function(item) {
				var newEntry = document.createElement('li');
				newEntry.innerHTML = "<a href=\"#\" onclick=\"return setSize(" + item.id + ");\" class=\"MenuBarItemSubmenu\" id=\"sizeEntry"+ item.id +"\">" + item.name + "</a>";
				$('SizesBarEntries').appendChild(newEntry);
				if($('prod-size').value == item.id) selectedSizeValid = true;
				stockout = false;
			});
			if(stockout) {
			  $('stockout-message').innerHTML = MSG_STOCKOUT;
			  $('selectedSize').innerHTML = MSG_STOCKOUT_SHORT;
			} else {
			  $('stockout-message').innerHTML = MSG_IN_STOCK;
			  if(!selectedSizeValid) $('selectedSize').innerHTML = MSG_IN_STOCK_SHORT;
			}
			if(!selectedSizeValid) setSize(0);
		}
	 });
	 return false;
}

function setSize(size) {
	if(size>0) {
		$('selectedSize').innerHTML = $('sizeEntry'+size).innerHTML;
		$('selectedSize').addClassName('currentSelection');
	} else {
		if($('prod-size').value != 0) {
			$('selectedSize').innerHTML = '';
		}
		$('selectedSize').removeClassName('currentSelection');
	}
	$('prod-size').value = size;
	SizesBar.hideSubmenu($('SizesBarEntries'));
	return false;
}

function setQuantity(quantity) {
	$('prod-quantity').value = quantity;
	$('selectedQuantity').innerHTML = quantity;
	$('selectedQuantity').addClassName('currentSelection');
	NumberBar.hideSubmenu($('NumberBarEntries'));
	new Ajax.Request(ajaxURL + 'Marketplace/updateArticlePrice/article/'+articleId+'/quantity/'+quantity, {
		method: 'get',
		onSuccess: function(response) {
			if(response.responseText != '') {
				$('product-price').innerHTML = response.responseText;
			}
		}
	});
	return false;
}

// check size selection on article detail
function checkSize(msg) {
	if ($('prod-size').value == 0) {
		showSystemErr(msg);
		return false;
	} else {
		hideSystemErr();
		$('basketAddForm').submit();
		return true;
	}
}

// set omniture tracking war
function trackUserAction(userAction) {
	s.prop5 = userAction;
}

// load related articles, designs and user gallery
function loadAssignedContent(divId, url) {
	$(divId).innerHTML = '';
	new Ajax.Updater(divId, url, {evalScripts:true, asynchronous:true});
	return true;
}

// flag a design or an article
function addFlag(formId, object, type) {
	hideSystemErr();
	hideSystemMsg();
	var flagForm	 = $(formId);
	var text  		= flagForm.text.value;

	var url			= ajaxURL + 'Marketplace/addFlag/';
	var params	 	= 'text=' + encodeURIComponent(text) + '&object=' + encodeURIComponent(object) + '&type=' + encodeURIComponent(type);
	var flagAjax 	= new Ajax.Request(url,
		{
			onComplete: function(response){
		  		if (response.responseText == 'OK') {
		  			trackUserAction('Flag Item');
		  			hideIbox();
					showSystemMsg(FLAG_THANK_YOU);
					window.location.href="#";
				} else {
					showSystemErr(response.responseText,'layer-system-err');
				}
			},
			 method: 'post',
			 parameters: params,
			 asynchronous: false
		});
}

// add user favorite
function addFavorite(object, type) {
	hideSystemErr();
	hideSystemMsg();

	var url   	= ajaxURL + 'Marketplace/addFavorite/';
	var params	= 'object=' + encodeURIComponent(object) + '&type=' + encodeURIComponent(type);

	var favouriteAjax = new Ajax.Request(url,
		{
			onComplete: function(response){
				trackUserAction('Add to Favourities');
				hideIbox();
				showSystemMsg(response.responseText);
				window.location.href="#";
			},
			method: 'post',
			parameters: params,
			asynchronous: false
		});
}

/// add a tag for a design or an article
function addTag(object, type) {
	hideSystemErr();
	hideSystemMsg();

	var tags  = $('addTagFormTags').value;

	var url   = ajaxURL + 'Marketplace/addTag/';
	var params = 'tags=' + encodeURIComponent(tags) + '&object=' + encodeURIComponent(object) + '&type=' + encodeURIComponent(type);

	var tagAjax = new Ajax.Request(url,
		{
			onComplete: function(response) {
				if (response.responseText != 'OK') {
					showSystemErr(response.responseText,'layer-system-err-tag');
				} else {
					trackUserAction('Tag This');
					showSystemMsg(TAG_THANK_YOU);
					hideIbox();
					window.location.href="#";
				}
			},

			method: 'post',
			parameters: params,
			asynchronous:false
		});
}


// reload rating stars
function reloadStarRating(article) {
	var url = ajaxURL + 'Marketplace/rating/article/' + article;
	var oAjax = new Ajax.Request(
		url, {
			onSuccess:showStarRating,
			asynchronous:false,
			evalScripts:true
	});

}

// display the rating content
function showStarRating(oRequest) {
	var div = 'rating';
	$(div).innerHTML = oRequest.responseText;
}

// do star rating
function doStarRating(article, rating) {
	var div = 'rating';
	var url = ajaxURL + 'Marketplace/addRating/article/' + article + '/rating/' + rating;
	var oAjax = new Ajax.Request(
		 url,
		 {
		   asynchronous:true,
		   onComplete: function(response){
				response = response.responseText;
				if (response == 'errorLogin') {
					window.location.href = loginURL;
				} else {
			 		$(div).innerHTML = response;
				}
		   }
		 });

  return false;
}

function doCreate(design) {
	hideSystemErr();
	hideSystemMsg();
	hideIbox();
	newWindow = window.open(ajaxURL + 'Marketplace/confomat/design/' +design, 'customize', 'width=675,height=700');
	newWindow.focus();
}

// grab a design
function doGrab(design, variant) {
	hideSystemErr();
	hideSystemMsg();

	var url   = ajaxURL + 'Marketplace/doGrab/design/' + design + '/';
	if (variant == true) {
		url += 'unilink/130/';
	}
	var params	 = '';

	var oAjax = new Ajax.Request(
		url, {
			onComplete: function(response){
				hideIbox();
				if (variant && response.responseText == '1') {
					newWindow = window.open(ajaxURL + 'Marketplace/confomat/grabbed/1/design/' +design, 'customize', 'width=675,height=700');
					newWindow.focus();
				} else {
					if (response.responseText == '1') {
						 showSystemMsg(MSG_GRABBED);
					} else if (response.responseText == '2') {
						showSystemErr(MSG_NOT_GRABBED_2ND);
					}else {
						showSystemErr(MSG_NOT_GRABBED);
					}
					window.location.href="#";
				}
			},
			method: 'post',
			parameters: params,
			asynchronous: false
	});
}

// grab a design
function doArticleGrab(article) {
	hideSystemErr();
	hideSystemMsg();

	var url   = ajaxURL + 'Marketplace/doGrab/article/' + article + '/';
	var params	 = '';

	var oAjax = new Ajax.Request(
		url, {
			onComplete: function(response){
				hideIbox();
				if (response.responseText == 1) {
					showSystemMsg(MSG_GRABBED);
				} else if (response.responseText == 2) {
					showSystemErr(MSG_NOT_GRABBED_2ND);
				}else {
					showSystemErr(MSG_NOT_GRABBED);
				}
				window.location.href="#";
			},
			method: 'post',
			parameters: params,
			asynchronous: false
	});
}

function articleImageSwitcher(id, hide) {
	if($('design'+id)) {
		if(hide) {
			if($('design'+id).visible()) {
				$('design'+id).hide();
				$('article'+id).show();
			}
		} else {
			if($('article'+id) && $('article'+id).visible()) {
				$('design'+id).show();
				$('article'+id).hide();
			}
		}
	}
}

var currentArray = new Array();
var previousArray = new Array();
var nextArray = new Array();

function switchToNextArticle(mainArticleId, previous) {
	if(currentArray[mainArticleId] == undefined) {
		currentArray[mainArticleId] = mainArticleId;
	}
	if(previous == true) {
		var nextArticleId = previousArray[currentArray[mainArticleId]];
	} else {
		var nextArticleId = nextArray[currentArray[mainArticleId]];
	}
	if(nextArticleId == undefined) nextArticleId = mainArticleId;
	currentArray[mainArticleId] = nextArticleId;
	new Ajax.Request(ajaxURL + 'Marketplace/articleData/article/'+ nextArticleId + '/mainarticle/' + mainArticleId, {
		method: 'get',
		onSuccess: function(response) {
			var articleData = response.responseText.evalJSON(true);
			$('article'+mainArticleId).src = articleData.image;
			if(articleData.composition!='') $('design'+mainArticleId).src = articleData.composition;
			$('price'+mainArticleId).innerHTML = articleData.price;
			$('name'+mainArticleId).innerHTML = articleData.name;
			$('owner'+mainArticleId).innerHTML = '<a href="'+profileURL+'id/'+articleData.user+'/">'+ articleData.owner + '</a>';
			$('imageLink'+mainArticleId).href = articleURL + 'article/' + nextArticleId;
			$('basketLink'+mainArticleId).href = articleURL	 + 'article/' + nextArticleId;
		}
	});
}

function markSelected(viewId) {
	$$('.current-selected-thumb').each(function(item) {
		item.removeClassName('current-selected-thumb');
	});
	$('viewPanel'+viewId).addClassName('current-selected-thumb');
}

function addColor(link) {
	if($('prod-color').value != 0) {
		link.href = link + '/color/' + $('prod-color').value;
	}
	return true;
}