/*******************************************************************************
 * Function to validate rule and flow type so the page will display base on rule
 ******************************************************************************/
function basicValidation(basictype ,rulename){
	//TODO This is for testing
	//alert("The basic type is "+basictype+" : The rule is "+rulename);
	
	otherEvenDefault();
	if(basictype=='0'||basictype=='1'){
		basicFormSetupByType(basictype);
	}
	if(rulename!=''){
		basicFormSetupByRule(rulename);
	}
	
}
/*******************************************************************************
 * Function to validate flow type so the page will display basic or join page
 ******************************************************************************/
function basicFormSetupByType(basictype){
	if(basictype=='0'){
	$('createownevent').show();
  	$('content-secondary').hide();
	//$('ownevent').checked="checked";
	if($('createEventBasicSave_organisedEventDetailsVo_selectEventBasicPageIndicatorY')!=null){
	$('createEventBasicSave_organisedEventDetailsVo_selectEventBasicPageIndicatorY').checked="checked";
	}
	}else{
		$('createownevent').hide();
	  	$('content-secondary').show();
		//$('existingevent').checked="checked";
		if($('createEventBasicSave_organisedEventDetailsVo_selectEventBasicPageIndicatorN')!=null){
			$('createEventBasicSave_organisedEventDetailsVo_selectEventBasicPageIndicatorN').checked="checked";
		}
		if($('eventsearch-result')!=null){
			$('eventsearch-result').show();	
		}
		
		
		if($('viewflow')!=null){
			
			$('viewflow').hide();
			
		}

	}
}
/*******************************************************************************
 * Function to validate rule so the page will nevigate different method
 ******************************************************************************/
function basicFormSetupByRule(rulename){
	if(rulename=='DRAFT_CREATE'){
		basicForDraft('CREATE');
	}	
	else if(rulename=='DRAFT_JOIN'){
		basicForDraft('JOIN');
	}
	else if(rulename=='PUBLISHED_CREATE'){
		basicForPublish('CREATE');
	}
	else if(rulename=='PUBLISHED_JOIN'){
		basicForPublish('JOIN');
	}
	else if(rulename=='PENDING_CREATE'){
		basicForPending('CREATE');
	}
	else if(rulename=='PENDING_JOIN'){
		basicForPending('JOIN');
	}
	else if(rulename=='CANCELLED_CREATE'){
		basicForCancelled('CREATE');
	}
	else if(rulename=='CANCELLED_JOIN'){
		basicForCancelled('JOIN');
	}
	else if(rulename=='EXPIRED_CREATE'){
		basicForExpired('CREATE');
	}
	else if(rulename=='EXPIRED_JOIN'){
		basicForExpired('JOIN');
	}
	else {
	}
}
/*******************************************************************************
 * Function to set page in draft state for create and join
 ******************************************************************************/
function basicForDraft(type){
	if(type=='CREATE'){
		basicSelectionDisable();
	}
	else if(type=='JOIN'){
		basicSelectionDisable();
		basicJoinRedioDisable();
	}else{
	}
}
/*******************************************************************************
 * Function to set page in pending state for create and join
 ******************************************************************************/
function basicForPending(type){
	if(type=='CREATE'){
		basicSelectionDisable();
	}
	else if(type=='JOIN'){
		basicSelectionDisable();
		basicSecondaryTabDisable();
	  	basicFromDisable();
	  	basicJoinRedioDisable();
	}else{
	}
	
}
/*******************************************************************************
 * Function to set page in publish state for create and join
 ******************************************************************************/
function basicForPublish(type){
	if(type=='CREATE'){
		basicSelectionDisable();

		$$('[name="organisedEventDetailsVo.eventSetUpDateIndicator"]').each(function(elmt) {
			elmt.disabled="disabled";
			
			});

		 $('createEventBasicSave_eventPageSetupDateVo_eventStartDay').writeAttribute("disabled","disabled");
		 $('createEventBasicSave_eventPageSetupDateVo_eventStartMonth').writeAttribute("disabled","disabled");
		 $('createEventBasicSave_eventPageSetupDateVo_eventStartYear').writeAttribute("disabled","disabled");

	}
	else if(type=='JOIN'){
		basicSelectionDisable();
		basicSecondaryTabDisable();
	  	basicFromDisable();
	  	
	  	$$('[name="organisedEventDetailsVo.accountId"]').each(function(elmt) {
			elmt.disabled=false;
		});
	  	basicJoinRedioDisable();

	}else{
	}
	
}
/*******************************************************************************
 * Function to set page in expired state for create and join
 ******************************************************************************/
