// OrderSwitch
function switchTab(id) {
    var count = $('#orderForm').find('fieldset').length;
	for(var i = 1; i <= count; i++) {
		if (i == id) {
			$('#tab'+i).addClass('active');
			$('#cont'+i).show();
		} else {
			$('#tab'+i).removeClass('active');
			$('#cont'+i).hide();
		}
	}
	$('.prevlink').show();
	$('.nextlink').show();
}

// Activate Tab from substring
function checkFormTab() {
	var count = $('#orderForm').find('fieldset').length;
	for(var i = 1; i <= count; i++) {
		$('#tab'+i).removeClass('active');
		$('#cont'+i).hide();
	}
	if (self.document.location.hash.substring(1)) {
		$('#tab'+self.document.location.hash.substring(1)).addClass('active');
		$('#cont'+self.document.location.hash.substring(1)).show();
	} else {
		$('#tab1').addClass('active');
		$('#cont1').show();
	}
	$('.prevlink').show();
	$('.nextlink').show();
	$('#orderForm legend').hide();
}

function addOrderError(field) {
	if (field != '' || field == 'undefined') {
		$('#' + field + '').addClass('required'); 
		$('#noerror').hide();
		$('contactfield[id=' + field + ']', orderxml).each(function() {
			var title = $(this).find('title').text();
			$('.formerror').append('<li class="error_' + field + '">' + title + '</li>');
		});
		$('#submit').attr('disabled', 'disabled');
	}
}

function removeOrderError(field) {
	if (field != '') {
		$('.error_' + field + '').remove();
		if ($('.formerror li').length == 1) {
			$('.errortab').hide();
			$('#submit').removeAttr('disabled');
		}
	}
}


// Check Order Form for mismatch fields
function checkOrderForm() {
	var field = '';
	
	$('input[class$=isNotEmpty]').each(function () {
		field = $(this).attr('id');
		if ($(this).val() == '') {
			$(this).addClass('required');
			$('.errortab').show();
			addOrderError(field);
		} else {
			$(this).removeClass('required');
			removeOrderError(field);
		}
    });
	$('input[class$=isNotEmpty]').blur(function () {
		field = $(this).attr('id');
		if ($(this).val() == '') {
			$(this).addClass('required');
			$('.errortab').show();
			addOrderError(field);
		} else {
			$(this).removeClass('required');
			removeOrderError(field);
		}
    });
	
	$('input[class$=isEmail]').each(function () {
		var reg =  /^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i;
		field = $(this).attr('id');
		if (!$(this).val().match(reg)) {
			$(this).addClass('required');
			$('.errortab').show();
			addOrderError(field);
		} else {
			$(this).removeClass('required');
			removeOrderError(field);
		}
    });	
	$('input[class$=isEmail]').blur(function () {
		var reg =  /^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i;
		var field = '';
		field = $(this).attr('id');
		if (!$(this).val().match(reg)) {
			$('.errortab').show();
			addOrderError(field);
		} else {
			$(this).removeClass('required');
			removeOrderError(field);
		}
    });
	
	$('input[class$=isEmailorEmpty]').each(function () {
		if ($(this).val() != '') {
			var reg =  /^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i;
			field = $(this).attr('id');
			if (!$(this).val().match(reg)) {
				$(this).addClass('required');
				$('.errortab').show();
				addOrderError(field);
			} else {
				$(this).removeClass('required');
				removeOrderError(field);
			}
		} else {
			$(this).removeClass('required');
			removeOrderError(field);
		}
    });	
	$('input[class$=isEmailorEmpty]').blur(function () {
		if ($(this).val() != '') {
			var reg =  /^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i;
			var field = '';
			field = $(this).attr('id');
			if (!$(this).val().match(reg)) {
				$('.errortab').show();
				addOrderError(field);
			} else {
				$(this).removeClass('required');
				removeOrderError(field);
			}
		} else {
			$(this).removeClass('required');
			removeOrderError(field);
		}
    });
	
	$('input[class$=isNumeric]').each(function () {
		var reg = /[0-9]+$/i;
		field = $(this).attr('id');
		if (!$(this).val().match(reg)) {
			$(this).addClass('required');
			$('.errortab').show();
			addOrderError(field);
		} else {
			$(this).removeClass('required');
			removeOrderError(field);
		}
    });
	$('input[class$=isNumeric]').blur(function () {
		var reg = /[0-9]+$/i;
		field = $(this).attr('id');
		if (!$(this).val().match(reg)) {
			$(this).addClass('required');
			$('.errortab').show();
			addOrderError(field);
		} else {
			$(this).removeClass('required');
			removeOrderError(field);
		}
    });
	
	$('input[class$=isNumericOrEmpty]').each(function () {
		if ($(this).val() != '') {
			var reg = /[0-9]$/i;
			if (!$(this).val().match(reg)) {
				$(this).addClass('required');
				$('.errortab').show();
				addOrderError(field);
			} else {
				$(this).removeClass('required');
			}
		} else {
			$(this).removeClass('required');
		}
    });
	$('input[class$=isNumericOrEmpty]').blur(function () {
		if ($(this).val() != '') {
			var reg = /[0-9]$/i;
			if (!$(this).val().match(reg)) {
				$(this).addClass('required');
				$('.errortab').show();
				addOrderError(field);
			} else {
				$(this).removeClass('required');
			}
		} else {
			$(this).removeClass('required');
		}
    });
}

