ArticleVariants = {
	'idDiv'       : 'id_articledetails_ArticleVariants',
	'isAllClosed' : true,
	'arrInitHeadersVariations':[],
	'arrSelectedVariations':[],
	'variantsCount': ''
};

ArticleVariants.init = function() {
	/* alert('DetailsAccessories.init()') ; */
	this.div = $('#' + this.idDiv);
	//this.div.html('ArticleVariants.init()');

	this.div.css({
		'margin-left':'0px'
	});

	this.isAllClosed = true;
	this.arrInitHeadersVariations = [];
	this.arrSelectedVariations = [];
	this.arrAllVariants = null;
}

ArticleVariants.setRecordsVariants = function(json)
{
	this.div.empty();

	if ( json.records.length > 0 ) {
		this.div.css({
			//'margin-top': 100 - json.records.length * 20 + 'px'
		});
	} else {
		ArticleVariants.variantsCount = 0;
		return 0;
	}


	this.div.append(this._getVariants(json.records));
}

ArticleVariants._getVariants = function(json){
	this.arrAllVariants = json; //usefull by form validation
	//console.log(json.length);
	
	
	
	if (json.length > 0) {
		ArticleVariants.variantsCount = json.length;
	}
		
	$(json).each(function(i, item) {
		ArticleVariants.___rememberVariant(item.variant_id, item.translation_name);
		ArticleVariants.div.append(ArticleVariants.__getVariant(item));
		ArticleVariants.div.append(ArticleVariants.__getVariations(item));
	});
}

ArticleVariants._getMatchedVariantsForVariations = function()
{
	var selected = this.arrSelectedVariations; //alert('selected=' + selected);
	var result = [];
	$(selected).each(function(i, itemSelected) { //alert('itemSelected=' + itemSelected);
		$(ArticleVariants.arrAllVariants).each(function(j, itemVariant) {
			$(itemVariant.arrVariations).each(function(k, itemVariation) {
				if (itemSelected == itemVariation.variation_id) {
					result.push(itemVariation.variant_id);
				}
			});
		});
	});
	//alert(result);
	return result;
}

ArticleVariants.getNotSelectedVariants = function()
{
	var result = [];
	var isValid = true;
	var arrMatchedVariants = ArticleVariants._getMatchedVariantsForVariations();
	$(ArticleVariants.arrAllVariants).each(function(j, itemVariant) {
		if (itemVariant.variant_required == "1") {
			var isInArray = false;
			$(arrMatchedVariants).each(function(k, itemSelected) {
				if (itemVariant.variant_id == itemSelected) {
					isInArray = true;
				}
			});

			if ( isInArray == false ) {
				isValid = false;
				result.push(itemVariant.translation_name);
			}
		}
	});

	return result;
}

ArticleVariants.___rememberVariant = function(variant_id, translation_name)
{
	ArticleVariants.arrInitHeadersVariations.push({
		'variantId': variant_id,
		'translationName': translation_name
	});
}

ArticleVariants.___getVariant = function(variant_id)
{
	var result = null;
	$(ArticleVariants.arrInitHeadersVariations).each(function(i, item) {
		if ( item.variantId == variant_id ) {
			result = item;
		}
	});
	return result;
}

ArticleVariants.__restoreVariant = function(variant_id)
{
	this._refreshArticlePrice();
	var variant = this.___getVariant(variant_id);
    var header = variant.translationName;

	$('#id_article_Variant_' + variant_id).empty().append(header);
	ArticleVariants.__closeAllMenus();
}


