// JavaScript Document
function cmscode(type,title,varval) {
	if(type=='link') { //LINK ----------------------
		var part1=prompt("Please enter the URL:","http://");
		var part2=prompt("Please enter a title for the link:","");
		document.getElementById('cmsbox'+title).value+="[a="+part1+"]"+part2+"[/a]";
		//document.eval("edit"+title).eval("cmsbox"+title).value+=" [a="+part1+"]"+part2+"[/a]";
	}
	if(type=='img') { //IMAGE ----------------------
		var part1=prompt("Please enter the image URL:","images/");
		insertaroundselect(document.getElementById('cmsbox'+title),"[img="+part1+"]");
		//document.eval("edit"+title).eval("cmsbox"+title).value+=" [a="+part1+"]"+part2+"[/a]";
	}
	else if(type=='b') { //BOLD ----------------------
		insertaroundselect(document.getElementById('cmsbox'+title),'[b]','[/b]')
	}
	else if(type=='i') { //ITALIC ----------------------
		insertaroundselect(document.getElementById('cmsbox'+title),'[i]','[/i]')
	}
	else if(type=='u') { //UNDERLINE ----------------------
		insertaroundselect(document.getElementById('cmsbox'+title),'[u]','[/u]')
	}
	else if(type=='font') { //FONT ----------------------
		closeTag('[font=','[/font]',document.getElementById('cmsbox'+title));
		insertaroundselect(document.getElementById('cmsbox'+title),'[font='+varval+']','[/font]');
	} // font
	else if(type=='color') { //COLOR ----------------------
		closeTag('[color=','[/color]',document.getElementById('cmsbox'+title));
		insertaroundselect(document.getElementById('cmsbox'+title),'[color='+varval+']','[/color]');
	} // color
	else if(type=='size') { //SIZE ----------------------
		closeTag('[size=','[/size]',document.getElementById('cmsbox'+title));
		insertaroundselect(document.getElementById('cmsbox'+title),'[size='+varval+']','[/size]');
	} // size	
	else if(type=='list') { //LIST ----------------------
		var listitem='';
		var listcontent= "[list]\n";
		while(listitem=prompt("Enter a list item or click cancel to stop.","")) {
						listcontent+= "[li]"+listitem+"[/li]\n";
		}
		listcontent+= "[/list]\n";
		insertaroundselect(document.getElementById('cmsbox'+title),listcontent);
	} // list	
	else if(type=='numlist') { //NUMBERED LIST ----------------------
		var listitem='';
		var listcontent= "[list1]\n";
		while(listitem=prompt("Enter a list item or click cancel to stop.","")) {
						listcontent+= "[li]"+listitem+"[/li]\n";
		}
		listcontent+= "[/list1]\n";
		insertaroundselect(document.getElementById('cmsbox'+title),listcontent);
	} // numlist
	else if(type=='tab') { //TAB 10PX ----------------------
		insertaroundselect(document.getElementById('cmsbox'+title),'[tab]');
	} //tab
	else if(type=='left') { //ALIGN LEFT ----------------------
		insertaroundselect(document.getElementById('cmsbox'+title),'[left]','[/left]')
	} //left
	else if(type=='center') { //ALIGN CENTER ----------------------
		insertaroundselect(document.getElementById('cmsbox'+title),'[center]','[/center]')
	} //center
	else if(type=='right') { //ALIGN RIGHT ----------------------
		insertaroundselect(document.getElementById('cmsbox'+title),'[right]','[/right]')
	} //right
	else if(type=='justify') { //ALIGN JUSTIFY ----------------------
		insertaroundselect(document.getElementById('cmsbox'+title),'[justify]','[/justify]')
	} //justify
	else if(type=='html') { //TYPE CODE ----------------------
		insertaroundselect(document.getElementById('cmsbox'+title),'[html]','[/html]')
	}


	else if(type=='close') { //CLOSE ----------------------
		var contents = document.getElementById('cmsbox'+title).value;
		//Link Close
		closeTag('[a=','[/a]',document.getElementById('cmsbox'+title));
		//Font Close
		closeTag('[font=','[/font]',document.getElementById('cmsbox'+title));
		//Color Close
		closeTag('[color=','[/color]',document.getElementById('cmsbox'+title));
		//Size Close
		closeTag('[size=','[/size]',document.getElementById('cmsbox'+title));
		//B Close
		closeTag('[b]','[/b]',document.getElementById('cmsbox'+title));
		//I Close
		closeTag('[i]','[/i]',document.getElementById('cmsbox'+title));
		//U Close
		closeTag('[u]','[/u]',document.getElementById('cmsbox'+title));
		//List Close
		closeTag('[list]','[/list]',document.getElementById('cmsbox'+title));
		closeTag('[list1]','[/list1]',document.getElementById('cmsbox'+title));
		//Left Close
		closeTag('[left]','[/left]',document.getElementById('cmsbox'+title));
		//Center Close
		closeTag('[center]','[/center]',document.getElementById('cmsbox'+title));
		//Right Close
		closeTag('[right]','[/right]',document.getElementById('cmsbox'+title));
		//Justify Close
		closeTag('[justify]','[/justify]',document.getElementById('cmsbox'+title));
		//HTML Close
		closeTag('[html]','[/html]',document.getElementById('cmsbox'+title));
		
		document.getElementById('editor'+title+'font').selectedIndex=0;
		document.getElementById('editor'+title+'size').selectedIndex=0;
		document.getElementById('editor'+title+'color').selectedIndex=0;
		
	} // close 
	document.getElementById('cmsbox'+title).focus();
} //cmscode

