/**********************************************************************************
* Purpose	: Contains function defenitions used commonly in the project.
* Author	: Vasanth B
* Page		: validate.js
* Date		: 02-04-2008
**********************************************************************************/

function createXMLHttpRequest()
{
	try {
		return new ActiveXObject("Msxml2.XMLHTTP"); 
	} 
	catch(e){
		try {
			return new ActiveXObject("Microsoft.XMLHTTP"); 
		}
		catch(e){
			try {
				return new XMLHttpRequest(); 
			} 
			catch(e){
				alert("XMLHttpRequest not Supported");
				return null;
			}
		}
	}
}

var xhReq = createXMLHttpRequest();

function fnJoin(frm,value)
{
	
	frm.joinhid.value=value;
	frm.submit();
}

function login_validate(frm,actionpage){
		var now = new Date();
		fixDate(now);
		now.setTime(now.getTime() + 31 * 24 * 60 * 60 * 1000);
		//alert(now.setTime(now.getTime() + 31 * 24 * 60 * 60 * 1000))
		var uname=document.login_form.uname.value;
		var password=document.login_form.password.value;
	if(document.getElementById('remember_me').checked == true){
		setCookie("uname", uname, now)
		setCookie("password", password, now)
		}
	else{
		deleteCookie("uname");
		deleteCookie("password");
	}
	frm.action = actionpage;
	frm.submit();
}

function validate(frm,actionpage)
{
	frm.action = actionpage;
	frm.submit();
}

checked=false;

/**********************************************************************************
* Purpose : Select all the records in the grid.
* Usage :
*		frm -> Name of the form.
**********************************************************************************/

function checkedAll(frm,chkbname)
{
	var len = frm.elements['chkb[]'].length;
	var count = 0;
	var i,j;
	if(chkbname!='')
	{
		if(!(frm.elements['chkb[]'].length))
			frm.elements['chkb[]'].checked = frm.elements[chkbname].checked;
		else
		{
			for(i=0; i<frm.elements['chkb[]'].length; i++)
			{
				frm.elements['chkb[]'][i].checked = frm.elements[chkbname].checked;
			}
		}
	}
	else
	{
		if(!(frm.elements['chkb[]'].length))
		{
			frm.elements['proj_checkbox'].checked=frm.elements['chkb[]'].checked;
		}
		else
		{
			for(j=0; j<len; j++)
			{
				if(frm.elements['chkb[]'][j].checked==true)
					count++;
			}
			for(k=0; k<len; k++)
			{
				if(frm.elements['chkb[]'][k].checked==false)
					count--;
			}
		}
		if(count==len)
			frm.elements['proj_checkbox'].checked = true;
		if(count < len)
			frm.elements['proj_checkbox'].checked = false;
	}
}//function checkedAll(frm)

function fnInsertRecord(frm,action)
{
		frm.projectid_hid.value=action;
		document.getElementById('tdescription').value = document.getElementById('tdesc').innerHTML;
		frm.submit();
}

// To Upload Project Updates Image.
function fnUploadImage(frm)
{
	frm.act.value="upload";
	frm.submit();
}


/**********************************************************************************
* Purpose : Delete the selected Records from the Database.
* Usage :
*		frm -> Name of the form from which records to be deleted.
**********************************************************************************/
function fnDeleteRecord(frm,msg)
{
	var len = frm.elements['chkb[]'].length;
	var flag =0;
	if(!(frm.elements['chkb[]'].length))
	{
		if(frm.elements['chkb[]'].checked == true)
			flag = 1;
	}
	else
	{
		for(i=0; i<len; i++)
		{
			if(frm.elements['chkb[]'][i].checked == true)
				flag = 1;
		}
	}
	if(flag == 1)
	{
		if(confirm(msg))
		{
			frm.DelSelectedRec.value='delete';
			frm.submit();
		}
	}
	else
		alert('Please select record(s) to delete');
}//function fnDeleteRecord(frm)

/**********************************************************************************
* Purpose : Update the selected Projects.
* Usage :
*		frm -> Name of the form from which records to be updated.
**********************************************************************************/
function fnUpdateFeaturedProjects(frm,msg)
{
	var len = frm.elements['chkb[]'].length;
//	alert(len);
	var flag =0;
	var projlen=0;
	if(!(frm.elements['chkb[]'].length))
	{
		if(frm.elements['chkb[]'].checked == true)
		{
			flag = 1;
			projlen++;
		}
	}
	else
	{
		for(i=0; i<len; i++)
		{
			if(frm.elements['chkb[]'][i].checked == true)
			{
				flag = 1;
				projlen++;
			}
			else if(frm.elements['chkb[]'][i].checked == false)
			{
				flag = 1;
			}
		}
	}
	if(projlen <= 8)
	{
		if(flag == 1)
		{
			if(confirm(msg))
			{
				frm.act.value='update';
				frm.submit();
			}
		}
		/*else
			alert('Please select record(s) to Update');*/
	}
	else
		alert("You cannot select more than 8 projects as featured projects");
}//function fnDeleteRecord(frm)

