/**
 * Created by IntelliJ IDEA.
 * User: toomnyhats
 * Date: 2/5/11
 * Time: 8:40 PM
 * To change this template use File | Settings | File Templates.
 */



function chkObject(theVal)
{

    if (document.getElementById(theVal) != null)
    {
        return true;
    }
    else
    {
       return false;
    }
}

/**
* @file main.js
* @ingroup Admin
* @ingroup Javascript
*
*
* @detailed This is the main javascript file used code for Admin
*/
var events;
var cycleVal;
var userfound=false;
function getXmlHttpRequestObject() {
	var xmlhttp;
	try {
		xmlhttp = new XMLHttpRequest();
	}
	catch (e) {
		var XMLHTTP_IDS = new Array('MSXML2.XMLHTTP.5.0',
                                  'MSXML2.XMLHTTP.4.0',
                                  'MSXML2.XMLHTTP.3.0',
                                   'MSXML2.XMLHTTP',
                                    'Microsoft.XMLHTTP' );
		var success=false;
		for(var i=0;i<XMLHTTP_IDS.length && !success; i++) {
			try {
				xmlhttp=new ActiveXObject(XMLHTTP_IDS[i]);
				success=true;
			}
			catch(e) {
			}
			if(!success) {
				throw new Error('Unable to create XMLHttpRequest.');
			}
		}
	}
	return xmlhttp;
}

var receiveReq = getXmlHttpRequestObject();

function displayAjaxMsg(msg,urlCall) {
	if (receiveReq.readyState == 4 || receiveReq.readyState == 0) {
		var m=msg;
		var params='&message='+m;
		var url=urlCall;
		receiveReq.open('POST',url, false);
		receiveReq.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		receiveReq.setRequestHeader("Content-length", params.length);
		receiveReq.setRequestHeader("Connection", "close");
		receiveReq.onreadystatechange = handleDisplayAjaxMsg;
		receiveReq.send(params);
	}
}

function handleDisplayAjaxMsg() {
	if (receiveReq.readyState == 4) {
		var returned=receiveReq.responseText;
		$('#ajax').show();
		document.getElementById('ajax').innerHTML = returned;
	}
}

//show an element
function show(menuName) {
	var m=menuName;
	if(chkObject(m)) {
		var el = document.getElementById(m);
		if(el.style.display != 'block')
			el.style.display = 'block';
	}
}

//hide an element
function hide(menuName) {
	var m=menuName;
	if(chkObject(m)) {
	 el = document.getElementById(m);
   if(el.style.display != 'none')
		el.style.display = 'none';
	}
}

function pad(number, length) {

    var str = '' + number;
    while (str.length < length) {
        str = '0' + str;
    }

    return str;

}

//Toggle all group checkboxes
/*function toggleCheckboxes(checkname, e) {
	alert(checkname);
	alert(e);
  for (i = 0; i < checkname.length; i++)
  checkname[i].checked = e.checked? true:false

}*/
function toggleCheckboxes( id, name, flag )
{
   if (flag == 0)
   {
      $("form#" + id + " INPUT[name=" + name + "][type='checkbox']").attr('checked', false);
   }
   else
   {
      $("form#" + id + " INPUT[name=" + name + "][type='checkbox']").attr('checked', true);
   }
}

function confirmUserBulkAction() {
		var m=document.getElementById('mode').value;
		if(m=='choose') {
			mustChoose();
		}
		else if(m=='activate' || m=='deactivate') {
			bulkUserActivation(m);
		}
		else if(m=='delete') {
			var yes = new LertButton('Yes', function() {
				bulkUserDelete();
			});

			var no = new LertButton('No', function() {
				return;
			});

			var message = "You have chosen to delete records.  This operation cannot be undone.  Proceed?";
			var confirmBox = new Lert(
				message,
				[no,yes],
				{
					defaultButton:yes,
					icon:'/assets/images/site_graphics/dialog-information.png'
				});
			confirmBox.display();
		}
}

function mustChoose() {
		if(chkObject('mode'))
			var m=document.getElementById('mode').value;

		if(m=='choose') {
			var yes = new LertButton('Yes', function() {
				return;
			});

			var no = new LertButton('Ok', function() {
				return;
			});

			var message = "Please make a selection from the Action Dropdown box.";
			var confirmBox = new Lert(
				message,
				[no],
				{
					defaultButton:yes,
					icon:'/assets/images/site_graphics/dialog-information.png'
				});
			confirmBox.display();
		}
}

function getSelectedCheckboxValues(group) {
	var grp=group;

	var grpElem=document.getElementsByName(grp);
	var grpCount=grpElem.length;
	var list='-';
	for(var i=0;i<grpCount;i++) {
		if(grpElem[i].checked) {
			if(list=='-') {
				list=grpElem[i].value+':';
			}
			else {
				list += grpElem[i].value+':';
			}
		}
	}
	//var arr=new Array();
	//arr[0]={ "name":grp,"value":list};
  //var data=arr;
	return list;
}


function chkObject(theVal)
{

    if (document.getElementById(theVal) != null)
    {
        return true;
    }
    else
    {
       return false;
    }
}
//Generic ajax call p=params, u=url, f=handle function
function ajaxCall(p,u,f) {
	if (receiveReq.readyState == 4 || receiveReq.readyState == 0) {
		var params=p;
		url=u;
		receiveReq.open('POST',url, true);
		receiveReq.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		receiveReq.setRequestHeader("Content-length", params.length);
		receiveReq.setRequestHeader("Connection", "close");
		receiveReq.onreadystatechange = f;
		receiveReq.send(params);
	}
}

function getDomainRoot()
{
var uri = location.href;
var startIndex;
if (null != uri.match("file:///") )
startIndex = 8;
if (null != uri.match("http://") )
startIndex = 7;
if (null != uri.match("https://") )
startIndex = 8;
var endIndex = uri.indexOf("/", startIndex);
var domainRoot = uri.substring(0, endIndex);
return domainRoot;
}

function parseUri (str) {
	var	o   = parseUri.options,
		m   = o.parser[o.strictMode ? "strict" : "loose"].exec(str),
		uri = {},
		i   = 14;

	while (i--) uri[o.key[i]] = m[i] || "";

	uri[o.q.name] = {};
	uri[o.key[12]].replace(o.q.parser, function ($0, $1, $2) {
		if ($1) uri[o.q.name][$1] = $2;
	});

	return uri;
};

parseUri.options = {
	strictMode: false,
	key: ["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"],
	q:   {
		name:   "queryKey",
		parser: /(?:^|&)([^&=]*)=?([^&]*)/g
	},
	parser: {
		strict: /^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/,
		loose:  /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/
	}
};


