// Namespace
if (typeof NetImage == "undefined") {
	var NetImage = {};
}

//
// Generelle funktioner
//

NetImage.General = {};

NetImage.General.feedback = function (product_id, feedback) {
	var td_id = 'feedback_' + product_id;
	var td = document.getElementById(td_id);
	if (td) {
		tr = td.parentNode;
		td.innerHTML = feedback;
		if (feedback == '') { // Skjul row
			tr.style.display = 'none';
		}
		else { // Vis row
			tr.style.display = ''; // Value 'table-row' is OK in Firefox, triggers error in IE.
			td.style.backgroundColor = '#388BE8';
		}
	}
}

//
// Vedr. at proppe i kurven
// 

NetImage.Cart = {};

NetImage.Cart.setContent = function(content) {
	var div = document.getElementById('minicart_container');
	div.innerHTML = content;
}

NetImage.Cart.responseSuccess = function(o) {
	NetImage.Cart.setContent(o.responseText);
	NetImage.General.feedback(o.argument.product_id, 'Varen er valgt.');
	setTimeout('NetImage.General.feedback("' + o.argument.product_id + '", "")', 2000);
};

NetImage.Cart.responseFailure = function(o) {
	NetImage.General.feedback(o.argument.product_id, 'Der opstod en fejl.');
	setTimeout('NetImage.General.feedback("' + o.argument.product_id + '", "")', 4000);
}


NetImage.Cart.callback = function(p_id) {
	this.success = NetImage.Cart.responseSuccess;
	this.failure = NetImage.Cart.responseFailure;
	this.timeout = 10000;
	this.argument = { product_id : p_id }
}

NetImage.Cart.add_to_cart = function(product_id) {
	NetImage.General.feedback(product_id, 'Vælger varen...');
	var formObject = document.getElementById('form_product_' + product_id);
	YAHOO.util.Connect.setForm(formObject);
	var sUrl = 'index.php?page_label=minicart';
	var transaction = YAHOO.util.Connect.asyncRequest('POST', sUrl, new NetImage.Cart.callback(product_id), null);
}

//
// Vedr. detaljevisning
//

NetImage.Detail = {};

// Status for detaljevisning for det enkelte produkt-ID.
// NetImage.Detail.state['u123'] indeholder status for det unikke ID: 123.
// Mulige states: shown, hidden, fetching, undefined
NetImage.Detail.state = {};

NetImage.Detail.setContent = function(product_id, unique_id, content) {
	var div = document.getElementById('detail_' + unique_id);
	if (div) {
		div.innerHTML = content;
	}
}

NetImage.Detail.responseSuccess = function(o) {
	NetImage.Detail.setContent(o.argument.product_id, o.argument.unique_id, o.responseText);
	NetImage.General.feedback(o.argument.unique_id, '');
	NetImage.Detail.show_or_hide(o.argument.product_id, o.argument.unique_id, true);
};

NetImage.Detail.responseFailure = function(o) {
	NetImage.Detail.state['u' + o.argument.unique_id] = 'hidden';
	NetImage.General.feedback(o.argument.unique_id, 'Der opstod en fejl.');
	setTimeout('NetImage.General.feedback("' + o.argument.unique_id + '", "")', 4000);
}

NetImage.Detail.callback = function(p_id, u_id) {
	this.success = NetImage.Detail.responseSuccess;
	this.failure = NetImage.Detail.responseFailure;
	this.timeout = 10000;
	this.argument = { product_id : p_id, unique_id : u_id };
}

NetImage.Detail.get_details = function(product_id, unique_id, from_cart, type) {
	NetImage.Detail.state['u' + unique_id] = 'fetching';
	NetImage.General.feedback(unique_id, 'Henter detaljer...');
	// Hent car_model_id hvis den er sat
	var formObject = document.getElementById('car_model_id_form');
	if (formObject) {
		YAHOO.util.Connect.setForm(formObject);
	}
	var sUrl = 'index.php?page_label=details&product_id=' + product_id;
	if (type == 'agri') {
		sUrl = sUrl + '&type=agri';
	}
	if (from_cart) {
		sUrl = sUrl + '&from_cart=1';
	}
	var transaction = YAHOO.util.Connect.asyncRequest('GET', sUrl, new NetImage.Detail.callback(product_id, unique_id), null);
}

