/*
+----------------------------------------------------------------------+
| Advanced Filter Mod                                                  |
+----------------------------------------------------------------------+
| Copyright (c) 2009 BCSE LLC. dba BCS Engineering                     |
+----------------------------------------------------------------------+
|                                                                      |
| Advanced Filter Mod is subject for version 2.0 of the BCSE           |
| proprietary license. That license file can be found bundled with     |
| this package in the file BCSE_LICENSE. A copy of this license can    |
| also be found at                                                     |
| http://www.bcsengineering.com/license/BCSE_LICENSE_2.0.txt           |
|                                                                      |
+----------------------------------------------------------------------+
*/

function apply_filter(){
	if(!document.getElementById('customer_filter'))
		return;

	var wrapper = document.getElementById('customer_filter');

	var selectObjs = wrapper.getElementsByTagName('select');

	if(selectObjs.length < 1)
		return;

	var filter_query = '';
	for(var x = 0; x < selectObjs.length; x++){
		var ffield = encodeURIComponent(selectObjs[x].getAttribute('name'));
		var fvalue = encodeURIComponent(selectObjs[x].value);
		if(target_content_id && document.getElementById(target_content_id)){
			ffield = escape(ffield);
			fvalue = escape(fvalue);
		}
		filter_query += (filter_query != '' ? '&' : '') + ffield + '=' + fvalue;
	}

	if((!target_content_id || !document.getElementById(target_content_id)) && document.forms['filter_form']){
		document.forms['filter_form'].elements['filter_query'].value = filter_query;
		document.forms['filter_form'].elements['mode'].value = 'filter_update';

		document.forms['filter_form'].submit();
	}else{
		ajax_filter_refresh(post_action,filter_query);
	}
}

function ajax_filter_refresh(post_url,query){

	if(!target_content_id || !document.getElementById(target_content_id))
		return;

	contentObj = document.getElementById(target_content_id);

	var xmlHttp;
	xmlHttp=GetXmlHttpObject();
	if (xmlHttp==null){
		return;
	}

	set_ajax_loading(contentObj);

	xmlHttp.onreadystatechange=function(){
		if (xmlHttp.readyState==4){
			contentObj.style.height = '';
			contentObj.nodeValue = '';
			contentObj.innerHTML = xmlHttp.responseText;
		}
	}

	post_str = 'filter_query=' + encodeURIComponent(decodeURIComponent(query)) + '&mode=filter_update&from_ajax=Y';

	xmlHttp.open("POST",post_url,true);
	xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	xmlHttp.setRequestHeader("Content-length", post_str.length);
	xmlHttp.setRequestHeader("Connection", "close");
	xmlHttp.send(post_str);
}

function set_ajax_loading(obj){

	obj.style.position = 'relative';
	obj.style.height = 'auto';

	var newdiv = document.createElement('div');
	newdiv.className = 'ajax_overlay';

	var newimg = document.createElement('img');
	newimg.src = ajax_image.src;

	newdiv.appendChild(newimg);

	obj.appendChild(newdiv);
}

function create_body_id(){
	if(!document.getElementsByTagName)
		return;

	var contentObjs = document.getElementsByTagName(target_parent_tag);

	if(contentObjs.length < 1)
		return;

	for(var x=0;x < contentObjs.length; x++)
		if(contentObjs[x].className.toLowerCase() == target_parent){

			var contentObjs2 = document.getElementsByTagName(target_tag);

			if(contentObjs2.length < 1)
				return;

			for(var y=0;y < contentObjs2.length; y++)
				if(contentObjs2[y].className.toLowerCase() == target_class){
					contentObjs2[y].setAttribute('id',target_content_id);
					break;
				}
		}
}

function fix_filter_width(){
	if(!document.getElementById('customer_filter') || !document.getElementById('customer_filter').childNodes)
		return;

	var filter_width = 25;
	for(var x = 0; x < document.getElementById('customer_filter').childNodes.length; x++)
		filter_width = filter_width + document.getElementById('customer_filter').childNodes[x].offsetWidth;

	document.getElementById('customer_filter').style.width = filter_width + 'px';
}

function GetXmlHttpObject(){
	var xmlHttp
	try
	{
	// Firefox, Opera 8.0+, Safari
	xmlHttp=new XMLHttpRequest();
	}
	catch (e)
	{
	// Internet Explorer
		try
		{
		xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (e)
		{
		xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
		}
	}
	return xmlHttp;
}

function addEventToElement(target, eventType, func, useCapture){
	var result = false;

	if (target.addEventListener){
		target.addEventListener(eventType, func, useCapture);
		result = true;
	}else if (target.attachEvent){
		result = target.attachEvent("on" + eventType, func);
	}else{
		alert("Handler could not be attached");
	}

	return result;
}

var isIE/*@cc_on=1@*/;
var class_attr = 'class' + (isIE ? 'Name' : '');

var target_tag = 'div';
var target_class = 'content';
var target_parent = 'dialog';
var target_parent_tag = 'div';
var target_content_id = 'filter_main_content';

if(filter_ajax == 'Y'){
	ajax_image = new Image();
	ajax_image.src = skin_dir + '/modules/Advanced_Filter/ajax-loader.gif';

	addEventToElement(window,'load',create_body_id,false);
}

if(isIE)
	addEventToElement(window,'load',fix_filter_width,false);