function basicForExpired(type){
	if(type=='CREATE'){
		basicSelectionDisable();
		basicFromDisable();
	}
	else if(type=='JOIN'){
		basicSelectionDisable();
		basicFromDisable();
		basicSecondaryTabDisable();
		basicJoinRedioDisable();
	}else{
	}
	
}
/*******************************************************************************
 * Function to set page in cancel state for create and join
 ******************************************************************************/
function basicForCancelled(type){
	if(type=='CREATE'){
		basicSelectionDisable();
		basicFromDisable();
	}
	else if(type=='JOIN'){
		basicSelectionDisable();
		basicFromDisable();
		basicSecondaryTabDisable();
		basicJoinRedioDisable();
	}else{
	}
	
}
/*******************************************************************************
 * Function to set other button in other activity type selection
 ******************************************************************************/
function otherEventChange(val){
	
	if(val.value=='OTHER'){
		if(val.checked){
			$('otherEvent').show();
		}else{
		
			$('otherEvent').hide();
		}
	}
	
	if(val.value=='027'){
		if(val.checked){
			$('otherEvent').show();
		}else{
		
			$('otherEvent').hide();
		}
	}

}
/*******************************************************************************
 * Function to set other button in other activity type selection for default
 ******************************************************************************/
function otherEvenDefault(){
	
	if($('idOTHER')!=null){
		if($('idOTHER').checked){
			$('otherEvent').show();
	
		}else{
			$('otherEvent').hide();
		}
	}
	
	if($('id027')!=null){
		if($('id027').checked){
			$('otherEvent').show();
	
		}else{
			$('otherEvent').hide();
		}
	}

	if($('createEventBasicSave_otherEvent') !=null && $('createEventBasicSave_otherEvent').value !=''){
		$('otherEvent').show();
		if($('idOTHER')!=null){
		$('idOTHER').checked='checked';
		}
		if($('id027')!=null){
		$('id027').checked='checked';
		}
	}

	
}
/*******************************************************************************
 * Function to set create and join button disable 
 ******************************************************************************/
function basicSelectionDisable(){
	
	//Need to remove
	/*$$('[name="createevent"]').each(function(elmt) {
		elmt.disabled="disabled";
		
		});*/
	
	$$('[name="organisedEventDetailsVo.selectEventBasicPageIndicator"]').each(function(elmt) {
		elmt.disabled="disabled";
		
		});

}



/*******************************************************************************
 * Function to set all field disable 
 ******************************************************************************/
function basicFromDisable(){
	$$('[name="createEventBasicSave"]').each(function(elmt) {
		
		for(i=0;i<elmt.length;i++){
		
			elmt.elements[i].disabled="disabled";
		}
	
	});

}

/*******************************************************************************
 * Function to set join tab hide
 ******************************************************************************/
function basicSecondaryTabDisable(){
	
  	//$('ownevent').checked="checked";
  	//TODO 
	//alert("");
  	if($('createEventBasicSave_organisedEventDetailsVo_selectEventBasicPageIndicatorY')!=null){
  		$('createEventBasicSave_organisedEventDetailsVo_selectEventBasicPageIndicatorY').checked="checked";
  	}
  	$('createownevent').show();
	$('content-secondary').hide();
}


/*******************************************************************************
 * Function to set join tab hide
 ******************************************************************************/
function basicJoinRedioDisable(){
	
  	//$('existingevent').checked="checked";
  	if($('createEventBasicSave_organisedEventDetailsVo_selectEventBasicPageIndicatorN')!=null){
  		$('createEventBasicSave_organisedEventDetailsVo_selectEventBasicPageIndicatorN').checked="checked";
  	}

}

/*******************************************************************************
 * Function to display list of record for selected list
 ******************************************************************************/
function resultDisplayForJoin(){
	if($('eventsearch-result')!=null){
		$('eventsearch-result').show();	
	}
	
}
/*******************************************************************************
 * Function to validate rule so the page will display detail page base on rule
 ******************************************************************************/
function detailValidation(rulename){
	//TODO This is for testing
	//alert(" : The rule is "+rulename);
		
	if(rulename!=''){
		detailFormSetupByRule(rulename);
	}
	
}


/*******************************************************************************
 * Function to validate rule so the page will nevigate different method
 ******************************************************************************/
function detailFormSetupByRule(rulename){
	if(rulename=='DRAFT_CREATE'){
		detailForDraft('CREATE');
	}	
	else if(rulename=='DRAFT_JOIN'){
		detailForDraft('JOIN');
	}
	else if(rulename=='PUBLISHED_CREATE'){
		detailForPublish('CREATE');
	}
	else if(rulename=='PUBLISHED_JOIN'){
		detailForPublish('JOIN');
	}
	else if(rulename=='PENDING_CREATE'){
		detailForPending('CREATE');
	}
	else if(rulename=='PENDING_JOIN'){
		detailForPending('JOIN');
	}
	else if(rulename=='CANCELLED_CREATE'){
		detailForCancelled('CREATE');
	}
	else if(rulename=='CANCELLED_JOIN'){
		detailForCancelled('JOIN');
	}
	else if(rulename=='EXPIRED_CREATE'){
		detailForExpired('CREATE');
	}
	else if(rulename=='EXPIRED_JOIN'){
		detailForExpired('JOIN');
	}
	else {
	}
}
/*******************************************************************************
 * Function to set detail page in draft state for create and join
 ******************************************************************************/