/*USER FUNCTIONS */
function userAvailable(n) {
	var uname=n;
	if (receiveReq.readyState == 4 || receiveReq.readyState == 0) {
		var params='&user='+uname;
		url='registration/ajaxProcess';
		receiveReq.open('POST',url, true);
		receiveReq.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		receiveReq.setRequestHeader("Content-length", params.length);
		receiveReq.setRequestHeader("Connection", "close");
		receiveReq.onreadystatechange = handleUserAvailable;
		receiveReq.send(params);
	}
}

function handleUserAvailable() {
	if (receiveReq.readyState == 4) {
		var returned=receiveReq.responseText;
		$('#ajax-msg-left').show();
		if(returned=='Username Already in Use') {
			userfound=true;
		}
		else if(returned=='Username Available')
			userfound=false;
		else
			userfound=false;
		document.getElementById('ajax-msg-left').innerHTML = returned;
	}
}

function userFound(n) {
	var uname=n;
	if (receiveReq.readyState == 4 || receiveReq.readyState == 0) {
		var params='&user='+uname;
		url='login/ajaxProcess';
		receiveReq.open('POST',url, true);
		receiveReq.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		receiveReq.setRequestHeader("Content-length", params.length);
		receiveReq.setRequestHeader("Connection", "close");
		receiveReq.onreadystatechange = handleUserFound;
		receiveReq.send(params);
	}
}

function handleUserFound() {
	if (receiveReq.readyState == 4) {
		var returned=receiveReq.responseText;

		if(returned=='Username Found') {
			userfound=true;
		}
		else
			userfound==false;
		document.getElementById('username_status').innerHTML = returned;
	}
}


function checkUsername(n) {
	var uname=n;
	if (receiveReq.readyState == 4 || receiveReq.readyState == 0) {
		var params='&user='+uname;
		url='login/ajaxProcess';
		receiveReq.open('POST',url, true);
		receiveReq.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		receiveReq.setRequestHeader("Content-length", params.length);
		receiveReq.setRequestHeader("Connection", "close");
		receiveReq.onreadystatechange = handleCheckUsername;
		receiveReq.send(params);
	}
}

function handleCheckUsername() {
	if (receiveReq.readyState == 4) {
		var returned=receiveReq.responseText;
		if(returned=='Username Found')
			set_cookie('userfound',true,1);
		document.getElementById('username_status').innerHTML = returned;
	}
}

function checkEmail(e) {
	var email=e;

	if (receiveReq.readyState == 4 || receiveReq.readyState == 0) {
		var params='&email='+email;
		url='retrieve/checkEmail';
		receiveReq.open('POST',url, true);
		receiveReq.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		receiveReq.setRequestHeader("Content-length", params.length);
		receiveReq.setRequestHeader("Connection", "close");
		receiveReq.onreadystatechange = handleCheckEmail;
		receiveReq.send(params);
	}
}

function handleCheckEmail() {
	if (receiveReq.readyState == 4) {
		var returned=receiveReq.responseText;
		if(returned=='Email Found')
			set_cookie('email',true,1);
		document.getElementById('email_status').innerHTML = returned;
	}
}


function dispPassword() {
	if (receiveReq.readyState == 4 || receiveReq.readyState == 0) {
		var p1 =document.getElementById('pass').value;
		var p2 =document.getElementById('pass2').value;
		var combined='Password: '+p1+'  Confirm Password: '+p2;
		var params='&password='+combined;
		url='registration/ajaxProcess';

		receiveReq.open('POST',url, true);
		receiveReq.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		receiveReq.setRequestHeader("Content-length", params.length);
		receiveReq.setRequestHeader("Connection", "close");
		receiveReq.onreadystatechange = handleDispPassword;
		receiveReq.send(params);
	}
}

function handleDispPassword() {
	if (receiveReq.readyState == 4) {
		var returned=receiveReq.responseText;
		document.getElementById('displaypassword').innerHTML = returned;
	}
}

function togglePassword(truefalse) {
	if(truefalse==true) {
		show('displaypassword');
		dispPassword();
	}
	else
		hide('displaypassword');
}

function toggleElem(truefalse,el) {
	if(truefalse==true){
		show(el);
	}
	else {
		hide(el);
	}
}

function processRegistration(d) {
	if (receiveReq.readyState == 4 || receiveReq.readyState == 0) {
    var params=d;
		url='registration/register';
		receiveReq.open('POST',url, true);
		receiveReq.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		receiveReq.setRequestHeader("Content-length", params.length);
		receiveReq.setRequestHeader("Connection", "close");
		receiveReq.onreadystatechange = handleProcessRegistration;
		receiveReq.send(params);
	}
}

function handleProcessRegistration() {
	if (receiveReq.readyState == 4) {
		var returned=receiveReq.responseText;
		//for debug only
		//alert(returned);

		var split=returned.split(":");
		$('#ajax-msg-left').hide();
		if(split[0]==1) {
			window.location='reg_success';
		}
		else {
			window.scrollTo(0,0);
			document.getElementById('ajax').innerHTML = split[1];
	 		setTimeout("validateRegistration();hide('ajax-msg-left');show('ajax');",5000);
	 	}
	}
}


function saveProfile(d) {
	if (receiveReq.readyState == 4 || receiveReq.readyState == 0) {
    var params=d;
    url='profile/saveProfile';
		receiveReq.open('POST',url, true);
		receiveReq.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		receiveReq.setRequestHeader("Content-length", params.length);
		receiveReq.setRequestHeader("Connection", "close");
		receiveReq.onreadystatechange = handleSaveProfile;
		receiveReq.send(params);
	}
}

function handleSaveProfile() {
	if (receiveReq.readyState == 4) {
		var returned=receiveReq.responseText;
		//for debug only
		//alert(returned);
		var split=returned.split(":");
		$('#ajax-msg-left').show();
		if(split[0]==1) {
			window.scrollTo(0,0);
			document.getElementById('ajax-msg-left').innerHTML = split[1];
			setTimeout("window.location='profile';",5000);
		}
		else {
			window.scrollTo(0,0);
			document.getElementById('ajax-msg-left').innerHTML = split[1];
      setTimeout("validateProfile();hide('ajax-msg-left');show('ajax');",5000);
		}
	}
}

function resetPassword() {
	if (receiveReq.readyState == 4 || receiveReq.readyState == 0) {
    var username=$('#user').val();
    var params='&user='+username;
    url='reset/newPassword';
		receiveReq.open('POST',url, true);
		receiveReq.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		receiveReq.setRequestHeader("Content-length", params.length);
		receiveReq.setRequestHeader("Connection", "close");
		receiveReq.onreadystatechange = handleResetPassword;
		receiveReq.send(params);
	}
}

