/* -- new help popup function -- added 09/12/11 by Fritz -- intended to replace changeHelp (in admin.js) */
function showHelp(iHelp) {
	var parts = new Array();
	parts = iHelp.split(' +++ ');
   	helpTitle = parts[0];
   	helpBody = parts[1];
   	var content = '<h4>' + helpTitle + ':</h4><p>' + helpBody + '</p>';
    $("help").innerHTML = content;
	toggleBox($("help"), 1);
}
function toggleBox(szDivID, iState){ // 1 visible, 0 hidden
   	if(document.layers){ //NN4+
      		document.layers[szDivID].display = iState ? "block" : "none";
   	}else if($){ //gecko(NN6) + IE 5+
   		var obj = $(szDivID);
       	obj.style.display = iState ? "block" : "none";
  	 	}else if(document.all){	//IE 4
   		document.all[szDivID].style.display = iState ? "block" : "none";
   	}
}
function blindToggle(elm) {
	new Effect.toggle(elm, "blind");
}
function ckall(parent, pre, amount){
	var test = $(parent).checked;
	for(var i=1; i<= amount; i++){
		var ele = pre+'_'+i;
		if(test)
			$(ele).checked = true;
		else
			$(ele).checked = false;
	}
}
function moveBox(e, divId, add_to_top) {
	var posx = 0;
	var posy = 0;
	if (!e) var e = window.event;
	
	if (e.pageX || e.pageY){
		posx = e.pageX;
		posy = e.pageY;
	}else if (e.clientX || e.clientY){
		posx = e.clientX + document.body.scrollLeft + document.documentElement.scrollLeft;
		posy = e.clientY + document.body.scrollTop + document.documentElement.scrollTop;
	}
	$(divId).style.left = posx + 10 + 'px';
	if(add_to_top)$(divId).style.top = posy + add_to_top + 'px';
	else $(divId).style.top = posy + 'px';
}
function changeMessage(iMessage, divId) {
	var message = new Array();
	message[0]='Header +++ Detail';
	var parts = new Array();
	parts = message[iMessage].split(' +++ ');
	mTitle = parts[0]; mBody = parts[1];
	var content = '<h1>Message</h1><h2>' + mTitle + ':</h2><p>' + mBody + '</p>';
	$(divId).innerHTML = content;
	toggleBox(divId, 1);
}

function emptyAllOtherCheckbox(name,exclude){
	
	var arrCheckbox = document.getElementsByName(name);
	
	for (var i = 0; i < arrCheckbox.length; i++){
		if (arrCheckbox[i] != exclude){
			arrCheckbox[i].checked = false;
		}
	}
}

function toggleUserAdvanceSearch(id){
	var div = $(id);
	if(div.style.display=="none") {
		$('advance_search').value = 'yes';
		div.style.display = "block";
	}
	else {
		$('advance_search').value = 'no';
		div.style.display = "none";
	}
}

function changeStatus(type,type_id, form_name){
	var oForm = document.forms[form_name];
	oForm.elements["change_id"].value = type_id.value;
	if(type_id.checked)oForm.elements["change_chk"].value = 1;
	else oForm.elements["change_chk"].value = 0;
	oForm.elements["act_type"].value = type;
	oForm.submit();
}

function submitForm(form_name){
	var oForm = document.forms[form_name];
	oForm.submit();
}

