var personal_init = function() {
	/*
	var init_tab_bar = Dom.get('emptybar');
	init_tab = init_tab_bar.className.replace('bar', '');
	*/
	// zie tshirtshop.js:
	if (Dom.get('ps_specify_form')) {
		tshirtshop_init();
	}

	if (Dom.get('producttabs')) {
		var producttabs = new YAHOO.widget.TabView("producttabs");
		//alert(onPersonalError);
		onPersonalError.subscribe(function() {
			if (producttabs) { producttabs.set('activeIndex', 1); }
		});

		var personal_preview_input = Dom.get('personal_book');
		var personal_text = Dom.get('personal_book_perview_text');

		if (personal_preview_input && personal_text) {
			var personal_inputs = personal_preview_input.getElementsByTagName('INPUT');
			var personal_selects = personal_preview_input.getElementsByTagName('SELECT');

			init_personal(personal_inputs, personal_selects, personal_text);

			Event.on(personal_inputs, 'blur', change_personal_preview);
			Event.on(personal_selects, 'change', change_personal_preview);
		}

		if (Dom.get('cal_ship_date')) {
			YAHOO.datasmit.ship_cal = set_cal_props("cal_ship_date", "ship_date");
		}

		if (Dom.get('bedrukking_name') && Dom.get('bedrukking_number')) {
			onVariantChanged.subscribe(change_personal_price);
			Event.on(['bedrukking_name', 'bedrukking_number'], 'blur', change_personal_price, this);
		}


		if (Dom.get('medaille_input1') && Dom.get('medaille_input2') && Dom.get('medaille_input3')) {
		    onVariantChanged.subscribe(change_personal_price);
		    Event.on(['medaille_input1', 'medaille_input2', 'medaille_input3'], 'blur', change_personal_price, this);
		}

		if (Dom.get('bedrukking_schoen')) {
		    onVariantChanged.subscribe(change_personal_price);
		    Event.on(['bedrukking_schoen'], 'blur', change_personal_price, this);
		}

		if (Dom.get('keeper_name')) {
			onVariantChanged.subscribe(change_personal_price);
			Event.on(['keeper_name'], 'blur', change_personal_price, this);
		}

		if (Dom.get('shirt_stars')) {
			onVariantChanged.subscribe(change_personal_price);
			Event.on('shirt_stars', 'click', change_personal_price, this);
		}
	}
};

var init_personal = function(personal_inputs, personal_selects, personal_text) {
	var current_text = personal_text.innerHTML;

	var input_name, new_text = '';
	for (var i = 0; i < personal_inputs.length; i++) {
		input_name = personal_inputs[i].name;
		input_id = personal_inputs[i].id;
		if (input_name.indexOf('bedrukking_') < 0) {
			extra_required += input_name + '|';

			input_name = input_name.replace('personal_', '');

			re = new RegExp(input_name, 'gi');
			new_text = '<span class="pt pt_' + input_name + '">' + input_name + '</span>';
			current_text = current_text.replace(re, new_text);

			re = new RegExp(input_id, 'gi');
			new_text = '<span class="pt pt_' + input_name + '">' + input_id + '</span>';
			current_text = current_text.replace(re, new_text);
		}
	}

	for (var i = 0; i < personal_selects.length; i++) {
		input_name = personal_selects[i].name;
		input_id = personal_selects[i].id;

		extra_required += input_name + '|';

		input_name = input_name.replace('personal_', '');

		re = new RegExp(input_name, 'gi');
		new_text = '<span class="pt pt_' + input_name + '">' + input_name + '</span>';
		current_text = current_text.replace(re, new_text);

		re = new RegExp(input_id, 'gi');
		new_text = '<span class="pt pt_' + input_name + '">' + input_id + '</span>';
		current_text = current_text.replace(re, new_text);
	}

	personal_text.innerHTML = current_text;
};

var change_personal_preview = function(e) {
	var field_value = this.value;
	var field_name = this.name;
	var field_id = this.id;
	field_name = field_name.replace('personal_', '');

	if (field_value == '') {
		field_value = field_id;
	}


	var current_texts = Dom.getElementsByClassName('pt_' + field_name);
	if (current_texts.length > 0) {
		if (field_name.toLowerCase() == 'geslacht' || field_id.toLowerCase() == 'geslacht') {
			if (field_value.toLowerCase() == 'jongen') {
				field_value = 'zijn';
			} else if (field_value.toLowerCase() == 'meisje') {
				field_value = 'haar';
			}
		}

		for (var i = 0; i < current_texts.length; i++) {
			if (current_texts[i]) {
				current_texts[i].innerHTML = field_value;
			}
		}
	}
};