function handleResetPassword() {
	if (receiveReq.readyState == 4) {
		$('#ajax-msg-left').show();

		var returned=receiveReq.responseText;
		//for debug only
		//alert(returned);

		var split=returned.split(":");

		if(split[0]==1) {
			document.getElementById('ajax-msg-left').innerHTML = split[1];
			$(':input','#frmReset')
 			.not(':button, :submit, :reset, :hidden')
 			.val('')
			$('#formContainer').hide();
		}
		else {
			window.scrollTo(0,0);
			document.getElementById('ajax-msg-left').innerHTML = split[1];
		}
		document.getElementById('ajax-msg-left').innerHTML = split[1];
	}
}

function retrieveUsername() {
	if (receiveReq.readyState == 4 || receiveReq.readyState == 0) {
    var email=$('#email').val();
    var params='&email='+email;
    url='retrieve/retrieveUser';
		receiveReq.open('POST',url, true);
		receiveReq.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		receiveReq.setRequestHeader("Content-length", params.length);
		receiveReq.setRequestHeader("Connection", "close");
		receiveReq.onreadystatechange = handleRetrieveUsername;
		receiveReq.send(params);
	}
}

function handleRetrieveUsername() {
	if (receiveReq.readyState == 4) {
		$('#ajax-msg-left').show();

		var returned=receiveReq.responseText;
		//for debug only

		var split=returned.split(":");

		if(split[0]==1) {
			document.getElementById('ajax-msg-left').innerHTML = split[1];
			$(':input','#frmRetrieve')
 			.not(':button, :submit, :reset, :hidden')
 			.val('')
			$('#formContainer').hide();
		}
		else {
			window.scrollTo(0,0);
			document.getElementById('ajax-msg-left').innerHTML = split[1];
		}
		document.getElementById('ajax-msg-left').innerHTML = split[1];
	}
}


/*END USER FUNCTIONS */


/* Contact Webmaster */

function processWebRequest(d) {
	if (receiveReq.readyState == 4 || receiveReq.readyState == 0) {
    var params=d;
		url='webmaster/processRequest';
		receiveReq.open('POST',url, true);
		receiveReq.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		receiveReq.setRequestHeader("Content-length", params.length);
		receiveReq.setRequestHeader("Connection", "close");
		receiveReq.onreadystatechange = handleProcessWebRequest;
		receiveReq.send(params);
	}
}

function handleProcessWebRequest() {
	if (receiveReq.readyState == 4) {
		var returned=receiveReq.responseText;
		//for debug only
		var split=returned.split(":");
		$('#ajax-msg-left').show();
		if(split[0] != 1)
			window.scrollTo(0,0);
		else {
			$(':input','#frmWebmaster')
 			.not(':button, :submit, :reset, :hidden')
 			.val('')
 			.removeAttr('checked')
 			.removeAttr('selected');
		}
		document.getElementById('ajax-msg-left').innerHTML = split[1];
	}
}

/*End Contact Webmaster */

/* Manage Profile */
function activateImage(i) {
	if (receiveReq.readyState == 4 || receiveReq.readyState == 0) {

    var params="&actImage="+i;

		url='profile/changeImage';
		receiveReq.open('POST',url, true);
		receiveReq.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		receiveReq.setRequestHeader("Content-length", params.length);
		receiveReq.setRequestHeader("Connection", "close");
		receiveReq.onreadystatechange = handleActivateImage;
		receiveReq.send(params);
	}
}

function handleActivateImage() {
	if (receiveReq.readyState == 4) {
		var returned=receiveReq.responseText;
		if(returned==1)
			window.location='profile';
		//document.getElementById('ajax-msg-left').innerHTML = returned;
	}
}

/* End Manage Profile */

/* Module:  Manage Users */
function bulkUserActivation(mode) {
	if (receiveReq.readyState == 4 || receiveReq.readyState == 0) {
		var m=mode;
		var list=getSelectedCheckboxValues('selUser');
		list = list.slice(0, -1);

    var params="&userlist="+list+'&mode='+m;

		url='mod_users/bulkActions';
		receiveReq.open('POST',url, true);
		receiveReq.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		receiveReq.setRequestHeader("Content-length", params.length);
		receiveReq.setRequestHeader("Connection", "close");
		receiveReq.onreadystatechange = handleBulkUserActivation;
		receiveReq.send(params);
	}
}

function handleBulkUserActivation() {
	if (receiveReq.readyState == 4) {
		var returned=receiveReq.responseText;
		var split=returned.split(":");
		$('#ajax-msg-left').show();
		document.getElementById('ajax-msg-left').innerHTML = split[1];

		if(split[0]==1) {
			toggleCheckboxes(document.frmUserStatus.selUser, false);
			$("#mode").val("choose");
			setTimeout("window.location.reload();",3000);

		}
	}
}

function bulkUserDelete() {
	if (receiveReq.readyState == 4 || receiveReq.readyState == 0) {
		var m="delete";
		var list=getSelectedCheckboxValues('selUser');
		list = list.slice(0, -1);

    var params="&userlist="+list+'&mode='+m;

		url='mod_users/bulkActions';
		receiveReq.open('POST',url, true);
		receiveReq.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		receiveReq.setRequestHeader("Content-length", params.length);
		receiveReq.setRequestHeader("Connection", "close");
		receiveReq.onreadystatechange = handleBulkUserDelete;
		receiveReq.send(params);
	}
}

function handleBulkUserDelete() {
	if (receiveReq.readyState == 4) {
		var returned=receiveReq.responseText;
		var split=returned.split(":");
		$('#ajax-msg-left').show();
		document.getElementById('ajax-msg-left').innerHTML = split[1];

		if(split[0]==1) {
			toggleCheckboxes(document.frmUserStatus.selUser, false);
			$("#mode").val("choose");
			setTimeout("window.location.reload();",3000);

		}
	}
}

function savePermissions(uid) {
	if (receiveReq.readyState == 4 || receiveReq.readyState == 0) {
		var list='';
		$('input:checkbox').each(function(i) {
			if(this.checked)
				list +=this.id+':yes|';
			else
				list +=this.id+':no|';
		});
		var level=$('#level').val();
		var adminnotes=$('#admin_notes').val();
		var m='save';
    var params="&permlist="+list+'&mode='+m+'&uid='+uid+'&level='+level+'&adminnotes='+adminnotes;
		url='../save_permissions';
		receiveReq.open('POST',url, true);
		receiveReq.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		receiveReq.setRequestHeader("Content-length", params.length);
		receiveReq.setRequestHeader("Connection", "close");
		receiveReq.onreadystatechange = handleSavePermissions;
		receiveReq.send(params);
	}
}