// Registry Form functions
var inputOldValue, focusThis, inArray;
var inputArray = ['First Name (required)', 'Middle Name', 'Last Name (required)', 'Street Address (required)', 'Street Address', 'Apartment, Suite, etc.', 'City (required)', 'City', 'State (required)', 'State', 'Postal Code (required)', 'Postal Code', 'Phone Number (required)', 'Phone Number', 'Email Address', 'Date of Birth - mm/dd/yyyy (required)', 'Current Height - I.e., 38in OR 3ft 2in OR 112cm (required)', 'Current Weight - I.e., 52lbs OR 23kg OR 3.7st (required)', 'Email Address (required)', 'First and Last Name', 'Address Line 2', 'Years', 'Months'];
document.observe("dom:loaded", function() {
	if($('myForm')){
		$('myForm').getInputs('text').each(function(item) {
			if (inArray(item.value, inputArray)) { item.addClassName('pretext'); } 
			item.onfocus = function() { focusThis(this); };
		});
	};
});
function focusThis(id) {
	var thisInput = $(id);
	inputOldValue = thisInput.value;
	thisInput.removeClassName('pretext');
	if (inArray(inputOldValue, inputArray)) { thisInput.value = ''; }
	thisInput.observe('blur', function() {
		if (!inArray(inputOldValue, inputArray)) { inputOldValue = ''; }
		if (thisInput.value === '') { thisInput.value = inputOldValue; thisInput.addClassName('pretext'); }
	});
}
// FUNCTION TO REPLICATE PHP'S "in_array" METHOD
function inArray(what, where) {
	var a = false; where.each(function(item) { if (what == item) { a = true; return a; } }); return a;
}
function copyContactInfo() {
	var i;
	var copyArray = ['paddress','paddress2','pcity','pstate','pzip_code','pcountry','pphone','pemail'];
	var pasteArray = ['contact_address','contact_address2','contact_city','contact_state','contact_zip_code','contact_country','contact_phone','contact_email'];
	if ($('same_as').checked) {
		for (i=0; i < copyArray.length; i++) {
			if (inArray($(copyArray[i]).value, inputArray)) {
				$(pasteArray[i]).value = $(pasteArray[i]).value;
			} else {
				$(pasteArray[i]).value = $(copyArray[i]).value;
				$(pasteArray[i]).removeClassName('pretext');
			}
		}
	} else {
		for (i=0; i < pasteArray.length; i++) {
			$(pasteArray[i]).value = '';
		}
	}
}
function checkValues() {
	$('myForm').getInputs('text').each(function(item) { if (inArray(item.value, inputArray)) { item.value = ''; } });
	return true;
}
function fillValue(ckId, oF){
	x = $(ckId);
	if(oF == 0){
		x.value = 0;
	}else{
		x.value = 1;
	}
}
function checkRadioValue(radioName, radioValue) {
	if (getRadioValue('myForm', radioName) == radioValue) {
		$('yes_' + radioName).show();
	} else {
		$('yes_' + radioName).hide();
	}
}
function setStateBlind(ele, did){
	if(ele.value=='other')
		$(did).show();
	else
		$(did).hide();
}
function checkSelectValue(selectField, selectName, selectValue, inputField) {
	if (selectField.options[selectField.selectedIndex].text == selectValue) {
		$('yes_' + selectName).show();
	} else {
		$('yes_' + selectName).hide();
	}
	$(inputField).value = selectField.options[selectField.selectedIndex].text;
}
function getRadioValue(form, radioName) {
	var radioValue = Form.getInputs(form,'radio', radioName);
	if (radioValue.find(function(radio) { return radio.checked })) {
		return radioValue.find(function(radio) { return radio.checked }).value;
	} else {
		return false;
	}
}
function toggeleDiv(ckId, imgSrc ){
	x = $(ckId);
	xTxt = $(ckId+"_txt");
	
	if(x.style.display == 'none'){
		x.style.display = 'block';
		if(imgSrc == 'Y'){
			$(ckId+"_img").src = 'images/admin_icons/down_arrow.png';
		}
	}else{
		x.style.display = 'none';
		if(imgSrc == 'Y'){
			$(ckId+"_img").src = 'images/admin_icons/left_arrow.png';
		}
	}
}

