/**
 * Objektbanksmetoder för redigering av sidor
 */
function makeImageHolders(){
	if($('destinator_loaderdiv') != null){
		$('destinator_loaderdiv').show();
		objBnk.loaderHide=false;
	}
	objBnk.initObjectBank();
	/*
	var objbnk=document.createElement('div');
	objbnk.id='ObjectBank';
	document.body.appendChild(objbnk);
	Element.setStyle(objbnk,{'position':'fixed', 'z-index':'750'})
	Event.observe(window,'scroll',positionObjectBank);
	Event.observe(window,'resize',positionObjectBank);
	var caption=lang('OBJBANK');
	var cap='';
	for(var x=0;x<caption.length;x++){
		cap=cap+caption.charAt(x)+'<br />';
	}
	var tab='<div id="ObjectBankTab" onclick="toggleObjectBank(null,true);" class="cursor_hand">'+cap+'</div>';
	var catHolder='<div id="ObjectBankCategories">'
	+'<div class="destinator_selectbox" onclick="toggleObjectCategories(event)" ><span id="ObjectBankCategoriesDisplay" class="destinator_browseDisplay"></span>'
	+'<input class="cursor_hand destinator_browsebtn" type="button" title="BROWSE" value="" id="ObjectBankCategoriesLink" />'
	+'</div>'
	+'<div id="objectbankNewObjectButton"><input id="destinator_fastupload_submit" onclick="showUploadNewObjectHolder();" type="button" name="newObjectButton" id="newObjectButton" /></div>'
	+'<div id="objectbankSearchObjectButton"><input id="destinator_searchupload_submit" onclick="showSearchObjectHolder();" type="button" name="newSearchButton" id="newSearchButton" /></div>'
	+'<div id="ObjectBankCategoriesBox" style="display:block;">Kategorier</div>'
	+'</div>';

	var imgHolder='<div id="ObjectBankScroller">'
	+'<div id="ObjectBankContainer"></div>'
	+'</div>';
	Element.update(objbnk,tab+catHolder+imgHolder);
	//Element.setStyle(objbnk,{top:xheight+'px',height:(viewport-xheight)+'px'});
	*/
	$A($$('.droppable_imageholder')).each(function(elm, idx){
		Droppables.add(elm, {onDrop:saveObjectInHolder});
		Event.observe(elm, 'click', toggleObjectMenu);
	});
	/*
	$A($$('iframe')).each(function(elm){
		//Droppables.add(elm, {onDrop:saveObjectInTiny});
	});
	positionObjectBank();
	getObjectList();
	restoreObjBank(false);
	*/
}
function saveObjectInHolder(tile, target){
	var tid=tile.id.substr(0,(tile.id.length-5));
	if(objBnk.objects[tid] != null){
		var obj=objBnk.objects[tid];
		if(obj.type=='image' || obj.type=='flash' || obj.type == 'movie'){
			$(target.id+'-objid').value=obj.objid;
			var add='';
			if(objectHolders[target.id].thumb){
				add='&thumb=1';
			}
			var sel='doWCM=getObjectString&h='+(objectHolders[target.id].height)+'&w='+(objectHolders[target.id].width)+'&objId='+obj.objid+'&target='+target.id+add;
			new Ajax.Request('/admin/ajax/ajax_object.php', {method:'post', postBody:sel, asynchronous:true, onSuccess:setObjectInHolder});
		}else{
			if($(target.id+'-link')){
				var sel='doWCM=getObjectString&h='+objectHolders[target.id].height+'&w='+objectHolders[target.id].width+'&objId='+obj.objid+'&target='+target.id;
				new Ajax.Request('/admin/ajax/ajax_object.php', {method:'post', postBody:sel, asynchronous:true, onSuccess:setLinkOnObject});
			}else{
				if(objectHolders[target.id].linkid){
					$(target.id+'-objid').value=obj.objid;
					var sel='doWCM=getObjectString&h='+(objectHolders[target.id].height)+'&w='+(objectHolders[target.id].width)+'&objId='+obj.objid+'&target='+target.id;
					new Ajax.Request('/admin/ajax/ajax_object.php', {method:'post', postBody:sel, asynchronous:true, onSuccess:setObjectInHolder});				
				}else{
					alert(lang('NODISPOBJ'));
				}
			}
		}
	}
}
function setLinkOnObject(t, ajax){
	var imgs=$(ajax.target).getElementsByTagName('img');
	if(imgs==null || imgs.length==0){
		var imgs=$(ajax.target).getElementsByTagName('object');
		if(imgs==null || imgs.length==0){
			setObjectInHolder(t, ajax);
		}
	}
	$(ajax.target+'-link').value=ajax.oolink;
	if(ajax.oolink != ''){
		$(ajax.target+'-linkimg').show();
	}else{
		$(ajax.target+'-linkimg').hide();
	}
	$(ajax.target+'-linkdisp').update(ajax.oolink);
}
var activeObjects={};
function setObjectInHolder(t, ajax){
	//alert(ajax.tag);
	var tid='obj_'+ajax.objId;
	if(objBnk.objects[tid] != null){
		var obj=objBnk.objects[tid];
		var h='';
		if(obj.type=='flash'){
			var fv='link='+ajax.link;
			h=writeFlash({id:ajax.objId,src:ajax.oolink,width:ajax.width,height:ajax.height,returntag:true,wmode:'opaque',flashvars:fv});
			
		}else if(obj.type=='movie'){
			var fv='link='+ajax.oolink+'&amp;url='+ajax.urlpath+'&amp;skin='+ajax.skin;
			h=writeFlash({id:ajax.objId,src:ajax.player,url:ajax.urlpath,skin:ajax.skin,width:ajax.width,height:ajax.height,returntag:true,wmode:'opaque',flashvars:fv});
		}else{
			h=ajax.tag;
		}
		var imgalt=ajax.target.alt;
		if(!activeObjects[ajax.target]){
			activeObjects[ajax.target]={};
		}
		activeObjects[ajax.target].html=h;
		activeObjects[ajax.target].width=ajax.width;
		activeObjects[ajax.target].height=ajax.height;
		activeObjects[ajax.target].imgid=ajax.objId;
		$(ajax.target).update(h);
		if(ajax.height > 0 && ajax.width > 0){
			//alert(ajax.target+' height '+ajax.height+'-'+'width '+ajax.width);
			var h=ajax.height;
			var w=ajax.width;
			Element.setStyle(ajax.target,{'height':(ajax.height)+'px','width':(ajax.width)+'px'});
		}
		if($(objectHolders[ajax.target].linkid)){
			$(objectHolders[ajax.target].linkid).href='javascript:showObject(\''+ajax.urlpath+'\')';
			$(objectHolders[ajax.target].linkid).update(ajax.name);
		}
		if($(ajax.target+'-alt')){
			var oldalt=$F(ajax.target+'-alt');
			if(oldalt == '' || oldalt==imgalt){
				var nm=ajax.name;
				$(ajax.target+'-alt').value=nm;
			}
		}
	}
}
function updateImageHolders(){
	$A($$('.droppable_imageholder')).each(function(elm, idx){
		if(activeObjects[elm.id] != null && activeObjects[elm.id].href && activeObjects[elm.id].href != ''){
			var w=activeObjects[elm.id].width;
			var h=activeObjects[elm.id].height;
			var mh=objectHolders[elm.id].height;
			var mw=objectHolders[elm.id].width;
			if(w>mw || h>mh){
				var hdiff=mh/h;
				var vdiff=mw/w;
				if(hdiff > vdiff){
					w=vdiff * w;
					h=vdiff * h;
				}else{
					w=hdiff * w;
					h=hdiff * h;
				}
			}
			$(elm).update(activeObjects[elm.id].href);
			Element.setStyle(elm,{height:h+'px',width:w+'px'});
			$A($$('#'+elm.id+' img')).each(
				function(img){
					Element.setStyle(img,{'maxWidth':w+'px','maxHeight':h+'px',height:h+'px',width:w+'px'});
				}
			);
		}
		Droppables.add(elm, {onDrop:saveObjectInHolder});
		Event.observe(elm, 'click', toggleObjectMenu);
	});
}

