function openWindow(url,w,h,tb,stb,l,mb,sb,rs,x,y){
var t=(document.layers)? ',screenX='+x+',screenY='+y: ',left='+x+',top='+y; //A LITTLE CROSS-BROWSER CODE FOR WINDOW POSITIONING
tb=(tb)?'yes':'no'; stb=(stb)?'yes':'no'; l=(l)?'yes':'no'; mb=(mb)?'yes':'no'; sb=(sb)?'yes':'no'; rs=(rs)?'yes':'no';
var x=window.open(url, 'newWin'+new Date().getTime(), 'scrollbars=yes,width='+w+',height='+h+',toolbar='+tb+',status='+stb+',menubar='+mb+',links='+l+',resizable=yes');
x.focus();
}

function mouseX(evt) {
if (evt.pageX) return evt.pageX;
else if (evt.clientX)
   return evt.clientX + (document.documentElement.scrollLeft ?
   document.documentElement.scrollLeft :
   document.body.scrollLeft);
else return null;
}
function mouseY(evt) {
if (evt.pageY) return evt.pageY;
else if (evt.clientY)
   return evt.clientY + (document.documentElement.scrollTop ?
   document.documentElement.scrollTop :
   document.body.scrollTop);
else return null;
}


function WhoisWindow(domain,ext) {
	var params = 'toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1,resizable=1,width=637,height=502';
	var arr = window.open('http://www.denit.net/bestellen/whois.php?domain='+domain+'&ext='+ext+'&show_raw=1','WhoisWindow',params);
}

// fermads codepress editor function...
function portcode(area)
{
	cnt = $(area);
	cnt.value = CodePress.getCode();
//	cnt.innerHTML = CodePress.getCode();
}

function findPosX(obj)
{
	if(typeof obj == 'string')
	obj = $(obj);
	
	var curleft = 0;
	if(obj.offsetParent)
		while(1) 
		{
		  curleft += obj.offsetLeft;
		  if(!obj.offsetParent)
			break;
		  obj = obj.offsetParent;
		}
	else if(obj.x)
		curleft += obj.x;
	return curleft;
}

function findPosY(obj)
{
	if(typeof obj == 'string')
	obj = $(obj);
	
	var curtop = 0;
	if(obj.offsetParent)
		while(1)
		{
		  curtop += obj.offsetTop;
		  if(!obj.offsetParent)
			break;
		  obj = obj.offsetParent;
		}
	else if(obj.y)
		curtop += obj.y;
	return curtop;
}

function findPos(obj) {
	
	curleft = findPosX(obj);
	curtop = findPosY(obj);
	return new Array(curleft,curtop);
}

function switchsymbol(id,close,open,status)
{
	symb = $(id);

	if(close && open)
	{
		if(status)
		{
			if(status =='-')
			{
				symb.innerHTML = close;
			}else{
				symb.innerHTML = open;
			}

		}else{

			if(symb.innerHTML == open)
			{
				symb.innerHTML = close;
			}else{
				symb.innerHTML = open;
			}
		}
	}else{
		if(status)
		{
			if(status =='-')
			{
				symb.innerHTML = '[-]';
			}else{
				symb.innerHTML = '[+]';
			}

		}else{
			if(symb.innerHTML == '[+]')
			{
				symb.innerHTML = '[-]';
			}else{
				symb.innerHTML = '[+]';
			}
		}
	}

}

function showhidediv(id)
{
	$(id).style.display=($(id).style.display!="block")? "block" : "none"
}

function showdiv(id)
{
	$(id).style.display="block";
}

function hidediv(id)
{
	$(id).style.display="none";
}

function switchbgcolor(id,oncolor,offcolor)
{	
	if($(id).style.background == oncolor)
	{
		$(id).style.background = offcolor;
	}else{
		$(id).style.background = oncolor;
	}
}

function postForm(fieldName){
	tinyMCE.triggerSave(true,true);
	tinyMCE.updateContent(fieldName);
}