NetImage.Detail.show_or_hide = function(product_id, unique_id, show) {
	// Find elementer
	var info_row		= document.getElementById('row_' + unique_id + '_info');
	var detail_row		= document.getElementById('row_' + unique_id + '_detail');
	var info_tds		= info_row.getElementsByTagName('td');
	var info_left_td	= YAHOO.util.Dom.getElementsByClassName('product_col_1', 'td', info_row);
	var info_last_td	= YAHOO.util.Dom.getElementsByClassName('product_col_last', 'td', info_row);
	var detail_tds		= detail_row.getElementsByTagName('td');
	var detail_left_td	= YAHOO.util.Dom.getElementsByClassName('product_col_1', 'td', detail_row);
	var detail_last_td	= YAHOO.util.Dom.getElementsByClassName('product_col_last', 'td', detail_row);
	var cart_icon_div	= document.getElementById('cart_icon_' + unique_id);
	var arrow_icon		= document.getElementById('arrow_icon_' + unique_id); // Nu en tekst (link), men oprindeligt et ikon
	var list_image_div	= document.getElementById('list_image_' + unique_id);
	
	if (show) { // Vis
		NetImage.Detail.state['u' + unique_id] = 'shown';
		
		// Sæt borders
		YAHOO.util.Dom.setStyle(info_tds, 'border-top', '6px solid #388BE8');
		YAHOO.util.Dom.setStyle(info_left_td, 'border-left', '1px solid #388BE8');
		YAHOO.util.Dom.setStyle(info_last_td, 'border-right', '1px solid #388BE8');
		YAHOO.util.Dom.setStyle(detail_tds, 'border-top', '1px solid #D5D5D5');
		YAHOO.util.Dom.setStyle(detail_tds, 'border-bottom', '1px solid #388BE8');
		YAHOO.util.Dom.setStyle(detail_left_td, 'border-left', '1px solid #388BE8');
		YAHOO.util.Dom.setStyle(detail_last_td, 'border-right', '1px solid #388BE8');
		
		// Vis row
		detail_row.style.display = ''; // Value 'table-row' is OK in Firefox, triggers error in IE.
		
		// Skjul kurve-ikon
		if (cart_icon_div) {
			cart_icon_div.style.display = 'none';
		}
		
		// Skjul det lille billede
		if (list_image_div) {
			list_image_div.style.display = 'none';
		}
		
		// Ret tekst til skjul
		if (arrow_icon) {
			arrow_icon.innerHTML = 'Skjul detaljer';
		}
	}
	else { // Skjul
		NetImage.Detail.state['u' + unique_id] = 'hidden';
		
		// Skjul row
		detail_row.style.display = 'none';
		
		// Vis kurve-ikon
		if (cart_icon_div) {
			cart_icon_div.style.display = 'block';
		}
		
		// Vis det lille billede
		if (list_image_div) {
			list_image_div.style.display = 'inline';
		}

		// Ret tekst til skjul
		if (arrow_icon) {
			arrow_icon.innerHTML = 'Flere detaljer';
		}
		
		// Sæt borders til none
		YAHOO.util.Dom.setStyle(info_tds, 'border-top', 'none');
		YAHOO.util.Dom.setStyle(info_left_td, 'border-left', 'none');
		YAHOO.util.Dom.setStyle(info_last_td, 'border-right', 'none');
		YAHOO.util.Dom.setStyle(detail_tds, 'border-top', 'none');
		YAHOO.util.Dom.setStyle(detail_tds, 'border-bottom', 'none');
		YAHOO.util.Dom.setStyle(detail_left_td, 'border-left', 'none');
		YAHOO.util.Dom.setStyle(detail_last_td, 'border-right', 'none');
	}
}

NetImage.Detail.toggle = function(product_id, unique_id, from_cart, type) {
	if (typeof NetImage.Detail.state['u' + unique_id] == "undefined") {
		NetImage.Detail.state['u' + unique_id] = 0;
	}
	switch (NetImage.Detail.state['u' + unique_id]) {
		case 'shown':
			NetImage.Detail.show_or_hide(product_id, unique_id, false);
			break;
		case 'fetching': // Ignorer input
			break;
		case 'hidden':
			NetImage.Detail.show_or_hide(product_id, unique_id, true);
			break;
		default: // Der skal hentes data
			NetImage.Detail.get_details(product_id, unique_id, from_cart, type);
			break;
	}
}

//
// Vedr. submit af nye tips og Tricks
// 

NetImage.Comment = {};

NetImage.Comment.setContent = function(product_id, content) {
	var div = document.getElementById('comment_container_' + product_id);
	div.innerHTML = content;
}

NetImage.Comment.responseSuccess = function(o) {
	NetImage.Comment.setContent(o.argument.product_id, o.responseText);
};

NetImage.Comment.responseFailure = function(o) {
	NetImage.General.feedback(o.argument.product_id, 'Der opstod en fejl.');
	setTimeout('NetImage.General.feedback("' + o.argument.product_id + '", "")', 4000);
}

NetImage.Comment.callback = function(p_id) {
	this.success = NetImage.Comment.responseSuccess;
	this.failure = NetImage.Comment.responseFailure;
	this.timeout = 10000;
	this.argument = { product_id : p_id }
}

NetImage.Comment.submit = function(product_id) {
	var sUrl = 'index.php?page_label=product_comment';
	var comment = encodeURIComponent(document.getElementById('product_comment_'+product_id).value);
	var postData = 'product_id='+product_id+'&module_product_comment__comment='+comment;
	var transaction = YAHOO.util.Connect.asyncRequest('POST', sUrl, new NetImage.Comment.callback(product_id), postData);
}

//
// Vedr. underkategorier
//

NetImage.Categories = {};

NetImage.Categories.responseSuccess = function(o) {
	var div = document.getElementById('sub_categories');
	div.innerHTML = o.responseText;
	div.style.visibility = 'visible';
}

NetImage.Categories.callback = function() {
	this.success = NetImage.Categories.responseSuccess;
	this.timeout = 10000;
}

NetImage.Categories.displaySubCategories = function(label) {
	var div = document.getElementById('sub_categories');
	if ( ! div) {
		return false;
	}
	div.innerHTML= '';
	// Hent indhold
	var sUrl = 'index.php?page_label=sub_categories&category_label=' + label;
	var transaction = YAHOO.util.Connect.asyncRequest('GET', sUrl, new NetImage.Categories.callback());
	div.style.display = 'block';
	// Flyt kategori-listen til det valgte sted
	var x = YAHOO.util.Dom.getX(label); 
	var y = YAHOO.util.Dom.getY(label); 
	YAHOO.util.Dom.setX(div, x - 30); 
	YAHOO.util.Dom.setY(div, y); 
	return false;
}

NetImage.Categories.hideSubCategories = function() {
	// Skjul div sub_categories
	var div = document.getElementById('sub_categories');
	if (div) {
		div.style.visibility = 'hidden';
		div.style.display = 'none';
	}
	return false;
}