function cmsPopup(title,cmsdir) {
	childWindow=open(cmsdir+'cmseditor.php?item='+title,'editwindow','resizable=no,width=550,height=300');
    if (childWindow.opener == null) childWindow.opener = self;
}
function imagepopup(title,cmsroot) {
	imagewindow=open(cmsroot+'cmsimage.php?item='+title,'imagewindow','resizable=no,width=400,height=275');
   	if (imagewindow.opener == null) imagewindow.opener = self;
}
function linkpopup(title,cmsroot) {
	linkwindow=open(cmsroot+'cmslink.php?item='+title,'linkwindow','resizable=no,width=400,height=175');
	if( linkwindow.opener == null) linkwindow.opener = self;
}
function filepopup(title,cmsroot) {
	linkwindow=open(cmsroot+'cmsfile.php?item='+title,'filewindow','resizable=no,width=400,height=175');
	if( linkwindow.opener == null) linkwindow.opener = self;
}


function closeTag(opener,closer,elementid) {
	var tagopen=getOccurances(opener,elementid.value);
	var tagclose=getOccurances(closer,elementid.value);
	while(tagopen>tagclose) {
		elementid.value+=closer;
		tagclose++;
	}
} //closeTag

function getOccurances(needle,haystack) {
	var whereiam=haystack.indexOf(needle);
	var number=0;
	var lenofneedle=needle.length - 1;
	if(whereiam!=-1) {
			while(whereiam!=-1) {
					number++;
					whereiam=haystack.indexOf(needle,whereiam+lenofneedle);
			}
	}
	return number;
} //getOccurrances

function insertaroundselect(el,insa,insb) {
	
	if(insb) { //there is a second thing to insert
		var numbera=getOccurances(insa,el.value);
		var numberb=getOccurances(insb,el.value);
		var toinsert=insa;
		if(numbera>numberb) toinsert=insb;
	
		//Browser has setSelectionRange
		if (el.setSelectionRange){
			if(el.selectionStart==el.selectionEnd) { // cursor not selection
				if(el.selectionStart==el.value.length) el.value+=toinsert; //if at end, just insert correct next piece
				else el.value=el.value.substring(0,el.selectionStart) + toinsert
					+ el.value.substring(el.selectionStart,el.value.length);
			}
			else el.value= el.value.substring(0,el.selectionStart) + insa
				+ el.value.substring(el.selectionStart,el.selectionEnd) + insb
				+ el.value.substring(el.selectionEnd,el.value.length);
		}
		
		//Browser has createRange
		else if (document.selection && document.selection.createRange) {
			el.focus();
			var range = document.selection.createRange();
			if(range.length<2) range.text= toinsert;
			else range.text = insa + range.text + insb;
		}
		
		//Browser Sucks (safari) :(
		else el.value+= toinsert;
	} //there is a second thing to insert.
	
	else { //there is only one item to insert
		if(el.setSelectionRange) el.value=el.value.substring(0,el.selectionStart) + insa + el.value.substring(el.selectionStart,el.value.length);
		else if(document.selection && document.selection.createRange) {
			el.focus();
			var range=document.selection.createRange();
			if(range.length<2) range.text=insa+range.text;
		}
		else el.value+=insa;
	} //there is only one item to insert
}

function addImg(el,str) {
	el.value += str;
}