<?php
class RCCWP_WritePostPage
{
	function ApplyCustomWritePanelAssignedCategories($content)
	{
		global $CUSTOM_WRITE_PANEL;
		
		$assignedCategoryIds = RCCWP_CustomWritePanel::GetAssignedCategoryIds($CUSTOM_WRITE_PANEL->id);
		foreach ($assignedCategoryIds as $categoryId)
		{
			$toReplace = 'id="in-category-' . $categoryId . '"';
			$replacement = $toReplace . ' checked="checked"';
			$content = str_replace($toReplace, $replacement, $content);
		}
		
		return $content;
	}
	
	function FormError(){
		if (RCCWP_Application::InWritePostPanel()){
			echo "<div id='flutter-publish-error-message' class='error' style='display:none;'><p><strong>".__("Post was not published - ")."</strong> ".__("You have errors in some fields, please check the fields below.")."</p></div>";		
		}
	}
	
	function ApplyCustomWritePanelHeader()
	{
		global $CUSTOM_WRITE_PANEL;

		// Validate capability
		require_once ('RCCWP_Options.php');
		$assignToRole = RCCWP_Options::Get('assign-to-role');
		$requiredPostsCap = 'edit_posts';
		$requiredPagesCap = 'edit_pages';

		if ($assignToRole == 1){
			$requiredPostsCap = $CUSTOM_WRITE_PANEL->capability_name;
			$requiredPagesCap = $CUSTOM_WRITE_PANEL->capability_name;
		}

		if ($CUSTOM_WRITE_PANEL->type == "post")
			$requiredCap = $requiredPostsCap;
		else
			$requiredCap = $requiredPagesCap;
		
		if (!current_user_can($requiredCap)) wp_die( __('You do not have sufficient permissions to access this custom write panel.') );

		// --- Apply Flutter CSS and javascript
		?>

		<link rel='stylesheet' href='<?php echo CANVASURI?>css/epoch_styles.css' type='text/css' />
		
		<style type="text/css">
			
			.tr_inside{
				background-color:transparent !important;
			}
			
			.freshout{
				display: block;
    			margin-left: auto;
    			margin-right: auto ;
			}
				
			.photo_edit_link{
				clear:both;
				margin: 0px 0px 0px 0px;
				width:150px;
				text-align:center;
			}
			
			.error_msg_txt{
				font-weight: bold;
				overflow: auto;
			}
			
			.duplicate_button{
				text-decoration:none; 
				font-weight:bold;
				float:right
			}
			
			.duplicate_image{
				vertical-align:middle;
				padding-right:3px;
			}
					
		</style>
		
		<link href="<?php echo CANVASURI?>js/greybox/gb_styles.css" rel="stylesheet" type="text/css" media="all" />
		
		<!--<script type="text/javascript">
			
			tinyMCE.init({
			theme : "advanced",
			theme_advanced_toolbar_location : "top",
			theme_advanced_toolbar_align : "left",
			theme_advanced_buttons1 : "bold, italic, |, underline, |, bullist, numlist, outdent, indent, |, justifyleft, justifycenter, justifyright, justifyfull, |, link, unlink, spellchecker",
				theme_advanced_buttons2 : "",
				theme_advanced_buttons3 : "",
			mode : "textareas",
			skin : "wp_theme",
			tab_focus : "next",
			spellchecker_languages : "english",
			convert_urls : false,
			gecko_spellcheck : true,
			convert_newlines_to_brs : false,
			force_br_newlines : true,
			force_p_newlines : false,
			//mode : "exact",
			//elements : "editorContent",
			editor_selector : "mceEditor",
			width : "100%",
			height : "200"
			});
			
		</script>-->

		<script language="JavaScript" type="text/javascript" src="<?php echo CANVASURI; ?>js/prototype.js"></script>
		
		<!-- Calendar Control -->
		<script type="text/javascript" src="<?php echo CANVASURI?>js/epoch_classes.js"></script> <!--Epoch's Code-->
		<!-- Calendar Control -->
		
		
		<script type="text/javascript">
			var GB_ROOT_DIR = "<?php echo CANVASURI?>js/greybox/";
			var flutter_path = "<?php echo FLUTTER_URI ?>" ;
			var swf_authentication = "<?php if ( function_exists('is_ssl') && is_ssl() ) echo $_COOKIE[SECURE_AUTH_COOKIE]; else echo $_COOKIE[AUTH_COOKIE]; ?>" ;
			var swf_nonce = "<?php echo wp_create_nonce('media-form'); ?>" ;
		</script>
		<script type="text/javascript" src="<?php echo CANVASURI?>js/greybox/AJS.js"></script>
		<script type="text/javascript" src="<?php echo CANVASURI?>js/greybox/AJS_fx.js"></script>
		<script type="text/javascript" src="<?php echo CANVASURI?>js/greybox/gb_scripts.js"></script>
		<script type="text/javascript" src="<?php echo FLUTTER_URI; ?>js/swfupload/swfcallbacks.js" ></script>
		<script type="text/javascript" src="<?php echo FLUTTER_URI; ?>js/swfupload/swfupload.js"></script>

		<script type="text/javascript">
				function isset(  ) {
					// http://kevin.vanzonneveld.net
					// +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
					// +   improved by: FremyCompany
					// *     example 1: isset( undefined, true);
					// *     returns 1: false
					// *     example 2: isset( 'Kevin van Zonneveld' );
					// *     returns 2: true
					
					var a=arguments; var l=a.length; var i=0;
					
					while ( i!=l ) {
						if (typeof(a[i])=='undefined') { 
						return false; 
						} else { 
						i++; 
						}
					}
					
					return true;
				}
				
			function checkForm(event){
				var stopPublish = false;
				$$('input.field_required','textarea.field_required').each(
						function(inputField){
							if ($F(inputField) == "" &&
								!(Object.isElement($(inputField.id+"_last")) && $F(inputField.id+"_last") != "")	){
								stopPublish = true;

								// Update row color
								if (isset($("row_"+inputField.id).style))
									$("row_"+inputField.id).style.backgroundColor = "#FFEBE8";

								// Update iframe color if it exists
								if (Object.isElement($("upload_internal_iframe_"+inputField.id))){
								  	if ($("upload_internal_iframe_"+inputField.id).contentDocument) {
								    	// For FF
								    	$("upload_internal_iframe_"+inputField.id).contentDocument.body.style.backgroundColor = "#FFEBE8"; 
								  	} else if ($("upload_internal_iframe_"+inputField.id).contentWindow) {
									    // For IE5.5 and IE6
									    $("upload_internal_iframe_"+inputField.id).contentWindow.document.body.style.backgroundColor = "#FFEBE8";
								    }
								}
									
								$("fieldcellerror_"+inputField.id).style.display = "";
								$("fieldcellerror_"+inputField.id).innerHTML = "ERROR: Field can not be empty";
							}
							else{
								$("fieldcellerror_"+inputField.id).style.display = "none";
								if (isset($("row_"+inputField.id).style))
									$("row_"+inputField.id).style.backgroundColor = "";
									
								// Update iframe color if it exists
								if (Object.isElement($("upload_internal_iframe_"+inputField.id))){
								  	if ($("upload_internal_iframe_"+inputField.id).contentDocument) {
								    	// For FF
								    	$("upload_internal_iframe_"+inputField.id).contentDocument.body.style.backgroundColor = "#EAF3FA"; 
								  	} else if ($("upload_internal_iframe_"+inputField.id).contentWindow) {
									    // For IE5.5 and IE6
									    $("upload_internal_iframe_"+inputField.id).contentWindow.document.body.style.backgroundColor = "#EAF3FA";
								    }
								}
									
							}
						}
					);
				if (stopPublish){
					$("flutter-publish-error-message").style.display = "";
					Event.stop(event);
					return false;
				}
				
				return true;
			}

			Event.observe(window, 'load', function() {
				Event.observe('post', 'submit', checkForm);
			});
			
			// -------------
			// Edit Photo functions
			
			function setCookie(c_name,value,expiredays)
			{
				var exdate=new Date();
				exdate.setDate(exdate.getDate()+expiredays);
				document.cookie=c_name+ "=" +escape(value)+
				((expiredays==null) ? "" : ";expires="+exdate.toGMTString());
			}
			function prepareUpdatePhoto(inputName){	
				document.getElementById(inputName+'_dorename').value = '1';
				return true;
			}	
			function exchangeValues(e, id)
			{
				//document.getElementById(document.getElementById('parent_text_'+id.substring(10)).value).value = e;
				//document.getElementById(document.getElementById('hidImgValue'+id.substring(10)).value).value = e;
			}
			
			// -------------
			// Date Functions

			var dp_cal = new Array(); // declare the calendars as global variables
			
			function pickDate(inputName){
				if (dp_cal[inputName] && dp_cal[inputName].selectedDates[0]) document.getElementById('date_field_'+inputName).value = dp_cal[inputName].selectedDates[0].dateFormat('Y-m-d');
			}
			
			function InitializeDateObject(inputName, dateFormat, currentValue){
				if (!Object.isElement($('display_date_field_' + inputName))) return;
				
				dp_cal[inputName]  = new Epoch('dp_cal_'+inputName,'popup',document.getElementById('display_date_field_'+inputName), false, 'pickDate', inputName, dateFormat);
				
				var d = new Date();
				
				if (currentValue.length > 0){
					d.setYear(parseInt(currentValue.substr(0,4),10));
					d.setMonth(parseInt(currentValue.substr(5,2),10)-1);
					d.setDate(parseInt(currentValue.substr(8,2),10));
				}
				d.selected = true;
				d.canSelect = true;
				var tmpDatesArray = new Array(d);
				dp_cal[inputName].selectDates(tmpDatesArray, true, true, true);
				if (dp_cal[inputName] && dp_cal[inputName].selectedDates[0]) 
					document.getElementById('display_date_field_'+inputName).value = dp_cal[inputName].selectedDates[0].dateFormat(dateFormat);
			}	

			function today_date(inputName, dateFormat){
				var d = new Date();
				var tmpDatesArray = new Array(d);
				dp_cal[inputName].selectDates(tmpDatesArray, true, true, true);
				if (dp_cal[inputName] && dp_cal[inputName].selectedDates[0]){ 
					document.getElementById('display_date_field_'+inputName).value = dp_cal[inputName].selectedDates[0].dateFormat(dateFormat);
					document.getElementById('date_field_' + inputName).value = dp_cal[inputName].selectedDates[0].dateFormat('Y-m-d');
				}
			}
			
			// -------------
			// Duplicates functions

			function getDuplicate(fId,fcounter,div,gcounter)
			{
				$(div).setStyle({display: ""});
				new Ajax.Request('<?php echo FLUTTER_URI; ?>RCCWP_GetDuplicate.php',
				{
					method:'post',
					onSuccess: function(transport){
						$(div).insert( {before: transport.responseText} );
						$(div).setStyle({display: "none"});
					},
					parameters: "customFieldId="+fId+"&fieldCounter="+fcounter+"&groupCounter="+gcounter
					});
			}

			function deleteDuplicate(fieldinputName)
			{
				var field = document.getElementById( fieldinputName ) ;
 				field.parentNode.removeChild(field) ;
			}
			
			function GetGroupDuplicate(div, customGroupID)
			{
				customGroupCounter = $F('g'+customGroupID+'counter');
				customGroupCounter ++;
				$('g'+customGroupID+'counter').value = customGroupCounter;
				$(div).setStyle({display: ""});
				new Ajax.Request('<?php echo FLUTTER_URI; ?>RCCWP_GetDuplicate.php',
				{
					method:'post',
					onSuccess: function(transport){
					$(div).insert( {before: transport.responseText} );
					$(div).setStyle({display: "none"});
					},
					parameters: "flag=group&groupId="+customGroupID+"&groupCounter="+customGroupCounter
				});
			}
						
			function deleteGroupDuplicate(groupDiv)
			{
				var group = document.getElementById( groupDiv ) ;
				group.parentNode.removeChild( group ) ;
			}
			function typeHandler(inputName,customFieldId,groupCounter)
			{
				oldval = $F("c"+inputName+"Counter");
				newval = parseInt(oldval) + 1;
				$("c"+inputName+"Counter").value = newval ;
				getDuplicate(customFieldId, $F("c"+inputName+"Counter"), "c"+inputName+"Duplicate",$(groupCounter)) ;
			}

		</script>

		<?php
		
		// Show/Hide Panel fields
	 
		global $STANDARD_FIELDS;
		
		$standardFields = RCCWP_CustomWritePanel::GetStandardFields($CUSTOM_WRITE_PANEL->id);
		$hideCssIds = array();
		
		foreach($STANDARD_FIELDS as $standardField){
			if (!in_array($standardField->id, $standardFields)){
				foreach($standardField->cssId as $cssID)
					array_push($hideCssIds, $cssID);
			}
		}
		
		if (empty($hideCssIds))
			return;
		
		array_walk($hideCssIds, create_function('&$item1, $key', '$item1 = "#" . $item1;'));
		$hideCssIdString = implode(', ', $hideCssIds);
		?>
		
		<style type="text/css">
			<?php echo $hideCssIdString?> {display: none !important;}
		</style>
		
		<?php
		
		/*<script type="text/javascript">
			Event.observe(window, 'load', function() {
				$$('h2').each(
					function(element) {
						if ($(element).innerHTML= "Advanced Options")
							$(element).style.display="none";
					});			
			});
		</script>*/
		
	}
	
	
	function CustomFieldCollectionInterfaceRight(){
		RCCWP_WritePostPage::CustomFieldCollectionInterface(true);
	}
	