var tshirtshop_thumbs = function() {
	var tshirtshop_success = function(o) {
		return;
	};

	var tshirtshop_callback = {
		success: field_success,
		failure: me.conn_failure,
		scope: me
	};

	var url = '/shop/enterprise/asp/update_checkout.asp';

	var conn = Connect.asyncRequest('POST', url, tshirtshop_callback, 's=' + YAHOO.datasmit.session_id + '&act=save_remark&remark=' + this.value);
};

var change_personal_price = function(e, me) {
    var variant_id = current_variant_id;
    var product_id = document.forms['product_form'].elements['pid'].value;

    var variants = product_detail.variants; //YAHOO.datasmit.variants;

    if (variants) {
        var new_variant_price = variants[0][2];
        var new_variant_price_value = variants[0][6];

        if (parseInt(variant_id) > 0) {
            for (var i = 0; i < variants.length; i++) {
                if (parseInt(variants[i][1]) === parseInt(variant_id)) {
                    new_variant_price = variants[i][2];
                    new_variant_price_value = variants[i][6];
                }
            }
        }
    }

    var shirt_stars = Dom.get('shirt_stars');
    if (shirt_stars) {
        if (shirt_stars.checked) {
            var stars_price = document.forms['product_form'].elements['personal_price2'].value;
            new_variant_price_value = (parseInt(new_variant_price_value, 0) + parseInt(stars_price, 0));
        }
    }

    var shirt_name = Dom.get('bedrukking_name');
    var shirt_number = Dom.get('bedrukking_number');
    var keeper_name = Dom.get('keeper_name');
    var bedrukking_schoen = Dom.get('bedrukking_schoen');
    var medaille_input1 = Dom.get('medaille_input1');
    var medaille_input2 = Dom.get('medaille_input2');
    var medaille_input3 = Dom.get('medaille_input3');

    if (shirt_name != null || shirt_number != null) {
        if (shirt_name.value != '' || shirt_number.value != '') {
            var bedrukking_price = document.forms['product_form'].elements['personal_price'].value;
            new_variant_price_value = (parseInt(new_variant_price_value, 0) + parseInt(bedrukking_price, 0));
        }
    }

    if (keeper_name != null) {
        if (keeper_name.value != '') {
            var bedrukking_price = document.forms['product_form'].elements['keeper_price'].value;
            new_variant_price_value = (parseInt(new_variant_price_value, 0) + parseInt(bedrukking_price, 0));
        }
    }

    if (bedrukking_schoen != null) {
        if (bedrukking_schoen.value != '') {
            var bedrukking_price = document.forms['product_form'].elements['personal_price'].value;
            new_variant_price_value = (parseInt(new_variant_price_value, 0) + parseInt(bedrukking_price, 0));
        }
    }

    if (medaille_input1 != null || medaille_input2 != null || medaille_input3 != null) {
        if (medaille_input1.value != '' || medaille_input2.value != '' || medaille_input3.value != '') {
            var bedrukking_price = document.forms['product_form'].elements['personal_price'].value;
            new_variant_price_value = (parseInt(new_variant_price_value, 0) + parseInt(bedrukking_price, 0));
        }
    }

    var variant_price_fields = Dom.getElementsByClassName('product_price', 'div');
    if (variant_price_fields.length > 0) {
        new_variant_price_value = new_variant_price_value.toString();
        var new_variant_price = new_variant_price_value.substr(0, new_variant_price_value.length - 2) + ',' + new_variant_price_value.substr(new_variant_price_value.length - 2)
        for (var i = 0; i < variant_price_fields.length; i++) {
            if (variant_price_fields[i].id === 'price' + product_id) {
                variant_price_fields[i].innerHTML = '&euro; ' + new_variant_price;
            }
        }
    }
};