function newUserProfile(){
	$('newUserProfile').style.display = 'block';
	$('addRelationships').style.display = 'none';
}
function cancelNewUserProfile(){
	$('newUserProfile').style.display = 'none';
}
function sendNewUserProfile(){
	new Ajax.Request('ajax_reqs.php',
	  {
		method:'post',
		evalScripts: true,
		parameters: $('newUserProfileForm').serialize(true),
		onSuccess: function(transport, json){
			var response = transport.responseText || "no response text";
			var word=response.split("|");
			
			$('newUserProfileMsg').style.display = 'block';
			
			if(word[0] == 'Success'){
				$('relationshipMsg').innerHTML       = word[0]+": "+word[1];
				$('relationshipMsg').style.display   = 'block';
				$("user_to_be_rel").value            = word[2];
				$("user_to_be_rel_id").value         = word[3];
				$("gaurdian_user").innerHTML         = word[2];
				$("dependent_user").innerHTML        = word[2];
				
				$('newUserProfile').style.display   = 'none';
				$('addRelationships').style.display = 'block';
			}
			else{
				$('newUserProfileMsg').innerHTML = "<div class='error'>"+word[0]+": "+word[1]+"</div>";
			}
		},
		onFailure: function(){ alert('Something went wrong ...') }
	  });
	return false;
}
function newAvatarWindow(user){
	$('newUserAvatar').style.display = 'block';
	$('newUserAvatar').innerHTML = '<iframe src ="admin_avatar.php?user_id='+ user +'" width="99%" height="350"><p>Your browser does not support iframes.</p></iframe>';
}

function closeAvatarWindow(imgSrc){
	parent.$( 'newUserAvatar' ).style.display='none';
	parent.$( 'avatar_img' ).src = imgSrc;
	parent.$( 'avatar_img' ).src = imgSrc; //dodging browser cache
}


function newGiftPremiumBox( title ){
	var d = new Date();
	var day = d.getDate();
	var mon = parseInt(d.getMonth())+1;
	var nmon = parseInt(d.getMonth())+2;
	var year = d.getFullYear();
	var today = mon+"/"+day+"/"+year;
	var nextmon = nmon+"/"+day+"/"+year;
	$('newGiftPremiumBox').style.display = 'block';
	$('box_title').innerHTML = title;
	$('gift_premium_id').value = '';
	$('premium').value = '';
	$('premium_cost').value = '';
	$('min_donation').value = '';
	$('max_donation').value = '';
	$('start_date').value = today;
	$('end_date').value = nextmon;
	$('action').value = 'new';
}
function validateGiftPremiumForm(form) {
	var valid;
	var errors;
	valid = 'yes';
	errors = '';
	if(form.premium.value=='') {
		errors = errors+'Premium field is requird, please provide that.<br />';
		form.premium.focus();
		valid = 'no';	
	}
	if(form.premium_cost.value!='') {
		if(isNaN(form.premium_cost.value) || form.premium_cost.value<0) {
			form.premium_cost.focus();
			errors = errors+'Please provide positive and numeric value for premium cost field.<br />';
			valid = 'no';
		}
	}
	if(form.min_donation.value=='') {
		form.min_donation.focus();
		errors = errors+'Minimum donation should be provided.<br />';
		valid = 'no';
	}
	if(isNaN(form.min_donation.value) || form.min_donation.value<0) {
		form.min_donation.focus();
		errors = errors+'Minimum donation amount should be numeric and positive value.<br />';
		valid = 'no';
	}
	if(form.max_donation.value!=''){
		if(isNaN(form.max_donation.value) || form.max_donation.value<0) {
			form.max_donation.focus();
			errors = errors+'Maximum donation amount should be numeric and positive value.<br />';
			valid = 'no';
		}
	}
	if(form.min_donation.value!='' && form.max_donation.value!='') {
		var mini = parseFloat(form.min_donation.value);
		var maxi = parseFloat(form.max_donation.value);
		if(mini > maxi) {
			errors = errors+'Minimum donation value should be less than maximum donation value.<br />';
			form.max_donation.focus();
			valid = 'no';
		}
	}
	if(form.start_date.value=='') {
		form.start_date.focus();
		errors = errors+'Please select start date for gift premium.<br />';
		valid = 'no';
	}
	if(form.end_date.value=='') {
		form.end_date.focus();
		errors = errors+'Please select end date for gift premium.<br />';
		valid = 'no';
	}
	if(valid=='no'){
		$( 'premiumfromerrors' ).style.display = 'block';
		$( 'premiumfromerrors' ).innerHTML = errors;
		return false;
	}
	
	return true;
}
function editGiftPremiumBox(title, id, premium, pcost, min_donate, max_donate, start_date, end_date) {
	$('box_title').innerHTML = title;
	$('newGiftPremiumBox').style.display = 'block';
	$('gift_premium_id').value = id;
	$('premium').value = premium;
	$('premium_cost').value = pcost;
	$('min_donation').value = min_donate;
	$('max_donation').value = max_donate;
	$('start_date').value = start_date;
	$('end_date').value = end_date;
	$('action').value = 'edit';
}
function closeGiftPremiumBox() {
	$('newGiftPremiumBox').style.display = 'none';	
	$('premiumfromerrors').style.display = 'none';
}

