 // JavaScript Document

var tips; 

function initApp(){
    startMenu();
    createOrderform();
    createReadLines();
    startMisc();
    
    wooooowMeEffect($$('.topMenuObj'),'#ffffff');
    wooooowMeEffect($$('.menuBoxLowerItem'),'#DEF0FC');
}


function switchCheck(element){	
    var status = element.getStyle('display');	
    
    if(status == 'none'){
       return 0;   	        
    }
    else{
       return 1;
    }	    
}

function switchOn(element,textelement){	  
    element.setStyle('display','block');
    element.setStyle('opacity',0);
        
    slideIn(element);
          
    textelement.set('text','Schliessen');
}

function switchOff(element,textelement){
    
    textelement.set('text','Öffnen');    
    slideOut(element);
}

//Effects

function wooooowMeEffect(woowMes,tocolor){
        
    woowMes.each(function(wowme){
         var myFx = new Fx.Tween(wowme,{duration:'long'}); 
        
         var oldBg = wowme.getStyle('background-color');
         
         if(oldBg == '' || oldBg == 'transparent'){
             var oldBg = '#f4f4f4';
         }
        
         wowme.addEvent('mouseenter', function(){
             myFx.cancel();
             myFx.start('background-color',oldBg,tocolor);
         });
        
         wowme.addEvent('mouseleave', function(){
             myFx.cancel();
             myFx.start('background-color',tocolor,oldBg); 
         });
    });    
}


function autoFade(element){	
    var status = switchCheck($(element));	
    
    if(status == 0){
       appear(element); 	        
    }
    else{
       fade(element);
    }	    
}

function autoSlide(element){	
    var status = switchCheck($(element));	

    if(status == 0){
       slideIn(element);   	        
    }
    else{
       slideOut(element);
    }	    
}

function slideIn(element){
        
    var eleHeight = $(element).getSize().y; 
            
    var fx = new Fx.Tween($(element), {duration: 'short'});
    
    fx.cancel();
    
    $(element).setStyle('display','block'); 
    fx.start('height',eleHeight).chain(function(){
        fx.start('opacity',1);
    });
    
}

function slideOut(element){
        
    var oldHeight = $(element).getSize().y;
    
    var fx = new Fx.Tween($(element), {duration: 'short'});
    
    fx.cancel();
    
    fx.start('opacity',0).chain(function(){
        fx.start('height',0).chain(function(){
            $(element).setStyle('display','none'); 
            $(element).setStyle('height',oldHeight);      
        });
    });
}

function appear(element){
    
    var fx = new Fx.Tween($(element));
    
    $(element).setStyle('visibility','visible');
    $(element).setStyle('opacity','0');
    
    fx.start('opacity',1);
    
}

function fade(element){

	var fx = new Fx.Tween($(element));    

    fx.start('opacity',0);
	
    $(element).setStyle('visibility','visible');
    $(element).setStyle('opacity','0');
    
}

function createOrderform(){
    //Oderform	
	$$('.switch').each(function(element){       
        
        var orderElement = $(element.id.replace(/button_/g, ""));
        
        	    
        element.addEvent('click',function(){	    
           	             
            var status = switchCheck(orderElement);	
            	        
            if(status == 0){
                switchOn(orderElement,element);
            }
            else{
               switchOff(orderElement,element);   
            }            
        });        
    });
}

function createReadLines(){
    //Read Lines    
    $$('.infoText').each(function(element){     
        var readLine = new Element('div',{
                                   'class': 'readbox' 
                                   });
                
        readLine.setStyle('opacity',0);
                
        element.addEvent('mouseenter',function(){
            var fx = new Fx.Tween(readLine,{duration:'long'});
            readLine.injectTop(element.getParent());
            
            fx.start('opacity',0.3).chain(function(){
               fx.start('opacity',0).chain(function(){
                   readLine.dispose();                  
               });             
            });      
        });
    });
}


function startMisc(){
    
     tips = new Tips('.toolTip',{className: 'tipbox'});
     
     tips.addEvent('show', function(tip){
        tip.fade('in');
     });
     tips.addEvent('hide', function(tip){
        tip.fade('out');
     });
         
    //Hover for Buttons;
    var im = $$('.links p a img');
        
    im.each(function(element){
        
        if(element.getProperty('src').search(/details.+/) > 0){
            element.addEvent('mouseenter',function(){
	           element.setProperty('src','/images/maingraphics/details-over.gif');
            });
            
            element.addEvent('mouseleave',function(){
	           element.setProperty('src','/images/maingraphics/details.gif');
            }); 	    
        }
        
        if(element.getProperty('src').search(/bestellen.+/) > 0){
            element.addEvent('mouseenter',function(){
	           element.setProperty('src','/images/maingraphics/bestellen-over.gif');
            });
            
            element.addEvent('mouseleave',function(){
	           element.setProperty('src','/images/maingraphics/bestellen.gif');
            }); 	    
        }
        
        if(element.getProperty('src').search(/demo.+/) > 0){
            element.addEvent('mouseenter',function(){
	           element.setProperty('src','/images/maingraphics/demo-over.gif');
            });
            
            element.addEvent('mouseleave',function(){
	           element.setProperty('src','/images/maingraphics/demo.gif');
            }); 	    
        }
    });
    
    //Hover for Buttons;
    var im = $$('img');
        
    im.each(function(element){       
        
        if(element.getProperty('src').search(/_nohover.+/) > 0){
            element.addEvent('mouseenter',function(){            
               var newpic = element.getProperty('src').replace(/_nohover/g, "_hover");
               element.setProperty('src',newpic);
                       
            });
            
            element.addEvent('mouseleave',function(){
               var newpic = element.getProperty('src').replace(/_hover/g, "_nohover");
               element.setProperty('src',newpic);
            });         
        }
    });
       
    
}