function showObjectMenu(elmId){
	var elm=$(elmId);
	drawObjectMenu(elm);
}
function drawObjectMenu(elm){
	var link='';
	var haslink=false;
	if($(elm.id+'-link')){
		link=$(elm.id+'-link').value;
		haslink=true;
	}
	var newwin=false;
	if($(elm.id+'-newwin') && $(elm.id+'-newwin').value==1){
		newwin=true;
	}
	
	if($(elm.id+'-alt')){
		var alt=$(elm.id+'-alt').value;
	}
	if($(elm.id+'-desc')){
		var desc=$(elm.id+'-desc').value;
	}
	if ($('objset_holder')) {
		Element.remove('objset_holder');
	}
	var frm='<div id="objset_holder">'
	var ol=document.createElement('div');
	ol.id='objset_holder';
	Element.setStyle(ol, {'display':'none','z-index':'998','position':'absolute'});
	var frm='<div id="objset_top">'
			+'<img src="/admin/objects/objset_logo.png" alt="Objectbank" />'
			+'<h1>Objektegenskaper</h1>'
			+'<div id="objset_closer"><a href="javascript:void(0);" onclick="Element.remove(\'objset_holder\');" ><img src="/admin/objects/objset_close.png" alt="close" /></a></div>'
		+'</div>'
		+'<div id="objset_middle">'
			+'<form method="post" action="#">';
		if(haslink){
		frm	+='<label for="objset_link">'+lang('LINK')+'</label><input type="hidden" name="objset_link" id="objset_link" value="'+link+'" />';
		frm+='<div onclick="getLinkSelect($(\'objprop_display\'),$(\'objset_link\'),$(\'objprop_select\'),{\'notop\':true,\'input\':true,\'showbox\':true,\'converturl\':true},event);" id="objprop_select" class="destinator_selectbox">' +
			'<span class="destinator_browseDisplay" id="objprop_display">'+link+'</span>' +
			'<input type="button" title="'+lang('BROWSE')+'" value="" class="cursor_hand destinator_browsebtn"/>' +
			'</div>';
			frm+='<input type="checkbox"  class="submit" name="objset_newwin" id="objset_newwin" value="1" '+(newwin?'checked="checked"':'')+'/><label for="objset_newwin">'+lang('NEWWIN')+'</label>';
		}
		if($(elm.id+'-alt')){
			frm+='<label for="objset_alt">'+lang('ALTTEXT')+'</label><input type="text" name="objset_alt" id="objset_alt" value="'+alt+'"/>';
		}
		if($(elm.id+'-desc')){
			frm+='<label for="objset_desc">'+lang('DESC')+'</label><input type="text" name="objset_desc" id="objset_desc" value="'+desc+'" />';
		}
		frm+='<div class="clearing"> </div>'
			+'<input class="submit" type="button" name="objset_save" id="objset_save" value="'+lang('SAVE')+'" onclick="objSaveImgParms(\''+elm.id+'\');" />';
		if(haslink){
			frm+='<input class="submit" type="button" name="objset_removelink" id="objset_remove_link" value="'+lang('REMLINK')+'" onclick="objRemoveLink(\''+elm.id+'\');" />';
		}		
		frm+='<input class="submit" type="button" name="objset_removeimage" id="objset_remove_img" value="'+lang('REMIMG')+'" onclick="objRemoveImage(\''+elm.id+'\');" />'
			+'<div class="clearing"> </div></form></div>'
		+'</div>'
		+'<div id="objset_bot"> </div>';
	document.body.appendChild(ol);
	$(ol).update(frm);
	new Position.clone(elm, ol,{setTop:true,setLeft:true,setWidth:false,setHeight:false});
	getPageName(encodeURIComponent(link),setObjectLinkPageName);
	ol.show();
	//return overlib(frm,FULLHTML, STICKY);
}
function setObjectLinkPageName(t){
	$('objprop_display').update(t.responseText);
}
function toggleObjectMenu(evt){
	var elm=Event.findElement(evt,'div');
	drawObjectMenu(elm);
}
function objRemoveLink(elmid){
	if($(elmid+'-link')){
		$(elmid+'-link').value='';
		$('objprop_display').update('');
		$(elmid+'-linkimg').hide();
		$('objset_link').value='';
	}
}
function objRemoveImage(elmid){
	$(elmid+'-objid').value='';
	objRemoveLink(elmid);
	var h=objectHolders[elmid].height;
	var w=objectHolders[elmid].width;
	$(elmid).update('');
	$(elmid).setStyle({height:h+'px',width:w+'px'});
	if($('objset_holder')){
		Element.remove('objset_holder');
	}
	return true;
}
function objSaveImgParms(elmid){
	if($(elmid+'-link')){
	$(elmid+'-link').value=$('objset_link').value;
		if($('objset_link').value != ''){
			$(elmid+'-linkimg').show();
		}else{
			$(elmid+'-linkimg').hide();
		}
	}
	if($(elmid+'-alt')){
		$(elmid+'-alt').value=$('objset_alt').value;
	}
	if($(elmid+'-desc')){
		$(elmid+'-desc').value=$('objset_desc').value;
	}
	if($(elmid+'-newwin')){
		$(elmid+'-newwin').value=($('objset_newwin').checked?1:0);
	}
	
	Element.remove('objset_holder');
	return true;
}
function removeObjectMenu(evt){
	Element.remove('objset_holder');
	return true;
}
function saveObjectInTiny(tile, target){
	//var tid=tile.id.substr(0,(tile.id.length-5));
	var tid='obj_'+tile.id.split('_')[1];
	if(objBnk.objects[tid] != null){
		var obj=objBnk.objects[tid];
		var sel='doWCM=getObjectString&dimensions=inline&objId='+obj.objid+'&target='+target.id.substring(0,(target.id.length-4));
		new Ajax.Request('/admin/ajax/ajax_object.php', {method:'post', postBody:sel, asynchronous:true, onSuccess:setObjectInTiny});
	}
}
function linkObjectInTiny(elm, inst, link){
	if (elm == null) {
		if (tinyMCE.isSafari)
		tinyMCE.execInstanceCommand(inst, "mceInsertContent", false, '<a href="'+link+'">' + inst.selection.getSelectedHTML() + '</a>');
		else
		tinyMCE.execInstanceCommand(inst, "createlink", false, link);
	} else{
		elm.href=link;
		elm.setAttribute('mce_href',link);
	}
}
function setObjectInTiny(t, ajax){
	if(objBnk.objects['obj_'+ajax.objId] != null){
		var obj=objBnk.objects['obj_'+ajax.objId];
		var inst=tinyMCE.editors[ajax.target];
		//var elm = inst.getFocusElement();
		var elm=inst.selection.getNode().nodeName =="A"?inst.selection.getNode():null;
		//elm = tinyMCE.activeEditor.selection.getNode();
		var anySelection = false;
		var focusElm = inst.selection.getNode(), selectedText = inst.selection.getContent();
		if (inst.selection.getSel()){
			anySelection = (inst.selection.getNode().nodeName.toLowerCase() == "img") || (selectedText && selectedText.length > 0);
		}
		if (anySelection || (focusElm != null && focusElm.nodeName == "A")) {
			linkObjectInTiny(elm, ajax.target, ajax.oolink);
		}else{
			if(obj.type=='image'){
				tinyMCE.execInstanceCommand(ajax.target, "mceInsertContent", false, ajax.ootag);
			}else if(obj.type=='flash'){
				var html = ''
				+ '<img src="'+ajax.thumbnail+'" mce_src="'+ajax.thumbnail+'" '
				+ 'border="0" alt="' + ajax.oolink + '" title="id:\'objid_'+ajax.objId+'\',src:\''+ajax.oolink+'\'" class="mceItemFlash" width="'+ajax.width+'px" height="'+ajax.height+'px" />';
				tinyMCE.execInstanceCommand(ajax.target, "mceInsertContent", true, html);
				tinyMCE.selectedInstance.repaint();
			}else if(obj.type == 'movie'){
				var html = ''
				+ '<img src="'+ajax.thumbnail+'" mce_src="'+ajax.thumbnail+'" '
				+ 'border="0" alt="' + ajax.oolink + '" title="id:\'objid_'+ajax.objId+'\',src:\''+ajax.oolink+'\'" class="mceItemFlash" width="'+ajax.width+'px" height="'+ajax.height+'px" />';
				tinyMCE.execInstanceCommand(ajax.target, "mceInsertContent", true, html);
				tinyMCE.selectedInstance.repaint();
			}else{
				tinyMCE.execInstanceCommand(ajax.target, "mceInsertContent", false, '<a href="'+ajax.oolink+'">' + ajax.ootag + '</a>');
			}
		}
	}
}