	function CustomFieldCollectionInterface($rightOnly = false)
	{
		global $CUSTOM_WRITE_PANEL;
		
		if (!isset($CUSTOM_WRITE_PANEL))
			return;
		
		$customGroups = RCCWP_CustomWritePanel::GetCustomGroups($CUSTOM_WRITE_PANEL->id);
		
		foreach ($customGroups as $customGroup)
		{
			if (($rightOnly && !$customGroup->at_right) ||
				(!$rightOnly && $customGroup->at_right))
			{
				continue;	
			}
			
			// Render a block for each group in the module
			?>
			
			<?php
				$customFields = RCCWP_CustomGroup::GetCustomFields($customGroup->id);
				if( isset( $_REQUEST['post'] ) && count($customFields) > 0)
				{
					$firstFieldName = $customFields[0]->name;
					$gc = RCCWP_CustomField::GetFieldGroupDuplicates($_REQUEST['post'], $firstFieldName) ;
					if ($gc < 1) $gc = 1;//for backward compatability
					for($i=1;$i<=$gc;$i++)
					{
						RCCWP_WritePostPage::GroupDuplicate($customGroup,$i,false) ;
					}
				}
				else
				{
					RCCWP_WritePostPage::GroupDuplicate($customGroup,1,false) ;
					$gc = 1 ;
				}
			?>
			 <div id="<?php echo $customGroup->id."Duplicate";?>" style="display:none">
			 	<img class="duplicate_image"  src="<?php echo FLUTTER_URI; ?>images/spinner.gif" alt=""/> Loading ...					
			 </div>
			 <input type='hidden' name='g<?php echo $customGroup->id?>counter' id='g<?php echo $customGroup->id?>counter' value='<?php echo $gc?>' />
		<?php	
		}
		?>
			
		<input type="hidden" name="rc-custom-write-panel-verify-key" id="rc-custom-write-panel-verify-key" value="<?php echo wp_create_nonce('rc-custom-write-panel')?>" />
		<input type="hidden" name="rc-cwp-custom-write-panel-id" value="<?php echo $CUSTOM_WRITE_PANEL->id?>" />

		<!-- rc_cwp_submit_buttons -->
		<?php
	}

