var ie6 = false;
var ie = false;
var quirks = false;

if (navigator.appVersion.indexOf("MSIE 6") != -1) {
	ie6 = true;
}

if (navigator.appVersion.indexOf("MSIE") != -1) {
	ie = true;
	
	if (document.compatMode == "BackCompat") {
		quirks = true;
	}
}

//dropdown scripts
function hilight(elmt,status) {
	if (status) {
		elmt.parentNode.parentNode.getElementsByTagName('div')[0].getElementsByTagName('a')[2].className = 'dd_right_hi';
	}
	else {
		elmt.parentNode.parentNode.getElementsByTagName('div')[0].getElementsByTagName('a')[2].className = 'dd_right';
	}
}

function hoverMe(elmt,status) {
	if (status) {
		elmt.className = 'a_hover';
	}
	else {
		elmt.className = '';
	}
}

var currentDropdown = null;

function showDropdown(elmt,status) {
	if (elmt.parentNode.parentNode.getElementsByTagName('div')[1].className == 'dropdownContent_hi') {
				
		elmt.parentNode.parentNode.getElementsByTagName('div')[1].className = 'dropdownContent';
		if (status) {
			elmt.parentNode.parentNode.getElementsByTagName('a')[1].innerHTML = elmt.innerHTML;
			//elmt.parentNode.parentNode.getElementsByTagName('input')[0].value = elmt.name.slice(elmt.name.indexOf('value:')+6,elmt.name.length);
			//alert(elmt.getAttribute('data-ray-filter'));
			//.isotope({ filter: elmt.getAttribute('data-ray-filter') });
			$('.grid').isotope({
     			 filter: elmt.getAttribute('data-ray-filter')
    		});
			
			//Scroll to top nach auswählen
			$('html,body').animate({scrollTop:0},400,function(){});
			//window.scrollTo(0,0);
			
			// aktive items verkleinern
			$('.grid .item.active').each( function(){
      			deactivate($(this));
    		});			
			
			return false;
		}
	}
	else {
		
		// Hint Grafik ausblenden
		$('#hintImg').fadeOut(100);
			
		elmt.parentNode.parentNode.style.position = 'relative';
		_tmp_offSetTop =  elmt.parentNode.parentNode.offsetTop;
		if (ie && quirks) {
			_tmp_offSetTop =  elmt.parentNode.parentNode.offsetTop - 2;
		}
		_tmp_offSetLeft = elmt.parentNode.parentNode.offsetLeft;
		elmt.parentNode.parentNode.style.position = '';
		elmt.parentNode.parentNode.getElementsByTagName('div')[1].style.top = _tmp_offSetTop + elmt.parentNode.parentNode.offsetHeight + 4 + 'px';
		elmt.parentNode.parentNode.getElementsByTagName('div')[1].style.left = _tmp_offSetLeft + 'px';
				
		if (elmt != currentDropdown && currentDropdown) {
			currentDropdown.getElementsByTagName('div')[1].className = 'dropdownContent';
		}
		
		currentDropdown = elmt.parentNode.parentNode;
		
		elmt.parentNode.parentNode.getElementsByTagName('div')[1].className = 'dropdownContent_hi';
		
		b = elmt.parentNode.parentNode.getElementsByTagName('div')[1].offsetWidth;
		
		for (i=0;i<elmt.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('a').length;i++) {
			
			//berechne padding der links
			if(window.getComputedStyle) { 
	           	var LinkLeftPad = window.getComputedStyle(elmt.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('a')[i],'').getPropertyValue('paddingLeft'); 
				var LinkRightPad = window.getComputedStyle(elmt.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('a')[i],'').getPropertyValue('paddingRight'); 
				if (ie && quirks) {
					var LinkLeftPad = 0; 
					var LinkRightPad = 0; 
				}
			}
			else {
				var LinkLeftPad = elmt.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('a')[i].currentStyle.paddingLeft;
				var LinkRightPad = elmt.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('a')[i].currentStyle.paddingRight;
				if (ie && quirks) {
					var LinkLeftPad = 0; 
					var LinkRightPad = 0; 
				}
			}
			
			//elmt.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('a')[i].style.width = Number(b) - parseInt(LinkLeftPad) - parseInt(LinkRightPad) - Number(2) + 'px';	
		}
	}
}

document.onclick = handler;
function handler (e) {
	e = e || window.event;
 	var target = e.target || e.srcElement
	
	if (target.parentNode.parentNode != currentDropdown && currentDropdown) {
		currentDropdown.getElementsByTagName('div')[1].className = 'dropdownContent';
	}
}