function handleSavePermissions() {
	if (receiveReq.readyState == 4) {
		var returned=receiveReq.responseText;
		var split=returned.split(":");
		window.scrollTo(0,0);
		//$('#ajax-msg-left').show();
		set_cookie('msg',split[1]);
		//document.getElementById('ajax-msg-left').innerHTML = split[1];
		window.location='../../mod_users';
	}
}


/* End Module: Manage Users */

/* Media Module */
function viewGallery(gal) {
	if (receiveReq.readyState == 4 || receiveReq.readyState == 0) {
		var g=gal;
		var params="&mode=gallery"+"&gallery="+g;

		url='mod_media/gallery';
		receiveReq.open('POST',url, true);
		receiveReq.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		receiveReq.setRequestHeader("Content-length", params.length);
		receiveReq.setRequestHeader("Connection", "close");
		receiveReq.onreadystatechange = handleViewGallery;
		receiveReq.send(params);
	}
}

function handleViewGallery() {
	if (receiveReq.readyState == 4) {
		var returned=receiveReq.responseText;
		$('#ajax-2').show();
		document.getElementById('ajax-2').innerHTML = returned;
	}
}
/* End Media Module */

/* Stories Module */
function saveStories(list,mode) {
	if (receiveReq.readyState == 4 || receiveReq.readyState == 0) {
		var params;
		if(list.length>0) {
			if(mode=='approve')
				params="&list="+list+'&mode='+mode;
			else
				params ='&del_list='+list+'&mode='+mode;
		}
		url='../../mod_stories/saveStories';
		receiveReq.open('POST',url, true);
		receiveReq.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		receiveReq.setRequestHeader("Content-length", params.length);
		receiveReq.setRequestHeader("Connection", "close");
		receiveReq.onreadystatechange = handleSaveStories;
		receiveReq.send(params);
	}
}

function handleSaveStories() {
	if (receiveReq.readyState == 4) {
		var returned=receiveReq.responseText;
		window.scrollTo(0,0);
		document.getElementById('ajax-msg-left').innerHTML = returned;
		setTimeout("window.location='/admin/mod_stories/index/0';",2000);
		//setTimeout("window.location.reload();",2000);
	}
}

function filterStories(v) {
	if (receiveReq.readyState == 4 || receiveReq.readyState == 0) {
		var params="&filter="+v;
		url='../filterStories';
		receiveReq.open('POST',url, true);
		receiveReq.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		receiveReq.setRequestHeader("Content-length", params.length);
		receiveReq.setRequestHeader("Connection", "close");
		receiveReq.onreadystatechange = handleFilterStories;
		receiveReq.send(params);
	}
}
function handleFilterStories() {
	if (receiveReq.readyState == 4) {
		var returned=receiveReq.responseText;
		setTimeout("window.location.reload();",2000);
	}
}

function storyPages(v) {
	if (receiveReq.readyState == 4 || receiveReq.readyState == 0) {

		if(v=='all')
			var params="&perpage="+v;
		else
			var params="&perpage="+parseInt(v);

		var url = location.pathname;
		var portion=url.split('/');
		if(portion.length>3)
			url="../storyPages";
		else
			url="./mod_stories/storyPages";

		receiveReq.open('POST',url, true);
		receiveReq.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		receiveReq.setRequestHeader("Content-length", params.length);
		receiveReq.setRequestHeader("Connection", "close");
		receiveReq.onreadystatechange = handleStoryPages;
		receiveReq.send(params);
	}
}

function handleStoryPages() {
	if (receiveReq.readyState == 4) {
		var returned=receiveReq.responseText;
		window.location="./0";
	}
}

function changeMode(mode) {
	m=mode;
	if (receiveReq.readyState == 4 || receiveReq.readyState == 0) {
		var params='&mode='+m;
		var url="../change_mode";
		receiveReq.open('POST',url, true);
		receiveReq.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		receiveReq.setRequestHeader("Content-length", params.length);
		receiveReq.setRequestHeader("Connection", "close");
		receiveReq.onreadystatechange = handleChangeMode;
		receiveReq.send(params);
	}
}

function handleChangeMode() {
	if (receiveReq.readyState == 4) {
		var returned=receiveReq.responseText;
		$('#ajax-mode').show();
		//document.getElementById('ajax-mode').innerHTML = returned;
		window.location="./0";
	}

}

/* End Stories Module */


/* Begin News Module */
function saveNewsArticle(data) {
		if (receiveReq.readyState == 4 || receiveReq.readyState == 0) {
		var params=data;
		url="save_article";

		receiveReq.open('POST',url, true);
		receiveReq.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		receiveReq.setRequestHeader("Content-length", params.length);
		receiveReq.setRequestHeader("Connection", "close");
		receiveReq.onreadystatechange = handleSaveNewsArticle;
		receiveReq.send(params);
	}
}

function handleSaveNewsArticle() {
	if (receiveReq.readyState == 4) {
		var returned=receiveReq.responseText;
		var split=returned.split(":");
		$('#ajax-msg-left').show();
		var msg=split[1];
		if(split[0]==1) {
			window.scrollTo(0,0);
			document.getElementById('ajax-msg-left').innerHTML = split[1];
			setTimeout("window.location='../mod_news/index/0';",5000);
		}
		else {
			window.scrollTo(0,0);
			document.getElementById('ajax-msg-left').innerHTML = split[1];
		}
	}
}

function deleteNews(list) {
if (receiveReq.readyState == 4 || receiveReq.readyState == 0) {
		var params="&list="+list;
		url="/admin/mod_news/delete_news";
		receiveReq.open('POST',url, true);
		receiveReq.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		receiveReq.setRequestHeader("Content-length", params.length);
		receiveReq.setRequestHeader("Connection", "close");
		receiveReq.onreadystatechange = handleDeleteNews;
		receiveReq.send(params);
	}
}

function handleDeleteNews() {
	if (receiveReq.readyState == 4) {

		var returned=receiveReq.responseText;
		var split=returned.split(":");
		$('#ajax-msg-left').show();
		if(split[0]==1) {
			set_cookie('msg',split[1]);
			window.location.reload();
		}
		else {
			window.scrollTo(0,0);
			document.getElementById('ajax-msg-left').innerHTML = split[1];
		}
	}
}

function newsPages(v) {
	if (receiveReq.readyState == 4 || receiveReq.readyState == 0) {
		if(v=='all')
			var params="&perpage="+v;
		else
			var params="&perpage="+parseInt(v);
		url='../newsPages';
		receiveReq.open('POST',url, true);
		receiveReq.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		receiveReq.setRequestHeader("Content-length", params.length);
		receiveReq.setRequestHeader("Connection", "close");
		receiveReq.onreadystatechange = handleNewsPages;
		receiveReq.send(params);
	}
}

function handleNewsPages() {
	if (receiveReq.readyState == 4) {
		var returned=receiveReq.responseText;
		window.location="../index/0";
		//window.location.reload();
	}
}