function newSlideShowWindow(title) {
	$('box_title').innerHTML = title;
	$('newSlideshowImageBox').style.display = 'block';
	$('action').value = 'new';
}

function editSlideShowWindow(title, imageid, imagetitle, imageurl) {
	$('box_title').innerHTML = title;
	$('newSlideshowImageBox').style.display = 'block';
	$('ssi_title').value = imagetitle;
	$('ssi_url').value = imageurl;
	$('ssi_id').value = imageid;
	$('action').value = 'edit';
}

function valideSlideShowImageForm(form) {
	if(form.ssi_title.value=='') {
		alert('Please provide image title');
		form.ssi_title.focus();
		return false;
	}
	else if(form.ssi_title.value.length>70) {
		alert('Title string length should be maximum 70 characters.');
		form.ssi_title.focus();
		return false;
	}
	if(form.ssi_url.value=='') {
		alert('Please provide image url');
		form.ssi_url.focus();
		return false;
	}
	else if(!isUrl(form.ssi_url.value)) {
		alert('Invalid or maleformed url.');
		form.ssi_url.focus();
		return false;
	}
	if(form.action.value=='new') {
		var ext = form.ssi_image.value.substr(-4, 4);
		if(form.ssi_image.value=='') {
			alert('Please select an image.');
			return false;
		}
		else if(ext!='.jpg' && ext!='jpeg' && ext!='.png' && ext!='.gif' ) {
			alert('Invalid file type. Allowed file extensions are jpeg, jpg, png, gif');
			return false;
		}
	}
	return true;
}
function closeSlideShowWindow() {
	$('newSlideshowImageBox').style.display = 'none';
	$('ssi_title').value = '';
	$('ssi_url').value = '';
	$('ssi_image').value = '';
	$('action').value = 'new';
}

function newHomeNewsWindow(title) {
	$('box_title').innerHTML = title;
	$('newHomeNewsBox').style.display = 'block';
	$('action').value = 'new';
}

function editHomeNewsWindow(title, newsId, newsTitle, newsText, newsLink) {
	$('box_title').innerHTML = title;
	$('newHomeNewsBox').style.display = 'block';
	$('news_id').value = newsId;
	$('news_title').value = newsTitle;
	$('news_text').value = newsText;
	$('news_link').value = newsLink;
	$('action').value = 'edit';
}

