
//predefined variables
// path: for ajax
// display_select_nr: ajax effects and thumbnails enabled/disabled
// input_search_default: default text of empty input_search
// initial_search: should search be started when page is loaded
// ajax_form: catalog form is ajax, true/false
// start_pid: on start call article
// pl_delete_msg: message for partslist delete
// start_partslist: on start call partslist view
// tracking: track events

var design_nr      = -1;
var application_nr = -1;
var color_nr       = -1;
var ext_company_nr = -1;
var input_search   = "";
var ajax_search    = null;
var ajax_product   = null;
var product_link   = null;
var check_hash     = true;
var last_pid       = 0;
var last_tracking  = "";
var tracking       = 0;

if(document.domain == 'www.berker.com'){
	tracking = 1;
}

//************************************************
//predefined global functions
//************************************************

//toggle group
function toggleMenu(button_object,toggle_object){
	if(toggle_object.hasClass("close")){
		//toggle_object
		toggle_object.slideUp("slow");
		toggle_object.removeClass("close");
		toggle_object.addClass("open");
		//button_object
		button_object.removeClass("less");
		button_object.addClass("more");
	}else if(toggle_object.hasClass("open")){
		//toggle_object
		toggle_object.slideDown("slow");
		toggle_object.removeClass("open");
		toggle_object.addClass("close");
		//button_object
		button_object.removeClass("more");
		button_object.addClass("less");
	}
}

function toggleMenuSimple(button_object,toggle_object){
	if(toggle_object.hasClass("close")){
		//toggle_object
		toggle_object.hide();
		toggle_object.removeClass("close");
		toggle_object.addClass("open");
		//button_object
		button_object.removeClass("less");
		button_object.addClass("more");
	}else if(toggle_object.hasClass("open")){
		//toggle_object
		toggle_object.show();
		toggle_object.removeClass("open");
		toggle_object.addClass("close");
		//button_object
		button_object.removeClass("more");
		button_object.addClass("less");
		//scroll
		smoothDivScroll(toggle_object.closest('div.overflow'),button_object);
	}
}

//toggle article menu
function toggleArticleMenu(button_object,toggle_object){
	if(button_object.hasClass('load_articles')){
		var group    = button_object.attr("id").replace('article_results_link_','');
		var group_id = group.split("_");
		var params   = 'design_nr='+group_id[0]+'&application_nr='+group_id[1];
		
		$('#ajax_loader_'+group).fadeIn();
		button_object.removeClass('load_articles');
		
		$.ajax({
			type:	"POST",
			url:	path+'?type=111&controller=search&action=application',
			data:	params,
			success: function(response, textStatus, XMLHttpRequest){
				if(response != ''){
					$('#article_results_'+group+'_content').html(response);
					bindImageLoading();
					$('#ajax_loader_'+group).fadeOut();
					//if search result is closed, open it
					if(toggle_object.hasClass("open")){
						toggleMenuSimple(button_object,toggle_object);
					}
				}
			}
		});
	}else{
		toggleMenuSimple(button_object,toggle_object);
	}
}

//start catalog search
function catalogSearch(){
	var missing_data = "";
	var fulltext_change = false;
	var params;
	
	//get missing data and stop old ajax request
	if($('#design_search').attr('disabled') == true){
		missing_data+= "&designlinie=" + design_nr + "&einsatzgebiet=" + application_nr + "&farbe=" + color_nr + "&fremdhersteller=" + ext_company_nr;
		ajax_search.abort();
	}
	
	//trim input_search
	$('#input_search').val(jQuery.trim($('#input_search').val()));
	//serialize form data for ajax request
	if($('#input_search').val() == input_search_default){
		$('#input_search').val('');
		input_search = "";
		fulltext_change = true;
	}else{
		input_search = $('#input_search').val();
	}
	params = $('#search_form').serialize()+missing_data;
	if(fulltext_change){
		$('#input_search').val(input_search_default);
	}
	
	//save form values for IE fix
	design_nr      = $('#design_search').val();
	application_nr = $('#application_search').val();
	color_nr       = $('#color_search').val();
	ext_company_nr = $('#ext_company_search').val();
	
	//check if its a real search
	if(design_nr == -1 && application_nr == -1 && color_nr == -1 && ext_company_nr == -1 && input_search == ""){
		return;
	}
	$('#start_page').hide();
	$('#design_page').hide();
	$('#content_wrapper').show();
	$('#search_results_ajax_loader').fadeIn();
	
	$('#design_search').attr("disabled", true);
	$('#application_search').attr("disabled", true);
	$('#color_search').attr("disabled", true);
	$('#ext_company_search').attr("disabled", true);
	
	ajax_search = $.ajax({
		type:	"POST",
		url:	path+'?type=111&controller=search&action=search',
		data:	params,
		success: function(response, textStatus, XMLHttpRequest){
			if(response != ''){
				var html_part = response.split('<--DELIMTER-->');
				$('#select').html(html_part[0]);
				$('#search_results_content').html(html_part[1]);
				//hide ext_company if no selectable items available
				if($("#ext_company_search").children().length == 1){
					$("#ext_company_search").css('display','none');
				}
				$('#search_results_ajax_loader').fadeOut();
				bindSearch();
				bindSubSearch();
				bindImageLoading();
				//if search result is closed, open it
				if($('#search_results_div').hasClass("open")){
					toggleMenu($('#search_results_link'),$('#search_results_div'));
				}
			}
		}
	});
	
}