/* End News Module */
/* Begin Calendar Module */

function updateStaticPreview(l,u) {
if (receiveReq.readyState == 4 || receiveReq.readyState == 0) {
		var params;
		var link=l;
		if(link != '')
			params='&link='+encodeURI(escape(link));
		else {
			var link=$('#map_image').val();
			params='&link-'+encodeURI(escape(link));
		}
		url=u;
		receiveReq.open('POST',url, true);
		receiveReq.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		receiveReq.setRequestHeader("Content-length", params.length);
		receiveReq.setRequestHeader("Connection", "close");
		receiveReq.onreadystatechange = handleUpdateStaticPreview;
		receiveReq.send(params);
	}
}

function handleUpdateStaticPreview() {
	if (receiveReq.readyState == 4) {
		var returned=receiveReq.responseText;
		$('#ajax-2').show();
		document.getElementById('ajax-2').innerHTML = returned;
	}
}


function changeCalMode(val) {
	if (receiveReq.readyState == 4 || receiveReq.readyState == 0) {
		var m=val;
		var uri=parseUri (window.location)
		var str=uri['path'];
		var uri_arr=str.split('/');
		params='&mode='+m;
		if(uri_arr.length > 4)
			url='../../change_cal_mode';
		else
			url='../mod_calendar/change_cal_mode';
		receiveReq.open('POST',url, true);
		receiveReq.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		receiveReq.setRequestHeader("Content-length", params.length);
		receiveReq.setRequestHeader("Connection", "close");
		receiveReq.onreadystatechange = handleChangeCalMode;
		receiveReq.send(params);
	}
}

function handleChangeCalMode() {
	if (receiveReq.readyState == 4) {
		var returned=receiveReq.responseText;
		$('#ajax-msg-left').show();
		document.getElementById('ajax-msg-left').innerHTML = returned;
		setTimeout("window.location.reload();",2000);
	}
}

function saveEvent(d,u,mode) {
	if (receiveReq.readyState == 4 || receiveReq.readyState == 0) {
		params=d;
		var url=u;

		receiveReq.open('POST',url, true);
		receiveReq.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		receiveReq.setRequestHeader("Content-length", params.length);
		receiveReq.setRequestHeader("Connection", "close");
		if(mode=='add')
			receiveReq.onreadystatechange = handleSaveNewEvent;
		else
			receiveReq.onreadystatechange = handleSaveOldEvent;
		receiveReq.send(params);
	}
}

function handleSaveOldEvent() {
	if (receiveReq.readyState == 4) {
		var returned=receiveReq.responseText;
		var split=returned.split(":");
		$('#ajax-msg-left').show();
		if(split[0]==1) {
			window.scrollTo(0,0);
			document.getElementById('ajax-msg-left').innerHTML = split[1];
			setTimeout("window.location.reload();",5000);
		}
		else {
			window.scrollTo(0,0);
			document.getElementById('ajax-msg-left').innerHTML = split[1];
		}

	}
}

function handleSaveNewEvent() {
	if (receiveReq.readyState == 4) {
		var d = new Date();
		var mon1 = d.getMonth();
		mon=parseInt(mon1+1);
		if(mon < 10)
			curr_month=pad(mon,2);
		else
			curr_month=mon;
		var curr_year = d.getFullYear();
		var returned=receiveReq.responseText;
		var reloadurl="../mod_calendar/display/"+curr_year+"/"+curr_month;
		var split=returned.split(":");
		$('#ajax-msg-left').show();
		if(split[0]==1) {
			window.scrollTo(0,0);
			document.getElementById('ajax-msg-left').innerHTML = split[1];
			window.location=reloadurl;
		}
		else {
			window.scrollTo(0,0);
			document.getElementById('ajax-msg-left').innerHTML = split[1];
		}

	}
}


/* End Calendar Module */

/* Shopping Module */

/* End Shopping Module */

/* Edit Content */

function getSub(cid) {
	if (receiveReq.readyState == 4 || receiveReq.readyState == 0) {
		var params="&cid="+cid;

		var url="./content_edit/hasSubcontent";

		receiveReq.open('POST',url, true);
		receiveReq.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		receiveReq.setRequestHeader("Content-length", params.length);
		receiveReq.setRequestHeader("Connection", "close");
		receiveReq.onreadystatechange = handleGetSub;
		receiveReq.send(params);
	}
}

function handleGetSub() {
	if (receiveReq.readyState == 4) {
		var returned=receiveReq.responseText;
		$('#subcontent').show();
		document.getElementById('subcontent').innerHTML = returned;
		if(returned != 0) {
			variableWidthEditor(800);
			$('#sub').hide();
			$('#sid').val('');
		}

		$('#ajax-loading').hide();

	}
}

function getSubContent(sid) {
	if (receiveReq.readyState == 4 || receiveReq.readyState == 0) {
		var params="&sid="+sid;

		var url="./content_edit/subContent";

		receiveReq.open('POST',url, true);
		receiveReq.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		receiveReq.setRequestHeader("Content-length", params.length);
		receiveReq.setRequestHeader("Connection", "close");
		receiveReq.onreadystatechange = handleGetSubContent;
		receiveReq.send(params);
	}
}

function handleGetSubContent() {
	if (receiveReq.readyState == 4) {
		var returned=receiveReq.responseText;
		$('#sub').show();
		document.getElementById('sub').innerHTML = returned;
		variableWidthEditor(800);
		$('#ajax-loading').hide();

	}
}


function saveContent(data) {
	if (receiveReq.readyState == 4 || receiveReq.readyState == 0) {
		var params=data;

		var url="./content_edit/saveCon";

		receiveReq.open('POST',url, true);
		receiveReq.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		receiveReq.setRequestHeader("Content-length", params.length);
		receiveReq.setRequestHeader("Connection", "close");
		receiveReq.onreadystatechange = handleSaveContent;
		receiveReq.send(params);
	}
}

function handleSaveContent() {
	if (receiveReq.readyState == 4) {
		var returned=receiveReq.responseText;
		var split=returned.split(":");
		window.scrollTo(0,0);
		$('#ajax-msg-left').show();
		document.getElementById('ajax-msg-left').innerHTML = split[1];

		if(split[0]==1) {
			set_cookie('msg',split[1],1);
			setTimeout("window.location.reload();",5000);
		}
	}
}

function saveGenSettings(data) {
	if (receiveReq.readyState == 4 || receiveReq.readyState == 0) {
		var params=data;
		var url="./save_gen_settings";

		receiveReq.open('POST',url, true);
		receiveReq.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		receiveReq.setRequestHeader("Content-length", params.length);
		receiveReq.setRequestHeader("Connection", "close");
		receiveReq.onreadystatechange = handleSaveGenSettings;
		receiveReq.send(params);
	}
}

