
var popupDirectory = 'ts_javascript/wysiwyg/';
var imageFolder = 'admin/js/img/';

function htmlMenu(elem,style) { 
	if(style=='wysiwyg') {
		var br = BrowserDetect.browser;
		if(br.search(/Netscape/)==-1&&br.search(/Explorer/)==-1&&br.search(/Firefox/)==-1&&br.search(/Mozilla/)==-1&&br.search(/Camino/)==-1&&br.search(/Opera/)==-1) {
			var warning = ('<label class="help error">This browser ('+br+') doesnt support HTML text editing featrures. Please consider downloading FREE Mozilla browser of your choice.</label>'); 
			new Insertion.Before( elem , addHTMLform(elem) );
		}
		else {
			//new Insertion.Before( elem , addHTMLform(elem) );
			generate_wysiwyg(elem);
		}
	} else {
		new Insertion.Before( elem , addHTMLform(elem) );
	}
}


function maxChars(obj,max)
{
	var id = obj.id;
	if(obj.value.length > (max-1) ) { 
		obj.value = obj.value.substring(1,(max-1));
		return false;
	}
	$(id+'-len').innerHTML = (max - obj.value.length);
}


function addHTMLEdit(obj)
{
	//alert($(obj));
	var add = ' <a href="#" onclick="$(\'html_add_'+obj+'\').toggle();return false;"><img style="vertical-align:middle;" src="'+imageFolder+'help.gif" alt="?" /></a>';
	add += '<span id="html_add_'+obj+'" class="hide">'+addHTMLform('field_'+obj)+'</span>';

	new Insertion.Bottom($('label_'+obj),add);
}