function addControll(fieldID)
{
	tinyMCE.execCommand('mceAddControl', true, fieldID)
}

function updateurl(domid,url)
{
	loader = domid+'loader';
	new Ajax.Updater(domid,url, {onLoading:function(request){setLoaderSize(loader,domid);Element.show(loader)},onComplete : function(request){Element.hide(loader);window.location.reload()} ,asynchronous:true, evalScripts:true, requestHeaders:['X-Update', domid]})
}

function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function eraseCookie(name) {
	createCookie(name,"",-1);
}

function showcrud()
{
	items = document.getElementsByClassName('crudlink');
	for(i=0;i<items.length;i++)
	{
		items[i].show();
	}
}

function hidecrud()
{
	items = document.getElementsByClassName('crudlink');
	for(i=0;i<items.length;i++)
	{
		items[i].hide();
	}
}

function getWindowDimensions()
{
	// the more standards compliant browsers (mozilla/netscape/opera/IE7) use window.innerWidth and window.innerHeight
	var viewportwidth;
	var viewportheight;
	
	if (typeof window.innerWidth != 'undefined')
	{
	  viewportwidth = window.innerWidth,
	  viewportheight = window.innerHeight
	}
	
	// IE6 in standards compliant mode (i.e. with a valid doctype as the first line in the document)
	
	else if (typeof document.documentElement != 'undefined'
	 && typeof document.documentElement.clientWidth !=
	 'undefined' && document.documentElement.clientWidth != 0)
	{
	   viewportwidth = document.documentElement.clientWidth,
	   viewportheight = document.documentElement.clientHeight
	}
	
	// older versions of IE
	
	else
	{
	   viewportwidth = document.getElementsByTagName('body')[0].clientWidth,
	   viewportheight = document.getElementsByTagName('body')[0].clientHeight
	}
	
	return[viewportwidth,viewportheight]
}

function removeflashmessagealert()
{
	if($('flashmessagealert'))
	document.body.removeChild($('flashmessagealert'))
}

function flashmessagealert(msg)
{
	var flashmessage = document.createElement('div');
	flashmessage.setAttribute("id","flashmessagealert")
	flashmessage.style.position = 'absolute';
	
	flashmessage.className = 'flashmessagealert';
	
	flashmessage.innerHTML = msg;

	document.body.appendChild(flashmessage)
	
	var windowdimensions = getWindowDimensions();
	
	var IpopTop = (windowdimensions[1] - flashmessage.offsetHeight)/2;
	var IpopLeft = (windowdimensions[0] - flashmessage.offsetWidth)/2;
	
	flashmessage.style.left=IpopLeft + document.body.scrollLeft+"px";
	flashmessage.style.top=IpopTop + document.body.scrollTop+"px";
	
	Event.observe(flashmessage,'click',function(){removeflashmessagealert()});
	window.setTimeout("removeflashmessagealert()",2000);
}

function cancel_editinplace()
{
	$('editinplacecontainer').remove();	
}