	function GroupDuplicate($customGroup, $groupCounter, $fromAjax=true)
	{
		$customFields = RCCWP_CustomGroup::GetCustomFields($customGroup->id);
		if (count($customFields) == 0) return;
		if( $customGroup->duplicate == 0 & $groupCounter != 1 ) return ;
		require_once("RC_Format.php");
		
		if ( $customGroup->name == "__default"){	
// 			$customGroup->name = "Module general fields";
			$customGroup->name = "" ;
		}
		?>
		
		<?php if ($groupCounter==1){ ?>
			<div id="freshpostdiv_group_<?php echo $customGroup->id.'_'.$groupCounter;?>" class="<?php if ($customGroup->name != "") echo "postbox ".postbox_classes('freshpostdiv_group_'.$customGroup->id, 'post');?>">
			
				<?php if ($customGroup->name != ""){ ?>
					<h3> 
						<?php echo  $customGroup->name ?>
					</h3>
				<?php } ?>
		<?php } else { ?>
			<div id="freshpostdiv_group_<?php echo $customGroup->id.'_'.$groupCounter;?>" class="postbox">
				<?php if ($fromAjax){ ?>
				<h3 onclick="jQuery(jQuery(this).parent().get(0)).toggleClass('closed');"> <a class="togbox">+</a>
				<?php }else{ ?>
				<h3>
				<?php } ?>
				<?php echo  $customGroup->name." ($groupCounter)" ?> 
				</h3>
		<?php }?>
		<div class="inside">
			<table class="form-table" style="width: 100%;" cellspacing="2" cellpadding="5">
			<?php	
			foreach ($customFields as $field)
			{
			// Render a row for each field in the group
				$customField = RCCWP_CustomField::Get($field->id);
				$customFieldName = RC_Format::GetInputName(attribute_escape($field->name));
				$customFieldTitle = attribute_escape($customField->description);
				$inputName = $field->id."_".$groupCounter."_1_".$customFieldName	

			?>
			
				<?php
					if( isset( $_REQUEST['post'] ) )
					{
						$fc = RCCWP_CustomField::GetFieldDuplicates($_REQUEST['post'],$field->name,$groupCounter) ;
						if ($fc < 1) $fc = 1;//for backward compatability
						for($i=1;$i<=$fc;$i++)
						{
							//if ($i>1) echo "<div id='field".$field->id."_$i"."_$groupCounter'>" ;
							RCCWP_WritePostPage::CustomFieldInterface($field->id,$groupCounter,$i) ;
							//if ($i>1) echo "</div>" ;
						}
					}
					else
					{
						RCCWP_WritePostPage::CustomFieldInterface($field->id,$groupCounter,1);
						$fc = 1 ;
					}
					
					
				?>
				
				<tr style="display:none" id="<?php echo "c".$inputName."Duplicate"?>">
					<th valign="top" scope="row">
					</th>
					<td>
						<img class="duplicate_image"  src="<?php echo FLUTTER_URI; ?>images/spinner.gif" alt=""/> Loading ... 
						<input type="hidden" name="c<?php echo $inputName ?>Counter" id="c<?php echo $inputName ?>Counter" value='<?php echo $fc ?>' /> 
					</td>
				</tr>
					
				
			<?php }
			?>
				
		</table>
		</div>
		<br />
		<?php
		if( $customGroup->duplicate != 0 ){
			if( $groupCounter == 1 ){
			?>
				<a class ="duplicate_button" href="javascript:GetGroupDuplicate('<?php echo $customGroup->id."Duplicate";?>', <?php echo $customGroup->id ?>)"> 
					<img class="duplicate_image" src="<?php echo FLUTTER_URI; ?>images/duplicate.png" alt="Add group duplicate"/> Duplicate Group 
				</a>
				<br style="height:2px"/>
			<?php
			}
			else {
			?>
				<a class ="duplicate_button" href="javascript:deleteGroupDuplicate('freshpostdiv_group_<?php echo $customGroup->id.'_'.$groupCounter ?>')" > 
					<img class="duplicate_image"  src="<?php echo FLUTTER_URI; ?>images/delete.png" alt="Remove field duplicate"/>Remove Group 
				</a>
				<br style="height:2px"/>
			<?php }
		}
		?>
		</div>
		
		<?php
	}

