<!--*********************************************************************************
** The contents of this file are subject to the vtiger CRM Public License Version 1.0
 * ("License"); You may not use this file except in compliance with the License
 * The Original Code is:  vtiger CRM Open Source
 * The Initial Developer of the Original Code is vtiger.
 * Portions created by vtiger are Copyright (C) vtiger.
 * All Rights Reserved.
*
 ********************************************************************************/
-->
<!-- BEGIN: main -->
<script language="JavaScript" type="text/javaScript" src="include/general.js"></script>
<script language="JavaScript" type="text/javaScript">
function splitValues() {
	var picklistObj=getObj("fldPickList")
	var pickListContent=picklistObj.value
	var pickListAry=new Array()
	var i=0;
	
	//Splitting up of Values
	if (pickListContent.indexOf("\n")!=-1) {
		while(pickListContent.length>0) {
			if(pickListContent.indexOf("\n")!=-1) {
				if (pickListContent.replace(/^\s+/g, '').replace(/\s+$/g, '').length>0) {
					pickListAry[i]=pickListContent.substr(0,pickListContent.indexOf("\n")).replace(/^\s+/g, '').replace(/\s+$/g, '')
					pickListContent=pickListContent.substr(pickListContent.indexOf("\n")+1,pickListContent.length)
					i++
				} else break;
			} else {
				pickListAry[i]=pickListContent.substr(0,pickListContent.length)	
				break;
			}
		}
/*		while(pickListContent.indexOf("\n")!=-1) {
			if (pickListContent.replace(/^\s+/g, '').replace(/\s+$/g, '').length>0) {
				pickListAry[i]=pickListContent.substr(0,pickListContent.indexOf("\n")).replace(/^\s+/g, '').replace(/\s+$/g, '')
				pickListContent=pickListContent.substr(pickListContent.indexOf("\n")+1,pickListContent.length)
				i++
			} else break;
		}
*/
	} else if (pickListContent.replace(/^\s+/g, '').replace(/\s+$/g, '').length>0) {
		pickListAry[0]=pickListContent.replace(/^\s+/g, '').replace(/\s+$/g, '')
	}
	
	return pickListAry;
}

function validate() {
	var str = getObj("fldLabel").value;
	if (!emptyCheck("fldLabel","Label"))
		return false

	var re1=/^[a-z\d\_ ]+$/i
	if (!re1.test(str))
        {
                alert("Special characters are not allowed in Label field")
                return false;
        }
	
	if (lengthLayer.style.display=="block") {
		if (!emptyCheck("fldLength","Length"))
			return false
		
		if (!intValidate("fldLength","Length"))
			return false
		
		if (!numConstComp("fldLength","Length","GT",0))
			return false
		
		if (!numConstComp("fldLength","Length","LE",255))
			return false
	}
	
	if (decimalLayer.style.display=="block") {
		if (getObj("fldDecimal").value.replace(/^\s+/g, '').replace(/\s+$/g, '').length>0)
			if (!intValidate("fldDecimal","Decimal"))
				return false
		if (!numConstComp("fldDecimal","Decimal","GE",0))
			return false
		
		if (!numConstComp("fldDecimal","Decimal","LE",30))
			return false
	}
	
	var picklistObj=getObj("fldPickList")
	if (pickListLayer.style.display=="block") {
		if (emptyCheck("fldPickList","Picklist values"))	{
			var pickListAry=new Array()
			pickListAry=splitValues()
			
			//Empty Check validation
			for (i=0;i<pickListAry.length;i++) {
				if (pickListAry[i]=="") {
					alert("Picklist value cannot be empty")
					picklistObj.focus()
					return false
				}
			}

			//Duplicate Values' Validation
			for (i=0;i<pickListAry.length;i++) {
				for (j=i+1;j<pickListAry.length;j++) {
					if (pickListAry[i]==pickListAry[j]) {
						alert("Duplicate Values found")
						picklistObj.focus()
						return false
					}
				}
			}
			
			return true
		} else return false
	}
}
</script>
<script language="JavaScript" type="text/javaScript">
var fieldValueArr=new Array('Text','Number','Percent','Currency','Date','Email','Phone','Picklist','URL','Checkbox')
var fieldTypeArr=new Array('text','number','percent','currency','date','email','phone','picklist','url','checkbox')
var currFieldIdx=0,totFieldType;
function init() {
	lengthLayer=getObj("lengthdetails")
	decimalLayer=getObj("decimaldetails")
	pickListLayer=getObj("picklist")
	totFieldType=fieldTypeArr.length-1
	
	if (window.navigator.appName.toUpperCase()=="OPERA")
		getObj("fieldLayer").scrolling="auto"
}