function showAjaxLoading(ele){
    ele.empty();
    var loadimg = new Element('img',{src:'/images/maingraphics/ajax-loader.gif',id:'ajaxloadergif'});
    ele.appendChild(loadimg); 
}


function showAjaxLoadingFront(ele){
    ele.empty();
    if(!$('ajaxloadergif')){
        var loadimg = new Element('img',{src:'/images/maingraphics/ajax-loader.gif',id:'ajaxloadergif'});
        ele.appendChild(loadimg); 
    }    
    
    var fx = new Fx.Tween($('ajaxResponseFront'),{duration:'long'});
    fx.start('opacity',1);
}

function defaultAjax(url,update){
    var req = new Request.HTML({ url:url,
                                onRequest:function(){showAjaxLoading($(update))},
                                onSuccess:function(resp){
                                    $(update).empty();
                                    $(update).adopt(resp);
                                },
                                onFailure: function(error){
                                	alert(error.status + "->" + error.statusText);
                                },
                                method: 'post',
                                evalScripts: true,
                                encoding: 'iso-8859-1'
                                });
    
    return req;   
}




function doSendSearch(){  
    if(getLengthSearch($('searchforfront').value) > 2){
        reqFront.cancel();                
        reqFront.post($('searchformfront'));
    }
};    

function coloseAjaxResponseFront(){  
    var fx = new Fx.Tween($('ajaxResponseFront'),{duration:'long'});
    fx.start('opacity',0);
    
    $('searchforfront').set('value','');
};    

function getLengthSearch(string){
    string = string.replace(/ /g, "");
    return string.length;
}

function responseSearch(response){      
    
    //Create Button
    var clBt = new Element('a',{'html':'Fenster Schliessen',id:'submitButtonGreen','style':'display:block;margin-bottom:20px;height:15px;width:130px;text-align:center;','href':'javascript:coloseAjaxResponseFront()'});
        
    $('ajaxResponseFront').empty();
    $('ajaxResponseFront').grab(clBt,'top');    
    $('ajaxResponseFront').adopt(response);      
    
}   

function getPrice(prodId,update){
    var req = defaultAjax('/dynamic/website.php/produkte/showPrice/prodId/'+prodId,update);
    req.send();
    return req;  
}

function getProvisionprice(userId,orderId,update){
    var req = defaultAjax('/dynamic/website.php/produkte/showProvisionprice/userId/'+userId+'/orderId/'+orderId,update);
    req.send();
    return req;  
}


function setCookie(c_name,value,expiredays){
    var exdate=new Date()
    exdate.setDate(exdate.getDate()+expiredays)
    document.cookie=c_name+ "=" +escape(value)+
    ((expiredays==null) ? "" : ";domain="+baseDomainString()+";expires="+exdate.toGMTString()+";path=/;")
}

function getCookie(c_name){
if (document.cookie.length>0)
  {
  c_start=document.cookie.indexOf(c_name + "=")
  if (c_start!=-1)
    { 
    c_start=c_start + c_name.length+1 
    c_end=document.cookie.indexOf(";",c_start)
    if (c_end==-1) c_end=document.cookie.length
    return unescape(document.cookie.substring(c_start,c_end))
    } 
  }
  return ""
}

function getURLParam(strParamName){
  var strReturn = "";
  var strHref = window.location.href;
  if ( strHref.indexOf("?") > -1 ){
    var strQueryString = strHref.substr(strHref.indexOf("?")).toLowerCase();
    var aQueryString = strQueryString.split("&");
    for ( var iParam = 0; iParam < aQueryString.length; iParam++ ){
      if ( aQueryString[iParam].indexOf(strParamName.toLowerCase() + "=") > -1 ){
        var aParam = aQueryString[iParam].split("=");
        strReturn = aParam[1];
        break;
      }
    }
  }
  return unescape(strReturn);
}

function baseDomainString(){
  e = document.domain.split(/\./);
  if(e.length > 1) {
    return '.'+(e[e.length-2] + "." +  e[e.length-1]);
  }else{
    return("");
  }
}