function detailForDraft(type){
	if(type=='CREATE'){
		
	}
	else if(type=='JOIN'){
		detailPageDisable();
		
	}else{
	}
}
/*******************************************************************************
 * Function to set detail page in pending state for create and join
 ******************************************************************************/
function detailForPending(type){
	if(type=='CREATE'){
		
	}
	else if(type=='JOIN'){
		detailPageDisable();
	}else{
	}
	
}
/*******************************************************************************
 * Function to set detail page in publish state for create and join
 ******************************************************************************/
function detailForPublish(type){
	if(type=='CREATE'){
		

	}
	else if(type=='JOIN'){
			detailPageDisable();

	}else{
	}
	
}
/*******************************************************************************
 * Function to set detail page in expired state for create and join
 ******************************************************************************/
function detailForExpired(type){
	if(type=='CREATE'){
		detailPageDisable();
	}
	else if(type=='JOIN'){
		detailPageDisable();
	}else{
	}
	
}
/*******************************************************************************
 * Function to set detail page in cancel state for create and join
 ******************************************************************************/
function detailForCancelled(type){
	if(type=='CREATE'){
		detailPageDisable();
	}
	else if(type=='JOIN'){
		detailPageDisable();
	}else{
	}
	
}

/*******************************************************************************
 * Function to disable detail page
 ******************************************************************************/
function detailPageDisable(){
	$$('[name="createEventDetailsSave"]').each(function(elmt) {
		
		for(i=0;i<elmt.length;i++){
		
			if(elmt.elements[i].name=='navigationButton' && elmt.elements[i].value=='next'){
				elmt.elements[i].removeAttribute("disabled","disabled");
			}else{
				elmt.elements[i].disabled="disabled";
			}
		}
	
	});
	
	//Hide liks and button
	detailLinksDisable();

}

/*******************************************************************************
 * Function to disable Links detail page
 ******************************************************************************/
function detailLinksDisable(){
	if($('createEventDetailsSave__executeImage')!=null) {
	 $('createEventDetailsSave__executeImage').hide();
	}
	if($('addressLinkForUk')!=null) {
	 $('addressLinkForUk').hide();
	}
	 if($('addressLinkForOthers')!=null) {
	 $('addressLinkForOthers').hide();
	 }
	 
	 if($('addressLinkForUkOnClick')!=null) {
		 $('addressLinkForUkOnClick').hide();
		 }
	 
	 if($('addressLinkForOthersOnClick')!=null) {
		 $('addressLinkForOthersOnClick').hide();
		 }
	 
	 
	 
	
}

/* This for UCEVT0020 page -START
 * Function to validate rule so the page will navigate different method
 * for fee Collection page.
 */
function feeCollectionFormSetupByRule(rulename){
	if(rulename=='CANCELLED_CREATE'){
		feeCollectionForCancelled('CREATE');
	}
	else if(rulename=='EXPIRED_CREATE'){
		feeCollectionForExpired('CREATE');
	}
}

function feeCollectionForExpired(type){
	if(type=='CREATE'){
		feeCollectionPageDisable();
	}
	else{
	}
	
}

function feeCollectionForCancelled(type){
	if(type=='CREATE'){
		feeCollectionPageDisable();
	}
	else{
	}
	
}

function feeCollectionPageDisable(){
	$$('[name="charityDonationSplit"]').each(function(elmt) {		
		for(i=0;i<elmt.length;i++){		
			elmt.elements[i].disabled="disabled";
		}	
	});	
}
/* This for UCEVT0020 page -END*/
/*This for main form layour page -START*/
function mainFormLayoutSetupByRule(rulename){
	if(rulename=='DRAFT_CREATE'){
		$('navigationButton_change').hide();
	}	
	else if(rulename=='DRAFT_JOIN'){
		$('navigationButton_change').hide();  
	}
	else if(rulename=='PUBLISHED_CREATE'){
		$('navigationButton_comeback').hide();  
	}
	else if(rulename=='PUBLISHED_JOIN'){
		$('navigationButton_comeback').hide();
		$('navigationButton_change').show();
	}
	else if(rulename=='PENDING_CREATE'){
		$('navigationButton_comeback').hide();
	}
	else if(rulename=='PENDING_JOIN'){
		$('navigationButton_comeback').hide();
	}
	else if(rulename=='CANCELLED_CREATE'){
		$('navigationButton_comeback').hide();
	  	$('navigationButton_change').hide();
	}
	else if(rulename=='CANCELLED_JOIN'){
		$('navigationButton_comeback').hide();
	  	$('navigationButton_change').hide();
	}
	else if(rulename=='EXPIRED_CREATE'){
		$('navigationButton_comeback').hide();
	  	$('navigationButton_change').hide();
	}
	else if(rulename=='EXPIRED_JOIN'){
		$('navigationButton_comeback').hide();
	  	$('navigationButton_change').hide();
	}
	else {
		$('navigationButton_change').hide();
	}
}

