var orderByItems = Array();

function new_window (file) {
	win = window.open(file,"NewWindow","width=600,height=500,scrollbars=yes,resizable=no");
}

function askDelete (text) {
	return confirm("Soll " + text + " wirklich gelöscht werden?");
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function buildProductSearchGroups (form) {
	var boxes = form.elements;
	var psg = "";
	for (var i = 0;i < boxes.length;i++) {
		if (!boxes[i].name.match(/^btn_*|cat|psg|header|country|language$/i)) {
			if (boxes[i].value != "") {
				psg += ((psg == "") ? "" : ",") + boxes[i].name + "|" + boxes[i].value;
			}
		}
	}
	form.psg.value = psg;
	form.btn_submit.value = "1";
	form.submit();
}

function buildProductTypeKeys (form) {
	var boxes = form.elements;
	var ptk = "";
	for (var i = 0;i < boxes.length;i++) {
		if (!boxes[i].name.match(/^pid|^btn_|^ptk|^language|^header|^country|^cat|^psg/i)) {
			if (boxes[i].value != "") {
				ptk += ((ptk == "") ? "" : ",") + boxes[i].name + "|" + boxes[i].value;
			}
		}
	}
	form.ptk.value = ptk; 
	form.btn_submit.value = "1";
	form.submit();
}

/**
 * Adds an order column to the order request
 * New since [jug, 21.09.2006]
 */
function addOrder(sourceElement) {
	var thElement = sourceElement;
	while (thElement.nodeName != "TH") {
		thElement = thElement.parentNode;
	}
	
	var field = thElement.id;

	// parse image-src
	var image = sourceElement;
	var res = image.src.match(/^(.*)\/(sort-)(asc|desc)-?(selected|)\.(png|gif)/i);
	var dir = res[3];

	// check if the orderby field is selected
	if (res[4] == 'selected') {
		// unselect this field
		// and remove it from the order-by-string
		image.src = res[1] + "/" + res[2] + res[3] + "." + res[5];
		addOrderByItem(field, "");
	}
	else {
		// select the current field
		// unselect the other (asc|desc) image
		image.src = res[1] + "/" + res[2] + res[3] + "-selected." + res[5];
		var inverse = 'asc';
		if (res[3] == 'asc') {
			inverse = 'desc';
		}
		var inversesort = 'sort-'+inverse;
		var parentNode = image.parentNode;
		parentNode.getElementsByTagName('img')[inversesort].setAttribute('src', res[1] + "/" + res[2] + inverse + "." + res[5]);
		addOrderByItem(field, dir);
	}
}

/**
 * Adds an item to the above defined oderByItems-Array, which holds all the
 * items (field) including their sort-direction. the position is the position
 * used for the SQL-oderby clause.
 * 
 * Format: <field1>|<dir1>,<field2>|<dir2>,...
 */
function addOrderByItem (field, dir) {
	var inverseOrder = new Array();
	inverseOrder['asc'] = 'desc';
	inverseOrder['desc'] = 'asc';
	var found = false;
	for (var nr = 0;nr < orderByItems.length;nr++) {
		itemChunks = orderByItems[nr].split("|");
		if (itemChunks[0] == field) {
			// found field
			if (dir == "") {
				// dir is empty, so set this element to idle
				orderByItems[nr] = field + "|-";
			} 
			else {
				if (itemChunks[1] == "-") {
					itemChunks[1] = inverseOrder[dir];
				}
				orderByItems[nr] = field + "|" + inverseOrder[itemChunks[1]];
			}
			found = true;
		}
	}
	
	if (!found) {
		orderByItems.push(field + "|" + dir);
	}
}


/**
 * Finalizes an order request
 * New since [jug, 21.09.2006]
 */
function finalizeOrder (sourceElement) {
	var chunks = document.location.pathname.match(/([a-z0-9\/_]*\.php)/i);
	var queryString = document.location.search;
	var getParams = queryString.substring(1).split("&");
	var cleanedParams = Array();
	for (var p = 0;p < getParams.length;p++) {
		if (getParams[p].search(/^orderby/) == -1) {
			cleanedParams.push(getParams[p]);
		}
	}
	
	var baseUrl = chunks[1] + "?";
	
	var thElement = sourceElement;
	var image = sourceElement;
	while (thElement.nodeName != "TH") {
		thElement = thElement.parentNode;
	}
	
	
	if (sourceElement.name == "sort-asc" && sourceElement.style.display != "") {
		sourceElement = sourceElement.parentNode.getElementsByTagName('img')["sort-desc"];
	}
	else {
		sourceElement = sourceElement.parentNode.getElementsByTagName('img')["sort-asc"];
	}
	
	var field = thElement.id;
	
	addOrder(sourceElement);
	
	var string = "";
	for (var j = 0;j < orderByItems.length;j++) {
		chunks = orderByItems[j].split("|");
		if (chunks[1] != '-') {
			// only use non-empty = not a - fields
			string += ((string == "") ? "" : ",") + orderByItems[j];
		}
	}
	if (string.length > 0) {
		cleanedParams.push("orderby="+string);
	}
	
	baseUrl = baseUrl + cleanedParams.join("&");
	baseUrl = baseUrl.replace("specialSort=1","specialSort=0");
	
	// reload page with orderby=... as get parameter
	window.location.href = baseUrl;
}

/**
 * selects the orders for the selected columns
 * New since [jug, 21.09.2006]
 */
function selectOrder (selectedColumns) {
	var bereich = document.getElementById("results");
	var ths = bereich.getElementsByTagName("th");
	
	var columns = selectedColumns.split(",");
	
	for (var h = 0;h < ths.length;h++) {
		for (var c = 0;c < columns.length;c++) {
			var chunks = columns[c].split("|");
			if (ths[h].id == chunks[0]) {
				markColumnOrder(ths[h], chunks[1], c+1);
			}
		}
	}
}

/**
 * New since [jug, 21.09.2006]
 */
function markColumnOrder (parentElement, dir, position) {
	if (dir) {
		var image = parentElement.getElementsByTagName("img")["sort-" + dir];
		var otherDir = (dir == "asc") ? "desc" : "asc";
		var otherImage = parentElement.getElementsByTagName("img")["sort-" + otherDir];
		var res = image.src.match(/^(.*)\/(sort-)(asc|desc)-?(selected|)\.(png|gif)/i);
		image.src = res[1] + "/" + res[2] + res[3] + "-selected." + res[5];
		otherImage.style.display = "none";
		image.style.display = "inline";
	}
}

function resetOtherDropdowns (dropdown) {
	for (var i = 0;i < dropdown.form.elements.length;i++) {
		if (dropdown.form.elements[i].type.match(/^select/i) && dropdown.form.elements[i].name != dropdown.name) {
			dropdown.form.elements[i].options.selectedIndex = 0;
		}
	}
}

function ClearForm() {
  document.query.query.value= "";
}