var focusFieldType;
function setVisible() {
	if (focusFieldType==true) {
		var selFieldType=fieldLayer.getObj("field"+currFieldIdx)
		var height=findPosY(selFieldType)+selFieldType.offsetHeight
		
		if (currFieldIdx==0) {
			fieldLayer.document.body.scrollTop=0
		} else if (height>220) {
			fieldLayer.document.body.scrollTop+=height-220
		} else {
			fieldLayer.document.body.scrollTop-=220-height
		}
		
		if (window.navigator.appName.toUpperCase()=="OPERA") {
				var newDiv=fieldLayer.document.createElement("DIV")
				newDiv.style.zIndex="-1"
				newDiv.style.position="absolute"
				newDiv.style.top=findPosY(selFieldType)+"px"
				newDiv.style.left="25px"
				
				var newObj=fieldLayer.document.createElement("INPUT")
				newObj.type="text"
				
				fieldLayer.document.body.appendChild(newDiv)
				newDiv.appendChild(newObj)
				newObj.focus()
				
				fieldLayer.document.body.removeChild(newDiv)
		} 
	}
}

function selFieldType(id,scrollLayer,bool) {
	currFieldIdx=id
	var type=fieldTypeArr[id]
	for (i=0;i<=totFieldType;i++) {
		if (i==id) {
			if (bool==true)	fieldLayer.getObj("field"+i).className="fieldType sel"
			else fieldLayer.getObj("field"+i).className="fieldType sel hilite"
			if (scrollLayer=="yes")	focusFieldType=true
			else focusFieldType=false
		} else fieldLayer.getObj("field"+i).className="fieldType"
	}
	

	if (type=='text') {
		lengthLayer.style.display="block"
		decimalLayer.style.display="none"
		pickListLayer.style.display="none"
	} else if (type=='date' || type=='email' || type=='phone' || type=='url' || type=='checkbox') {
		lengthLayer.style.display="none"
		decimalLayer.style.display="none"
		pickListLayer.style.display="none"
	} else if (type=='number' || type=='percent' || type=='currency') {
		lengthLayer.style.display="block"
		decimalLayer.style.display="block"
		pickListLayer.style.display="none"
	} else if (type=='picklist') {
		lengthLayer.style.display="none"
		decimalLayer.style.display="none"
		pickListLayer.style.display="block"
	}
		
	
	getObj("fieldType").value = fieldValueArr[id];
}
function srchFieldType(ev) {
	if (browser_ie) {
		var keyCode=window.fieldLayer.event.keyCode
		var currElement=window.fieldLayer.event.srcElement
		if (currElement.id.indexOf("field")>=0) var doSearch=true
		else var doSearch=false
		window.fieldLayer.event.cancelBubble=true
	} else if (browser_nn4 || browser_nn6) {
		var keyCode=ev.which
		var currElement=ev.target
		if (currElement.type) doSearch=false
		else doSearch=true
	}
	
	if (doSearch==true) {
		switch (keyCode) {
			case 9	: //Reset Field Type
						resetFieldTypeHilite();break;
			case 33	: //Page Up
			case 36	: //Home
						selFieldType(0);break;
			case 34	: //Page Down
			case 35	: //End
						selFieldType(totFieldType);break; 
			case 38	: //Up
						if (currFieldIdx!=0)
							selFieldType(currFieldIdx-1);
						else
							selFieldType(totFieldType,"yes");
						break; 
			case 40	: //Down
						if (currFieldIdx!=totFieldType)
							selFieldType(currFieldIdx+1);
						else
							selFieldType(0,"yes");
			default : //Character Search
						if (keyCode>=65 && keyCode<=90) {
							var srchChar=String.fromCharCode(keyCode)
							if (currFieldIdx==totFieldType) var startIdx=0
							else var startIdx=currFieldIdx+1
							
							var loop=1
							for (i=startIdx;i<=totFieldType;) {
								currFieldStr=fieldLayer.getObj("field"+i).innerHTML
								currFieldStr=currFieldStr.replace(/^\s+/g, '').replace(/\s+$/g, '').substr(0,1)
								if (currFieldStr==srchChar) {
									selFieldType(i,"yes")
									i++
								} else if (i==totFieldType && loop<=2) {
									i=0
									loop++
								} else i++
							}
					   }
		}
	}	
}
function resetFieldTypeHilite() {
	fieldLayer.getObj("field"+currFieldIdx).className="fieldType sel"
}
</script>
<body onClick="resetFieldTypeHilite()">
<form action="index.php" method="post" name="addtodb" onSubmit="return validate()">
<input type="hidden" name="module" value="Settings">
<input type="hidden" name="action" value="AddCustomFieldToDB">
<div class="error">	<BR> {DUPLICATE_ERROR} </div>
<div align="right" style="width:90%"><font class="required">{APP.LBL_REQUIRED_SYMBOL}</font>{APP.NTC_REQUIRED}</div>
<table width="90%" border="0" cellspacing="0" cellpadding="0" class="formOuterBorder">
<tr>
<th class="formSecHeader"><div align="left">{MOD.LBL_PROVIDE_FIELD_INFORMATION}</div></th>
</tr>
<tr>
<td>
<table width="100%" border="0" cellspacing="0" cellpadding="0" style="margin:10">
  <tr> 
    <td width="160">{MOD.LBL_SELECT_FIELD_TYPE}</td>
    <td>{MOD.LBL_PROVIDE_FIELD_DETAILS}</td>
  </tr>
  <tr> 
    <td height="180" valign="top"><iframe name="fieldLayer" src="index.php?module=Settings&action=fieldtypes" scrolling="yes" height="170" width="150"></iframe></td>
    <td valign="top"><table border="0" cellspacing="1" cellpadding="0">
        <tr> 
          <td class="dataLabel" nowrap width="100"><font class="required">{APP.LBL_REQUIRED_SYMBOL}</font>{MOD.LBL_LABEL}</td>
          <td width="150"><input type="text" name="fldLabel" value="{LABELVALUE}" style="width:100%"></td>
        </tr>
	</table>
	<div id="lengthdetails">
	<table border="0" cellspacing="1" cellpadding="0">
	<tr>
	  <td class="dataLabel" nowrap width="100"><font class="required">{APP.LBL_REQUIRED_SYMBOL}</font>{MOD.LBL_LENGTH}</td>
          <td width="150"><input type="text" name="fldLength" value="{LENGTHVALUE}" style="width:100%"></td>
	</tr>
	</table>
	</div>
	<div id="decimaldetails">
	<table border="0" cellspacing="1" cellpadding="0">
	<tr>
	  <td class="dataLabel" nowrap width="100">{MOD.LBL_DECIMAL_PLACES}</td>
          <td width="150"><input type="text" name="fldDecimal" value="{DECIMALVALUE}" style="width:100%"></td>
	</tr>
	</table>
	</div>
	<div id="picklist">
	<table border="0" cellspacing="1" cellpadding="0">
	<tr>
          <td class="dataLabel" nowrap width="100" valign="top"><font class="required">{APP.LBL_REQUIRED_SYMBOL}</font>{MOD.LBL_PICK_LIST_VALUES}</td>
          <td width="150" valign="top"><textarea name="fldPickList" rows="10" style="width:100%">{PICKLISTVALUE}</textarea></td>
	  <td style="padding-left:10px"><img src="themes/Aqua/images/picklist_hint.gif"/></td>
        </tr>
	</table>
	</div>
      </td>
  </tr>
</table>
</td>
</tr>
</table>
<br>
<table width="90%" border="0" cellpadding="0" cellspacing="0">
  <tr> 
    <td> <div align="center"> 
        <input type="submit" name="Submit" value="{APP.LBL_SAVE_BUTTON_LABEL}" class="button" >
        <input type="button" name="Submit2" value="{APP.LBL_CANCEL_BUTTON_LABEL}" class="button" onclick="testing()">
      </div></td>
  </tr>
</table>
<input type='hidden' name="fieldType" id="fieldType" value="{FLDTYPEVALUE}">
<input type='hidden' name="fld_module" id="fld_module" value="{FLD_MODULE}">
</form>
</body><br>
<script type="text/javascript">
function testing()
{
	document.location.href="index.php?module=Settings&action=CustomFieldList&fld_module="+document.addtodb.fld_module.value	
}
</script>
<!-- END: main -->