var lightbox;
var getKiss;
function kiss(name,get)
{

 $$.get('/ajax.php',{f:'messages/kiss',user:name});

 aniKiss(get);
}
var getKiss;
function aniKiss(get)
{
     getKiss=get;
  if($$("#kissImage"))
      $$('<img id="kissImage" onload="openAniKiss(getKiss)" style="width:0px; height:0px; position:fixed; top:0px; left:0px;" src="http://aa.joinrcdn.de/images/kussmund.gif">').appendTo(document.body);
  else
  {
      $$("#kissImage").show();
      
      openAniKiss(get);
  }
}
function openAniKiss(get)
{
 $$("#kissImage").css({opacity: 0.1});
 $$("#kissImage").animate({height: "350px", width: "400px",left:"100px", top:"100px",  opacity: 0.7}, 2500,null,function()
 {
   $$("#kissImage").animate({height: "0px", width: "0px",left:"0px", top:"0px",opacity: 0.1},"normal",null,function()
   {
     $$("#kissImage").hide();
   });

 });
 if(get)
 {
  $$(get).parent().fadeOut("slow");

 }     
}
function showUserPic(src)
{
    var path=src.replace('-s','-m');

		var data=
	    {
	      content:'<div style="width:500px" align="center"><img src="'+path+'" onload="lightbox.refreshSize()" onclick="lightbox.close()"></div>', 
	      noLight:true,
	      fOpen:function()
	      {
	        /* 
	      	if(!$('location').childNodes.length)
	      	{
		   var option=document.createElement('option');
		      	option.innerHTML='Bitte wählen';
		      	$('location').appendChild(option);	      	
		    
		    
		      	for (var i in folders)
			    {
			      	var option=document.createElement('option');
			      	option.innerHTML=folders[i].FName;
			      	option.value=folders[i].FID;
			      	$('location').appendChild(option);
			    }
	      	}  	*/
	      	
	      }
	    };
	    lightbox=engine.lightbox.beginn(data);
	
	    lightbox.open();    
    
    
}
function convertToArray(obj) 
{
	var array=new Array();
	
	for(i in obj)
	{
		array[array.length]=obj[i];
	}
	return array;
 
} 

Array.prototype.copy = function () {
     return ((new Array()).concat(this));
   };
   function pointOnLine(x,start,end)   
   {
   		if(x>start && x<end)
   			return true;
   			
   	return false;		
   	
   }
   function pointIn(point,rectangular)
   {	   	
   	 if(point[0]<rectangular[0]) //left
   	 {
   	 	if(pointOnLine(point[1],rectangular[1],rectangular[1]+rectangular[3])) //and in y
   	 	{
   	 		return 'l';
   	 	}
   	 }
   	 else
   	 {
	   	 if(point[0]>rectangular[0]+rectangular[2]) //right
	   	 {
	   	 	if(pointOnLine(point[1],rectangular[1],rectangular[1]+rectangular[3])) //and in y
	   	 	{
	   	 		return 'r';
	   	 	}
	   	 }
	   	 else
	   	 {
	   	 	if(point[1]<rectangular[1]) //top
   	 		{
   	 			return 't';
   	 		}
   	 		else
   	 		{
   	 			if(point[1]>rectangular[1]+rectangular[3]) //top
   	 			{
   	 				return 'b';
   	 			}
   	 			else
   	 			{
   	 				return 'i';
   	 			}
   	 		}
	   	 	
	   	 }
   	 	
   	 }
   	 return false;
   	
   }
   function setDesignNav(nav)
   {
   		$('moduleDesign').innerHTML=content['modules/'+nav];
   		switch(nav)
   		{
   			case 'help':
   				$('mCss').className="";
   				$('mDesign').className="";   
   				$('mHelp').className="active";      								  				
   			break;
   			case 'design': 
   				$('mCss').className="";
   				$('mDesign').className="active";   
   				$('mHelp').className="";     	
   				editModule.setEditToDesignOption();						
   			break;
   			case 'css':
   				$('mCss').className="active";
   				$('mDesign').className="";   
   				$('mHelp').className="";  
   				editModule.setEditToDesignCss();	
   			break;
   		}
   }
function deepObjCopy (dupeObj) {

    
	var retObj = new Object();
	if (typeof(dupeObj) == 'object') {
		if (typeof(dupeObj.length) != 'undefined')
			var retObj = new Array();
		for (var objInd in dupeObj) {
			if (typeof(dupeObj[objInd]) == 'object') {
				retObj[objInd] = dupeObj[objInd];
			} else if (typeof(dupeObj[objInd]) == 'string') {
				retObj[objInd] = dupeObj[objInd];
			} else if (typeof(dupeObj[objInd]) == 'number') {
				retObj[objInd] = dupeObj[objInd];
			} else if (typeof(dupeObj[objInd]) == 'boolean') {
				((dupeObj[objInd] == true) ? retObj[objInd] = true : retObj[objInd] = false);
			}
		}
	}
	return retObj;
}
function write_bit(val)
{
  var string='';
  
    for(var i=32;i>=0;i--)
  {
    string+=(isbit(val,i)?1:0);  
    if(i%4==0)
    {
      string+=' ';
    }
  }
  console.info(string,val);
}