	function CustomFieldInterface($customFieldId, $groupCounter=1, $fieldCounter=1)
	{
		require_once("RC_Format.php");
		$customField = RCCWP_CustomField::Get($customFieldId);
		$customFieldName = RC_Format::GetInputName(attribute_escape($customField->name));
		$customFieldTitle = attribute_escape($customField->description);
		$inputName = $customFieldId."_".$groupCounter."_".$fieldCounter."_".$customFieldName; // Create input tag name
 		if( $fieldCounter > 1 && $customField->duplicate == 0 ) return ;
 		if( $fieldCounter > 1) $titleCounter = " ($fieldCounter)";
 		
 		$field_group = RCCWP_CustomGroup::Get($customField->group_id);

		?>
		<tr class="form-field" id="row_<?php echo $inputName?>">
			<?php
				// If the field is at right, put the header over the field
				if ($field_group->at_right){
			?>
			<td>
				<label style="font-weight:bold" for="<?php echo $inputName?>"><?php echo $customFieldTitle.$titleCounter?></label>
				<br />
			<?php
				} else {
			?>
			<th valign="top" scope="row">
				<label for="<?php echo $inputName?>"><?php echo $customFieldTitle.$titleCounter?></label>
			</th>
			<td>
			<?php
				}
			?>
				
				<p class="error_msg_txt" id="fieldcellerror_<?php echo $inputName?>" style="display:none"></p>
				<?php		
					switch ($customField->type)
					{
						case 'Textbox' :
							RCCWP_WritePostPage::TextboxInterface($customField, $inputName, $groupCounter, $fieldCounter);
							break;
						case 'Multiline Textbox' :
							RCCWP_WritePostPage::MultilineTextboxInterface($customField, $inputName, $groupCounter, $fieldCounter);
							break;
						case 'Checkbox' :
							RCCWP_WritePostPage::CheckboxInterface($customField, $inputName, $groupCounter, $fieldCounter);
							break;
						case 'Checkbox List' :
							RCCWP_WritePostPage::CheckboxListInterface($customField, $inputName, $groupCounter, $fieldCounter);
							break;
						case 'Radiobutton List' :
							RCCWP_WritePostPage::RadiobuttonListInterface($customField, $inputName, $groupCounter, $fieldCounter);
							break;
						case 'Dropdown List' :
							RCCWP_WritePostPage::DropdownListInterface($customField, $inputName, $groupCounter, $fieldCounter);
							break;
						case 'Listbox' :
							RCCWP_WritePostPage::ListboxInterface($customField, $inputName, $groupCounter, $fieldCounter);
							break;
						case 'File' :
							RCCWP_WritePostPage::FileInterface($customField, $inputName, $groupCounter, $fieldCounter);
							break;
						case 'Image' :
							RCCWP_WritePostPage::PhotoInterface($customField, $inputName, $groupCounter, $fieldCounter);
							break;
						case 'Date' :
							RCCWP_WritePostPage::DateInterface($customField, $inputName, $groupCounter, $fieldCounter);
							break;
						case 'Audio' :
							RCCWP_WritePostPage::AudioInterface($customField, $inputName, $groupCounter, $fieldCounter);
							break;
						default:
							;
					}


				if($fieldCounter == 1)
				{
					?>
					<?php if($customField->duplicate != 0 ){ ?>
					<br />
					
					<a class ="duplicate_button" href="javascript:typeHandler('<?php echo $inputName ?>',<?php echo $customFieldId ?>,<?php echo $groupCounter ?>)" > 
						<img class="duplicate_image"  src="<?php echo FLUTTER_URI; ?>images/duplicate.png" alt="Add field duplicate"/> Duplicate 
					</a>
					<?php } ?>
					 
					<?php
				}
				else
				{	
				?>
					<br />
					
					<a class ="duplicate_button" href="javascript:deleteDuplicate('row_<?php echo $inputName?>')" > 
						<img class="duplicate_image"  src="<?php echo FLUTTER_URI; ?>images/delete.png" alt="Remove field duplicate"/> Remove 
					</a>
				<?php
				}
				?>
				<input type="hidden" name="rc_cwp_meta_keys[]" value="<?php echo $inputName?>" />
			</td>
		</tr>
	<?php
	}
	
