// JavaScript Document
var init_tab = '', over_tab = '', out_tab = '';

var is_clicked = false;
var init_tabbar_css = 'tabbartw';

show_init_popup = function() {
	var init_popup = Dom.get("init_popup");
	if (init_popup) {
		var show_pop = new YAHOO.widget.Panel("init_popup", 
			{ 
				width:"640px",
				fixedcenter:true,  
				close:true,
				draggable:false,
				zindex: 51,
				modal:true,
				visible:false,
				iframe:true
			}
		);
		show_pop.render();
		if (!readCookie('show_init_popup')) {
			show_pop.show();
			createCookie('show_init_popup','waarde',1);
		}
	}
};

function createCookie(name,value,hours) {
	if (hours) {
		var date = new Date();
		date.setTime(date.getTime()+(hours*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;}

function eraseCookie(name) {
	createCookie(name,"",-1);
}


shop_init = function() { 
	show_init_popup();

	if (Dom.get('emptybar')) {
		var init_tabbar_css = Dom.get('emptybar').className;
		var tabbar_over = function(e) {
			var hover_id = this.id;
			hover_id = hover_id.replace('tab-', '');
			
			Dom.get('emptybar').className = 'tabbar' + hover_id;
		};
	
		var tabbar_out = function(e) {
			Dom.get('emptybar').className = init_tabbar_css;
		};
	
		var ulshops = Dom.get('ulshops');
		if (ulshops) {
			var shoptabs = ulshops.getElementsByTagName('LI');
			Event.on(shoptabs, 'mouseover', tabbar_over);
			Event.on(shoptabs, 'mouseout', tabbar_out);
		}
	}
/*
	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('shirt_stars')) {
			onVariantChanged.subscribe(change_personal_price);
			Event.on('shirt_stars', 'click', change_personal_price, this);
		}
	}
};

change_tab = function(e) {
	var current_id = this.id;

	if (init_tab != 'tabtw') {
		init_src = Dom.get(init_tab).src;
	}

	var tabbar_id = '';

	switch(e.type) {
		case 'mouseout':
			if (!is_clicked) {		
				if (init_src != '') {
					tabbar_id = init_tab.replace('tab', 'tabbar');
				} else {
					tabbar_id = 'tabbartw';
				}
			}
			break;
		case 'mouseover':
		case 'click':
			if (e.type === 'click') { is_clicked = true; }
			
			tabbar_id = current_id.replace('tab', 'tabbar');
			break;
	}

	if (init_tab === current_id) { return; }
	Dom.get('emptybar').className = tabbar_id;
}

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;
};

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;
			}
		}
	}
};

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);
};

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');

	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));
	}

	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;
			}
		}
	}
};

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;
};

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();
		}
	}
};

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();
};

Event.onDOMReady(shop_init);