// To Delete Project Updates Image.
function fnDeleteImage(frm,phtid,pos)
{
	if(pos != 0)
	{
		if(confirm("Are you sure to delete the image?"))
		{
			frm.act.value="delete";
			frm.imgid_hid.value = phtid;
			frm.submit();
		}
	}
	else
	{
		alert("This is a featured image and cannot be deleted");
	}
}

function fnDeletePlanImage(frm,phtid)
{
	if(confirm("Are you sure to delete the image?"))
	{
		frm.act.value="delete";
		frm.prjid.value = phtid;
		frm.submit();
	}
}

/**********************************************************************************
* Purpose : To open popup window to upload the new image.
* Usage :
*		phtid -> Image Id of which user selected to change.
*		position -> Position of the photo selected to change.
**********************************************************************************/

function fnChangeProjImage(phtid,position)
{
	window.open('change.php?phtid='+phtid+"&pos="+position,'Fileupload','width=450,height=180,resizable=1,left=360,top=300');
}

function fnSubmitReview(frm)
{
	if(frm.elements['reviewchkb'].checked==false)
	{
		alert("Please select the checkbox and then submit");
		return;
	}
	frm.submitrev_hid.value="submit"
	frm.submit();

}

// Publish Submitted Update after Reviewing.
function fnPublishUpdate(frm)
{
	if(frm.elements['reviewchkbox'].checked==false)
	{
		alert("Please select the chechbox and publish");
		return;
	}
	frm.reviewed_hid.value="publish";
	frm.submit();
}

/**********************************************************************************
* Purpose : Validate the fields of the form.
* Usage :
*		frm -> Name of the form from.
**********************************************************************************/
function fnInsertFBFreq(frm)
{
	frm.statusupdateplan_hid.value = 'FBFInsert';
	frm.submit();
}

function fnCancel()
{
	window.history.back();
}

function fnShowDiv(divid)
{
	document.getElementById(divid).style.display='';
}
function fnHideDiv(divid)
{
	document.getElementById(divid).style.display='none';
}

function playSound()
{
	document.firstSound.play(); 
}
function pauseSound()
{
	document.firstSound.pause();
}
function stopSound()
{
	document.firstSound.stop();
}

function fnAddComments(frm,val,recid,prjid,URL)
{
	if(val == 'addstupdatecmt')
	{
		var cmttxt = frm.TXT_addcomments.value;
		var status = document.getElementById('vupdate_status').value;
		if(xhReq.readyState != 4 && xhReq.readyState != 0)
			return;
		if(recid == '0' && prjid !="")
			xhReq.open("GET",URL+"business_logic/AddRecord.php?action=AddCmt&txt="+cmttxt+"&status="+status+"&recid="+recid+"&prjid="+prjid,true);
		else
			xhReq.open("GET",URL+"business_logic/AddRecord.php?action=AddCmt&txt="+cmttxt+"&status="+status+"&recid="+recid,true);
		xhReq.onreadystatechange = fnResAddComments;
		xhReq.send(null);
	}
}

function fnResAddComments()
{
	if(xhReq.readyState != 4) { return; }
	var serverResponse = xhReq.responseText;
	var response = serverResponse.split("^^");
	document.getElementById('addstupdatecmt').innerHTML = response[0];
	document.getElementById('record').value=response[1];
	if(response[0] == 'Saved Successfully')
	{
		document.getElementById('STATUS').innerHTML = '<span class="label">Status * </span>';
		document.getElementById('CMT').innerHTML = '<span class="label">Comments * </span>';
	}
	else if(response[0] == 'Please Select Status')
	{
		document.getElementById('STATUS').innerHTML = '<span class="errorlabel">Status * </span>';
		document.getElementById('CMT').innerHTML = '<span class="label">Comments * </span>';
	}
	else if(response[0] == 'Please enter comments')
	{
		document.getElementById('STATUS').innerHTML = '<span class="label">Status * </span>';
		document.getElementById('CMT').innerHTML = '<span class="errorlabel">Comments * </span>';
	}
	else if(response[0] == 'Please input required fields')
	{
		document.getElementById('STATUS').innerHTML = '<span class="errorlabel">Status * </span>';
		document.getElementById('CMT').innerHTML = '<span class="errorlabel">Comments * </span>';
	}
}