	function CheckboxInterface($customField, $inputName, $groupCounter, $fieldCounter)
	{
		$customFieldId = '';
		if (isset($_REQUEST['post']))
		{
			$customFieldId = $customField->id;
			$value = RCCWP_CustomField::GetCustomFieldValues(true, $_REQUEST['post'], $customField->name, $groupCounter, $fieldCounter);
			$checked = $value == 'true' ? 'checked="checked"' : '';
		}
		?>
		
		<input type="hidden" name="<?php echo $inputName?>" value="false" />
		<input tabindex="3" class="checkbox" name="<?php echo $inputName?>" value="true" id="<?php echo $inputName?>" type="checkbox" <?php echo $checked?> />
		
		<?php
	}
	
	function CheckboxListInterface($customField, $inputName, $groupCounter, $fieldCounter)
	{
		$customFieldId = '';
		$values = array();
		if (isset($_REQUEST['post']))
		{
			$customFieldId = $customField->id;
			$values = (array) RCCWP_CustomField::GetCustomFieldValues(false, $_REQUEST['post'], $customField->name, $groupCounter, $fieldCounter);
		}
		else
		{
			$values = $customField->default_value;
		}
		?>
		
		
		<?php
		foreach ($customField->options as $option) :
			$checked = in_array($option, (array)$values) ? 'checked="checked"' : '';
			$option = attribute_escape(trim($option));
		?>
		
			<label for="" class="selectit">
				<input tabindex="3" id="<?php echo $option?>" name="<?php echo $inputName?>[]" value="<?php echo $option?>" type="checkbox" <?php echo $checked?>/>
				<?php echo attribute_escape($option)?>
			</label><br />
		
		<?php
		endforeach;
		?>
			
		
		<?php
	}
	
	function DropdownListInterface($customField, $inputName, $groupCounter, $fieldCounter)
	{
		$customFieldId = '';
		if (isset($_REQUEST['post']))
		{
			$customFieldId = $customField->id;
			$value = attribute_escape(RCCWP_CustomField::GetCustomFieldValues(true, $_REQUEST['post'], $customField->name, $groupCounter, $fieldCounter));
		}
		else
		{
			$value = $customField->default_value[0];
		}
		
		if ($customField->required_field) $requiredClass = "field_required";
		?>
		
		<select tabindex="3"  class="<?php echo $requiredClass;?>"  name="<?php echo $inputName?>">
			<option value="">--Select--</option>
		
		<?php
		foreach ($customField->options as $option) :
			$selected = $option == $value ? 'selected="selected"' : '';
			$option = attribute_escape(trim($option));
		?>
		
			<option value="<?php echo $option?>" <?php echo $selected?>><?php echo $option?></option>
		
		<?php
		endforeach;
		?>
		
		</select>	
		
		
		<?php
	}
	
	function ListboxInterface($customField, $inputName, $groupCounter, $fieldCounter)
	{
		$customFieldId = '';
		if (isset($_REQUEST['post']))
		{
			$customFieldId = $customField->id;
			$values = (array) RCCWP_CustomField::GetCustomFieldValues(false, $_REQUEST['post'], $customField->name, $groupCounter, $fieldCounter);
		}
		else
		{
			$values = $customField->default_value;
		}
		
		$inputSize = (int)$customField->properties['size'];
		if ($customField->required_field) $requiredClass = "field_required";
		?>
		
		<select  class="<?php echo $requiredClass;?>"  tabindex="3" id="<?php echo $inputName?>" name="<?php echo $inputName?>[]" multiple size="<?php echo $inputSize?>">
		
		<?php
		foreach ($customField->options as $option) :
			$selected = in_array($option, (array)$values) ? 'selected="selected"' : '';
			$option = attribute_escape(trim($option));
		?>
			
			<option value="<?php echo $option?>" <?php echo $selected?>><?php echo $option?></option>
			
		<?php
		endforeach;
		?>
		
		</select>
		
		
		<?php
	}
	
	function MultilineTextboxInterface($customField, $inputName, $groupCounter, $fieldCounter)
	{
		$customFieldId = '';
		
		if (isset($_REQUEST['post']))
		{
			$customFieldId = $customField->id;
			$value = attribute_escape(RCCWP_CustomField::GetCustomFieldValues(true, $_REQUEST['post'], $customField->name, $groupCounter, $fieldCounter));
		}
		
		$inputHeight = (int)$customField->properties['height'];
		$inputWidth = (int)$customField->properties['width'];
		if ($customField->required_field) $requiredClass = "field_required";
		
		?>
		<script type="text/javascript">
			//Event.observe(window, 'load', function() {
				tinyMCE.execCommand('mceAddControl', false, "<?php echo $inputName?>");
			//});
			</script>
		
		<textarea  class="<?php echo $requiredClass;?>" tabindex="3"  id="<?php echo $inputName?>" name="<?php echo $inputName?>" rows="<?php echo $inputHeight?>" cols="<?php echo $inputWidth?>"><?php echo $value?></textarea>
		
		
		<?php
	}
	
