// get the server url
var SERVER_URL = 'http://www.visplay.com/architects';
var CURRENT_LANGUAGE = 'de';

var oDefaultValues = new Object();

var Rules = { 
  	rules: "1.0",
   
	'a.popup:click': function(element, event) {
		var sHref = getHref(element);
		window.open(sHref, "popup", 'height=500,width=550,toolbar=no,status=no,resizable=yes,scrollbars=yes');
		Event.stop(event);
	},
	
	'a.print:click': function(element, event) {
		window.print();
		Event.stop(event);
	},
		
	'a.dcs:click' : function(element, event) {
		
		var title = element.getAttribute('title') || '';
		var href = element.getAttribute('href');
		
		//alert("dcsMultiTrack(): " + href + ", " + title);
		
		if( href && dcsMultiTrack) {
			dcsMultiTrack('DCS.dcsuri', href, 'WT.ti', title);
		}
	},
	
	'a.back:click': function(element, event) {
		history.back();		
		Event.stop(event);
	},

	'a.delete:click': function(element, event) {
		if (!confirmDelete()) {
			Event.stop(event);
		}
	},
		
	'.hideonloaded:loaded' : function(element, event) {
		element.hide();
	},
	
	'a.showhidehreftarget:click' : function(element, event) {
		var oMyElement = element;

		if(element.tagName.toLowerCase() == 'img' && element.parentNode.tagName.toLowerCase() == 'a'){
			oMyElement = element.parentNode;
		}

		var href = oMyElement.getAttribute('href');
		var iContentId = href.match(/#(\w.+)/)[1];
		var oContentElement = $(iContentId);
		if(oContentElement.style.display == 'none') {
			oContentElement.style.display = 'block';
		} else {
			oContentElement.style.display = 'none';
		}
		Event.stop(event);
	},
	
	'input.replace-value:focus' : function(element, event) {

		if (!oDefaultValues[element.id]) {
		
			oDefaultValues[element.id] = element.value;
		}
		if (element.value == oDefaultValues[element.id]) {
		
			element.value = "";
		}
	},

	'input.replace-value:blur' : function(element, event) {

		if (element.value == "") {
		
			element.value = oDefaultValues[element.id];
		}
	},
	
	// product filter visplay
	'form#product_finder_visplay select#appending_load:change' : function(element, event) {
		updateFilter('visplay', 'product', 'submit_visplay', 'reset_visplay');
	},
	'form#product_finder_visplay select#anwendung:change' : function(element, event) {
		updateFilter('visplay', 'product', 'submit_visplay', 'reset_visplay');
	},
	'form#product_finder_visplay select#einsatz:change' : function(element, event) {
		updateFilter('visplay', 'product', 'submit_visplay', 'reset_visplay');
	},
	'form#product_finder_visplay select#elektrifiziert:change' : function(element, event) {
		updateFilter('visplay', 'product', 'submit_visplay', 'reset_visplay');
	},
	'form#product_finder_visplay button[name="reset_visplay"]:click' : function(element, event) {
		$$('#product_finder_visplay select').each(function(element) {
			element.selectedIndex = 0;
		});
		updateFilter('visplay', 'product', 'submit_visplay', 'reset_visplay');
		Event.stop(event);
	},

	// product filter ansorg
	'form#product_finder_ansorg select#fixing_style:change' : function(element, event) {
		updateFilter('ansorg', 'product', 'submit_ansorg', 'reset_ansorg');
	},
	'form#product_finder_ansorg select#light_function:change' : function(element, event) {
		updateFilter('ansorg', 'product', 'submit_ansorg', 'reset_ansorg');
	},
	'form#product_finder_ansorg select#light_technic:change' : function(element, event) {
		updateFilter('ansorg', 'product', 'submit_ansorg', 'reset_ansorg');
	},
	'form#product_finder_ansorg select#program_id:change' : function(element, event) {
		updateFilter('ansorg', 'product', 'submit_ansorg', 'reset_ansorg');
	},
	'form#product_finder_ansorg select#einbau_durchmesser:change' : function(element, event) {
		updateFilter('ansorg', 'product', 'submit_ansorg', 'reset_ansorg');
	},
	'form#product_finder_ansorg button[name="reset_ansorg"]:click' : function(element, event) {
		$$('#product_finder_ansorg select').each(function(element) {
			element.selectedIndex = 0;
		});
		updateFilter('ansorg', 'product', 'submit_ansorg', 'reset_ansorg');
		Event.stop(event);
	},

	// project filter visplay
	'form#reference_finder_visplay select#market_segment:change' : function(element, event) {
		updateFilter('visplay', 'project', 'submitSearch', 'reset_visplay');
	},
	'form#reference_finder_visplay select#program:change' : function(element, event) {
		updateFilter('visplay', 'project', 'submitSearch', 'reset_visplay');
	},
	'form#reference_finder_visplay select#country:change' : function(element, event) {
		updateFilter('visplay', 'project', 'submitSearch', 'reset_visplay');
	},
	'form#reference_finder_visplay button[name="reset_visplay"]:click' : function(element, event) {
		$$('#reference_finder_visplay select').each(function(element) {
			element.selectedIndex = 0;
		});
		updateFilter('visplay', 'project', 'submitSearch', 'reset_visplay');
		Event.stop(event);
	},

	// project filter ansorg
	'form#reference_finder_ansorg select#market_segment:change' : function(element, event) {
		updateFilter('ansorg', 'project', 'submitSearch', 'reset_ansorg');
	},
	'form#reference_finder_ansorg select#system:change' : function(element, event) {
		updateFilter('ansorg', 'project', 'submitSearch', 'reset_ansorg');
	},
	'form#reference_finder_ansorg select#country:change' : function(element, event) {
		updateFilter('ansorg', 'project', 'submitSearch', 'reset_ansorg');
	},
	'form#reference_finder_ansorg button[name="reset_ansorg"]:click' : function(element, event) {
		$$('#reference_finder_ansorg select').each(function(element) {
			element.selectedIndex = 0;
		});
		updateFilter('ansorg', 'project', 'submitSearch', 'reset_ansorg');
		Event.stop(event);
	}
};



// Fallback / Debug
if(!dcsMultiTrack) {
	var dcsMultiTrack = function(v1, href, v2, title) {
		//alert("dcsMultiTrack(): " + href + ", " + title);
	}
}

// Get the href of the element (recursive)
function getHref(element) {
    var sHref="";      
	while (element) {
	    if (element.tagName.toLowerCase() == 'a' && element.href) {
			sHref = element.href;
			break;
	    }
	    else {
	    	element = element.parentNode;
	    }
	}
    return sHref;
}

function confirmDelete() {
	if (!confirm("Wollen Sie den Datensatz wirklich loeschen?\r\nACHTUNG: Alle referenzierten Inhalte werden unwiderruflich entfernt!")) {
		return false;
	} else {
		return true;
	}
}

function focusFirstFormField() {

	var aoForms = $("col3").getElementsByTagName("FORM");
	if (aoForms.length == 1) {
	
		var oForm = aoForms[0];
		if (oForm) {
		
			for (var iElementCount = 0; iElementCount < oForm.elements.length; ++iElementCount) {
	
				var oCurrentElem = oForm.elements[iElementCount];
				if (((((oCurrentElem.nodeName == "INPUT") && ((oCurrentElem.type == "text") || (oCurrentElem.type == "password") || (oCurrentElem.type == "radio") || (oCurrentElem.type == "checkbox"))) || (oCurrentElem.nodeName == "TEXTAREA")) && 
					(oCurrentElem.value == "")) && oCurrentElem.nodeName != "SELECT") {
				
					oCurrentElem.focus();
					break;
				}
			}
		}
	}
}

function getTooltipImage(sFormname, sFieldname) {
	var imageId = eval("document.forms['" + sFormname + "']." + sFieldname + ".value");
	var sUrl = '';
	
	var oAjax = new Ajax.Request(
			SERVER_URL + '/' + CURRENT_LANGUAGE + '/admin-produkte-getimageurl',
			{
				method:		'get', 
				parameters:	"imageId=" + imageId,
				onSuccess:	function(transport, json) {
								var responseText = transport.responseText;
								
								if (responseText.length > 0) {
									$('toolTipImage').update('<img src="' + responseText + '" style="border: 1px solid black;" />');								
								}
							},
				onFailure:	function(transport, json) {
								
							}
			}
	);
	
	return '<div id="toolTipImage"></div>';
}

/******************************/
/* product and project filter */
/******************************/

function updateFilter(sCompany, sType, sSubmitName, sResetName) {
	
	var oSubmit = $$('button[name=' + sSubmitName + ']')[0];
	var oReset = $$('button[name=' + sResetName + ']')[0];
	
	// get waiting gif
	var oWait = $('ajax-wait');
	if (oWait) {
		oWait.show();
	} else {
		oWait = document.createElement('div');
		oWait.setAttribute('id', 'ajax-wait');
		var oImage = document.createElement('img');
		oImage.setAttribute('src','ajax-loader.gif');
		oWait.appendChild(oImage);
		oSubmit.parentNode.appendChild(oWait);
	}
	
	oSubmit.hide();
	oReset.hide();
	
	// get waiting div again for IE
	oWait = $('ajax-wait');
	
	// get parameters
	var sParameters = "company=" + sCompany + "&type=" + sType;
	// product search
	if ($('program_id') && $F('program_id') != "") {
		sParameters += "&program_id=" + $F('program_id');
	}
	if ($('elektrifiziert') && $F('elektrifiziert') != "") {
		sParameters += "&elektrifiziert=" + $F('elektrifiziert');
	}
	if ($('einsatz') && $F('einsatz') != "") {
		sParameters += "&einsatz=" + $F('einsatz');
	}
	if ($('appending_load') && $F('appending_load') != "") {
		sParameters += "&appending_load=" + $F('appending_load');
	}
	if ($('fixing_style') && $F('fixing_style') != "") {
		sParameters += "&fixing_style=" + $F('fixing_style');
	}
	if ($('light_function') && $F('light_function') != "") {
		sParameters += "&light_function=" + $F('light_function');
	}
	if ($('einbau_durchmesser') && $F('einbau_durchmesser') != "") {
		sParameters += "&einbau_durchmesser=" + $F('einbau_durchmesser');
	}
	if ($('light_technic') && $F('light_technic') != "") {
		sParameters += "&light_technic=" + $F('light_technic');
	}
	if ($('anwendung') && $F('anwendung') != "") {
		sParameters += "&anwendung=" + $F('anwendung');
	}
	// project search
	if ($('market_segment') && $F('market_segment') != "") {
		sParameters += "&market_segment=" + $F('market_segment');
	}
	if ($('country') && $F('country') != "") {
		sParameters += "&country=" + $F('country');
	}
	if ($('program') && $F('program') != "") {
		sParameters += "&program=" + $F('program');
	}
	if ($('system') && $F('system') != "") {
		sParameters += "&system=" + $F('system');
	}
	
	
	// call ajax backend
	var oAjax = new Ajax.Request(
			SERVER_URL + '/' + CURRENT_LANGUAGE + '/ajax-controller-filter-product-project',
			{
				method:		'get',
				parameters:	sParameters,
				evalJSON:	true,
				onSuccess:	function(transport) {
								var responseText = transport.responseText;
								if (responseText.length > 0 && responseText != "nok") {
									var aDropdowns = eval( "(" + responseText + ")" );
									for (var iDropdowns = 0; iDropdowns < aDropdowns.length; iDropdowns++) {
										updateDropdownActivation(aDropdowns[iDropdowns].field, aDropdowns[iDropdowns].disabled);
									}
								} else {
									alert('Fehler beim Suchen der Daten!');
								}
							},
				onFailure:	function(transport, json) {
								alert('Fehler beim Suchen der Daten!');
							},
				onComplete:	function(transport, json) {
								oSubmit.show();
								oReset.show();
								oWait.hide();
							}
			}
	);
	
}

function updateDropdownActivation(sField, aDisabled) {
	var oField = $(sField);
	if (oField) {
		var aOptions = oField.options;
		for (var iOptions = 0; iOptions < aOptions.length; iOptions++) {
			var bDisabled = false;
			for (var iDisabled = 0; iDisabled < aDisabled.length; iDisabled++) {
				if (aDisabled[iDisabled] == aOptions[iOptions].value) {
					bDisabled = true;
				}
			}
			if (bDisabled == true) {
				aOptions[iOptions].disabled = true;
			} else {
				aOptions[iOptions].disabled = false;
			}
		}
	
	
	}


}

/*******************/
/* cookie handling */
/*******************/

function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function eraseCookie(name) {
	createCookie(name,"",-1);
}

var bSearchFilterOpen = false;
if ($("search_filter_link") && $("search_filter_link").className == "filter_open") {

	bSearchFilterOpen = true;
}

function toggleSearchFilter() {

	var sUrl = "";
	var sQueryString = "";
	var aQueryString = new Array();
	if ($("search_filter_link")) {
	
		if ($("search_filter_link").className != "filter_open") {
		
			$("search_filter_link").className = "filter_open";
			$("search_filter_link_anchor").className = "open";
			$("search_filter").show();
			if ($("type")) {
			
				document.getElementById("type").value = "advanced";
			}
			bSearchFilterOpen = true;
		}
		else {
		
			if ($("filter_options")) {
			
				var oItem = $("filter_options").firstChild;
			
				do {
				
					var oInput = oItem.firstChild;
					if(oInput) {
					
						oInput.checked = false;
					}
					oItem = oItem.nextSibling;
				}
				while (oItem);
			}
			$("search_filter_link").className = "";
			$("search_filter_link_anchor").className = "";
			$("search_filter").hide();
			if ($("type")) {
			
				$("type").value = "";
			}
			bSearchFilterOpen = false;
			document.formGss2.submit();
		}
	}
	return false;
}