function editinplace(url,obj,options)
{
	if(typeof(options)=='undefined')
	var options = [];
	
	if(typeof options['areaclass'] == 'undefined')
	options['areaclass'] = 'editinplacearea';
	
	if(typeof options['cancelclass'] == 'undefined')
	options['cancelclass'] = 'cancellink';
	
	if(typeof options['submitclass'] == 'undefined')
	options['submitclass'] = 'submitlink';
	
	if(typeof(obj)=='string')
	var obj = $(obj);

	var parent = obj.parentNode;
	var self = this;

	if(!$('ta_'+obj.id))
	{
		var eipc = document.createElement('div'); 
		eipc.setAttribute('id','editinplacecontainer');
		eipc.className = 'editinplacecontainer';
		parent.appendChild(eipc);
		//absolutize($('editinplacecontainer'))
		
		var ta = document.createElement('textarea');
		ta.className = options['areaclass'];
		ta.innerHTML = obj.innerHTML;
		ta.value = obj.innerHTML;
		ta.setAttribute('name','name');
		ta.setAttribute('id','ta_'+obj.id);
		$('editinplacecontainer').appendChild(ta);
		
		var cancel = document.createElement("input");
		cancel.className = options['cancelclass'];
		cancel.setAttribute('id','cancel_'+obj.id);
		cancel.setAttribute('type','button');
		
		$(cancel).onclick = function(){
		cancel_editinplace(obj);
		};
		
		cancel.value = 'cancel';
		$('editinplacecontainer').appendChild(cancel);
		
		var submit = document.createElement("input");
		submit.className = options['submitclass'];
		submit.setAttribute('id','submit_'+obj.id);
		submit.setAttribute('type','button');
		
		$(submit).onclick = function(){
		self.submitarea(url,obj);
		};
		
		submit.value = 'submit';
		$('editinplacecontainer').appendChild(submit);
		
		//obj.style.display = 'none';
	}else{
//		obj.innerHTML = $('ta_'+obj.id).value;
//		parent.removeChild($('cancel_'+obj.id));
//		parent.removeChild($('submit_'+obj.id));
//		parent.removeChild($('ta_'+obj.id));
//		obj.style.display = 'block';
	}
	
	submitarea = function(url,obj)
	{
		var querystring = '';
		querystring = "value="+$('ta_'+obj.id).value;
		new Ajax.Request(url,{postBody:querystring,onComplete:function(t){obj.innerHTML = $('ta_'+obj.id).value;editinplace(url,obj);cancel_editinplace()}});
	}
	
}

displaywindowloader = function()
{
	if($('windowloader'))
	{
		$('windowloader').style.display = 'block';
	}
	else
	{
		html = '<div id="windowloader" class="windowloader"><img src="'+WEBDIR+'img/ajax-loader_3.gif"></div>';
		new Insertion.Top(parent.document.body, html);
		
		var windowdimensions = getWindowDimensions();
		
		var IpopTop = (windowdimensions[1] - $('windowloader').offsetHeight)/2;
		var IpopLeft = (windowdimensions[0] - $('windowloader').offsetWidth)/2;
		
		$('windowloader').style.left=IpopLeft + document.body.scrollLeft+"px";
		$('windowloader').style.top=IpopTop + document.body.scrollTop+"px";
		
		$('windowloader').observe('click',function(){$('windowloader').style.display = 'none';})
	}
}

hidewindowloader = function()
{
	$('windowloader').style.display = 'none';
}

/*
* CRUD WINDOW FUNCTIONS
*
*
*/

function crud_changeparentid(module,pass)
{
	var dir = WEBDIR+"structure/changeparentid/"+module+"/"+pass;
	parent.loadpopit("Change parentID",dir);
}

function crud_list(module,pass)
{
	if(!pass)pass='root';

	var dir = WEBDIR+"structure/listrecords/"+module+"/"+pass+"/0";
	parent.loadpopit("List `"+module+"` records",dir);
}

function crud_create(module,pass,fields)
{
	if(typeof fields=="undefined")
	fields = '';
	
	var dir = WEBDIR+"structure/create/"+module+"/"+pass+"/"+fields;
	parent.loadpopit("Create `"+module+"` record",dir);
}

function crud_m2_update(module,id,fields)
{
	if(typeof fields=="undefined")
	fields = '';
	
	var dir = WEBDIR + "structure/update/"+module+"/"+id+"/"+fields;
	parent.loadpopit("Manage relations for module `"+module+"` record `"+id+"`",dir);
}

function crud_hbtm_create(sourcemodule,relationmodule,relationtable,sid,rid,fields)
{
	if(typeof fields=="undefined")
	fields = '';

	var dir = WEBDIR + "structure/hbtm_create/"+sourcemodule+"/"+relationmodule+"/"+relationtable+"/"+sid+"/"+rid+"/m2_relations|"+fields;
	parent.loadpopit("Create relations in module `"+sourcemodule+"` related to module `"+relationmodule+"`",dir);
}