function initDropdowns() {
	for (i=0;i<document.body.getElementsByTagName('select').length;i++) {
		
		var currentSelect = document.body.getElementsByTagName('select')[i];
		
		//breite system dropdown ermitteln
		if(window.getComputedStyle) { 
           var customDropDownWidth = currentSelect.offsetWidth;
		}
		else {
			var customDropDownWidth = (parseInt(currentSelect.currentStyle.width) - 4) + 'px';
			//4 sind ie default margins und border (muss ggf. noch mal angepasst werden)
		}
		
		//optionaler code für url onchange öffnen
		//ermitteln ob target _blank oder _parent ist / default ist self (bei keiner übergabe)
		//var _target = currentSelect.getAttribute('onchange')+'';
		
		//my_target = '';
		//if (_target.indexOf('_blank') != -1) {
			//my_target = '_blank';
		//}
		//if (_target.indexOf('_parent') != -1) {
			//my_target = '_parent';
		//}
		//optionaler code für url onchange öffnen
		
		//attribute system dropdown ermitteln
		var selectedOptionText = currentSelect.getElementsByTagName('option')[0].innerHTML;
		var selectedOptionValue = currentSelect.getElementsByTagName('option')[0].value;
		var selectedOptionName = currentSelect.name;
		var selectedOptionId = currentSelect.id;
		
		//array mit value, text, optional selected values bilden
		selectOptions = new Array();
		seperator = '|';
		
		for (j=0;j<currentSelect.getElementsByTagName('option').length;j++) {
			currentOption = currentSelect.getElementsByTagName('option')[j];
			
			if (currentOption.selected == true) {
				selectedOptionText = currentOption.innerHTML;
				selectedOptionValue = currentOption.value;
			}
				
			selectOptions.push(currentOption.getAttribute('data-ray-filter')+seperator+currentOption.innerHTML);
		}	
		
		//erzeuge linkliste aus option tags
		html = '';
		
		for (k=0;k<selectOptions.length;k++) {
			_temp = selectOptions[k].split(seperator)
			
			//optionaler code für url onchange öffnen
			//if(currentSelect.getAttribute('onchange') == null) {
			// 	selectLink = '#';
			//}
			//else {
			//	selectLink = _temp[0];
			//}
			//
			//html += '<a name="value:'+_temp[0]+'" href="'+selectLink+'" onmouseover="hoverMe(this,true)" target="'+my_target+'" onmouseout="hoverMe(this,false)" onclick="showDropdown(this,true)">'+_temp[1]+'</a>';
			//optionaler code für url onchange öffnen
			
			html += '<a href="#filter='+_temp[0]+'" data-ray-filter="'+_temp[0]+'" onmouseover="hoverMe(this,true)" onmouseout="hoverMe(this,false)" onclick="showDropdown(this,true)">'+_temp[1]+'</a>';
		}
		
		//erzeuge custom dropdown menue
		var objBody = document.getElementsByTagName('body').item(0);
		
		var objDropdownContainer = document.createElement('div');
		objDropdownContainer.className = 'dropdownContainer';
		currentSelect.parentNode.insertBefore(objDropdownContainer, currentSelect);
		
		var objDropdown = document.createElement('div');
		objDropdown.className = 'dropdown';
		objDropdownContainer.appendChild(objDropdown);
		
		var objHiddenField = document.createElement('input');
		objHiddenField.setAttribute('type','hidden');
		objHiddenField.setAttribute('name',selectedOptionName);
		objHiddenField.setAttribute('id',selectedOptionId);
		objHiddenField.setAttribute('value',selectedOptionValue);
		objDropdown.appendChild(objHiddenField);
		
		var objDiv = document.createElement("div");
		objDropdown.appendChild(objDiv);
		
		var objSelectLeft = document.createElement('a');
		objSelectLeft.setAttribute('href','javascript://');
		objSelectLeft.className = 'dd_left';
		objSelectLeft.onmouseover = function(e) {  
   			hilight(this,true); 
		}; 
		objSelectLeft.onmouseout = function(e) {  
   			hilight(this,false); 
		};
		objSelectLeft.onclick = function(e) {  
   			showDropdown(this,false); 
		}; 
		objSelectLeft.onfocus = function(e) {  
   			this.blur();
		}; 
		objDiv.appendChild(objSelectLeft);
		
		var objSelectMiddle = document.createElement('a');
		objSelectMiddle.setAttribute('href','javascript://');
		objSelectMiddle.className = 'dd_middle';
		objSelectMiddle.onmouseover = function(e) {  
   			hilight(this,true); 
		}; 
		objSelectMiddle.onmouseout = function(e) {  
   			hilight(this,false); 
		}; 
		objSelectMiddle.onclick = function(e) {  
   			showDropdown(this,false); 
		}; 
		objSelectMiddle.onfocus = function(e) {  
   			this.blur();
		}; 
		objSelectMiddle.innerHTML = selectedOptionText;
		objDiv.appendChild(objSelectMiddle);
		
		var objSelectRight = document.createElement('a');
		objSelectRight.setAttribute('href','javascript://');
		objSelectRight.className = 'dd_right';
		objSelectRight.onclick = function(e) {  
   			showDropdown(this,false); 
		}; 
		objSelectRight.onfocus = function(e) {  
   			this.blur();
		}; 
		objDiv.appendChild(objSelectRight);
		
		var objDropdownContent = document.createElement('div');
		objDropdownContent.className = 'dropdownContent';
		objDropdownContent.innerHTML = html;
		objDropdown.appendChild(objDropdownContent);
		
		var objDropdownContentStart = document.createElement('div');
		objDropdownContentStart.className = 'dropdownContentStart';
		objDropdownContent.appendChild(objDropdownContentStart);
		
		var objDropdownContentEnd = document.createElement('div');
		objDropdownContentEnd.className = 'dropdownContentEnd';
		objDropdownContent.appendChild(objDropdownContentEnd);
		
		var clearFix = document.createElement('br');
		clearFix.className = 'clear';
		objDropdownContainer.appendChild(clearFix);
		
		//korrekte breite f&uuml;r custom dropdown berechnen und setzen
		if(window.getComputedStyle) { 
           	var	leftWidth = window.getComputedStyle(objSelectLeft,'').getPropertyValue('width'); 
			var rightWidth = window.getComputedStyle(objSelectRight,'').getPropertyValue('width'); 
			if (ie && quirks) {
				var middlePadding = 0; 
				var middlePaddingLeft = 0;
			}
			else {
				var middlePadding = window.getComputedStyle(objSelectMiddle,'').getPropertyValue('padding-right'); 
				var middlePaddingLeft = window.getComputedStyle(objSelectMiddle,'').getPropertyValue('padding-left'); 
			}
			
			var middleWidth = parseInt(customDropDownWidth)-(parseInt(leftWidth)+parseInt(rightWidth)+parseInt(middlePadding)+parseInt(middlePaddingLeft));
			var dropdownWidth =  parseInt(customDropDownWidth);
			if (ie && quirks) {
				var dropdownContentWidth = parseInt(customDropDownWidth);
			}
			else {
				var dropdownContentWidth = parseInt(customDropDownWidth)-2;
			}
		}
		else {
			var leftWidth = objSelectLeft.currentStyle.width;
			var rightWidth = objSelectRight.currentStyle.width;
			if (ie && quirks) {
				var middlePadding = 0; 
				var middlePaddingLeft = 0;
			}
			else {
				var middlePadding = objSelectMiddle.currentStyle.paddingRight;
				var middlePaddingLeft =  objSelectMiddle.currentStyle.paddingLeft;
			}
			
			var middleWidth = parseInt(customDropDownWidth)-(parseInt(leftWidth)+parseInt(rightWidth)+parseInt(middlePadding)+parseInt(middlePaddingLeft));
			var dropdownWidth =  parseInt(customDropDownWidth);
			if (ie && quirks) {
				var dropdownContentWidth = parseInt(customDropDownWidth);
			}
			else {
				var dropdownContentWidth = parseInt(customDropDownWidth)-2;
			}
		}
		
		//objSelectMiddle.style.width = middleWidth+'px';		
		//objDropdown.style.width = dropdownWidth+'px';		
		//objDropdownContent.style.minWidth = dropdownContentWidth+'px';		
		//objDropdownContent.style.width = dropdownContentWidth+'px';		
	}
	
	var currentSelect = new Array()
	for (i=0;i<document.body.getElementsByTagName('select').length;i++) {
		currentSelect.push(document.body.getElementsByTagName('select')[i])
	}
	
	for (i=0;i<currentSelect.length;i++) {
		currentSelect[i].parentNode.removeChild(currentSelect[i]);
	}
}

function changeUrl(selectObj,target) {
	if (target=='') {
		location.href=selectObj.options[selectObj.selectedIndex].value;
	}
	else {
		window.open(selectObj.options[selectObj.selectedIndex].value,'neu');
	}
}


 function deactivate( el )
  {
    el.find('.active_content').hide();
    el.find('.preview').show();
          
    el.removeClass('active');
    el.animate({ 
      width:   '240px',
      height:   '240px',
      easing: easing
    }, duration, function(){ 
      
      //closed callback
      $('.grid').isotope('reLayout'); 
      el.addClass('thumb');
      el.find('.active_content .canvas .slide').cycle('destroy');
            
    }
    );
  }