ArticleVariants.__getVariant = function(json)
{
	var div = $(document.createElement('div'));

	div.attr({
		'id':'id_article_Variant_' + json.variant_id,
		'class':'article_Variant'
	});

	div.css({
		'background': 'url("media/icons/ArticelDetails_Variants__normal.png") no-repeat scroll left top',
		'height': '18px',
		'width': '224px',
		'cursor': 'pointer',
		'font-size': '12px',
		'font-weight': '100',
		'color': '#ffffff',
		'text-align': 'left',
		'padding-left': '6px',
		'padding-top': (Platform.isMac())?'1px':'0px',
		'margin-top':'10px'
	})
	.bind('mouseover', function() {
		if (ArticleVariants.isAllClosed == true) {
		    ArticleVariants._toOpenVariantId = json.variant_id;
			ArticleVariants.__openVariant();
		} else {
			ArticleVariants._killTimer(); // ON - NOT CLOSE OPENED VARIANT
		}
	})
	.bind('mouseout', function() {
		ArticleVariants._closeAllMenusDelayed();
	})
	.bind('click', function() {

		if (ArticleVariants.isAllClosed == true) {
			ArticleVariants._toOpenVariantId = json.variant_id;
			ArticleVariants.__openVariant();
		} else {
			ArticleVariants._removeFromSelectedVariations(json.arrVariations);
			ArticleVariants.__restoreVariant(json.variant_id);
		}
	});

	div.append(json.translation_name);

	return div;
}

ArticleVariants.__openVariant = function()
{
	if ( ArticleVariants._toOpenVariantId != null ) {
		ArticleVariants._killTimer();
		$('#id_article_Variant_' + ArticleVariants._toOpenVariantId).css({
				'background': 'url("media/icons/ArticelDetails_Variants__hover.png") no-repeat scroll left top'
		});
		var divVariations = $('#id_article_Variations_' + ArticleVariants._toOpenVariantId);
		var divVariation = document.getElementById('id_article_Variations_' + ArticleVariants._toOpenVariantId);
        var divFirstVariant = ('#id_article_Variant_' + ArticleVariants._toOpenVariantId)
		var divSecondVariant = divVariation.nextSibling;
        //alert(navigator.appVersion);
        var BrowserVersion = navigator.appVersion;
        var isIe7 = BrowserVersion.match(/MSIE 7.0/);
        //alert(isIe7);
		if (typeof(divSecondVariant) != 'undefined' && divSecondVariant != null && (navigator.appName == 'Microsoft Internet Explorer' && isIe7 != null)) {
			//$(divSecondVariant).fadeOut('fast');
			//$(divSecondVariant).css({'display': 'none'});
            //$('.articledetails_article_variants').css({'height':'56px;'})
            //alert('erste variante');
            $(divFirstVariant).css({'margin-bottom':'10px'});
            $(divVariation).css({'position':'absolute', 'top':'28px', 'z-index':'1000000'})
		}
		ArticleVariants.isAllClosed = false;
		ArticleVariants._toOpenVariantId = null;
		divVariations.css({'margin-bottom':'10px'});
					//alert(divVariations.css('margin-bottom'));
		divVariations.slideDown(200, function() {
			//alert(divVariations.css('margin-bottom'));
		});
	}
}


ArticleVariants.__getVariations = function(json)
{
	var div = $(document.createElement('div'));

	div.attr({
		'id':'id_article_Variations_' + json.variant_id,
		'class':'article_Variations'
	});

	div.css({
		 'position':'absolute'
	});

	$(json.arrVariations).each(function(i, item) {
		var isLast = ( i < json.arrVariations.length - 1)?false:true; // alert(isLast);
		div.append(ArticleVariants.__getVariation(item, isLast, json.arrVariations));
	});

	div.bind('mouseover', function() {
		ArticleVariants._killTimer();
	})
	.bind('mouseout', function() {
		ArticleVariants._closeAllMenusDelayed();
	});


	div.hide();

	return div;
}

ArticleVariants._refreshArticlePrice = function()
{
	ArticleDetails.calculateArticlePriceWithVariants(this.arrSelectedVariations);
}