function mainFormLayoutByType(basictype){
	if(basictype=='0'){
		$('navigationButton_comeback').show(); 
		$('navigationButton_change').show();
	}else if (basictype=='1'){
		$('navigationButton_comeback').hide(); 
		$('navigationButton_change').hide();	
	} else {
	}
}
/*This for main form layour page -END*/

/*******************************************************************************
 * Function change value of hidden variable navigationButton
 ******************************************************************************/

function navigationButtonSubmit(submitvalue){
   	
	$('navigationButton').value=submitvalue;

}


/*******************************************************************************
 * Function to select the radio button clicked on cancel event 
 ******************************************************************************/
function cancelEvent(ele){          
}

function validateString(id){
	var result = false;
	var stringMatchPattern = /^[^<^>^&^%]{0,}$/;
	if(stringMatchPattern.test(id)){
		result = true;
	}
	return result;
}

/*******************************************************************************
 * Function to invoke Ajax call and determine whether an event can be cancelled or not
 ******************************************************************************/
function checkCanellableStatusOrNot(value) {
	if ($('cancelEvent') != null)
	{
		checkCancellableStatus(value);
	}	
}

function checkCancellableStatus(value) {

         
           
           document.getElementById('cancelEvent').href ='#';  
           document.getElementById('cancelEvent').rev ='';    
           document.getElementById('cancelEvent').rel='';  
            
            
	   var selectedEventId=value;	
	   var url = "cancelEventPossible.action";
	   var params = 'selectedEventId='+ selectedEventId;
	   new Ajax.Request(url, {
				method :'POST',	
				parameters :params,
				asynchronous :true,
				onSuccess :changeLightboxRev
			});	

}	


/*******************************************************************************
 * Function to change rev/ rel of cancelevent href if event can be cancelled
 ******************************************************************************/
function changeLightboxRev(transport){

var xml_doc = transport.responseXML.documentElement;

var hrefValue = 'cancelNotPossible.action';

	if (transport.responseText !== undefined) {
		
	             var status=xml_doc.childNodes[0].childNodes[0].getAttribute("flag");
	             if(status!="")
	             {
	                     if(status=="1"){
	                    	 document.getElementById('cancelEvent').rev ='cancelEventConfirm.action';    
	                    	 document.getElementById('cancelEvent').rel='ajaxLightbox';
	                     } else {
	                    	 hrefValue = hrefValue + "?eventStatus="+status;
	                    	 document.getElementById('cancelEvent').rev ='';    
	                    	 document.getElementById('cancelEvent').rel='';
	                     }
	             }
	
	}
	document.getElementById('cancelEvent').href = hrefValue;
}

/*******************************************************************************
 * Function to change the current status in charity event home page
 * ******************************************************************************/


function currentStatusSubmit(submitvalue){
	   	
			$('currentStatus').value=submitvalue;
		
}


/** This function is call for fee instruction limit check. - START*/
function feeInstructionLimiter() {
	var count = 1500;
    var tex = document.charityDonationSplit.notesorcomment.value;
    var len = tex.length;
    var remaningcount = count-len;

    if (len > count) {
        tex = tex.substring(0, count);
        document.charityDonationSplit.notesorcomment.value = tex;
        return false;
    }
}
/** This function is call for fee instruction limit check. - END  */


/** This function is call for fee Ioining Instructions limit check in detail page. - START*/
function detailLimiter(field,limit) {
	var count = limit;
    var tex = field.value;
    var len = tex.length;
    var remaningcount = count-len;

    if (len > count) {
        tex = tex.substring(0, count);
        field.value = tex;
        return false;
    }
}


/** This function is call for fee Description limit check in detail page. - END  */
/*******************************************************************************
 * Function to set all field disable savcombackHideforDetail
 ******************************************************************************/
function  saveComeBackHideForDetail(){
	if($('eventsearch-result')!=null){
		if($('viewflow')!=null){
			
			$('viewflow').hide();
			
		}
	}
}
