var TextReplace = Class.create();

TextReplace.prototype = {

	initialize: function(navElement) {
    
      	this.mainnav = $('mainnav');
      	this.subnav = this.mainnav.down('ul');
        this.adresse = $('adresse');
        this.ajaxurl="assets/site/";
        this.mainnavarr=new Array();
        this.subnavarr=new Array();
        this.referenznavarr=new Array();
        
        this.listen();
    },
    /*replaceMainnav: function() {
    	
    	var i=0;
        var mainnavList = this.mainnav;
        mainnavList.select('.group').each(function(item) {
            
            var linkTag = item.down('a');
			var linkText = linkTag.getAttribute('title').toUpperCase();
            var fontnorm="Gotham-Light.ttf";
            var fontaktiv="Gotham-Bold.ttf";
            var fontsize=16;
            var colornorm='black';
            var colorhover='darkblue';
            var imgname = this.cleanText(linkText);
            var imgheight=25;
        //    var linkClass = linkTag.getAttribute('class');//not working in IE7
        	var linkClass="";
        	if(linkTag.hasAttribute('class')){
        		linkClass="aktiv";
        	}
            var emailNode;
             var shift=0;
          
          
          	this.checkImgWithHover(linkText, fontnorm, fontaktiv, fontsize, colornorm, colorhover, imgname, imgheight , shift, linkClass, linkTag);
           	
	 			
// 			// set mouseover on link
					linkTag.observe('mouseover', function(event) {
						this.HoverImg(linkTag, imgname, linkClass);
						
						return false;
					}.bind(this));
					linkTag.observe('mouseout', function(event) {
						this.NormImg(linkTag, imgname, linkClass);
						
						return false;
					}.bind(this));
				
           
        		  this.mainnavarr[i]= new Object();
        		  this.mainnavarr[i]['imgname']	=imgname;
         		  this.mainnavarr[i]['linkClass']		=linkClass;
         		  this.mainnavarr[i]['linkTag']		=linkTag;
          i++;
        }.bind(this));
     },
      replaceSubnav: function() {
    	
    	var i=0;
        var subnavList = this.subnav ;
        subnavList.select('li').each(function(item) {
            
            var linkTag = item.down('a');
			var linkText = linkTag.getAttribute('title').toUpperCase()+' /';
            var fontnorm="Gotham-Book.ttf";
            var fontaktiv="Gotham-Bold.ttf";
            var fontsize=10;
            var colornorm='black';
            var colorhover='darkblue';
            var imgname = this.cleanText(linkText);
            var imgheight=25;
            var linkClass = linkTag.getAttribute('class');
            var emailNode;
            var shift=3; //text wird normalerweise im img eingemittet, shift bewirkt zusaetzlichen abstand vom oberen rand
            
          
          	 this.checkImgWithHover(linkText, fontnorm, fontaktiv, fontsize, colornorm, colorhover, imgname, imgheight, shift, linkClass, linkTag );
           		
	 			
// 			// set mouseover on link
					linkTag.observe('mouseover', function(event) {
						this.HoverImg(linkTag, imgname, linkClass);
						
						return false;
					}.bind(this));
					linkTag.observe('mouseout', function(event) {
						this.NormImg(linkTag, imgname, linkClass);
						
						return false;
					}.bind(this));
				
           
        		  this.subnavarr[i]= new Object();
        		  this.subnavarr[i]['imgname']	=imgname;
         		  this.subnavarr[i]['linkClass']		=linkClass;
         		  this.subnavarr[i]['linkTag']		=linkTag;
          i++;
        }.bind(this));
     },*/
     replaceAdresse: function(){
     	var img = new Element('img', {'class':'adresse', src: this.ajaxurl+'gen_images/adresse.png', 'height':'53', 'width':'210'});
     	this.adresse.update(img);
     	var img = new Element('img', {'class':'adresse', src: this.ajaxurl+'gen_images/email.png', 'height':'25', 'width':'210'});
     	this.emailNode = new Element('a', { href: 'mailto:kontakt@internauta.ch'});
     	this.adresse.insert({ bottom: this.emailNode});
     	this.emailNode.update(img);

		/* page kontakt*/
		if ($('mailto')!=undefined) {
			var link = new Element('a', { href: 'mailto:kontakt@internauta.ch' }).update("kontakt@internauta.ch");
			$('mailto').update(link);
		}
					//set mouseover on email
					
				  /* this.emailNode.observe('mouseover', function(event) {
						var img = new Element('img', {'class':'adresse', src: this.ajaxurl+'gen_images/email_hover.png', 'height':'25', 'width':'210'});
						this.emailNode.update(img);
						return false;
					}.bind(this));
					this.emailNode.observe('mouseout', function(event) {
						var img = new Element('img', {'class':'adresse', src: this.ajaxurl+'gen_images/email.png', 'height':'25', 'width':'210'});
						this.emailNode.update(img);
						return false;
					}.bind(this));*/
     	
     },
     checkImgWithHover: function(linkText, fontnorm, fontaktiv, fontsize, colornorm, colorhover, imgname, imgheight, shift, linkClass, linkTag){
     	var url = this.ajaxurl;
     	new Ajax.Request(this.ajaxurl+'check.php',
			  {
				method:'post',
				parameters: {linkText:linkText, fontnorm:fontnorm, fontaktiv:fontaktiv, fontsize:fontsize, colornorm:colornorm, colorhover:colorhover, imgname:imgname, imgheight:imgheight, shift:shift},
				onSuccess: function(transport){
					
					if(transport.responseText==1){
						if(linkClass=='aktiv'){
							var img = new Element('img', {src:url+'/gen_images/'+ imgname+'_a.png', 'height':'25'});
						}else{
							var img = new Element('img', {src: url+'/gen_images/'+ imgname+'.png', 'height':'25'});
						}
						linkTag.update(img);
						
						
						
					}
				}
			  });
     	
     },
      checkImg: function(linkText, fontnorm, fontsize, colornorm, imgname, imgheight, item){
      	var url = this.ajaxurl;
     	new Ajax.Request(this.ajaxurl+'checkh2.php',
			  {
				method:'post',
				parameters: {linkText:linkText, fontnorm:fontnorm, fontsize:fontsize, colornorm:colornorm, imgname:imgname, imgheight:imgheight},
				onSuccess: function(transport){
					
					if(transport.responseText==1){
					 	
						var img = new Element('img', {src:url+'/gen_images/'+ imgname+'.png'});
				   		item.update(img);
					}
			
				}
			  });
			
     	
     },
     cleanText: function(linkText){
     	
     		var imgname = linkText.substr(0, 20);
       	 	imgname=imgname.replace(/[^a-zA-Z 0-9]+/g,'');
       	 	imgname=imgname.split(' ').join('');

       	 	return(imgname);
     
     },
     HoverImg: function(linkTag, imgname, linkClass){
     	var oldimg=linkTag.down('img'); 
     	if(oldimg.complete){
     		 this.HoverBack();
     		 if(linkClass!='aktiv'){
     			var img = new Element('img', {src: this.ajaxurl+'gen_images/'+ imgname+'_hover.png'});
	 			linkTag.update(img);
	 		}
	 	}
     },
      NormImg: function(linkTag, imgname, linkClass){
       var oldimg=linkTag.down('img'); 
     	if(oldimg.complete){
				 if(linkClass!='aktiv'){
						var img = new Element('img', {src: this.ajaxurl+'gen_images/'+ imgname+'.png'});
						linkTag.update(img);
					}
		}
     }, 
     listen: function(){
     		$('body').select('.mouseout').each(function(item) {
     		/* HACK: mouseover Event Listener funktioniert nicht zuverlässig ? */
     				item.observe('mouseover', function(event) {
     					
						this.HoverBack();
						
						return false;
					}.bindAsEventListener(this));
     		}.bindAsEventListener(this));
     
     },
     HoverBack: function(){
     		 /*for (var i = 0; i < this.mainnavarr.length; i++) {
     		  	
     		  		var loopimgname= this.mainnavarr[i]['imgname'];
     		  		var looplinkTag= this.mainnavarr[i]['linkTag'];
     		  		var looplinkClass=this.mainnavarr[i]['linkClass'];
     		  		var oldimg=looplinkTag.down('img'); 
     				if(oldimg!=undefined){
     				if(oldimg.complete){
						if(looplinkClass!='aktiv'){
							var img = new Element('img', {src: this.ajaxurl+'gen_images/'+ loopimgname+'.png'});
							looplinkTag.update(img);
							}
						}
					}
     		  }
     		   for (var i = 0; i < this.subnavarr.length; i++) {
     		  	
     		  		var loopimgname= this.subnavarr[i]['imgname'];
     		  		var looplinkTag= this.subnavarr[i]['linkTag'];
     		  		var looplinkClass=this.subnavarr[i]['linkClass'];
     		  		var oldimg=looplinkTag.down('img'); 
     				if(oldimg!=undefined){
     				if(oldimg.complete){
							if(looplinkClass!='aktiv'){
								var img = new Element('img', {src: this.ajaxurl+'gen_images/'+ loopimgname+'.png'});
								looplinkTag.update(img);
								}
							}
					}
     		  }*/
     		  var oldimg= this.emailNode.down('img'); 
     		  if(oldimg.complete){
     		 	 var img = new Element('img', {'class':'adresse', src: this.ajaxurl+'gen_images/email.png', 'height':'25', 'width':'210'});
			 	 this.emailNode.update(img);
			 }
     
     },
     replaceH1:function(){
     		$('body').select('h1').each(function(item) {
            
					var Tag = item;
					var linkText = item.innerHTML.toUpperCase();
					var fontnorm="Gotham-Bold.ttf";
					var fontsize=11;
					var colornorm='black';
					var imgname = this.cleanText(linkText);
					var imgheight=14;
				
				  	
				    this.checkImg(linkText, fontnorm, fontsize, colornorm, imgname, imgheight, item );
				 	
				   
     		}.bind(this));
     },
     replaceClaim: function(){
     		 var img = new Element('img', {src: this.ajaxurl+'gen_images/claim.png', 'height':'353', 'width':'753'});
			$('claim').update(img);
     
     },
     attachHover: function(list){
     
     		 	list.select('li').each(function(item) {
     		 		//if(item.hasAttribute('class')){
						var img = item.down('a').down('img');
						var linkClass="";
							if(item.down('a').hasAttribute('class')){
								linkClass="aktiv";
						}
						if(linkClass!='aktiv'){
								var normsrc = img.src;//alert(normsrc);
								var imgname=img.src.replace('.png', '_hover.png');//alert(imgname);
								//imgname = imgname.substr(0, imgname.length - 4);
								//var hoversrc = this.ajaxurl+'gen_images/'+imgname+'_hover.png';
								img.observe('mouseover', function(event) {
									img.src=imgname;
									//alert(hoversrc);
									return false;
								}.bind(this));
								img.observe('mouseout', function(event) {
									img.src=normsrc;
									
									return false;
								}.bind(this));
						
						}
        			//}
        		
        		
        		}.bind(this));
     
     }
 }

function initTextReplace(){

	TextReplace = new TextReplace();
	//TextReplace. replaceMainnav();
	//TextReplace. replaceSubnav();
	TextReplace.attachHover(TextReplace.mainnav);
	TextReplace.attachHover(TextReplace.subnav);
	if ($('subnav')!=undefined) {
		TextReplace.attachHover($('subnav'));
	}
	if ($('claim')!=undefined) {
		TextReplace.replaceClaim();
		}
	TextReplace. replaceAdresse();
	TextReplace. replaceH1();
}

Event.observe(window, 'load', initTextReplace, false);