ArticleVariants.__getVariation = function(json, isLast, arrVariations)
{
	var div = $(document.createElement('div'));

	var srcNormal = '';
	var srcHover = '';

	if ( isLast == false ) {
		srcNormal = 'media/icons/ArticelDetails_Variation_normal.png';
		srcHover  = 'media/icons/ArticelDetails_Variation_hover.png';
	} else {
		srcNormal = 'media/icons/ArticelDetails_Variation_Last_normal.png';
		srcHover  = 'media/icons/ArticelDetails_Variation_Last_hover.png';
	}

	div.css({
		'background': 'url("' + srcNormal + '") no-repeat scroll left top',
		'height': '18px',
		'width': '224px',
		'cursor': 'pointer',
		'font-size': '12px',
		'font-weight': '100',
		'color': '#ffffff',
		'text-align': 'left',
		'padding-left': '6px',
		'padding-top': (Platform.isMac())?'1px':'0px',
		'margin-bottom':(Platform.isMac())?'-1px':'0px'
	})
	.bind('mouseover', function() {
		$(this).css({
			'background': 'url("' + srcHover + '") no-repeat scroll left top'
		});
	})
	.bind('mouseout', function() {
		$(this).css({
			'background': 'url("' + srcNormal + '") no-repeat scroll left top'
		});
	})
	.bind('click', function() {
		//console.log(arrVariations);
	    ArticleVariants._addToSelectedVariations(arrVariations, json.variation_id);
		ArticleVariants.__closeAllMenus();
		if (Browser.hasIdentity() == true) {
			ArticleVariants._refreshArticlePrice();
		}
		//ArticleDetails.setArticleNumberInternalSuffix(json.variation_number);
		ArticleVariants._setVariantCaption(json.variant_id, json.translation_name);
	});

	var table = $(document.createElement('table')).css({
		'width': '219px'
	}).attr({
		'border':'0'
	});
	var tr = $(document.createElement('tr'));

	var td = $(document.createElement('td'));
	td.append(json.translation_name);
	tr.append(td);

	var td = $(document.createElement('td')).css({'text-align':'right'});
	var variationPrice = (json.variation_price > '')?'' + json.variation_price + '':'';
	td.append(variationPrice);
	tr.append(td);

	table.append(tr);

	div.append(table);


	return div;
}

ArticleVariants._addToSelectedVariations = function(arrVariations, variationId)
{   //alert('ArticleVariants._addToSelectedVariations');
	ArticleVariants._removeFromSelectedVariations(arrVariations);
	this.arrSelectedVariations.push(variationId);
}

ArticleVariants._removeFromSelectedVariations = function(arrVariations)
{
	//alert('_removeFromSelectedVariations = ' + arrVariations);

	$(arrVariations).each(function(i, Variation) {

		var arrResult = new Array();
		$(ArticleVariants.arrSelectedVariations).each(function(j, variationId) {
			if (variationId != Variation.variation_id) {
				arrResult.push(variationId);
			}
		});

		ArticleVariants.arrSelectedVariations = arrResult;
	});
}

ArticleVariants._setVariantCaption = function(variantId, caption)
{
	$('#id_article_Variant_' + variantId).empty().append(caption);
}

ArticleVariants._closeAllMenusDelayed = function()
{
	if (ArticleVariants.timer == null) {
		ArticleVariants.timer = window.setTimeout(function(){
			ArticleVariants.__closeAllMenus();
		}, 400);
	}
}

ArticleVariants._killTimer = function() {
	if (ArticleVariants.timer != null) {
		window.clearTimeout(ArticleVariants.timer);
	}
	ArticleVariants.timer = null;
}

ArticleVariants.__closeAllMenus = function()
{
	ArticleVariants._killTimer();
	$('div.article_Variations').each(function(i, item) {
	   //alert($(item).attr('id') == $(notThis).attr('id'));
		if ($(item).css('display') == 'block') {
			$(item).slideUp(200, function() {
				$('div.article_Variant').css({
					'background': 'url("media/icons/ArticelDetails_Variants__normal.png") no-repeat scroll left top'
				});

				ArticleVariants.isAllClosed = true;
				ArticleVariants.__openVariant();
			});
		}
	});
	var divSecondVariant = $('.article_Variant:hidden');
	//console.log(divSecondVariant);
	if (typeof(divSecondVariant) != 'undefined' && divSecondVariant != null && navigator.appName == 'Microsoft Internet Explorer') {
		divSecondVariant.fadeIn('slow')
		divSecondVariant.css({'display': 'block'});
	}

}