	function TextboxInterface($customField, $inputName, $groupCounter, $fieldCounter)
	{
		$customFieldId = '';
		
		if (isset($_REQUEST['post']))
		{
			$customFieldId = $customField->id;
			$value = attribute_escape(RCCWP_CustomField::GetCustomFieldValues(true, $_REQUEST['post'], $customField->name, $groupCounter, $fieldCounter));
		}
		
		
		$inputSize = (int)$customField->properties['size'];
		if ($customField->required_field) $requiredClass = "field_required";
		
		// If the field is at right, set a constant width to the text box
		$field_group = RCCWP_CustomGroup::Get($customField->group_id);
		if ($field_group->at_right){
			if ($inputSize>14) $inputSize = 14;
		}
		?>
		
		<input class="<?php echo $requiredClass;?>" tabindex="3" id="<?php echo $inputName?>" name="<?php echo $inputName?>" value="<?php echo $value?>" type="text" size="<?php echo $inputSize?>" />
		
		<?php
	}
	

	function FileInterface($customField, $inputName, $groupCounter, $fieldCounter)
	{
		$customFieldId = '';
		$freshPageFolderName = (dirname(plugin_basename(__FILE__)));
		if ($customField->required_field) $requiredClass = "field_required";

		if (isset($_REQUEST['post']))
		{
			$customFieldId = $customField->id;
			$value = attribute_escape(RCCWP_CustomField::GetCustomFieldValues(true, $_REQUEST['post'], $customField->name, $groupCounter, $fieldCounter));
			$path = CANVASURI.'files_flutter/';
			$valueRelative = $value;
			$value = $path.$value;
		}
		
		// If the field is at right, set a constant width to the text box
		$field_group = RCCWP_CustomGroup::Get($customField->group_id);
		$urlInputSize = false;
		$is_canvas = 0;
		if ($field_group->at_right){
			$urlInputSize = 5;
			$is_canvas = 1;
		}

		?>
		
		<p class="error_msg_txt" id="upload_progress_<?php echo $inputName?>" style="visibility:hidden;height:0px"></p>
		
		<?php if( $valueRelative ){ echo '(<a href="' . $value . '" target="_blank">View Current</a>)'; } ?>
			
		<input tabindex="3" 
			id="<?php echo $inputName?>" 
			name="<?php echo $inputName?>" 
			type="hidden"
			class="<?php echo $requiredClass;?>" 
			size="46"
			value="<?php echo $valueRelative?>"
			/>
		
		<?php
		include_once( "RCCWP_SWFUpload.php" ) ;
		RCCWP_SWFUpload::Body($inputName, 0, $is_canvas, $urlInputSize) ;
	}


