
pf_table = [];
pf_filter_table = [];
pf_sort = [-1, ''];
pf_filter_contitions = ['', '', ''];
timeouts = {};

var im1 = new Image();
im1.src = '/images/poster_formats/pf_sort_up.gif';
var im2 = new Image();
im1.src = '/images/poster_formats/pf_sort_down.gif';

function pf_popup_show(){
	var h = 0;
	$('#pf_popup_wrapper').height(getDocumentHeight());
	if ( getClientHeight()<520 ){
		$('#pf_popup_content').css('top', getBodyScrollTop()+20+'px');
	}else{
		$('#pf_popup_content').css('top', getClientCenterY()+'px');
		h = parseInt(488)/2;
	}
	var w = parseInt(581)/2;
	$('#pf_popup_content').css('margin', '-'+h+'px 0 0 -'+w+'px');
	
	pf_default();
	pf_init_table();
	pf_update_table();
	
	$('#pf_popup_wrapper').show();
	return false;
}

function pf_popup_hide(){
	$('#pf_popup_wrapper').hide();
}

function pf_make_table(){
	var tbl = $('#pf_table')[0];
	var row = '';
	var cell = '';
	var i = 0;
	var str = '';
	
	for (i=0; i<pf_filter_table.length; i++){
		str += '<tr onclick="pf_row_click(\''+pf_filter_table[i][0].replace("'", "\\'")+'\', \''+pf_filter_table[i][4].replace("'", "\\'")+'\');">';
		str += '<td class="size"><p>'+pf_filter_table[i][0]+'</p></td>';
		str += '<td class="format"><p>'+pf_filter_table[i][1]+'</p></td>';
		str += '<td class="price"><p>'+pf_filter_table[i][2]+' &euro;</p></td>';
		str += '<td class="express"><p>'+pf_filter_table[i][3]+' &euro;</p></td>';
		str += '</tr>';
	}
	if (str!='')
		$('#pf_table').html(str);
	else{
		while (tbl.rows.length>0)
			tbl.deleteRow(0);
	}
	str = '';
	
	$('#pf_table tr:nth-child(odd)').attr('class', 'white');
	$('#pf_table tr:nth-child(even)').attr('class', 'gray');
	$('#pf_table tr').hover(
		function(){
			if (!$(this).hasClass('hover'))
				$(this).addClass('hover');
		},
		function(){
			if ($(this).hasClass('hover'))
				$(this).removeClass('hover');
		}
	);
}

function pf_sort_column(elem, index){
	if (!$(elem).hasClass('pf_btn_sort_up')){
		if ($(elem).hasClass('pf_btn_sort')){
			$('.pf_btn_sort_up').attr('class', 'pf_btn_sort').attr('src', '/images/poster_formats/pf_sort.gif');
			$('.pf_btn_sort_down').attr('class', 'pf_btn_sort').attr('src', '/images/poster_formats/pf_sort.gif');
		}
		$(elem).attr('class', 'pf_btn_sort_up');
		$(elem).attr('src', '/images/poster_formats/pf_sort_up.gif');
		pf_sort[1] = '+';
	}else if ($(elem).hasClass('pf_btn_sort_up')){
		$(elem).attr('class', 'pf_btn_sort_down');
		$(elem).attr('src', '/images/poster_formats/pf_sort_down.gif');
		pf_sort[1] = '-';
	}
	pf_sort[0] = index;
	pf_update_table();
}

function pf_default(){
	pf_sort = [-1, ''];
	pf_filter_contitions = ['', '', ''];
	$('.pf_filter_wrapper').hide();
	$('.pf_btn_sort_up').attr('class', 'pf_btn_sort').attr('src', '/images/poster_formats/pf_sort.gif');
	$('.pf_btn_sort_down').attr('class', 'pf_btn_sort').attr('src', '/images/poster_formats/pf_sort.gif');
	$('.pf_filter_wrapper').hover(
		function(){
			if (timeouts[$(this).attr('id')])
				clearTimeout(timeouts[$(this).attr('id')]);
		},
		function(){
			timeouts[$(this).attr('id')] = setTimeout("hide_filter_panel('"+$(this).attr('id')+"');", 1000);
		}
	);
}