function crud_m1_create(module,relation_module,relation_item,relation_parent_item,fields)
{
	if(typeof fields=="undefined")
	fields = '';
	
	if(typeof relation_parent_item=="undefined" || relation_parent_item == '')
	relation_parent_item = 'root';

	var dir = WEBDIR + "structure/m1_create/"+module+"/"+relation_module+"/"+relation_item+"/"+relation_parent_item+"/"+fields;
	parent.loadpopit("Create `"+module+"` record related to `"+relation_module+"`",dir);
}

function crud_update(module,pass,fields,w,h,t,l)
{
	if(typeof fields=="undefined")
	fields = '';
	
	if(fields=='name')
	{
		w = 500;
		h = 200;
	}
	
	var dir = WEBDIR+"structure/update/"+module+"/"+pass+"/"+fields;
	parent.loadpopit("Update `"+module+"` -> `"+pass+"` record",dir,w,h,t,l);
}

function a_crud_delete(module,pass,element_to_remove)
{
	new Ajax.Request(WEBDIR+'structure/delete/'+module+'/'+pass,{onComplete : function(t){parent.$(element_to_remove).remove();flashmessagealert(t.responseText);}})
}

function crud_upload(module,pass)
{
	if(typeof fields=="undefined")
	fields = '';

	var dir = WEBDIR+"media/listrecords/"+module+"/"+pass;
	parent.loadpopit("Manage `"+module+"` media",dir,800,600,null,null,null,true);
}

showcrudmenu = function(module,field,id,crud)
{
	pass = id;
	var ref_obj = $(module+'_'+field+'_'+id);
	var crudmenu_id = "crudmenu_"+module+"_"+field+"_"+id;
	
	var elm = ref_obj.ancestors()[0].nodeName;
	var pos = findPos(ref_obj);
	
	if(!$(crudmenu_id))
	{
		var html = '<div id="'+crudmenu_id+'"></div>';
		//new Insertion.Top(parent.document.body, html)
		new Insertion.Bottom(ref_obj, html)
		//crud = crud.split("|");
		
		var operations = [];
		operations = [{name : "update"},{name:"changeparentid"},{name : "upload"}]
		var crudbut = "";
		//m2_update($module,$pass)
		operations.each(function(val,index){
			crudbut = document.createElement("img");
			var operation_id = crudmenu_id+'_'+val.name;
			crudbut.setAttribute("id",operation_id);
			//crudbut.setAttribute("title",'-'+val.name+' - '+module+' field '+id);
			//crudbut.style.background = val.color;
			crudbut.className = "crudlink";
			//crudbut.innerHTML = "<img src='"+ICONS+val.name+".gif'>";
			crudbut.src = ICONS+val.name+".gif";
			$(crudmenu_id).appendChild(crudbut);
		});
		
		operations.each(function(val,index){
			$(crudmenu_id+'_'+val.name).observe("click",function(){
				
				switch(val.name)
				{
					case "style" :
					new Ajax.Request(val.url,{onComplete : function(t){flashmessagealert(t.responseText);}});
					break;
					
					case "create":
					crud_create(module,pass,field)
					break;
					
					case "update":
					crud_update(module,pass,field)
					break;
					
					case "upload":
					crud_upload(module,pass)
					break;
					
					case "list":
					crud_list(module,pass);
					break;
					
					case "changeparentid":
					crud_changeparentid(module,pass);
					break;
				}

			});
			
		})
		
		var cleardiv = document.createElement("div");
		cleardiv.className = "clear";
		ref_obj.appendChild(cleardiv);
	}
	else
	{
		$(crudmenu_id).style.display = 'block';
	}
	
}

hidecrudmenu = function(module,field,id)
{
	$("crudmenu_"+module+"_"+field+"_"+id).style.display = 'none';
}

create_tips = function()
{
	$$("*").findAll(function(node){
		return node.getAttribute('title');
	}).each(function(node){
		new Tooltip(node,node.title);
		node.removeAttribute("title");
	});
}