function fnSubmitProject(frm,stage,pid)
{
	if(stage == 'submit')
		window.open("projectlog.php?stage="+stage+"&pid="+pid,"SubmitProject","width=570,height=280,resizable=1,scrollbars=1,left=330,top=300");
	else if(stage == 'endorse')
		window.open("projectlog.php?stage="+stage+"&pid="+pid,"EndorseProject","width=570,height=400,resizable=1,scrollbars=1,left=300,top=200");
	else if(stage == 'publish')
		window.open("projectlog.php?stage="+stage+"&pid="+pid,"PublishProject","width=570,height=450,resizable=1,scrollbars=1,left=300,top=150");
}

/*function submitForm() {
	updateRTEs(document.defineproj.elements['defproj[tdescription]'].value);
	alert("rte1 = " + document.defineproj.elements['defproj[tdescription]'].value);
	return true;
}*/

/**********************************************************************************
* Purpose : To change the active status of the selected user(s).
* Usage :
*		frm -> Name of the form from.
**********************************************************************************/
function fnUpdateActiveStatus(frm)
{
	var stch = document.getElementById('statuschanged').value;
	var len = frm.elements['achkb[]'].length;
	var flag =0;
	if(!(frm.elements['achkb[]'].length))
	{
		flag = 1;
	}
	else
	{
		for(i=0; i<len; i++)
		{
			if(frm.elements['achkb[]'][i].checked == true)
				flag = 1;
		}
	}
	if(flag && stch == 'set')
	{
		if(confirm("Are you sure to update the record?"))
		{
			frm.act.value='updatestatus';
			frm.submit();
		}
	}
	else
		alert('Please select record(s) to update active status');
}//function fnUpdateActiveStatus(frm)

// check whether user has trigged some action or not
function fnCheckboxTrigged(obj,org)
{
	var unchked = '';
	if(org == 'Yes')
	{
		if(obj.checked == false)
			unchked = 'set';
		else
			unchked = 'unset';
	}
	else if(org == 'No')
	{
		if(obj.checked == true)
			unchked = 'set';
		else
			unchked = 'unset';
	}
	if(unchked == 'set')
		document.getElementById('statuschanged').value = 'set';
	else if(unchked == 'unset')
		document.getElementById('statuschanged').value = '';
}

/**********************************************************************************
* Purpose : To search the user.
* Page	  : pcuser.php
* Usage :
*		frm -> Name of the form from.
**********************************************************************************/
function fnSearchUsers(frm)
{
	frm.act.value="search";
	frm.submit();
}

/**********************************************************************************
* Purpose : To delete the user.
* Page	  : pcuser.php
* Usage :
*		frm -> Name of the form from.
*		id  -> User Id 
**********************************************************************************/
function fnDeleteSingleRecord(frm,id)
{
	if(confirm("Are you sure to delete this project?"))
	{
		frm.act.value='delete';
		frm.recid.value=id;
		frm.submit();
	}
}

/**********************************************************************************
* Purpose : To insert/update details of the user.
* Page	  : add_user.php
* Usage :
*		frm -> Name of the form from.
*		type -> What action to perform [add/update]
**********************************************************************************/
function fnInsertUserDetails(frm,type)
{
	if(document.getElementById('radio1').checked)
		frm.vgender_hid.value = 'male';
	else if(document.getElementById('radio2').checked)
		frm.vgender_hid.value = 'female';
	else
		frm.vgender_hid.value = 'error';

	frm.act.value=type;
	frm.submit();
}

/**********************************************************************************
* Purpose : To post a comment by user for a particula project.
* Page	  : projectdetails.php
* Usage :
*		frm -> Name of the form from.
*		div -> Div name of post comment.
**********************************************************************************/
function fnPostComment(frm,div)
{
	frm.commenthid.value = 'set'
	frm.submit();
}

/**********************************************************************************
* Purpose : To provide the user contact information.
* Page	  : projectdetails.php
* Usage :
*		frm -> Name of the form from.
*		div -> Div name of post comment.
**********************************************************************************/
function fnContactMe(frm,div)
{
	frm.contacthid.value = 'set';
	frm.submit();
}

/**********************************************************************************
* Purpose : To add/promot/support the project.
* Page	  : projectdetails.php
* Usage :
*		frm -> Name of the form.
*		hiddenvar -> Name of the hidden variable.
*		type -> Action icon on which user clicked.
**********************************************************************************/
function fnActionIconSelected(frm,hiddenvar,type)
{
	var flag = 0;
	if(type == 'favourite')
	{
		if(confirm("Please click OK to add this project to your favourites"))
			flag = 1;
	}
	else if(type == 'promote')
		flag = 1;
	else if(type == 'support')
		flag = 1;

	if(flag)
	{
		document.getElementById(hiddenvar).value = type;
		frm.submit();
	}
}

