google.load("language", "1");

/**
 * @name		 : translate()
 * @description  : translate
 */
 
function translate(from, to, text) {
	
	var langArray = ['en', 'fr', 'nl', 'de', 'it', 'pl', 'es', 'sv', 'tr'];
	var present = false; // if the language is present in our list
	
	for(i = 0; i < langArray.length; i++) {
		if(langArray[i] == to) {
			present = true;	
		}
	}
	
	if(!present) {
		return;	
	}
	
	if(to == 'en') {
		return;	
	}	
	
	$$('h1, h2, h3, li, p, label, span.more').each(
		function(e) {
			google.language.translate(e.innerHTML, from, to,
				function(result) {
					if (result.translation) {
						e.innerHTML = result.translation.replace("'", "&#39");
					} else {
						//console.log( 'Translate Error!\n\n' + result.error.message );
					}
				}
			);
		}
	);
}

function getQueryVariable(variable) {
  var query = window.location.search.substring(1);
  var vars = query.split("&");
  for (var i=0;i<vars.length;i++) {
    var pair = vars[i].split("=");
    if (pair[0] == variable) {
      return pair[1];
    }
  }
  return false;
}

if (!window.XMLHttpRequest) {  
	Event.observe(window, 'load', function() {  
		$$('ul#menu li').each( function(e) {  
			Event.observe(e, 'mouseover', function() { 
				if(Element.hasClassName(e, 'hasChildren')) {
					Element.addClassName(e, 'has-children-over');
				} else {
					Element.addClassName(e, 'over');  
				}
			});  
			Event.observe(e, 'mouseout', function() {  
				if(Element.hasClassName(e, 'has-children-over')) {
					Element.removeClassName(e, 'has-children-over');  
				} else {
					Element.removeClassName(e, 'over');  
				}
			});  
		});  
	});
}

document.observe("dom:loaded", function() {
	if(lang = getQueryVariable('lang')) {
		translate('en', lang);	
	}
	$$('div#articles div.article').each(function(e) {
		Event.observe(e,'click',function() {
			window.location.href = (window.location.href + '&container_id=' + e.identify());
		});
	});
	
	$$('div#linkPanels ul li').each(function(e) {
		if(e.identify().indexOf('anonymous_element') == "-1") {
			Event.observe(e,'click',function() {
				window.location.href = (e.identify());
			});
		}
	});
	
	//console.log('dom loaded');
	
	Event.observe('currentLang','click',function() {
		//console.log('bs');
		if($('languageList').getStyle('display') == 'block') {
			$('languageList').setStyle({'display':'none'});
		} else {
			$('languageList').setStyle({'display':'block'});
		}
	});
	
	$$('dl#languageList dt').each(function(e) {
		Event.observe(e,'click',function() {
			 var from = e.up(1).down(0).getAttribute('rel');
			 var to = e.down(0).getAttribute('rel');
			
			var toHtml = e.down(0).innerHTML;
			
			toHtml = "<p>" + toHtml + "</p>";
			
			e.up(1).down(0).setAttribute('rel', to);
			
			
			var url = window.location.href;
			var langAtt = "?lang=" + to;
			if(url.indexOf('?') != -1) {
				if(getQueryVariable('lang')) {
					var lang = getQueryVariable('lang');
					var langStr = "lang=" + lang;
					window.location.href =  url.replace(langStr, 'lang=' + to);
				} else {
					window.location.href = url + "&lang=" + to;
				}
			} else {
				window.location.href = url + langAtt;
			}
			$$('a').each(function(aEl) {
				newHref = aEl.getAttribute('href').replace('lang=en', 'lang=' + to);
				aEl.setAttribute('href', newHref);
			});
		 });
		$('languageList').setStyle({'display': 'none'});
	});
	
	$$('li.email').each(function(e) {
		Event.observe(e, 'click', function() {
			var element = e.childElements(0);
			document.location.href = e.firstChild.readAttribute('href');
		});
	});
	
	$$('li.send-to').each(function(e) {
		Event.observe(e, 'click', function() {
			var element = e.childElements(0);
			document.location.href = e.firstChild.readAttribute('href');
		});
	});
	
	$$('li.linked-in').each(function(e) {
		Event.observe(e, 'click', function() {
			var element = e.childElements(0);
			if(e.firstChild.readAttribute('target') == '_blank') {
				window.open(e.firstChild.readAttribute('href'));
			} else {
				document.location.href = e.firstChild.readAttribute('href');
			}
		});
	});
	
	$$('input').each(function(e) {
		if(e.hasClassName('required')) {
			var prevLabel = e.previousSiblings();
			prevLabel[0].update(prevLabel[0].innerHTML + "<span class=\"required\">*</span>");
//			$(label).addClassName('required');						  
		}
	});
	
});