	function PhotoInterface($customField, $inputName, $groupCounter, $fieldCounter)
	{
		$customFieldId 	= '';
		$filepath 		= $inputName . '_filepath';
		$noimage 		= "";
		$freshPageFolderName = (dirname(plugin_basename(__FILE__)));
		if ($customField->required_field) $requiredClass = "field_required";

		//global $countImageThumbID;
		$imageThumbID = "";
		$imageThumbID = "img_thumb_".$inputName; //.++$countImageThumbID;

		if (isset($_REQUEST['post']))
		{
			$customFieldId = $customField->id;
			$value = RCCWP_CustomField::GetCustomFieldValues(true, $_REQUEST['post'], $customField->name, $groupCounter, $fieldCounter);

			$path = CANVASURI.'phpThumb.php?src='.CANVASURI.'files_flutter/';
			$valueRelative = $value;
			$value = $path.$value;
			if(!(strpos($value, 'http') === FALSE))
				$hidValue = str_replace('"', "'", $valueRelative);
			$value = stripslashes(trim("\<img src=\'".$value."\' class=\"freshout\" \/\>"));
		}
		else
		{
			$noimage = "<img src='".CANVASURI."images/noimage.jpg' id='".$imageThumbID."'/>";
		}
		if($valueRelative == '')
		{
			$noimage = "<img src='".CANVASURI."images/noimage.jpg' id='".$imageThumbID."'/>";
		}

		include_once('RCCWP_Options.php');
		$useSnipshot = RCCWP_Options::Get('use-snipshot');

		// If the field is at right, set a constant width to the text box
		$field_group = RCCWP_CustomGroup::Get($customField->group_id);
		$urlInputSize = false;
		$is_canvas = 0;
		if ($field_group->at_right){
			$urlInputSize = 5;
			$is_canvas = 1;
		}
	
		?>
		
		<p class="error_msg_txt" id="upload_progress_<?php echo $inputName?>" style="visibility:hidden;height:0px"></p>
		 
		<div id="image_photo" style="width:150px;">
		
			<?php
				if($valueRelative != "")
				{ 
					if(!(strpos($value, '<img src') === FALSE))
					{
						$valueLinkArr = explode("'", $value);
						$valueLink = $valueLinkArr[1];
						//$valueLink = $value;

						if(!(strpos($value, '&sw') === FALSE))
						{
							// Calculating Image Width/Height
							$arrSize = explode("=",$value);
							$arrSize1 = explode("&",$arrSize[3]);
							$arrSize2 = explode("&",$arrSize[4]);

							$imageWidth = $arrSize1[0];
							$imageHeight = $arrSize2[0];
							// END

							$valueArr = explode("&sw", $value);
							$valueArr = explode("'", $valueArr[1]);
							$value = str_replace("&sw".$valueArr[0]."'", "&sw".$valueArr[0]."&w=150&h=120' align='center' id='".$imageThumbID."'", $value);
						}
						else if(!(strpos($value, '&w') === FALSE))
						{
							// Calculating Image Width/Height
							$arrSize = explode("=",$value);
							$arrSize1 = explode("&",$arrSize[3]);
							$arrSize2 = explode("'",$arrSize[4]);

							$imageWidth = $arrSize1[0];
							$imageHeight = $arrSize2[0];
							// END

							$valueArr = explode("&", $value);
							$valueArr = explode("'", $valueArr[2]);
							$value = str_replace($valueArr[0], "&w=150&h=120' align='left' id='".$imageThumbID."'", $value);
						}
						else
						{
							// Calculating Image Width/Height
							$arrSize = explode("&",$params);
							$arrSize1 = explode("=",$arrSize[1]);
							$arrSize2 = explode("=",$arrSize[2]);

							$imageWidth = $arrSize1[1];
							$imageHeight = $arrSize2[1];
							// END

							$valueArr = explode("'", $value);
							$value = str_replace($valueArr[1], $valueArr[1]."&w=150' id='".$imageThumbID."' align='", $value);
						}
						if(!empty($imageWidth))
						{
						?>
						<script language="javascript">
							//document.getElementById('spanImageSize').innerHTML = " &nbsp; (<?php echo $imageWidth; echo ' x '; echo $imageHeight; ?>)";
						</script>

						<?php
						}
							echo '<a style="display: block;margin-left: auto;margin-right: auto " href="' . $valueLink . '" target="_blank">' . $value .'</a>';
						}
					}
					echo $noimage;
					$arrSize = explode("phpThumb.php?src=",$valueLink);
					$fileLink = $arrSize[1];
					$andPos = strpos($arrSize[1],"?");
					if ($andPos === FALSE)	 $andPos = strpos($arrSize[1],"&");
				
					// Remove & parameters from file path
					if ($andPos>0)	$fileLink = substr($arrSize[1], 0, $andPos);
				
					$ext = substr($fileLink, -3, 3);	
					
					
					/*$arrSizeext = explode("&",$arrSize[1]);
					if (sizeof($arrSizeext) > 1){
					$ext = substr($arrSizeext[0],-4, -1);
					$fileLink = substr($arrSizeext[0],0, -1);
					}
					else	{
					$ext = substr($arrSizeext[0],-3);
					$fileLink = $arrSizeext[0];
					}*/
			?>	
		
		<div id="photo_edit_link_<?php echo $inputName ?>" class="photo_edit_link"> 
			
				<?php
				if(isset($_REQUEST['post']) && $hidValue != '')
				{
					if ($useSnipshot){ 
						echo "<a href='".RCCWP_WritePostPage::snipshot_anchor($fileLink)."' class='thickbox' tittle='Flutter'<strong onclick=prepareUpdatePhoto('$inputName')>Edit</strong> </a>" ;
					}else{
						$cropperLink = CANVASURI."cropper.php?input_name=".urlencode($inputName)."&id=".urlencode($hidValue)."&url=".urlencode($_SERVER['REQUEST_URI'])."&imageThumbId=$imageThumbID";
				?>
						<a  rel="gb_page_fs[]" href="<?php echo $cropperLink ?>" title="Flutter" class="greybox" id="lnkCropper"> <strong>Crop</strong> </a>
				<?php 	
					} 
				}
				?>
			
		</div>
		</div>
		<br />
		<div id="image_input">
					
			<input tabindex="3" 
				id="<?php echo $inputName?>" 
				name="<?php echo $inputName?>" 
				type="hidden" 
				class="<?php echo $requiredClass;?>"
				size="46"
				value="<?php echo $hidValue?>"
				/>
			
			<?php
			include_once( "RCCWP_SWFUpload.php" ) ;
			RCCWP_SWFUpload::Body($inputName, 1, $is_canvas, $urlInputSize) ;
			?>

		</div>
		
		<input type="hidden" name="rc_cwp_meta_photos[]" value="<?php echo $inputName?>" 	/>
		<input type="hidden" name="<?php echo $inputName?>_dorename" id="<?php echo $inputName?>_dorename" value="0" />
		

		<!-- Used to store name of URL Field -->
		<!--<input type="hidden" name="parent_text_<?php echo $countImageThumbID; ?>" id="parent_text_<?php echo $countImageThumbID; ?>" value="<?php echo $filepath; ?>"/>
		<input type="hidden" name="hidImgValue<?php echo $countImageThumbID; ?>" id="hidImgValue<?php echo $countImageThumbID; ?>" value="<?php echo $inputName; ?>_last" />-->

		<?php
	}

	function snipshot_anchor($fileLink)
	{
/*
		return '<a rel="gb_page_fs[]" href="http://services.snipshot.com/?snipshot_input='. urlencode($fileLink).'&snipshot_callback='.urlencode(CANVASURI."RCCWP_SnipshotCallback.php").'&snipshot_output=file&snipshot_callback_agent=user&test=hello&snipshot_output_options='.urlencode("{\"filetype\":\"$ext\"}").' title="Flutter" class="greybox1" id="lnkCropper">' ;

		return '<a href="http://services.snipshot.com/?snipshot_input='. urlencode($fileLink).'&snipshot_callback='.urlencode(CANVASURI."RCCWP_SnipshotCallback.php").'&snipshot_output=file&snipshot_callback_agent=user&test=hello&snipshot_output_options='.urlencode("{\"filetype\":\"$ext\"}").'&KeepThis=true&TB_iframe=true&height=400&width=600" class="thickbox" title="flutter" >' ;
*/
		return 'http://services.snipshot.com/?snipshot_input='. urlencode($fileLink).'&snipshot_callback='.urlencode(CANVASURI."RCCWP_SnipshotCallback.php").'&snipshot_output=file&snipshot_callback_agent=user&test=hello&snipshot_output_options='.urlencode("{\"filetype\":\"$ext\"}").'&KeepThis=true&TB_iframe=true&height=400&width=600' ;
	}
	