function handleSaveGenSettings() {
	if (receiveReq.readyState == 4) {
		var returned=receiveReq.responseText;
		var split=returned.split(":");
		window.scrollTo(0,0);
		$('#ajax-msg-left').show();
		document.getElementById('ajax-msg-left').innerHTML = split[1];

		if(split[0]==1) {
			set_cookie('msg',split[1],1);
			setTimeout("window.location.reload();",5000);
		}
	}
}

function saveEmailSettings(data) {
	if (receiveReq.readyState == 4 || receiveReq.readyState == 0) {
		var params=data;
		var url="./save_email_settings";

		receiveReq.open('POST',url, true);
		receiveReq.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		receiveReq.setRequestHeader("Content-length", params.length);
		receiveReq.setRequestHeader("Connection", "close");
		receiveReq.onreadystatechange = handleSaveEmailSettings;
		receiveReq.send(params);
	}
}

function handleSaveEmailSettings() {
	if (receiveReq.readyState == 4) {
		var returned=receiveReq.responseText;
		var split=returned.split(":");
		window.scrollTo(0,0);
		$('#ajax-msg-left').show();
		document.getElementById('ajax-msg-left').innerHTML = split[1];

		if(split[0]==1) {
			set_cookie('msg',split[1],1);
			setTimeout("window.location.reload();",5000);
		}
	}
}

/* End Edit Content */

/* Front Page Announcement Editing */
function saveAnnouncements(data) {
	if (receiveReq.readyState == 4 || receiveReq.readyState == 0) {
		var params=data;
		var url="./home/save_announcements";

		receiveReq.open('POST',url, true);
		receiveReq.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		receiveReq.setRequestHeader("Content-length", params.length);
		receiveReq.setRequestHeader("Connection", "close");
		receiveReq.onreadystatechange = handleSaveAnnouncements;
		receiveReq.send(params);
	}
}

function handleSaveAnnouncements() {
	if (receiveReq.readyState == 4) {
		var returned=receiveReq.responseText;
		var split=returned.split(":");
		window.scrollTo(0,0);
		$('#ajax-msg-left').show();
		document.getElementById('ajax-msg-left').innerHTML = split[1];
		if(split[0]==1) {

			set_cookie('msg',split[1],1);
			$("#ajax2").hide();
			setTimeout("window.location.reload();",5000);
		}
	}
}

/* End Front Page Announcements Editing */

/* Validation */
function validateLogin() {

	clearTimeout(cycleVal);
	var user=$('#user').val();
	var pass=$('#pass').val();
	userFound(user);

	if(userfound==true) {
		$('#req_user').hide();
		$('#val_user').show();
		userfound=false;
	}
	else {
		$('#req_user').show();
		$('#val_user').hide();
	}

	if(pass.length > 0) {
		$('#req_pass').hide();
		$('#val_pass').show();
	}
	else {
		$('#req_pass').show();
		$('#val_pass').hide();
	}

	cycleVal=setTimeout("validateLogin();",2000);
}

function validateRegistration() {

	clearTimeout(cycleVal);
	var user=$('#user').val();
	var pass=$('#pass').val();
	var pass2=$('#pass2').val();
	var first_name=$('#first_name').val();
	var last_name=$('#last_name').val();
	var address1=$('#address1').val();
	var city=$('#city').val();

	var state=$('#state').val();
	var zip=$('#zip').val();
	var phone=$('#phone').val();
	var email=$('#email').val();
	var pStrength=testPassword(pass);

	userAvailable(user);


	if(userfound==false && isValidUsername(user)) {
		$('#req_user').hide();
		$('#val_user').show();
		userfound=false;
	}
	else {
		$('#req_user').show();
		$('#val_user').hide();
	}

	if(pass.length > 0 && pass2.length > 0 && passwordCompare(pass,pass2)) {
		$('#req_pass').hide();
		$('#val_pass').show();
		$('#req_pass2').hide();
		$('#val_pass2').show();
	}
	else {
		$('#req_pass').show();
		$('#val_pass').hide();
		$('#req_pass2').show();
		$('#val_pass2').hide();
	}

	if(first_name != '') {
		$('#req_first_name').hide();
		$('#val_first_name').show();
	}
	else {
		$('#req_first_name').show();
		$('#val_first_name').hide();
	}

	if(last_name != '') {
		$('#req_last_name').hide();
		$('#val_last_name').show();
	}
	else {
		$('#req_last_name').show();
		$('#val_last_name').hide();
	}

	if(address1 != '') {
		$('#req_address1').hide();
		$('#val_address1').show();
	}
	else {
		$('#req_address1').show();
		$('#val_address1').hide();
	}

	if(city != '') {
		$('#req_city').hide();
		$('#val_city').show();
	}
	else {
		$('#req_city').show();
		$('#val_city').hide();
	}

	if(state != '-') {
		$('#req_state').hide();
		$('#val_state').show();
	}
	else {
		$('#req_state').show();
		$('#val_state').hide();
	}

	if(zip != '') {
		$('#req_zip').hide();
		$('#val_zip').show();
	}
	else {
		$('#req_zip').show();
		$('#val_zip').hide();
	}

	if(phone != '') {
		$('#req_phone').hide();
		$('#val_phone').show();
	}
	else {
		$('#req_phone').show();
		$('#val_phone').hide();
	}

	if(isValidEmail(email)) {
		$('#req_email').hide();
		$('#val_email').show();
	}
	else {
		$('#req_email').show();
		$('#val_email').hide();
	}
	cycleVal=setTimeout("validateRegistration();",3000);

}