function pf_init_table(){
	var is_exist = {};
	var uniq = [];
	var i = 0;
	var str = '';
	for (i=0; i<pf_table.length; i++){
		if (is_exist[pf_table[i][1]]==null || is_exist[pf_table[i][1]]==undefined){
			is_exist[pf_table[i][1]] = 1;
			uniq.push(pf_table[i][1]);
		}
	}
	uniq.sort();
	for (i=0; i<uniq.length; i++){
		str += '<a href="#" onclick="return pf_set_filter(this, 1, \''+uniq[i].replace("'", "\\'")+'\');">'+uniq[i]+'</a><br>';
	}
	str += '<a href="#" onclick="return pf_set_filter(this, 1, \'\');">alle Formate</a>';
	$('#pf_filter_1 .pf_filter_content').html(str);
}

function pf_filter(){
	pf_filter_table = [];
	var i = 0;
	var val = '';
	var i1 = -1;
	
	if (pf_filter_contitions[0]!='' || pf_filter_contitions[1]!='' || pf_filter_contitions[2]!=''){
		for (i=0; i<pf_table.length; i++){
			if (pf_filter_contitions[0]!=''){
				val = pf_table[i][0];
				val2 = pf_table[i][0];
				var tmp = val.match(/(\d+)([^x\d]+)?x([^\d]+)?(\d+)/);
				if (tmp){
					val = parseFloat(tmp[1]);
					val2 = parseFloat(tmp[4]);
				}
				if ( (pf_filter_contitions[0]=='0' && (val>500 || val2>500)) || (pf_filter_contitions[0]=='1' && (val>1000 || val2>1000)) || (pf_filter_contitions[0]=='2' && (val<1000 && val2<1000)) )
					continue;
			}
			if (pf_filter_contitions[1]!='' && pf_filter_contitions[1]!=pf_table[i][1])
				continue;
			if (pf_filter_contitions[2]!=''){
				val = parseFloat(pf_table[i][2].replace(',', '.'));
				if ( (pf_filter_contitions[2]=='0' && val>10) || (pf_filter_contitions[2]=='1' && val>30) || (pf_filter_contitions[2]=='2' && val>50) || (pf_filter_contitions[2]=='3' && val>100) )
					continue;
			}
			pf_filter_table.push(pf_table[i]);
		}
	}else{
		pf_filter_table = pf_table
	}
	
	if (pf_sort[0]!=-1){
		pf_filter_table.sort(compare_formats);
	}
}

function compare_formats(a, b){
	var key = pf_sort[0];
	var MORE_VALUE = 1;
	var LESS_VALUE = -1;
	if (pf_sort[1]=='-'){
		MORE_VALUE = -1;
		LESS_VALUE = 1;
	}
	
	var val1 = a[key];
	var val11 = a[key];
	var val2 = b[key];
	var val21 = b[key];
	
	if (key==0){
		var i1 = val1.match(/(\d+)([^x\d]+)?x([^\d]+)?(\d+)/);
		var i2 = val2.match(/(\d+)([^x\d]+)?x([^\d]+)?(\d+)/);
		if (i1 && i2){
			val1 = parseFloat(i1[1]);
			val11 = parseFloat(i1[4]);
			val2 = parseFloat(i2[1]);
			val21 = parseFloat(i2[4]);
		}
	}
	
	if (key==2 || key==3){
		val1 = parseFloat(val1.replace(',', '.'));
		val2 = parseFloat(val2.replace(',', '.'));
	}
	
	if (val1>val2)
		return MORE_VALUE;
	else if (val1<val2)
		return LESS_VALUE;
	else{
		if (key==0){
			if (val11>val21)
				return MORE_VALUE;
			else if (val11<val21)
				return LESS_VALUE;
		}
		return 0;
	}
}

function pf_update_table(){
	pf_filter();
	pf_make_table();
}

function trim(str, chars) {
	return ltrim(rtrim(str, chars), chars);
}
 
function ltrim(str, chars) {
	chars = chars || "\\s";
	return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
}
 
function rtrim(str, chars) {
	chars = chars || "\\s";
	return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
}

function show_filter_panel(elem){
	$('.pf_filter_wrapper').hide();
	$(elem.parentNode).find('.pf_filter_wrapper').css({'left':(elem.offsetLeft-6)+'px', 'top':(elem.offsetTop+1)+'px'}).show();
}

function hide_filter_panel(id){
	$('#'+id).hide();
}

function pf_set_filter(elem, index, value){
	$(elem.parentNode).find('a').removeClass('active');
	if (!$(elem).hasClass('active') && value!='')
		$(elem).addClass('active');
	pf_filter_contitions[index] = value;
	$('.pf_filter_wrapper').hide();
	pf_update_table();
	return false;
}

function pf_row_click(format, erpid){
	$('#format_from_combobox')[0].checked = true;
	$('#fb_custom_format').html(format);
	$('#formatuniq_parent').val(erpid);
	pf_popup_hide();
}