function addHTMLform(obj)
{

	var formBGColor = "transparent";
	var showTagsLink = "<img src='"+imageFolder+"show_toolbar.gif' alt='Show Tags' /><br />";
	var hideTagsLink = "<img src='"+imageFolder+"hide_toolbar.gif' alt='Hide Tags' /><br />";
	var addLink = "<img src='"+imageFolder+"link.gif' alt='Link' />";
	var pLink = "<img src='"+imageFolder+"p.gif' alt=' Insert a paragraph ' />";
	var pcLink = "<img src='"+imageFolder+"cp.gif' alt=' Insert a centered paragraph ' />";
	var prLink = "<img src='"+imageFolder+"rp.gif' alt=' Insert a right-justified paragraph ' />";
	var h1Link = "<img src='"+imageFolder+"h1.gif' alt=' Insert an extra-large large heading ' />";
	var h2Link = "<img src='"+imageFolder+"h2.gif' alt=' Insert a large heading ' />";
	var h3Link = "<img src='"+imageFolder+"h3.gif' alt=' Insert a medium heading ' />";
	var h4Link = "<img src='"+imageFolder+"h4.gif' alt=' Insert a heading ' />";
	var strongLink = "<img src='"+imageFolder+"b.gif' alt=' Insert bold text ' />";
	var emLink = "<img src='"+imageFolder+"em.gif' alt=' Insert italic text ' />";
	var imgLink = "<img src='"+imageFolder+"img.gif' alt=' Insert an image ' />";
	var olLink = "<img src='"+imageFolder+"ol.gif' alt=' Create a numbered list ' />";
	var ulLink = "<img src='"+imageFolder+"ul.gif' alt=' Create a bulleted list ' />";
	var brLink = "<img src='"+imageFolder+"br.gif' alt=' Insert a line break ' />";
	var increaseLink = "<img src='"+imageFolder+"plus.gif' alt=' Increase the size of the edit box ' />";
	var decreaseLink = "<img src='"+imageFolder+"minus.gif' alt=' Decrease the size of the edit box ' />";
	var dummyLink = "<img src='"+imageFolder+"lorem.gif' alt=' Insert dummy text ' />";
	var autoLink = "<img src='"+imageFolder+"auto.gif' alt=' Auto Tags ' />";
	var killLink = "<img src='"+imageFolder+"kill.gif' alt=' Kill Tags ' />";
	var popEditLink = "<img src='"+imageFolder+"wysiwyg.gif' alt='Popup Edit' />";
	var uploadLink = "<img src='"+imageFolder+"upload.gif' alt='Upload Files' />";
	var helpLink = "<img src='"+imageFolder+"help.gif' alt='Get HTML Help' />";
	var divider = "<img src='"+imageFolder+"divider.gif' alt='' />";
	var divider = "";
	
	var htm = "";
	//htm += ('<a href="javascript:void(0);" onclick="tog(\'ctrl\',\'hidectrl\',\'showctrl\');" style="display:block;" id="showctrl" title="Show Tags">'+showTagsLink+'</a>');
	//htm += ('<a href="javascript:void(0);" onclick="tog(\'ctrl\',\'hidectrl\',\'showctrl\');" style="display:none;"  id="hidectrl" title="Hide Tags">'+hideTagsLink+'</a>');
	//htm += ('<span id="ctrl" style="display:none;">');
	htm += ('<div>');
	//htm += ('<a href="javascript:void(0);" onclick="helpPop(\''+popupDirectory+'help.htm\');" title="Get help with HTML">'+helpLink+'</a>');
	//htm += (divider);
	htm += ('<a href="javascript:void(0);" onclick="addhtml(\''+obj+'\',\'p\');" title="Insert a paragraph">'+pLink+'</a>');
	htm += ('<a href="javascript:void(0);" onclick="addhtml(\''+obj+'\',\'pc\');" title="Insert a centered paragraph">'+pcLink+'</a>');
	htm += ('<a href="javascript:void(0);" onclick="addhtml(\''+obj+'\',\'pr\');" title="Insert a right justified paragraph">'+prLink+'</a>');
	htm += (divider);
	htm += ('<a href="javascript:void(0);" onclick="addhtml(\''+obj+'\',\'h1\');" title="Insert a very large heading">'+h1Link+'</a>');
	htm += ('<a href="javascript:void(0);" onclick="addhtml(\''+obj+'\',\'h2\');" title="Insert a large heading">'+h2Link+'</a>');
	htm += ('<a href="javascript:void(0);" onclick="addhtml(\''+obj+'\',\'h3\');" title="Insert a medium heading">'+h3Link+'</a>');
	htm += ('<a href="javascript:void(0);" onclick="addhtml(\''+obj+'\',\'h4\');" title="Insert a small heading">'+h4Link+'</a>');
	htm += (divider);
	htm += ('<a href="javascript:void(0);" onclick="addhtml(\''+obj+'\',\'strong\');" title="Insert bold text">'+strongLink+'</a>');
	htm += ('<a href="javascript:void(0);" onclick="addhtml(\''+obj+'\',\'em\');" title="Insert italics text">'+emLink+'</a>');
	htm += (divider);
	htm += ('<a href="javascript:void(0);" onclick="addhtml(\''+obj+'\',\'ol\');" title="Insert an ordered list">'+olLink+'</a>');
	htm += ('<a href="javascript:void(0);" onclick="addhtml(\''+obj+'\',\'ul\');" title="Insert an unordered list">'+ulLink+'</a>');
	htm += (divider);
	htm += ('<a href="javascript:void(0);" onclick="addhtml(\''+obj+'\',\'br\');" title="Insert line break">'+brLink+'</a>');
	htm += (divider);
	htm += ('<a href="javascript:void(0);" onclick="addhtml(\''+obj+'\',\'img\');" title="Insert an image tag">'+imgLink+'</a>');
	htm += ('<a href="javascript:void(0);" onclick="addhtml(\''+obj+'\',\'a\');" title="Insert a link">'+addLink+'</a>');
	htm += (divider);
	//htm += ('<a href="javascript:void(0);" onclick="$(\''+obj+'\').addClassName(\'x-large\');return false;" title="Make edit field bigger">'+increaseLink+'</a>');
	//htm += ('<a href="javascript:void(0);" onclick="$(\''+obj+'\').addClassName(\'small\');return false;" title="Make edit field smaller">'+decreaseLink+'</a>');
	htm += ('<a href="javascript:void(0);" onclick="addhtml(\''+obj+'\',\'lorem\');" title="Insert dummy text">'+dummyLink+'</a>');
	//htm += ('<a href="javascript:void(0)" onclick="popUp(\'popups/upload.php?obj='+obj+'\',550,400);" title="Upload files">'+uploadLink+'</a>');
	//htm += ('<a href="javascript:void(0)" onclick="addTags(\''+obj+'\');" title="Auto-add P tags">'+autoLink+'</a>');
	//htm += ('<a href="javascript:void(0)" onclick="killTags(\''+obj+'\');" title="Kill all tags">'+killLink+'</a>');
	//htm += ('<a href="javascript:void(0)" onclick="editPop(\''+obj+'\');" title="Edit in another window">'+popEditLink+'</a>');

	//htm += ('</span>');
	htm += ('</div>');
	
	return htm;

}