function validateProfile() {
	clearTimeout(cycleVal);
	var pass=$('#pass').val();
	var pass2=$('#pass2').val();
	var first_name=$('#first_name').val();
	var last_name=$('#last_name').val();
	var address1=$('#address1').val();
	var city=$('#city').val();
	var state=$('#state').val();
	var zip=$('#zip').val();
	var phone=$('#phone').val();
	var email=$('#email').val();
	if(pass != '') {
		var pStrength=testPassword(pass);

		if(pass.length > 0 && pass2.length > 0 && passwordCompare(pass,pass2)) {
			$('#req_pass').hide();
			$('#val_pass').show();
			$('#req_pass2').hide();
			$('#val_pass2').show();
		}
		else {
			$('#req_pass').show();
			$('#val_pass').hide();
			$('#req_pass2').show();
			$('#val_pass2').hide();
		}
	}
	if(first_name != '') {
		$('#req_first_name').hide();
		$('#val_first_name').show();
	}
	else {
		$('#req_first_name').show();
		$('#val_first_name').hide();
	}

	if(last_name != '') {
		$('#req_last_name').hide();
		$('#val_last_name').show();
	}
	else {
		$('#req_last_name').show();
		$('#val_last_name').hide();
	}

	if(address1 != '') {
		$('#req_address1').hide();
		$('#val_address1').show();
	}
	else {
		$('#req_address1').show();
		$('#val_address1').hide();
	}

	if(city != '') {
		$('#req_city').hide();
		$('#val_city').show();
	}
	else {
		$('#req_city').show();
		$('#val_city').hide();
	}

	if(state != '-') {
		$('#req_state').hide();
		$('#val_state').show();
	}
	else {
		$('#req_state').show();
		$('#val_state').hide();
	}

	if(zip != '') {
		$('#req_zip').hide();
		$('#val_zip').show();
	}
	else {
		$('#req_zip').show();
		$('#val_zip').hide();
	}

	if(phone != '') {
		$('#req_phone').hide();
		$('#val_phone').show();
	}
	else {
		$('#req_phone').show();
		$('#val_phone').hide();
	}

	if(isValidEmail(email)) {
		$('#req_email').hide();
		$('#val_email').show();
	}
	else {
		$('#req_email').show();
		$('#val_email').hide();
	}
	cycleVal=setTimeout("validateProfile();",3000);

}


function validateContactWebmaster() {
	clearTimeout(cycleVal);
	var fname=$('#fname').val();
	var lname=$('#lname').val();
	var email=$('#email').val();
	var message=$('#message').val();
	if(fname != '') {
		$('#req_fname').hide();
		$('#val_fname').show();
	}
	else {
		$('#req_fname').show();
		$('#val_fname').hide();
	}

	if(lname != '') {
		$('#req_lname').hide();
		$('#val_lname').show();
	}
	else {
		$('#req_lname').show();
		$('#val_lname').hide();
	}

	if(isValidEmail(email)) {
		$('#req_email').hide();
		$('#val_email').show();
	}
	else {
		$('#req_email').show();
		$('#val_email').hide();
	}

	if(message != '') {
		$('#req_message').hide();
		$('#val_message').show();
	}
	else {
		$('#req_message').show();
		$('#val_message').hide();
	}
	cycleVal=setTimeout("validateContactWebmaster();",3000);

}

var dtCh= "/";
var minYear=1900;
var maxYear=2100;

function isInteger(s){
	var i;
    for (i = 0; i < s.length; i++){
        // Check that current character is number.
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) return false;
    }
    // All characters are numbers.
    return true;
}

function stripCharsInBag(s, bag){
	var i;
    var returnString = "";
    // Search through string's characters one by one.
    // If character is not in bag, append to returnString.
    for (i = 0; i < s.length; i++){
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }
    return returnString;
}