/**********************************************************************************
* Purpose : To fetch the users based on the selected Partner Charity from drop down.
* Page : pcusers.php [RVL Staff Login]
* Usage :
*		frm -> Name of the form.
*		value -> Selected Partner charity ID
**********************************************************************************/
function fnSelectedCharity(frm,value)
{
	frm.selpcid.value=value;
	frm.submit();
}

/**********************************************************************************
* Purpose : Add the project to cart.
* Page : projectdetails.php
* Usage :
*		frm -> Name of the form.
**********************************************************************************/
function fnAddToCart(frm)
{
	if(document.getElementById('donate').value == "")
	{
		alert("Please enter amount to donate");
		frm.donate.focus();
		return;
	}
	else if(confirm("Please click Ok to add this project into your cart"))
	{
		frm.act.value="cart";
		frm.submit();
	}
}

/**********************************************************************************
* Purpose : Save the projects added to cart to donate later and Proceed to donate for
*			the projects saved in cart.
* Page : mycart.php, mysavedcarts.php
* Usage :
*		frm -> Name of the form.
**********************************************************************************/
function fnSaveCarts(frm,action)
{
	var len = frm.elements['chkb[]'].length;
	var flag =0;
	var str = "";
	var str1 = "";
	if(action == 'save')
	{
		str = 'save the selected record(s)';
		str1 = 'save';
	}
	else if(action =='donate')
		str = str1 = 'proceed for donation';

	if(!(frm.elements['chkb[]'].length))
	{
		if(frm.elements['chkb[]'].checked == true)
			flag = 1;
	}
	else
	{
		for(i=0; i<len; i++)
		{
			if(frm.elements['chkb[]'][i].checked == true)
				flag = 1;
		}
	}
	if(flag == 1)
	{
		if(confirm("Please click OK to "+str))
		{
			frm.act.value=action;
			frm.submit();
		}
	}
	else
		alert('Please select record(s) to '+str1);
}

// User-defined Project Category based on the value selected from the select box
function fnProjCategory(obj)
{
	if(obj.value > 0)
		document.getElementById('vproj_category').disabled="true"; // Category selected from the list
	else if(obj.value == 0)
		document.getElementById('vproj_category').disabled=""; // Category  de-selected from the list

}


/**********************************************************************************
* Purpose : To validate integers entered by users without any decimals
* Page : index.php, projectdetails.php, moreprojects.php, searchresults.php, howyoucanhelp.php
* Usage :
*		frm -> Name of the form.
**********************************************************************************/
function numbersonly(e,val){
	var unicode=e.charCode? e.charCode : e.keyCode
	//var field = document.test.donate; // Donate field
	var field = val; // Donate field
		if (unicode!=8){ //if the key isn't the backspace key (which we should allow)
		if(field.length == 0 && unicode == 48) // restrict if first character is 0(zero)
			return false; //disable key press
		else{
			if (unicode<48||unicode>57) //if not a number
			return false; //disable key press
			}
		}
}
function RemoveZero(val)
	{
		var field = val; // Donate field
		if ((field.value).length == 1 && field.value == 0)
		{
			field.value = '';
		}
		else if((field.value).length > 0 && (field.value).charAt(0) == 0)
		{
			field.value = (field.value).replace("0","");
		}
	}

/**********************************************************************************
* Purpose : To get the previous page reference URL and onclick of the previous page link redirect
* Page : 
* Usage :		
* 
**********************************************************************************/
function pre_page()
{
	var ReferringUrl = ""; 
	if (document.referrer != "")
	{
		ReferringUrl = document.referrer.toString();
		var sPage = ReferringUrl.substring(ReferringUrl.lastIndexOf('/') + 1);
		if(sPage == "jumpforhope.php")
		{
			window.location.href=ReferringUrl;
		}
		else if(sPage == "jumpforhope.php" || sPage == "freefall_parachute_jump.php" || sPage == "staticline_parachute_jump.php" || sPage == "accelerated_freefall_jump.php")
		{
			window.location.href=ReferringUrl;
		}
		else if(sPage == "important_information.php" || sPage == "paying_sponsorship.php")
		{
			window.location.href="jumpforhope.php";
		}
	}
else
	{
		
		window.location.href="jumpforhope.php";
	}
}
/**
* Function to get confirmation about not opting for Gift Aid donation
* id -> Check box ID
**/
function fnCheckGiftAid(id)
{
	//alert(id+document.getElementById(id).checked)
	if(!document.getElementById(id).checked)
	{
		if(confirm("Are you sure you don't want to Gift Aid your donation?\nThis will add about a third to your gift, eg \u00A3 20 becomes \u00A3 25.60"))
			document.getElementById(id).removeAttribute("checked");
		else
			document.getElementById(id).checked = "true";
	}
}