function helpPop(url,w,h) {
	w=w?w:400;h=h?h:400;
	window.open(url,'popup','location=0,status=0,scrollbars=0,resizable=0,width='+w+',height='+h+'');
}

function addhtml(object,tag,directory)
{

	var method = '';
	var html = "";
	var block_level = false;

	// Get Selected text (if any)

	if($('wysiwyg'+object)) {
		var method = 'iframe';
		html = document.getElementById('wysiwyg'+object).contentWindow.getSelection();
	} else {
		var method = 'textarea';
		html = getSelected($(object));
	}
	html = html.toString();
	var len = html.length;

	var begin = "";
	var end = "";
	var url = "";
	var alttag = "";
	var default_text = "Your text goes here";
	var temp = "";
	
	if(!directory) directory = '';

	switch (tag) {
	case "ol":
	case "ul":
		block_level = true;
		if(html)
		{
			var listHTML = "";
			var list = html.split('\n');
			for ( var i = 0; i <= list.length; i++ ) 
			{
				if(list[i]&&list[i].length>0) listHTML += "<li>"+list[i]+"<\/li>\n";
			}
			html = "<"+tag+">\n" + listHTML + "<\/"+tag+">\n";
		}
		else
		{
			var num = prompt("Please enter the number of list items you want to create.","1")
			if ( isNaN(num) || num < 1 ) { return false; }
			var list = new Array()
			for ( var i = 1; i <= num; i++ ) {
				list[i] = prompt("Please enter a list item:",default_text)
				html = html + "\t<li>" + list[i] + "<\/li>\n"
			}
			html = "\n<"+tag+">\n" + html + "<\/"+tag+">\n"
		}
	break
	case "img":
		url = prompt("Please enter the full URL of this image, including the http:// for best results:","http://");
		if(!url) return false;
		alttag = prompt("Please enter a SHORT description of this image:",default_text);
		if(!alttag) return false;
		html = " <img src=\"" + directory + url + "\" alt=\"" + alttag + "\" /> " ;
	break
	case "a":
		clicktext = html;
		url = prompt("Please enter the URL for this link:\n (http://www.example.com)","http://");
		if(!url) return false;
		if(!len)
		{
			clicktext = prompt("Please enter the CLICKABLE text for this link:","");
			if(!clicktext) return false;
		}
		alttag = prompt("Please enter a SHORT description of this link:",default_text);
		if( url && clicktext ) html = " <a href=\"" + url + "\" title=\"" + alttag + "\">" + clicktext + "<\/a> ";
	break
	case "p":
	case "pc":
	case "pr":
	case "h1":
	case "h2":
	case "h3":
	case "h4":
	case "strong":
	case "em":
		block_level = true;
		if(!html) {
			html = prompt("Please enter some text:",default_text)
			if(!html) return false;
		}
		if(tag=="em") { html = "<em>" + html + "<\/em>"; block_level = false; }
		if(tag=="strong") { html = "<strong>" + html + "<\/strong>"; block_level = false; }
		if(tag=="p") { html = "<p>" + html + "<\/p>"; }
		if(tag=="h1") { html = "<h1>" + html + "<\/h1>"; }
		if(tag=="h2") { html = "<h2>" + html + "<\/h2>"; }
		if(tag=="h3") { html = "<h3>" + html + "<\/h3>"; }
		if(tag=="h4") { html = "<h4>" + html + "<\/h4>"; }
		if(tag=="pc") { html = "<p style='text-align:center;'>" + html + "<\/p>"; }
		if(tag=="pr") { html = "<p style='text-align:right;'>" + html + "<\/p>"; }
	break
	case "br":
		html += "<br \/>"
	break
	case "lorem":
		html = "Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Proin cursus congue diam. Donec aliquet purus ut felis. Nullam ultrices condimentum nisi. Aenean tincidunt. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Proin cursus congue diam. Donec aliquet purus ut felis. Nullam ultrices condimentum nisi. Aenean tincidunt. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Proin cursus congue diam. Donec aliquet purus ut felis. Nullam ultrices condimentum nisi. Aenean tincidunt.\n"
	break
	}	
	

	html = block_level ? ''+html+'' : html;	
	if(method=="textarea")  {
		insertAtCursor( document.getElementById(object) , html , begin , end );
		document.getElementById(object).focus();
	}
	else {
		insertSPAN(html,object);
	}

	return false;
	
}