function smoothScroll(object){
	$.scrollTo(object,600);
}

function smoothDivScroll(div_object,target_object){
	div_object.scrollTo(target_object,600);
}

//get link hash
function getHash(){
	var hash;
	
	hash = window.location.href;
	if(hash.match(/#/)){
		hash = hash.replace(/^.*#/, '');
	}else{
		hash = "";
	}
	
	return hash;
}

function pageload() {
	var hash = getHash();
	if(hash && check_hash){
		// restore ajax loaded state
		if($.browser.msie) {
			// jquery's $.load() function does't work when hash include special characters like aao.
			hash = encodeURIComponent(hash);
		}
		var split_hash = hash.split("/");
		
		if(split_hash.length == 1){
			//get article pid and load article
			$('#start_page').hide();
			$('#design_page').hide();
			$('#content_wrapper').show();
			$.ajax({
				type:	"POST",
				url:	path+'?type=111&controller=article&action=article_pid&article_number='+hash,
				success: function(response, textStatus, XMLHttpRequest){
					if(response != '' && response != '0'){
						ajax_form = true;
						loadArticle(response);
					}else{
						$('#show_article_content').empty();
					}
				}
			});
		}else if(split_hash[0] == 'productline'){
			ajax_form = true;
			changeToDesignDesc(split_hash[1]);
			$('#start_page').hide();
			$('#content_wrapper').hide();
			$('#design_page').show();
		}
	}
	
	if(!check_hash){
		check_hash = true;
	}
}


function loadArticle(pid){
	if(product_link != null){
		product_link.removeClass('active');
	}
	product_link = null;
	
	if($('#article_ajax_loader').is(':visible')){
		ajax_product.abort();
	}
	$('#article_ajax_loader').fadeIn();
	
	ajax_product = $.ajax({
		type:	"POST",
		url:	path+'?type=111&controller=article&pid='+pid,
		success: function(response, textStatus, XMLHttpRequest){
			if(response != ''){
				last_pid = pid;
				$('#show_article_content').html(response);
				$('#article_ajax_loader').fadeOut();
				bindImageLoading();
				//article left menu
				//if article is closed, open it
				if($('#show_article_div').hasClass("open")){
					//call it manually because of callback(scroll effect) - toggleMenu($('#show_article_link'),$('#show_article_div'));
					//toggle_object
					$('#show_article_div').slideDown("slow",function(){smoothScroll($('#show_article_wrapper'))} );
					$('#show_article_div').removeClass("open");
					$('#show_article_div').addClass("close");
					//button_object
					$('#show_article_link').removeClass("more");
					$('#show_article_link').addClass("less");
				}else{
					smoothScroll($('#show_article_wrapper'));
				}
				//click image
				if($('#article_image_enlarge').length != 0){
					$('#article_image_enlarge').colorbox({inline: true, href: "#article_image_large", opacity:0.75, title: " ", close: "",
						onLoad: function() {
							$('#colorbox div').attr('class','');
							$('#cboxTopCenter').html($('#close_box_link').html());
							$('#cboxBottomCenter').html('');
						}
					});
					$('#magnifier').bind('click',function(){
						$('#article_image_enlarge').trigger('click');
					});
				}
				//click tender text
				if($('#tender_text_article').length != 0){
					$('#tender_text_article').colorbox({inline: true, href: "#tender_text", opacity:0.75, title: " ", close: "", innerWidth: 550, width: 600, maxHeight: ($(window).height() - 100),
						onLoad: function(){
							$('#colorbox div').attr('class','');
							$('#cboxTopCenter').html($('#close_box_link').html());
							$('#cboxBottomCenter').html('');
						} 
					});
				}
				//click print article
				if($('#print_article').length != 0){
					$('#print_article').colorbox({inline: true, href: "#print_article_text", opacity:0.75, title: " ", close: "", innerWidth: 750, width: 800, maxHeight: ($(window).height() - 100),
						onLoad: function(){
							$('#colorbox div').attr('class','print');
							$('#cboxTopCenter').html($('#close_box_link').html()+$('#print_box_link').html());
							$('#cboxBottomCenter').html($('#print_box_link').html());
						},
						onComplete: function() {
							$('#print_article_text_copy').show();
							$('#partslist_print').hide();
						}
					});
					$('#print_article_text_copy').html($('#print_article_text').html());
				}
				//click pdf export
				if($('#pdf_article').length != 0){
					$('#pdf_article').colorbox({iframe: true, opacity:0.75, title: " ", close: "", width:"80%", height:"95%",
						onLoad: function(){
							$('#colorbox div').attr('class','');
							$('#cboxTopCenter').html($('#close_box_link').html());
							$('#cboxBottomCenter').html('');
						} 
					});
				}
				//set sub article
				if($('a[id^=sub_pid_]').length != 0){
					$('a[id^=sub_pid_]').each(function(){
						var sub_pid = $(this).attr('id').replace('sub_pid_','');
						$(this).colorbox({href: path+'?type=111&controller=article&action=sub_article&pid='+sub_pid, opacity:0.75, title: " ", close: "", innerWidth: 750, width: 800, maxHeight: ($(window).height() - 100),
							onLoad: function(){
								$('#colorbox div').attr('class','');
								$('#cboxTopCenter').html($('#close_box_link').html());
								$('#cboxBottomCenter').html('');
							},
							onComplete: function(){
								bindAddSubArticleToPartslist(sub_pid);
							}
						});
					});
				}
				//add to partslist
				$('#add_part').click(function(event){
					event.preventDefault();
					var amount = $('#add_part_value').val();
					if(isNaN(amount) == false && amount > 0){
						$.ajax({
							type:	"POST",
							url:	path+'?type=111&controller=article&action=add_part',
							data:	'amount='+$('#add_part_value').val()+'&pid='+pid,
							beforeSend: function(XMLHttpRequest){
								$('#added-partslist').html($('#added-partslist_dummy').html());
								$('#added-partslist').html($('#added-partslist').html().replace('XXX',amount));
								$('#added-partslist').fadeIn();
								setTimeout(function() { $('#added-partslist').fadeOut(); }, 2000);
							},
							success: function(response, textStatus, XMLHttpRequest){
								if((response != '' || response != '-1') && isNaN(response) == false){
									setPlCount(response);
								}
							}
						});
					}
				});
				//get article number, set hash and track event
				$.ajax({
					type:	"POST",
					url:	path+'?type=111&controller=article&action=article_info&pid='+pid,
					success: function(response, textStatus, XMLHttpRequest){
						var split_response;
						var hash = getHash();
						var link;
						var new_hash;
						split_response = response.split('<--DELIMTER-->');
						if(response != '' && response != '0'){
							new_hash = '#'+split_response[0];
							//track event
							if(tracking == 1 && typeof(_gaq) != "undefined"){
								var action = split_response[0]+": "+split_response[1];
								last_tracking = action;
								_gaq.push(['_trackEvent', 'Katalog '+locale, action, 'display']);
							}
						}else{
							new_hash = '#';
						}
						if(hash != split_response[0]){
							link = window.location.href.replace(hash,'');
							link = link.replace('#','');
							check_hash = false;
							window.location.href = link + new_hash;
						}
					}
				});
			}
		}
	});
}

//set partslist counter
function setPlCount(value){
	if(!isNaN(value)){
		$('#pl_count').html(value);
		if(value <= 0){
			$('#partslist_extra').hide();
		}else{
			$('#partslist_extra').show();
		}
	}
}

function changeToDesignDesc(design_nr){
	$.ajax({
		type:	"POST",
		url:	path+'?type=111&action=design_desc&design_nr='+design_nr,
		success: 
		function(response, textStatus, XMLHttpRequest){
			if(response != ''){
				$('#content_wrapper').hide();
				$('#start_page').hide();
				$('#design_page').html(response);
				$('#design_page').show();
				
				$('#back_to_start').click(function(event){
					event.preventDefault();
					$('#design_page').hide();
					$('#content_wrapper').show();
				});
				
				var hash = getHash();
				var link;
				var new_hash;
				if(response != '' && response != '0'){
					new_hash = '#productline/'+design_nr+'/';
				}else{
					new_hash = '#';
				}
				if(hash != 'productline/'+design_nr+'/'){
					link = window.location.href.replace(hash,'');
					link = link.replace('#','');
					check_hash = false;
					window.location.href = link + new_hash;
				}
			}
		}
	});
}

//************************************************
//bind functions
//************************************************

function bindSearch(){
	//design search
	if($('#select #design_search').length != 0){
		$('#select #design_search').change(function(){
			//IE fix
			if($(this).val() != design_nr){
				$('#search_form').submit();
			}
		});
	}
	//application search
	if($('#select #application_search').length != 0){
		$('#select #application_search').change(function(){
			//IE fix
			if($(this).val() != application_nr){
				$('#search_form').submit();
			}
		});
	}
}

function bindSubSearch(){
	//color search
	if($('#search_results_content .search_left #color_search').length != 0){
		$('#search_results_content .search_left #color_search').change(function(){
			//IE fix
			if($(this).val() != color_nr){
				$('#search_form').submit();
			}
		});
	}
	//external company search
	if($('#search_results_content .search_left #ext_company_search').length != 0){
		$('#search_results_content .search_left #ext_company_search').change(function(){
			//IE fix
			if($(this).val() != ext_company_nr){
				$('#search_form').submit();
			}
		});
	}
	//*LIMITLIST TOP3*//
	if($('a[id^=limitlist_]')){
		$('a[id^=limitlist_]').click(function(event){
			event.preventDefault();
			var limit_id = $(this).attr('id').split("_");
			if($('#'+limit_id[1]+'_search').attr('disabled') == false){
				$('#'+limit_id[1]+'_search').val(limit_id[2]);
				$('#search_form').submit();
			}
		});
	}
	//*LIMITLIST OTHER*//
	if($('select[id^=limitlist_]')){
		$('select[id^=limitlist_]').change(function(event){
			event.preventDefault();
			var limit_id = $(this).attr('id').split("_");
			if($('#'+limit_id[1]+'_search').attr('disabled') == false){
				$('#'+limit_id[1]+'_search').val($(this).val());
				$('#search_form').submit();
			}
		});
	}
}

function bindImageLoading(){
	$('img.article_img').each(function(){
		if($(this).hasClass('loading')){
			$(this).load(function(){
				$(this).css('visibility','visible');
				$(this).parent().css('background','#FFFFFF');
				$(this).removeClass('loading');
				$(this).addClass('loaded');
			});
		}
	});
	checkImageLoading();
}

function checkImageLoading(){
	$('img.article_img').each(function(){
		if(this.complete){
			$(this).trigger("load");
		}
	});
}

//add sub_article to partslist
function bindAddSubArticleToPartslist(pid){
	$('#add_part_sub').click(function(event){
		event.preventDefault();
		var amount = $('#add_part_value_sub').val();
		if(isNaN(amount) == false && amount > 0){
			$.ajax({
				type:	"POST",
				url:	path+'?type=111&controller=article&action=add_part',
				data:	'amount='+$('#add_part_value_sub').val()+'&pid='+pid,
				beforeSend: function(XMLHttpRequest){
					$('#added-partslist_sub').html($('#added-partslist_dummy_sub').html());
					$('#added-partslist_sub').html($('#added-partslist_sub').html().replace('XXX',amount));
					$('#added-partslist_sub').fadeIn();
					setTimeout(function() { $('#added-partslist_sub').fadeOut(); }, 2000);
				},
				success: function(response, textStatus, XMLHttpRequest){
					if((response != '' || response != '-1') && isNaN(response) == false){
						setPlCount(response);
					}
				}
			});
		}
	});	
}

//bind design change
function bindDesignChange(){
	$('#deschangeform').submit(function(event){
		event.preventDefault();
		$.ajax({
			type:  "POST",
			url:   path+'?action=design_change&controller=partslist&type=111',
			data:  $(this).serialize(),
			beforeSend: function(XMLHttpRequest){
				$('#design_change_load_img').show();
			},
			success:
			function(response, textStatus, XMLHttpRequest){
				if(response != ''){
					if($('#DDL_DESIGN_LINIE_FROM').val()>0 && $('#DDL_DESIGN_LINIE_TO').val()>0 && $('#DDL_COLOR_FROM').val()>0 && $('#DDL_COLOR_TO').val()>0){
						$.fn.colorbox.close();
						$('#pl_view').trigger('click');
					}else{
						$('#cboxLoadedContent').html(response);
						bindDesignChange();
					}
				}
			}
		});
	});
	$('#DDL_DESIGN_LINIE_FROM').change(function(){
		$('#DDL_COLOR_FROM').val('-1');
		$('#deschangeform').submit();
	});
	$('#DDL_DESIGN_LINIE_TO').change(function(){
		$('#DDL_COLOR_TO').val('-1');
		$('#deschangeform').submit();
	});
	$('#submit_design_change').click(function(event){
		event.preventDefault();
		$('#deschangeform').submit();
	});
}

//************************************************
//document ready functions
//************************************************

$(document).ready(function(){
	
	$.historyInit(pageload, path);
	bindSearch();
	bindSubSearch();
	
	//back to search results button
	if($('#back_to_search_results').length != 0){
		$('#back_to_search_results').click(function(event){
			event.preventDefault();
			smoothScroll($('#selection_top'));
		});
	}
	
	//submit button
	if($('.submit').length != 0){
		$('.submit').click(function(event){
			event.preventDefault();
			$('#search_form').submit();
		});
	}
	
	//faq
	if($('#faq').length != 0){
		$('#faq').colorbox({opacity:0.75, title: " ", close: "", innerWidth: 400, width: 450, maxHeight: ($(window).height() - 100),
			onLoad: function() {
				$('#colorbox div').attr('class','');
				$('#cboxTopCenter').html($('#close_box_link').html());
				$('#cboxBottomCenter').html('');
			}
		});
	}
	
	//close/open search result
	if($('#search_results_link').length != 0){
		$('#search_results_link').click(function(event){
			event.preventDefault();
			toggleMenu($(this),$('#search_results_div'));
		});
	}
	//close/open show article
	if($('#show_article_link').length != 0){
		$('#show_article_link').click(function(event){
			event.preventDefault();
			toggleMenu($(this),$('#show_article_div'));
		});
	}
	
	//ajax search form
	if($('#search_form').length != 0){
		$('#search_form').submit(function(event){
			if(ajax_form){
				event.preventDefault();
				catalogSearch();
			}
		});
	}
	
	//display_select
	if($('#display_select').length != 0){
		
		if(display_select_nr == 1 || display_select_nr == 3){
			jQuery.fx.off = false;
		}else{
			jQuery.fx.off = true;
		}
		
		$('#display_select').change(function(){
			$.ajax({
				type:	"POST",
				url:	path+'?type=111&controller=search&action=display_select',
				data:	$('#display_select').serialize()+'&no_models=true',
				success: function(response, textStatus, XMLHttpRequest){
					display_select_nr = response;
					//enable/disable effects
					if(display_select_nr == 1 || display_select_nr == 3){
						jQuery.fx.off = false;
					}else{
						jQuery.fx.off = true;
					}
					//show/hide thumbnails
					if(display_select_nr == 1 || display_select_nr == 2){
						$('a.article_link').removeClass('no_thumb');
						$('div.load_image').css('display','');
						$('div.load_image').each(function(){
							if($(this).attr('title') != ''){
								$(this).html('<img class="article_img loading" src="'+($(this).attr('title'))+'" width="50" height="50" alt="" style="visibility:hidden" />');
								$(this).attr('title','');
								$(this).show();
							}
						});
						bindImageLoading();
						$('img.article_img').each(function(){
							if($(this).hasClass('loaded')){
								$(this).css('display','');
							}
						});
					}else{
						$('a.article_link').addClass('no_thumb');
						$('img.article_img').css('display','none');
						$('div.load_image').css('display','none');
					}
				}
			});
		});
	}
	
	//input_search (info text show/hide)
	if($('#input_search').length != 0){
		$('#input_search').focus(function(){
			if($('#input_search').val() == input_search_default){
				$('#input_search').val('');
			}
		});
		$('#input_search').blur(function(){
			if($('#input_search').val() == ''){
				$('#input_search').val(input_search_default);
			}
		});
	}
	
	//start search on page load
	if(initial_search == true){
		catalogSearch();
	}
	
	//partslist view
	if($('#pl_view').length != 0){
		$('#pl_view').click(function(event){
			event.preventDefault();
			$('#article_ajax_loader').fadeIn();
			$.ajax({
				type:	"POST",
				url:	path+'?type=111&controller=partslist',
				success: 
				function(response, textStatus, XMLHttpRequest){
					if(response != ''){
						$('#show_article_content').html(response);
						$('#article_ajax_loader').fadeOut();
						//if article is closed, open it
						if($('#show_article_div').hasClass("open")){
							//call it manually because of callback(scroll effect) - toggleMenu($('#show_article_link'),$('#show_article_div'));
							//toggle_object
							$('#show_article_div').slideDown("slow",function(){smoothScroll($('#show_article_wrapper'))} );
							$('#show_article_div').removeClass("open");
							$('#show_article_div').addClass("close");
							//button_object
							$('#show_article_link').removeClass("more");
							$('#show_article_link').addClass("less");
						}
					}
					//delete
					$('a[id^=pl_del_]').click(function(event){
						event.preventDefault();
						var id = $(this).attr('id').replace('pl_del_','');
						$('#article_ajax_loader').fadeIn();
						$.ajax({
							type: "GET",
							url:  path+"?type=111&controller=partslist&action=delete&item="+id,
							success: 
							function(response, textStatus, XMLHttpRequest){
								if(response == 'true'){
									$('#pl_view').trigger('click');
									setPlCount((parseInt($('#pl_count').html())-1));
								}
							}
						});
					});
					//move
					$('a[id^=plmove_]').click(function(event){
						event.preventDefault();
						var id = $(this).attr('id').split("_");
						$('#article_ajax_loader').fadeIn();
						$.ajax({
							type: "GET",
							url:  path+"?type=111&controller=partslist&action=move"+id[1]+"&item="+id[2],
							success: 
							function(response, textStatus, XMLHttpRequest){
								if(response == 'true'){
									$('#pl_view').trigger('click');
								}
							}
						});
					});
					//insertafter
					$('a[id^=pl_insertafter_]').click(function(event){
						event.preventDefault();
						var id = $(this).attr('id').replace('pl_insertafter_','');
						$.ajax({
							type: "GET",
							url:  path+"?type=111&controller=partslist&action=insertafter&item="+id
						});
					});
					//submit form - update
					$('#partslistform').submit(function(event){
						event.preventDefault();
						$('#article_ajax_loader').fadeIn();
						$.ajax({
							type: "POST",
							url:  path+"?type=111&controller=partslist&action=update",
							data: $('#partslistform').serialize(),
							success: 
							function(response, textStatus, XMLHttpRequest){
								if(response == 'true'){
									$('#pl_view').trigger('click');
								}
							}
						});
					});
				}
			});
		});
	}
	
	//partslist print
	if($('#pl_print').length != 0){
		$('#pl_print').click(function(event){
			event.preventDefault();
			if($('#pl_count').html() != '0'){
				$.fn.colorbox({href: path+'?controller=partslist&action=print&type=111', opacity:0.75, title: " ", close: "", innerWidth: 720, width: 770, maxHeight: ($(window).height() - 100),
					onLoad: function() {
						$('#colorbox div').attr('class','print');
						$('#cboxTopCenter').html($('#close_box_link').html()+$('#print_box_link').html());
						$('#cboxBottomCenter').html($('#print_box_link').html());
					},
					onComplete: function() {
						$('#partslist_print').html($('#cboxLoadedContent').html());
						$('#print_article_text_copy').hide();
						$('#partslist_print').show();
					},
					onClosed: function() {
						$('#print_article_text_copy').show();
						$('#partslist_print').hide();
					}
				});
			}
		});
	}
	
	//partslist load
	if($('#pl_load').length != 0){
		new AjaxUpload('li_pl_load', {action: path+'?type=111&controller=partslist&action=load', autoSubmit: true,
			onSubmit: function (file, extension){
				if (! (extension && /^(bsl)$/i.test(extension))){
                        // extension is not allowed
                        $.fn.colorbox({inline: true, href: '#partslist_load', opacity:0.75, title: " ", close: "", innerWidth: 400, width: 450,
							onLoad: function() {
								$('#colorbox div').attr('class','');
								$('#cboxTopCenter').html($('#close_box_link').html());
								$('#cboxBottomCenter').html('');
								$('#partslist_load_error').show();
								$('#partslist_load_success').hide();
							}
						});
                        // cancel upload
                        return false;
                }
			},
			onComplete: function(file, response) {
				if(response != ''){
					//success
					setPlCount(response);
					$('#pl_view').trigger('click');
					$.fn.colorbox({inline: true, href: '#partslist_load', opacity:0.75, title: " ", close: "", innerWidth: 400, width: 450,
						onLoad: function() {
							$('#colorbox div').attr('class','');
							$('#cboxTopCenter').html($('#close_box_link').html());
							$('#cboxBottomCenter').html('');
							$('#partslist_load_error').hide();
							$('#partslist_load_success').show();
						}
					});
				}else{
					//error
					$.fn.colorbox({inline: true, href: '#partslist_load', opacity:0.75, title: " ", close: "", innerWidth: 400, width: 450,
						onLoad: function() {
							$('#colorbox div').attr('class','');
							$('#cboxTopCenter').html($('#close_box_link').html());
							$('#cboxBottomCenter').html('');
							$('#partslist_load_error').show();
							$('#partslist_load_success').hide();
						}
					});
				}
			}
		});
	}
	
	//partslist export
	if($('#pl_export').length != 0){
		$('#pl_export').change(function(){
			if($('#pl_count').html() != '0'){
				if($(this).val() == 'csv'){
					$.fn.colorbox({href: path+'?controller=partslist&action=csv&type=111', opacity:0.75, title: " ", close: "", innerWidth: 400, width: 450,
						onLoad: function(){
							$('#colorbox div').attr('class','');
							$('#cboxTopCenter').html($('#close_box_link').html());
							$('#cboxBottomCenter').html('');
						} 
					});
				}else if($(this).val() == 'catalog_pdf'){
					$.fn.colorbox({iframe: true, href: path+'?controller=partslist&action=catalog_pdf&type=111', opacity:0.75, title: " ", close: "", width:"80%", height:"95%",
						onLoad: function(){
							$('#colorbox div').attr('class','');
							$('#cboxTopCenter').html($('#close_box_link').html());
							$('#cboxBottomCenter').html('');
						} 
					});
				}else if($(this).val() == 'pdf'){
					$.fn.colorbox({iframe: true, href: path+'?controller=partslist&action=pdf&type=111', opacity:0.75, title: " ", close: "", width:"80%", height:"95%",
						onLoad: function(){
							$('#colorbox div').attr('class','');
							$('#cboxTopCenter').html($('#close_box_link').html());
							$('#cboxBottomCenter').html('');
						} 
					});
				}
			}
			$(this).val('0');
		});
	}
	
	//partslist save
	if($('#pl_save').length != 0){
		$('#pl_save').click(function(event){
			if($('#pl_count').html() == '0'){
				event.preventDefault();
			}
		});
	}
	
	//partslist delete all
	if($('#pl_delete_all').length != 0){
		$('#pl_delete_all').click(function(event){
			event.preventDefault();
			if(confirm(pl_delete_msg)){
				setPlCount(0);
				//delete all
				$('#article_ajax_loader').fadeIn();
				$.ajax({
					type: "GET",
					url:  path+"?type=111&controller=partslist&action=clear",
					success: 
					function(response, textStatus, XMLHttpRequest){
						setPlCount(0);
						$('#pl_view').trigger('click');
					}
				});
			}
		});
	}
	
	//partslist discount factor
	if($('#pl_discount_factor').length != 0){
		$('#pl_discount_factor').colorbox({opacity:0.75, title: " ", close: "", innerWidth: 400, width: 450, maxHeight: ($(window).height() - 100),
			onLoad: function() {
				$('#colorbox div').attr('class','');
				$('#cboxTopCenter').html($('#close_box_link').html());
				$('#cboxBottomCenter').html('');
			},
			onComplete: function() {
				$('#submit_discount_factor').click(function(event){
					event.preventDefault();
					$('#discount_factor_form').submit();
				});
				//bind submit to discount factor form
				$('#discount_factor_form').submit(function(event){
					event.preventDefault();
					$.ajax({
						type:  "POST",
						url:   path+'?type=111&action=discount_factor&controller=partslist',
						data:  $(this).serialize(),
						beforeSend:
						function(){
							$.fn.colorbox.close();
						},
						success:
						function(response, textStatus, XMLHttpRequest){
							if(response != ''){
								$('#pl_view').trigger('click');
							}
						}
					});
				});
			}
		});
	}
	
	//partslist design change
	if($('#pl_design_change').length != 0){
		$('#pl_design_change').colorbox({opacity:0.75, title: " ", close: "", innerWidth: 400, width: 450,
			onLoad: function() {
				$('#colorbox div').attr('class','');
				$('#cboxTopCenter').html($('#close_box_link').html());
				$('#cboxBottomCenter').html('');
			},
			onComplete: function() {
				bindDesignChange();
			}
		});
	}
	
	//************************************************
	//live functions in document ready
	//************************************************
	
	//partslist view design change
	$('#confirm_design_change').live('click', function(event){
		event.preventDefault();
		var params;
		
		params = $('#partslistform').serialize();
		$.ajax({
			type: "POST",
			url:  path+"?type=111&controller=partslist&action=confirm_design_change",
			data: params,
			success: 
			function(response, textStatus, XMLHttpRequest){
				$('#pl_view').trigger('click');
			}
		});
	});
		
	//article group open/close
	$('a[id^=article_results_link_]').live('click', function(event){
		var group = $(this).attr('id').replace('article_results_link_','');
		
		event.preventDefault();
		toggleArticleMenu($(this),$('#article_results_'+group+'_div'));
	});
	
	//other article group open/close
	$('a[id^=other_article_link_]').live('click', function(event){
		var group = $(this).attr('id').replace('other_article_link_','');
		
		event.preventDefault();
		toggleArticleMenu($(this),$('#other_article_'+group+'_div'));
	});
	
	//click article link
	$('a[id^=pid_]').live('click', function(event){
		var pid = $(this).attr('id').replace('pid_','');
		loadArticle(pid);
		//highlight clicked article
		$(this).addClass('active');
		product_link = $(this);
		event.preventDefault();
	});
	
	//article details links
	$('a[class*=article_details_link]').live('click',function(event){
		event.preventDefault();
		var content = $(this).attr("id").replace('_link','');
		$('a[class*=article_details_link]').removeClass('active');
		$(this).addClass('active');
		if(content == 'article_other'){
			$('#'+content).show();
			$('#article_main').hide();
			$('.article_details_left').hide();
			$('.article_details_right').hide();
		}else{
			$('#article_main').show();
			$('#'+content).show();
			$('.article_details_right').show();
			$('#article_other').hide();
			$('.article_details_left:not(#'+content+')').hide();
		}
	});
	
	//no link
	$('a[class*=nolink]').live('click',function(event){
		event.preventDefault();
	});
	
	//colorbox close button
	$('a[class=close_box]').live('click',function(event){
		event.preventDefault();
		$.fn.colorbox.close();
	});
	
	//colorbox print button
	$('a[class*=print_box]').live('click',function(event){
		event.preventDefault();
		print(); 
	});
	
	//reset button
	$('.refresh').live('click',function(event){
		event.preventDefault();
		//abort search request
		if($('#design_search').attr('disabled') == true){
			ajax_search.abort();
			$('#search_results_ajax_loader').fadeOut();
		}
		//reset search
		$('#select').html($('#start_search').html());
		//reset result
		$('#search_results_content').html($('#start_result').html());
		//set id
		$('#select #design_search_copy').attr('id','design_search');
		$('#select #application_search_copy').attr('id','application_search');
		$('#search_results_content .search_left #color_search_copy').attr('id','color_search');
		$('#search_results_content .search_left #ext_company_search_copy').attr('id','ext_company_search');
		//reset form
		$('#design_search').val('-1');
		$('#application_search').val('-1');
		$('#color_search').val('-1');
		$('#ext_company_search').val('-1');
		design_nr      = -1;
		application_nr = -1;
		color_nr       = -1;
		ext_company_nr = -1;
		$('#input_search').val(input_search_default);
		//bind
		bindSearch();
		bindSubSearch();
	});
	
	//other_articles_clickable in sub_article
	$('.other_article_clickable tr').live('mouseover',function(){
		$(this).css('color','#FF6600');
		$(this).css('cursor','pointer');
	});
	$('.other_article_clickable tr').live('mouseout',function(){
		$(this).css('color','#333333');
	});
	$('.other_article_clickable tr').live('click',function(){
		var sub_pid = $(this).attr('id').replace('other_article_pid_','');
		$.fn.colorbox({href: path+'?type=111&controller=article&action=sub_article&pid='+sub_pid, opacity:0.75, title: " ", close: "", innerWidth: 750, width: 800, maxHeight: ($(window).height() - 100),
			onLoad: function(){
				$('#colorbox div').attr('class','');
				$('#cboxTopCenter').html($('#close_box_link').html());
				$('#cboxBottomCenter').html('');
			},
			onComplete: function(){
				bindAddSubArticleToPartslist(sub_pid);
			}
		});
	});
	
	//info button for design_desc
	$('a[id^=info_button_]').live('click',function(event){
		event.preventDefault();
		var design_nr = $(this).attr('id').replace('info_button_','');
		changeToDesignDesc(design_nr);
	});
	
	//synonym link
	$('a[class*=synonym]').live('click',function(event){
		event.preventDefault();
		$('#input_search').val($(this).text());
		catalogSearch();
	});
	
	//partslist back link
	$('#pl_back').live('click',function(event){
		event.preventDefault();
		loadArticle(last_pid);
	});
	
	//partslist csv export - submit form
	$('#submit_pl_csv').live('click',function(event){
		$(this).attr('target',"_blank");
		$(this).attr('href',path+'?'+$('#csvexportpartslistform').serialize()+'&type=111&controller=partslist&action=csv');
		$.fn.colorbox.close();
	});
	
	//design change link in room partslist
	$('a[class*=design_change_link]').live('click',function(event){
		event.preventDefault();
		$.fn.colorbox({href: $(this).attr('href'), opacity:0.75, title: " ", close: "", innerWidth: 400, width: 450,
			onLoad: function() {
				$('#colorbox div').attr('class','');
				$('#cboxTopCenter').html($('#close_box_link').html());
				$('#cboxBottomCenter').html('');
			},
			onComplete: function() {
				bindDesignChange();
			}
		});
	});
	
	//fix enter submit on msie
	if ( $.browser.msie ) {
		$('#input_search').live('keypress',function(event){
			//check if enter pressed and there is a second form (article part add form or partlist form)
			if (event.keyCode == 13 && ($('#add_part_value').length != 0 || $('input[name=plnumber[1]]').length != 0)) {
				$('#search_form').submit();
			}
		});
	}
	
	//track downloads
	$('.article_details ul.download li a').live('click',function(event){
		if(tracking == 1 && typeof(_gaq) != "undefined" && last_tracking != ""){
			var href_info = $(this).attr('href').split('file=');
			var filename  = href_info[1].split('&');
			_gaq.push(['_trackEvent', 'Katalog '+locale, last_tracking, 'download: '+filename[0]]);
		}
	});
	
	//start functions**************
	
	//start_pid
	if(start_pid > 0){
		loadArticle(start_pid);
	}
	
	//start_partslist
	if(start_partslist){
		$('#pl_view').trigger('click');
	}
	
});

