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', '');
}

function setColor(color) {
	$('prod-color').value = color;
	var caption = "Color";
	if(color>0) caption = $('colorEntry'+color).innerHTML;
	
	
	currentSelection = 'colorEntry'+color;
    $$('#ColorBarEntries li a').each(function(item){
        item.removeClassName('currentSelection');
    });
	$(currentSelection).addClassName('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_d'+ articleId, 'design_d'+ 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_d'+articleId)) {
                        $('article_d'+articleId).src = item.hugeLink;
                    }
                    if($('design_d'+articleId)) {
                        $('design_d'+articleId).src = compositionImage;
                    }
                    if($('zoomLink')) {
                        MagicZoom.update($('zoomLink'), item.zoomImageLink, item.hugeLink);
                        //$('zoomLink').href = item.zoomImageLink;
                        //MagicZoom.refresh();
                    }
				}
				count++;
			});

            $('availabilityDisplayWrapper').innerHTML = articleData.availabilityDisplayMarkup;

            $('sizeSelectorWrapper').innerHTML = articleData.sizeSelectorMarkup;
            SizesBar = new Spry.Widget.MenuBar("SizesBar");
            var currentSize = $('prod_size').value;
            setSize(currentSize);
		}
	 });
	 return false;
}

function setSize(size) {
    hideSizeError();
    var sizeExists = $('sizeEntry'+size) ? true : false;
    if(!sizeExists){
        size = 0;
    }
    if($('SizesBar')){
        if(size>0) {
            $('selectedSize').innerHTML = $('sizeEntry'+size).innerHTML;
            $('selectedSize').addClassName('currentSelection');
        } else {
            $('selectedSize').removeClassName('currentSelection');
        }
        SizesBar.hideSubmenu($('SizesBarEntries'));
    }else{
        $$('#SizesButtons li a').each(function(element){
            element.removeClassName('selected');
        });
        if(size>0){
            $('sizeEntry'+size).addClassName('selected');
        }
    }
	$('prod_size').value = size;
	return false;
}

var updateTotalTimer;
function updateTotal(quantity) {
    clearTimeout(updateTotalTimer);
    updateTotalTimer = setTimeout(function updateTotalReally(){
        if(quantity > 0){
            new Ajax.Request(ajaxURL + 'Marketplace/updateArticlePrice/article/'+articleId+'/quantity/'+quantity, {
                method: 'get',
                onSuccess: function(response) {
                    if(response.responseText != '' && $('priceTotal')) {
                        $('priceTotal').innerHTML = response.responseText;
                    }
                }
            });
        }
    },400);
}

function filterEnter(e){
    e = e || event;
    return (e.keyCode || event.which || event.charCode || 0) !== 13;
}

function addToBasketMp(){
    if(checkSize()){
        $('basketAddForm').submit();
		return true;
    }else{
        return false;
    }
}

// check size selection on article detail
function checkSize() {
    if ($('prod_size') && $('prod_size').value > 0) {
		hideSizeError();
		return true;
	} else {
		$('size_error').show();
        $('choose-product-size').addClassName('message info_error');
		return false;
	}
}

function hideSizeError(){
    $('size_error').hide();
    $('choose-product-size').removeClassName('message info_error');
}

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

function loadAssignedContentMulti(url, callback){
    new Ajax.Request(url, {
	    method: 'get',
        onSuccess: function(transport) {
            var update = transport.responseText.evalJSON(true);
            if($('activities')){
                $('activities').innerHTML = update.activities;
            }
            if($('activities2')){
                $('activities2').innerHTML = update.activities2;
            }
            if('function' == typeof callback){
                callback();
            }
        }
    });
}

// load related articles, designs and user gallery
function loadAssignedContent(divId, url, callback) {
	new Ajax.Updater(divId, url, {evalScripts:true, asynchronous:true});
    if('function' == typeof callback){
        callback();
    }
	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');
                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();
			}
		}
	}

        hideTitleAttribute('design'+id);
}

function hideTitleAttribute(id) {
    if($(id)) {
        $(id).removeAttribute('title');
        $(id).removeAttribute('alt');
    }
}

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;
}
