// 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,false);

	} // 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,false);

	} // numlist

	else if(type=='tab') { //TAB 10PX ----------------------

		insertaroundselect(document.getElementById('cmsbox'+title),'[tab]',false);

	} //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();

			range.text=insa+range.text;

		}

		else {

			el.value+=insa;

		}

	} //there is only one item to insert

}