function valideHomeNewForm(form) {
	if(form.news_title.value=='') {
		alert("Please provide news title.");
		form.news_title.focus();
		return false;
	}
	if(form.news_text.value=='') {
		alert("Please provide news text.");
		form.news_text.focus();
		return false;
	}
	var theurl = form.news_link.value;
	if(theurl!=""){
		var RegExp = /^(([\w]+:)?\/\/)?(([\d\w]|%[a-fA-f\d]{2,2})+(:([\d\w]|%[a-fA-f\d]{2,2})+)?@)?([\d\w][-\d\w]{0,253}[\d\w]\.)+[\w]{2,4}(:[\d]+)?(\/([-+_~.\d\w]|%[a-fA-f\d]{2,2})*)*(\?(&?([-+_~.\d\w]|%[a-fA-f\d]{2,2})=?)*)?(#([-+_~.\d\w]|%[a-fA-f\d]{2,2})*)?$/;
	    if(RegExp.test(theurl) == false){ 
			alert("Please provide valid News Link.");
			form.news_link.focus();
			return false;
		}	
	}
	
	return true;
}

function closeHomeNewsWindow() {
	$('newHomeNewsBox').style.display = 'none';
	$('news_title').value = '';
	$('news_text').value = '';
	$('news_link').value = '';
	$('action').value = 'new';
}

function file_extension($filename){
    return end(explode(".", $filename));
}
function isUrl(url) {
	var regexp = /(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/
	return regexp.test(url);
}


function submitForm(formToSubmit){
	var oForm = document.forms[formToSubmit];
	oForm.submit();
}

String.prototype.trim = function() {
	return this.replace(/^\s+|\s+$/g,"");
}
String.prototype.ltrim = function() {
	return this.replace(/^\s+/,"");
}
String.prototype.rtrim = function() {
	return this.replace(/\s+$/,"");
}
function showHideOrgMA(){
	var form = $("myForm");
	var oVal;
	for(var i = 0; i < form.is_organization_info.length; i++){
		if(form.is_organization_info[i].checked)
			oVal = form.is_organization_info[i].value;
	}
	if(oVal==0){
		$('user_information').style.display = 'block';
		$('organization_info').style.display = 'none';
	}
	else if(oVal==1){
		$('user_information').style.display = 'none';
		$('organization_info').style.display = 'block';
	}
	else {
		$('user_information').style.display = 'block';
		$('organization_info').style.display = 'none';
	}
}
function showDiv(box){
	$(box).style.display = 'block'; 
}
function hideDiv(box){
	$(box).style.display = 'none'; 
}

// BELOW FOUR FUNCTIONS ARE BLOG SPECIFIC - FillDiv, closeCommentsDiv, checkTextAreaLength, checkInputLength
function checkTextAreaLength(control, maximum,title) 
{
	var length = control.value.length;
	if (length > maximum) 
	{
		control.value=control.value.substring(0,maximum);
		alert("Field : " + title + '\nPlease limit your text to ' + maximum +' characters. There are currently ' + length + '.');
		control.focus();
	}
}
function checkInputLength(control, maximum,title) 
{
	var length = control.value.length;
	if (length==0) 
	{
		control.focus();
		return "\nField : " + title + ' is a required field.'; 
	}
	return '';
}

oldValue = ' <a href="javascript:;" onclick="closeCommentsDiv(\'listComments1\')">[ close comments ]</a>';
function closeCommentsDiv(id)
{
	$(id).update('');
	valu = $("headerText").innerHTML;
	$("headerText").update(oldValue);
	oldValue = valu;
}
function FillDiv(id,postid,act,page,cid)
{
	url  = "myAjaxResponses.php";
	var msg = '';
	if(act=="add")
	{
		msg += checkInputLength($('comment_comment'), 500,'Comment');
		if(msg=="" && msg!=null)
			pars = $('frmComment').serialize(true);
		else
			alert(msg);
	}
	else
	{
		pars = "act=" + act + "&postid="+postid+"&page="+page+"&cid="+cid;
	}
	if(msg=="")
		var myAjax = new Ajax.Request(url, 
			{
				method: 'get', 
				parameters: pars,onCreate: function() {	$("commentsProgressBar").show();},
				onComplete: function(originalRequest)
								{
									if(page==0)
									{
										valu = $("headerText").innerHTML;
										$("headerText").update(oldValue);
										oldValue = valu;
									}
									$(id).update(originalRequest.responseText);
									if((act=="add") || (act=="delete"))
										var myajax = new Ajax.Updater('CommentCount',url, {parameters: {"act":"getCount","postid":postid } });
									$("commentsProgressBar").hide();
								}
			});
}

// Use to toggle the term suggestion form on glossary page
function toggleTermSuggestionForm() {
	var div = $('term_suggestion_form_div');
	$('glossary_term_response').update('');
	$('term_suggestion_form').reset();
	if(div.style.display=='none'){ Effect.BlindDown('term_suggestion_form_div'); }
	else { Effect.BlindUp('term_suggestion_form_div'); }
}

function suggestGlossaryTerm() {
	var name = $('term_suggested_by_name').value;
	var term = $('suggested_term').value;
	var mail = $('term_suggested_by_email').value;

	var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	var errors = '';
	if(name=='')
		errors = errors+'Please provide your full name.<br />';
	if(term=='')
		errors = errors+'Please enter the glossary term you want to suggest.<br />';
	if(mail=='')
		errors = errors+'Please provide your email address.<br />';
	else if(!filter.test(mail))
		errors = errors+'Please provide a valid email address.<br />';
	
	if(errors!='') {
		$('glossary_term_response').update('<div class=\"error\">'+errors+'</div>');
		Effect.BlindDown('glossary_term_response');
	}
	else {
		 var url = 'ajax/ajax-glossary-term.php';
		 new Ajax.Request(url, 
		 {
		 	method:'post',
			evalScripts: true,
			parameters: 'suggest_glossary_term=yes&term_suggested_by_name='+name+"&suggested_term="+term+"&term_suggested_by_email="+mail,
			onSuccess: function(transport, json){
				var response = transport.responseText || "no response text";
				$("glossary_term_response").innerHTML = response;
				Effect.BlindDown("glossary_term_response");
				setTimeout(function(){Effect.BlindUp("glossary_term_response");Effect.BlindUp("term_suggestion_form_div");}, 3000);
				$('term_suggestion_form').reset();
			},
			onFailure: function(){ 
				$("glossary_term_response").innerHTML = ('Something went wrong.');
				Effect.BlindDown("glossary_term_response");
			 }
		 });
	}
	
	return false;
}

// Use to toggle the blog suggestion form on blog page
function toggleSuggestBlogForm() {
	var div = $('suggest_blog_form_div');
	$('suggest_blog_response').update('');
	$('suggest_blog_form').reset();
	if(div.style.display=='none'){ Effect.BlindDown('suggest_blog_form_div'); }
	else { Effect.BlindUp('suggest_blog_form_div'); }
}
function suggestBlog(form) {
	var name = $('suggest_blog_name').value;
	var blog_url = $('suggest_blog_url').value;
	var mail = $('suggest_blog_email').value;

	var email_filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	var url_filter = /^(http|https|ftp)\:\/\/([a-zA-Z0-9\.\-]+(\:[a-zA-Z0-9\.&amp;%\$\-]+)*@)*((25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])|localhost|([a-zA-Z0-9\-]+\.)*[a-zA-Z0-9\-]+\.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{2}))(\:[0-9]+)*(\/($|[a-zA-Z0-9\.\,\?\'\\\+&amp;%\$#\=~_\-]+))*$/;
	
	var errors = '';
	
	if(name=='')
		errors = errors+'Please provide your full name.<br />';
	if(blog_url=='')
		errors = errors+'Please provide blog url you want to suggest.<br />';
	else if(!url_filter.test(blog_url))
		errors = errors+'Please provide a valid blog url.<br />';
	if(mail=='')
		errors = errors+'Please provide your email address.<br />';
	else if(!email_filter.test(mail))
		errors = errors+'Please provide a valid email address.<br />';
	
	if(errors!='') {
		$('suggest_blog_response').update('<div class=\"error\">'+errors+'</div>');
		Effect.BlindDown('suggest_blog_response');
	}
	else {
		var url = 'ajax/ajax-suggest-blog.php';
		 new Ajax.Request(url, 
		 {
		 	method:'post',
			evalScripts: true,
			parameters: 'suggest_blog=yes&suggest_blog_name='+name+"&suggest_blog_url="+blog_url+"&suggest_blog_email="+mail,
			onSuccess: function(transport, json){
				var response = transport.responseText || "no response text";
				$("suggest_blog_response").innerHTML = response;
				Effect.BlindDown("suggest_blog_response");
				setTimeout(function(){Effect.BlindUp("suggest_blog_response");Effect.BlindUp("suggest_blog_form_div");}, 3000);
				$('suggest_blog_form').reset();
			},
			onFailure: function(){ 
				$("suggest_blog_response").innerHTML = ('Something went wrong.');
				Effect.BlindDown("suggest_blog_response");
			 }
		 });
	}
		
	return false;
}