function daysInFebruary (year){
	// February has 29 days in any year evenly divisible by four,
    // EXCEPT for centurial years which are not also divisible by 400.
    return (((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28 );
}
function DaysArray(n) {
	for (var i = 1; i <= n; i++) {
		this[i] = 31
		if (i==4 || i==6 || i==9 || i==11) {this[i] = 30}
		if (i==2) {this[i] = 29}
   }
   return this
}

function isDate(dtStr){
	var daysInMonth = DaysArray(12)
	var pos1=dtStr.indexOf(dtCh)
	var pos2=dtStr.indexOf(dtCh,pos1+1)
	var strMonth=dtStr.substring(0,pos1)
	var strDay=dtStr.substring(pos1+1,pos2)
	var strYear=dtStr.substring(pos2+1)
	strYr=strYear
	if (strDay.charAt(0)=="0" && strDay.length>1) strDay=strDay.substring(1)
	if (strMonth.charAt(0)=="0" && strMonth.length>1) strMonth=strMonth.substring(1)
	for (var i = 1; i <= 3; i++) {
		if (strYr.charAt(0)=="0" && strYr.length>1) strYr=strYr.substring(1)
	}
	month=parseInt(strMonth)
	day=parseInt(strDay)
	year=parseInt(strYr)
	if (pos1==-1 || pos2==-1){
		alert("The date format should be : mm/dd/yyyy")
		return false
	}
	if (strMonth.length<1 || month<1 || month>12){
		alert("Please enter a valid month")
		return false
	}
	if (strDay.length<1 || day<1 || day>31 || (month==2 && day>daysInFebruary(year)) || day > daysInMonth[month]){
		alert("Please enter a valid day")
		return false
	}
	if (strYear.length != 4 || year==0 || year<minYear || year>maxYear){
		alert("Please enter a valid 4 digit year between "+minYear+" and "+maxYear)
		return false
	}
	if (dtStr.indexOf(dtCh,pos2+1)!=-1 || isInteger(stripCharsInBag(dtStr, dtCh))==false){
		alert("Please enter a valid date")
		return false
	}
return true
}

function TinyMCECount(el) {
	var count=tinyMCE.get(el).getContent().replace(/<[^>]+>/g, '').length;
	return count;
}

//Valid Email Address
function isValidEmail(str) {
   return (str.indexOf(".") > 2) && (str.indexOf("@") > 0);
}

function isValidUsername(str) {
    var illegalChars = /\W/; // allow letters, numbers, and underscores
    if(str.length < 5 || str.length >20)
    	return false;
    else if(illegalChars.test(str.value))
    	return false
    else
    	return true;
}

function passwordCompare(p1,p2) {
	if(p1==p2) {
		var msg="Your passwords do not match.  Please try again.";
		var urlCall="/registration/ajaxProcess";
		displayAjaxMsg(msg,urlCall);
		return true;
	}
	else
		return false;
}

function basicUnlimitedEditor() {
	tinyMCE.init({
		mode : "textareas",
		theme : "advanced",
		height: "300",
		width: "600",
		plugins : "safari,spellchecker,iespell,insertdatetime,paste",
		editor_selector : "unlimitededitor",
		// Theme options
		theme_advanced_buttons1 : "bold,italic,underline,iespell,|,copy,paste,pastetext,pasteword",
		theme_advanced_buttons2 : "",
		theme_advanced_buttons3: "",
		theme_advanced_toolbar_location : "top",
		theme_advanced_toolbar_align : "left",
		theme_advanced_statusbar_location : "bottom",
		force_br_newlines : true,
		theme_advanced_path : false
	});
}


function simpleEditor() {
	tinyMCE.init({
		mode : "textareas",
		theme : "advanced",
		height: "500",
		width: "800",
		editor_selector : "ta",
	theme_advanced_path : false,
	plugins : "safari,spellchecker,advimage,advlink,emotions,iespell,insertdatetime,preview,searchreplace,contextmenu,paste,xhtmlxtras,htmlcharcount",

	// Theme options
	theme_advanced_buttons1 : "bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,|,formatselect,fontselect,fontsizeselect,|,hr,advhr,emotions,iespell",
	theme_advanced_buttons2 : "cut,copy,paste,pastetext,pasteword,|,search,replace,|,bullist,numlist,|,outdent,indent,|,undo,redo,|,link,unlink,anchor,image,|,insertdate,inserttime,preview,code",
	theme_advanced_buttons3: "",
	theme_advanced_toolbar_location : "top",
	theme_advanced_toolbar_align : "left",
	theme_advanced_statusbar_location : "bottom",
	theme_advanced_resizing : true,
				file_browser_callback : function(field_name, url, type, win) {
     var w = window.open('https://pinkheartfunds.org/externals/explorer/elfinder2.php', null, 'width=600,height=500');
      // Save required parameters in global variables of window (not the best solution, can offer better?)
      // else you can pass parameters using GET and than parse them in elfinder.html
			w.tinymceFileField = field_name;
      w.tinymceFileWin = win;
  },
	convert_urls : false,
	//force text to be pasted as plaintext
			 setup: function(ed) {
        ed.onPaste.add( function(ed, e, o) {
            ed.execCommand('mcePasteText', true);
            return tinymce.dom.Event.cancel(e);
        });

    },
				htmlcharcount_maxchars: "3500"
				//htmlcharcount_maxchars: "20000"
				//REMEMBER TO CHANGE SIZE IN addComment function back to 3500 also
   		});
}


function adminEditor() {
	//alert('in');
	tinyMCE.init({

	// General options
	mode : "textareas",
	theme : "advanced",
	height: "500",
	editor_selector: "ta",
	editor_deselector : "plain",
	theme_advanced_path : false,
	plugins : "safari,spellchecker,advimage,advlink,emotions,iespell,insertdatetime,preview,searchreplace,contextmenu,paste,xhtmlxtras,htmlcharcount",

	// Theme options
	theme_advanced_buttons1 : "bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,|,formatselect,fontselect,fontsizeselect,|,hr,advhr,emotions,iespell",
	theme_advanced_buttons2 : "cut,copy,paste,pastetext,pasteword,|,search,replace,|,bullist,numlist,|,outdent,indent,|,undo,redo,|,link,unlink,anchor,image,|,insertdate,inserttime,preview,code",
	theme_advanced_buttons3: "",
	theme_advanced_toolbar_location : "top",
	theme_advanced_toolbar_align : "left",
	theme_advanced_statusbar_location : "bottom",
	theme_advanced_resizing : true,
	file_browser_callback : function(field_name, url, type, win) {
     var w = window.open('http://pinkheartfunds.org/externals/explorer/elfinder2.php', null, 'width=600,height=500');
      // Save required parameters in global variables of window (not the best solution, can offer better?)
      // else you can pass parameters using GET and than parse them in elfinder.html
			w.tinymceFileField = field_name;
      w.tinymceFileWin = win;
  },
  force_br_newlines : true,
  relative_urls: true,
	convert_urls: false,
	//Very important for imagemanager paths
	external_link_list_url : "http://pinkheartfunds.org/assets_protected/a_js/linklist.js",
	entity_encoding : "named"
});

}

function variableWidthEditor(w) {
	tinyMCE.init({
	// General options
	mode : "textareas",
	theme : "advanced",
	width: w,
	height: "500",
	editor_selector: "ta",
	editor_deselector : "plain",
	theme_advanced_path : false,
	plugins : "safari,spellchecker,advimage,advlink,emotions,iespell,insertdatetime,preview,searchreplace,contextmenu,paste,xhtmlxtras,htmlcharcount",

	// Theme options
	theme_advanced_buttons1 : "bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,|,formatselect,fontselect,fontsizeselect,|,hr,advhr,emotions,iespell",
	theme_advanced_buttons2 : "cut,copy,paste,pastetext,pasteword,|,search,replace,|,bullist,numlist,|,outdent,indent,|,undo,redo,|,link,unlink,anchor,image,|,insertdate,inserttime,preview,code",
	theme_advanced_buttons3: "",
	theme_advanced_toolbar_location : "top",
	theme_advanced_toolbar_align : "left",
	theme_advanced_statusbar_location : "bottom",
	theme_advanced_resizing : true,
	file_browser_callback : function(field_name, url, type, win) {
     var w = window.open('http://pinkheartfunds.org/externals/explorer/elfinder2.php', null, 'width=600,height=500');
      // Save required parameters in global variables of window (not the best solution, can offer better?)
      // else you can pass parameters using GET and than parse them in elfinder.html
			w.tinymceFileField = field_name;
      w.tinymceFileWin = win;
  },
  relative_urls: true,
	convert_urls: false,
	//Very important for imagemanager paths
	external_link_list_url : "http://pinkheartfunds.org/assets_protected/a_js/linklist.js",
	entity_encoding : "named",
	force_p_newlines : false,
	force_br_newlines : false
});

}



function dialogEditor(w) {
	tinyMCE.settings = {
	// General options
	mode : "none",
	theme : "advanced",
	height: "500",
	width: w,
	editor_selector: 'ta',
	editor_deselector : "plain",
	theme_advanced_path : false,
	plugins : "safari,spellchecker,advimage,advlink,emotions,iespell,insertdatetime,preview,searchreplace,contextmenu,paste,xhtmlxtras,htmlcharcount",

	// Theme options
	theme_advanced_buttons1 : "bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,|,formatselect,fontselect,fontsizeselect,|,hr,advhr,emotions,iespell",
	theme_advanced_buttons2 : "cut,copy,paste,pastetext,pasteword,|,search,replace,|,bullist,numlist,|,outdent,indent,|,undo,redo,|,link,unlink,anchor,image,|,insertdate,inserttime,preview,code",
	theme_advanced_buttons3: "",
	theme_advanced_toolbar_location : "top",
	theme_advanced_toolbar_align : "left",
	theme_advanced_statusbar_location : "bottom",
	theme_advanced_resizing : true,
	file_browser_callback : function(field_name, url, type, win) {
     var w = window.open('http://pinkheartfunds.org/externals/explorer/elfinder2.php', null, 'width=600,height=500');
      // Save required parameters in global variables of window (not the best solution, can offer better?)
      // else you can pass parameters using GET and than parse them in elfinder.html
			w.tinymceFileField = field_name;
      w.tinymceFileWin = win;
  },
	convert_urls: false,
	//Very important for imagemanager paths
	external_link_list_url : "http://pinkheartfunds.org/assets/a_js/linklist.js",
	entity_encoding : "named"
};
$('textarea.ta').each(function(index) {
              tinyMCE.execCommand('mceAddControl', true, $(this).attr('id'));
            });
}


/*END Validation */
function string_replace(haystack, find, sub) {
    return haystack.split(find).join(sub);
}