function getFormData() {

/*
	$('input[id^=order]').blur(function () {
		var pricenetto = 0;
		var pricetotalnetto = 0;
		var articlecount = 0;
		$('article[id^=order]', orderxml).each(function() {
			var id = $(this).attr('id');
			var title = $(this).find('title').text();
			var price = $(this).find('price').text();
			var currency = $(this).find('price').attr('currency');
			if ($(this).find('size').text() != '') {
				$('input[id^='+ id +']').each(function () {
					articlecount = parseInt(articlecount) + parseInt($(this).val());
					pricenetto = price * $(this).val();
					pricetotalnetto = parseInt(pricetotalnetto) + parseInt(pricenetto);
					$('#currency').val(currency);
					$('#pricetotalnetto').val(pricetotalnetto.toFixed(2));
				});
			} else {
				$('input[id^='+ id +']').each(function () {
					articlecount = parseInt(articlecount) + parseInt($(this).val());
					pricenetto = price * $(this).val();
					pricetotalnetto = parseInt(pricetotalnetto) + parseInt(pricenetto);
					$('#currency').val(currency);
					$('#pricetotalnetto').val(pricetotalnetto.toFixed(2));
				});
			}
		});
		if ($('#pricetotalnetto').val() != 0 && $('#pricetotalnetto').val() != 'NaN') {
			$('.noprice').hide();
			$('.price').show();
			$('.price_price em').text($('#pricetotalnetto').val() + ' ' + $('#currency').val());
		} else {
			$('.noprice').show();
			$('.price').hide();
		}
	});
*/

	$('input[id^=order]').blur(function () {
		var pricenetto = 0;
		var pricetotalnetto = 0;
		var articlecount = 0;
		$('input[value!=""]').each(function() {
			var id = $(this).attr('id');
			var value = $(this).attr('value');
			if (substr_count(id, '_') == 2) {
				id = id.substring(0,id.length-2);
			}
			$('article[id='+ id +']', orderxml).each(function() {
				var title = $(this).find('title').text();
				var price = $(this).find('price').text();
				var currency = $(this).find('price').attr('currency');
				articlecount = parseInt(articlecount) + parseInt(value);
				pricenetto = price * value;
				pricetotalnetto = parseInt(pricetotalnetto) + parseInt(pricenetto);
				$('#currency').val(currency);
				$('#pricetotalnetto').val(pricetotalnetto.toFixed(2));
			});
		});
		if ($('#pricetotalnetto').val() != 0 && $('#pricetotalnetto').val() != 'NaN') {
			$('.noprice').hide();
			$('.price').show();
			$('.price_price em').text($('#pricetotalnetto').val() + ' ' + $('#currency').val());
		} else {
			$('.noprice').show();
			$('.price').hide();
		}
	});

}

function substr_count( haystack, needle, offset, length ) {
    var pos = 0, cnt = 0;
 
    haystack += '';
    needle += '';
    if(isNaN(offset)) offset = 0;
    if(isNaN(length)) length = 0;
    offset--;
 
    while( (offset = haystack.indexOf(needle, offset+1)) != -1 ){
        if(length > 0 && (offset+needle.length) > length){
            return false;
        } else{
            cnt++;
        }
    }
 
    return cnt;
}

$(document).ready( function(){
	$.ajax({
		type: "GET",
		async: false,
		url: "data/xml/order.xml",
		success: function(data){
		orderxml = data;
	  }
	});
	if ($('#orderForm')) {
		getFormData();
		checkFormTab(); 
		checkOrderForm();
		$('.price').hide();
	}
});