function setBorder(width)
{  
editModule.data['SMode']=setint(editModule.data['SMode'],1,   4, width);
editModule.data['SMode']=setint(editModule.data['SMode'],5,   8, width);
editModule.data['SMode']=setint(editModule.data['SMode'],9,  12, width);
editModule.data['SMode']=setint(editModule.data['SMode'],13, 16,  width);

  editModule.setEditProperty('SMode',editModule.data['SMode']);

$('moduleBorderweightUp').style.display='none';
}
function rotate(str) {
  var time = new Date();
var srv=str.substr((time.getTime()%Math.max(1,(str.length)/2))*2, 2);
if(srv)
    return srv;
else    
	return 'aa';
}
function ZeroZero(value)
{
  var str=value.toString();
  while(str.length<2)
  {
    str='0'+str;
  }
 
  return str;
}
function spaces(num)
{
  var p='';
  
  for(var i=0;i<num;i++)
    p+='&nbsp;';
  
  return p;
}
function isset(val)
{
    
 return (typeof val!='undefined' && val!='null' && val);r   
}
var modifiers = 
{
    url : function(str) 
    {       
      return "http://"+str + "." + domain+"/";
    },
    picUrl:function(url,typ,size)
    {
        
    var sp=isset(url)?url.split(":"):['',''];
       var path=sp[0];
       var srv=sp[1];
      typ=(content['config']['pic'][typ])?typ:'n';
   
      size=size>0?size:0;
      if(!path.length || !srv.length)
      {
          if(content['config']['nopic'][0][typ])
        return content['config']['nopic'][0][typ];
        else
        return content['config']['nopic'][0]['n'];
      }
      path=path.split('.');
      return 'http://'+rotate(srv)+'.'+content['config']['imgdomain']+'/'+content['config']['pic'][typ]+'/'+path[0]+content['config']['picsize'][size]+'.jpg';
           
        
    },
    pic : function(path,typ,srv,size) 
    {   
      typ=(content['config']['pic'][typ])?typ:'n';
   
      size=size>0?size:0;
      if(!path.length || !srv.length)
      {
          if(content['config']['nopic'][0][typ])
        return content['config']['nopic'][0][typ];
        else
        return content['config']['nopic'][0]['n'];
      }
      
      path=path.split('.');
      return 'http://'+rotate(srv)+'.'+content['config']['imgdomain']+'/'+content['config']['pic'][typ]+'/'+path[0]+content['config']['picsize'][size]+'.jpg';
    },
    page : function(num,current,typ,func)  //pageId in func
    {
     if(num>1)
     {
        var p='';
        var data=new Array();
        var look=pageDefiners[typ];
  
        data['page']=current;
        data['num'] =num;     
          
         
              
        if(current>2)
        {
          data['func'] =func.replace("pageId",0);   
          p+=look.lAllLink.process(data)+look.lAll.process(data)+look.rAllLink.process(data);  
        } 
        else
          p+=spaces(look.lAll.length)
        
        
        
        if(current)
        {
          data['func'] =func.replace("pageId",current-1);   
          p+=look.lAllLink.process(data)+look.left.process(data)+look.rAllLink.process(data);             
        }  
        else
          p+=spaces(look.left.length)
          
                var to=(Math.max(0,current-5)+10);
        for(var i=Math.max(0,current-5);i<num && i<to;i++)  //perhaps optimize tplengine
        {
          data['id']=i;
          data['func'] =func.replace("pageId",i);  
          if(current==i)
           p+=look.lAllLink.process(data)+look.selected.process(data)+look.rAllLink.process(data);  
          else
           p+=look.lAllLink.process(data)+look.normal.process(data)+look.rAllLink.process(data);         
        } 
          
        if(current<num-1)
        {
          data['func'] =func.replace("pageId",current+1);        
          p+=look.lAllLink.process(data)+look.right.process(data)+look.rAllLink.process(data);  
        }  
        else
          p+=spaces(look.right.length)
                        
        if(current<num-3)
        {
          data['func'] =func.replace("pageId",num-1);       
          p+=look.lAllLink.process(data)+look.rAll.process(data)+look.rAllLink.process(data);  
        }  
        else
          p+=spaces(look.rAll.length)
          
                  
        return p;   
      }            
    }
  };

var pageDefiners=
{
  "normal":
  {
    lAll: "|«",
    left: "«",
    normal:"[${id+1}]",
    selected:"<b>${id+1}</b>",
    right:"»",
    rAll:"»|",
    lAllLink:'<a style="margin-right:2px" href="javascript:void(0)" onclick="${func}">',
    rAllLink:'</a>'
  }
};
function function_exists(fName, ob) 
{
  if(!ob) ob = window;
  return (typeof ob[fName] == 'function') ? true : false;
}
function concat(arr1,arr2)
{
   
  for (index in arr2) 
  {
    arr1[index]=arr2[index];
  } 
  return arr1;
}
 String.prototype.replaceAll = function(from,to)
 {
  var str = this;
  var index = str.indexOf(from);
  var c=0;
    while (index != -1 && c < 25)
    {  
     str  = str.replace(from,to)
     index = str.indexOf(from);
     c++;
    }
    return( str );
 }
 
function toHex(v) 
{ 
  v=Math.round(Math.min(Math.max(0,v),255));

  return("0123456789ABCDEF".charAt((v-v%16)/16)+"0123456789ABCDEF".charAt(v%16)); 
}
function filterHex(value)
{
var check="0123456789abcdef";
var newValue='';
var testValue=value.toLowerCase();
  for(var i=0;i<testValue.length;i++)
  {  
    if(check.indexOf(testValue.substr(i,1))!=-1)
      newValue+=value.substr(i,1);
  }
  return newValue;
}
function parseColor(color)
{
  if(!color)
    return '';
  if(color.indexOf("rgb(")!=-1)
  {
    var beginn=color.indexOf('(')+1;
    var col=color.substr(beginn,color.indexOf(')')-beginn);
   
    r=col.split(',');

    return(toHex(parseInt(r[0]))+toHex(parseInt(r[1]))+toHex(parseInt(r[2])));
  }
  else if(color.indexOf("#")!=-1)
  {
     color= filterHex(color.substr(1));

  }
  color=filterHex(color);
  
    if(color.length==6 || color.length==3)
      return color;
    else
      return ''; 
}