	function RadiobuttonListInterface($customField, $inputName, $groupCounter, $fieldCounter)
	{
		$customFieldId = '';
		
		if (isset($_REQUEST['post']))
		{
			$value = attribute_escape(RCCWP_CustomField::GetCustomFieldValues(true, $_REQUEST['post'], $customField->name, $groupCounter, $fieldCounter));
		}
		else
		{
			$value = $customField->default_value[0];
		}
		?>
		
		<?php
		foreach ($customField->options as $option) :
			$checked = $option == $value ? 'checked="checked"' : '';
			$option = attribute_escape(trim($option));
		?>
			<label for="" class="selectit">
				<input tabindex="3" id="<?php echo $option?>" name="<?php echo $inputName?>" value="<?php echo $option?>" type="radio" <?php echo $checked?>/>
				<?php echo $option?>
			</label><br />
		<?php
		endforeach;
		?>
		
		<?php
	}

	function DateInterface($customField, $inputName, $groupCounter, $fieldCounter)
	{
		global $wpdb;
		$customFieldId = '';
		
		if (isset($_REQUEST['post']))
		{
			$customFieldId = $customField->id;
			$value = attribute_escape(RCCWP_CustomField::GetCustomFieldValues(true, $_REQUEST['post'], $customField->name, $groupCounter, $fieldCounter));
		}
		else
			$value = strftime("%Y-%m-%d");
		
	

		$sQuery = "SELECT * FROM " . RC_CWP_TABLE_CUSTOM_FIELD_PROPERTIES . " WHERE custom_field_id='".$customField->id."'";
		$result = $wpdb->get_results($sQuery);

		$arrDateFormat = explode('"', $result[0]->properties);
		$dateFormat = $arrDateFormat[3];
		
		// If the field is at right, set a constant width to the text box
		$field_group = RCCWP_CustomGroup::Get($customField->group_id);
		$inputSize = 25;
		if ($field_group->at_right){
			$inputSize = 15;
		}
		

?>
		<script type="text/javascript">
			
			addEventHandler(window, 'load',function () {
				InitializeDateObject('<?php echo $inputName?>', '<?php echo $dateFormat?>', '<?php echo $value?>');
			}); 
			
			InitializeDateObject('<?php echo $inputName?>', '<?php echo $dateFormat?>', '<?php echo $value?>');
			
			
		</script>	

		
		<input tabindex="3" id="display_date_field_<?php echo $inputName?>" value="<?php echo $value?>" type="text" size="<?php echo $inputSize?>" READONLY />
		<input tabindex="3" id="date_field_<?php echo $inputName?>" name="<?php echo $inputName?>" value="<?php echo $value?>" type="hidden" />
		<input type="button" value="Pick..." onclick="dp_cal['<?php echo $inputName?>'].toggle();" />
		<input type="button" value="Today" onclick="today_date('<?php echo $inputName?>', '<?php echo $dateFormat?>');" />

		<input type="hidden" name="rc_cwp_meta_date[]" value="<?php echo $inputName?>" 	/>

		
		<?php
	}

	function AudioInterface($customField, $inputName, $groupCounter, $fieldCounter)
	{
		$customFieldId = '';
		$freshPageFolderName = (dirname(plugin_basename(__FILE__)));
		if ($customField->required_field) $requiredClass = "field_required";
		

		if (isset($_REQUEST['post']))
		{
			$customFieldId = $customField->id;
			$valueOriginal = RCCWP_CustomField::GetCustomFieldValues(true, $_REQUEST['post'], $customField->name, $groupCounter, $fieldCounter);
			$path = CANVASURI . 'files_flutter/';
			$$valueOriginalRelative = $valueOriginal;
			$valueOriginal = $path.$valueOriginal;
			if (!empty($valueOriginal))
				$value = stripslashes(trim("\<div style=\'width:260px;padding-top:3px;\'\>\<object classid=\'clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\' codebase='\http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0\' width=\'95%\' height=\'20\' wmode=\'transparent\' \>\<param name=\'movie\' value=\'".CANVASURI."js/singlemp3player.swf?file=".urlencode($valueOriginal)."\' wmode=\'transparent\' /\>\<param name=\'quality\' value=\'high\' wmode=\'transparent\' /\>\<embed src=\'".CANVASURI."js/singlemp3player.swf?file=".urlencode($valueOriginal)."' width=\'100\%\' height=\'20\' quality=\'high\' pluginspage=\'http://www.macromedia.com/go/getflashplayer\' type=\'application/x-shockwave-flash\' wmode=\'transparent\' \>\</embed\>\</object\>\</div\><br />"));			
		}
		
		// If the field is at right, set a constant width to the text box
		$field_group = RCCWP_CustomGroup::Get($customField->group_id);
		$urlInputSize = false;
		$is_canvas = 0;
		if ($field_group->at_right){
			$urlInputSize = 5;
			$is_canvas = 1;
		}

		?>
		<p class="error_msg_txt" id="upload_progress_<?php echo $inputName?>" style="visibility:hidden;height:0px"></p>
		 
		
		<?php if( $$valueOriginalRelative ){ echo $value; } ?>
		
		
		<input tabindex="3" 
			id="<?php echo $inputName?>" 
			name="<?php echo $inputName?>" 
			type="hidden" 
			class="<?php echo $requiredClass;?>"
			size="46"
			value="<?php echo $$valueOriginalRelative?>"			
			/>
		

		<?php
		include_once( "RCCWP_SWFUpload.php" ) ;
		RCCWP_SWFUpload::Body($inputName, 2, $is_canvas, $urlInputSize) ;
		
	}

}
?>