function getSelected(myField) 
{
	var myText = '';
	//IE support
	if (document.selection) 
	{
		myField.focus();
		sel = document.selection.createRange();
		myText = sel.text;
	}
	//MOZILLA/NETSCAPE support
	else if (myField.selectionStart || myField.selectionStart == '0') 
	{
		var startPos = myField.selectionStart;
		var endPos = myField.selectionEnd;
		myText = myField.value.substring(startPos,endPos);
	}
	return myText;
}


function insertAtCursor(myField, myValue) 
{
	//IE support
	if (document.selection) 
	{
		myField.focus();
		sel = document.selection.createRange();
		sel.text = myValue;
	}
	//MOZILLA/NETSCAPE support
	else if (myField.selectionStart || myField.selectionStart == '0') 
	{
		var startPos = myField.selectionStart;
		var endPos = myField.selectionEnd;
		myField.value = myField.value.substring(0, startPos)
		+ myValue
		+ myField.value.substring(endPos, myField.value.length);
	} else {
		myField.value += myValue;
	}
}

function addTags(id)
{
	var object = document.getElementById(id);
	var html = object.value;
	var tmp = html.split('\n');
	var newtext = "";
	for (x in tmp)
	{
		var str = tmp[x];
		if( str.length>0 ) {
			if( str.indexOf("<p>")==-1 ) {
				newtext += "<p>"+str+"<\/p>\n\n";
			} else {
				newtext += str+"\n\n";
			}
		}
	}
	object.value = newtext;
	return false;
}

function killTags(id)
{
	var object = document.getElementById(id);
	var html = object.value;
	html = html.replace(/\<(.+?)\>/g, '' );
	html = html.replace(/\<\/(.+?)\>/g, '' );
	object.value = html.replace(/\t/g,'');
	return false;
}


function editPop(obj)
{
	var h = screen.height * .75;
	var w = screen.width * .75;
	var t = (screen.height/2)-(h/1.5);
	var l = (screen.width/2)-(w/2);
	newwindow=window.open(
	'popups/wysiwig.php?obj='+obj,'Edit',
	'directories=0'+
	',fullscreen=0'+
	',height='+h+
	',width='+w+
	',left='+l+
	',top='+t+
	',location=0'+
	',menubar=0'+
	',resizable=1'+
	',scrollbars=1'+
	',status=0'+
	',titlebar=0'+
	',toolbar=0');

	if (window.focus) {newwindow.focus()}
	
	var temp = newwindow.document;

	var saved = newwindow.opener.document.getElementById(obj).value;
	
	return false;

	temp.write('<html><head><title>Untitled</title>');
	temp.write('<style>body{text-align:center;font:.7em/1em Verdana;color:#666;}textarea{font:1.3em/1.75em "Lucida Grande",Verdana;color:#666;}img{border:0;}</style>');
	temp.write('</head><body>');
	temp.write('<h4>Edit</h4>');
	temp.write('<textarea cols="100" rows="20" id="edit" style="width:95%;height:85%;">'+saved+'</textarea>');
	temp.write('<p>');
	temp.write('<a href="#" onclick="window.opener.document.getElementById(\''+obj+'\').value=document.getElementById(\'edit\').value;return false;"><img src="css/candlepower/bt_save_and_continue.gif" alt="Save and Continue" /></a>');
	temp.write('<a href="#" onclick="window.opener.document.getElementById(\''+obj+'\').value=document.getElementById(\'edit\').value;self.close();"><img src="css/candlepower/bt_save_and_close.gif" alt="Save and Close" /></a>');
	temp.write('<a href="javascript:self.close();"><img src="css/candlepower/bt_discard_changes.gif" alt="Discard Changes" /></a>');
	temp.write('</p>');
	temp.write('</body></hml>');
	temp.close();
	
	return false;
}