var set_cal_props = function(click_name, change_name) {
	var obj = new YAHOO.widget.Calendar(change_name, click_name, { LOCALE_WEEKDAYS: "medium", START_WEEKDAY: 1, close: true });

	obj.hide();
	obj.selectEvent.subscribe(handleCalSelect, obj, true);

	obj.cfg.setProperty("DATE_FIELD_DELIMITER", ".");
	obj.cfg.setProperty("MDY_DAY_POSITION", 1);
	obj.cfg.setProperty("MDY_MONTH_POSITION", 2);
	obj.cfg.setProperty("MDY_YEAR_POSITION", 3);
	obj.cfg.setProperty("MD_DAY_POSITION", 1);
	obj.cfg.setProperty("MD_MONTH_POSITION", 2);

	obj.cfg.setProperty("MONTHS_SHORT", ["Jan", "Feb", "Maa", "Apr", "Mei", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dec"]);
	obj.cfg.setProperty("MONTHS_LONG", ["Januari", "Februari", "Maart", "April", "Mei", "Juni", "Juli", "Augustus", "September", "Oktober", "November", "December"]);
	obj.cfg.setProperty("WEEKDAYS_1CHAR", ["Z", "M", "D", "W", "D", "V", "Z"]);
	obj.cfg.setProperty("WEEKDAYS_SHORT", ["Zo", "Ma", "Di", "Wo", "Do", "Vr", "Za"]);
	obj.cfg.setProperty("WEEKDAYS_MEDIUM", ["Zon", "Maa", "Din", "Woe", "Don", "Vri", "Zat"]);
	obj.cfg.setProperty("WEEKDAYS_LONG", ["Zondag", "Maandag", "Dinsdag", "Woensdag", "Donderdag", "Vrijdag", "Zaterdag"]);

	var personal_datum_year = document.forms['product_form'].elements['personal_datum_year'];

	var first_year = personal_datum_year.options[1].value;
	var last_year = personal_datum_year.options[personal_datum_year.options.length - 1].value;
	var first_date = new Date();
	first_date.setFullYear(first_year, 0, 1);
	var last_date = new Date();
	last_date.setFullYear(last_year, 11, 31);
	obj.cfg.setProperty("mindate", first_date);
	obj.cfg.setProperty("maxdate", last_date);

	obj.render();
	Event.on('click_' + click_name, "click", obj.show, obj, true);
	Event.on(['personal_datum_day', 'personal_datum_month', 'personal_datum_year'], "change", updateCal);
	//mindate



	return obj;
};

var updateCal = function() {
	var sel_name = 'personal_datum';

	var selDay = document.getElementById(sel_name + '_day');
	var selMonth = document.getElementById(sel_name + '_month');
	var selYear = document.getElementById(sel_name + '_year');

	var month = parseInt(selMonth.options[selMonth.selectedIndex].value);
	var day = parseInt(selDay.options[selDay.selectedIndex].value);
	var year = parseInt(selYear.options[selYear.selectedIndex].value);

	if (!isNaN(month) && !isNaN(day) && !isNaN(year)) {
		var date = day + '.' + month + '.' + year;

		var no_select_dates = Dom.getElementsByClassName('no_date_hiddens');
		if (no_select_dates.length > 0) {
			for (var i = 0; i < no_select_dates.length; i++) {
				if (no_select_dates[i].value === date) {
					alert('Op deze datum leveren wij helaas niet. Kies alstublieft een andere datum');
					selDay.selectedIndex = 0;
					return;
				}
			}
			YAHOO.datasmit.ship_cal.select(date);
			YAHOO.datasmit.ship_cal.cfg.setProperty("pagedate", month + "." + year);
			YAHOO.datasmit.ship_cal.render();
		}
	}
};

var handleCalSelect = function(type, args, obj) {
	var sel_name = 'personal_datum';

	if (document.getElementById('error_' + sel_name + "_day")) {
		var err = document.getElementById('error_' + sel_name + "_day");
		err.parentNode.removeChild(err);
	}
	if (document.getElementById('error_' + sel_name + "_birth_month")) {
		var err = document.getElementById('error_' + sel_name + "_month");
		err.parentNode.removeChild(err);
	}
	if (document.getElementById('error_' + sel_name + "_birth_year")) {
		var err = document.getElementById('error_' + sel_name + "_year");
		err.parentNode.removeChild(err);
	}

	var dates = args[0];
	var date = dates[0];
	var year = date[0], month = date[1], day = date[2];

	var selDay = document.getElementById(sel_name + "_day");
	var selMonth = document.getElementById(sel_name + "_month");
	var selYear = document.getElementById(sel_name + "_year");

	selMonth.selectedIndex = month;
	selDay.selectedIndex = day;

	for (var y = 0; y < selYear.options.length; y++) {
		if (selYear.options[y].text == year) {
			selYear.selectedIndex = y;
			break;
		}
	}
	var cur_date = day + '.' + month + '.' + year;

	var no_select_dates = Dom.getElementsByClassName('no_date_hiddens');
	if (no_select_dates.length > 0) {
		for (var i = 0; i < no_select_dates.length; i++) {
			if (no_select_dates[i].value === cur_date) {
				alert('Op deze datum leveren wij helaas niet. Kies alstublieft een andere datum');
				selDay.selectedIndex = 0;
				return;
			}
		}
	}

	if (document.forms['product_form'].elements[sel_name]) {
		document.forms['product_form'].elements[sel_name].value = cur_date;
	}
	YAHOO.datasmit.ship_cal.hide();
};