Hiding search button in combo selectors for javascript enabled browsers.
[fa-stable.git] / includes / ui / ui_view.inc
index 08402fca44367e364e3270a5f1ea862edb5f703c..d76dd824a34ef138c096182a6d26a0f28df5a85b 100644 (file)
@@ -553,57 +553,46 @@ function get_js_open_window($width, $height)
        return $js;
 }
 
-function get_js_form_entry($edit_name, $sel_name, $next_name)
-{
-       $js = "\n<script type=\"text/javascript\">\n"
-               . "<!--\n"
-               . "function recalcAccounts()\n"
-               . "{\n"
-               . "     var myForm = document.forms[0];\n"
-               . "     var len = myForm.$sel_name.length;\n"
-               . "     var txt;\n"
-               . "     var ac = myForm.$edit_name.value;\n"
-               . "     var i;\n"
-               . "     myForm.$sel_name.options[myForm.$sel_name.selectedIndex].selected = false;\n"
-               . "     for (i = 0; i < len; i++)\n"
-               . "     {\n"
-               . "             txt = myForm.$sel_name.options[i].text;\n"
-               . "             if (txt.indexOf(ac) == 0)\n"
-               . "             {\n"
-               . "                     myForm.$sel_name.options[i].selected = true;\n"
-               . "                     break;\n"
-               . "             }\n"
-               . "     }\n"
-               . "}\n"
-               . "function setAccount(p, s)\n"
-               . "{\n"
-               . "     var myForm = document.forms[0];\n"
-               . " if (p == 0 && myForm.$edit_name.value == \"\")\n"
-               . "             return true;\n"
-               . "     myForm.$edit_name.value = myForm.$sel_name.options[myForm.$sel_name.selectedIndex].value;\n"
-               . " if (s)\n"
-               . "  myForm.submit();\n"
-               . "     myForm.$next_name.focus();\n"
-               . "     return true;\n"
-               . "}\n"
-               . "-->\n"
-               . "</script>\n";
-       return $js;
+//$focus_on = array();
+/*
+  Setting focus on element $name in $form.
+  If $form<0 $name is element id.
+*/
+function set_focus($name, $form_no=0) {
+//  global $focus_on;
+//  $focus_on['name'] = $name;
+//  $focus_on['form'] = $form_no;
+    $_POST['_focus'] = $name;
 }
-
-function get_js_set_focus($name)
-{
-       $js = "\n<script type=\"text/javascript\">\n"
-               . "<!--\n"
-               . "function setFocus()\n"
-               . "{\n"
-               . "     document.forms[0].$name.focus();\n"
-               . "}\n"
-               . "-->\n"
-               . "</script>\n";
-       return $js;
+//
+//     Set default focus on first field $name if not set yet
+//
+function default_focus($name, $form_no=0) {
+//  global $focus_on;
+//    if (!isset($focus_on['name']) && (!isset($_POST['_focus']) || $_POST['_focus']=='') ) {
+//echo "<h2>$name</h2>";
+//     $focus_on['name'] = $name;
+//     $focus_on['form'] = $form_no;
+//    }
+    if (!isset($_POST['_focus'])) {
+       $_POST['_focus'] = $name;
+    }
 }
-
+/*
+function set_js_focus() {
+  global $focus_on;
+  $js = '';
+
+//  if (isset($focus_on['name'])) {
+
+    $js =  "<script type=\"text/javascript\">\n"
+       ."Behaviour.addLoadEvent(function(){ setFocus('".$focus_on['name']."'".( $focus_on['form']>=0 ?  (",".$focus_on['form']): '').
+       ");});"
+       ."</script>";
+//  }
+  return $js;
+}
+*/
 function get_js_png_fix()
 {
        $js = "<script type=\"text/javascript\">\n"
@@ -633,18 +622,8 @@ function get_js_png_fix()
 
 function get_js_date_picker()
 {
-       global $dateseps, $date_system;
-
-       $how = user_date_format();                              // 0 = us/ca, 1 = eu, au, nz, 2 = jp, sw
-       $sep = $dateseps[user_date_sep()];              // date separator
-       $wstart = (($date_system == 1 || $date_system == 2) ? 6 : ($how == 0 ? 0 : 1));                 // weekstart (sun = 0, mon = 1)
-       $months = array(_("January"),_("February"),_("March"),_("April"),_("May"),_("June"),_("July"),_("August"),_("September"),_("October"),_("November"),_("December"));
-       $wdays = array(_("Su"),_("Mo"),_("Tu"),_("We"),_("Th"),_("Fr"),_("Sa"));
-       $back = _("Back");
-       if ($date_system == 1)
-               list($cyear, $cmon, $cday) = gregorian_to_jalali(date("Y"), date("n"), date("j"));
-       else if ($date_system == 2)
-               list($cyear, $cmon, $cday) = gregorian_to_islamic(date("Y"), date("n"), date("j"));
+    global $comp_path;
+    $fpath = $comp_path.'/'.user_company().'/js_cache/'.'date_picker.js';
 
        $js = "<style>
 #CCIFrame { display: none; left: 0px; position: absolute; top: 0px; height: 250px; width: 250px; z-index: 99;}
@@ -667,8 +646,25 @@ function get_js_date_picker()
 #CC .empty { background-color: #CCC; border: 1px solid #FFF;}
 </style>
 ";
-       $js .= "<script type=\"text/javascript\">
-<!--\n
+    add_js_source($js);
+    
+    if (!file_exists($fpath)) {
+    
+       global $dateseps, $date_system;
+
+       $how = user_date_format();                              // 0 = us/ca, 1 = eu, au, nz, 2 = jp, sw
+       $sep = $dateseps[user_date_sep()];              // date separator
+       $wstart = (($date_system == 1 || $date_system == 2) ? 6 : ($how == 0 ? 0 : 1));                 // weekstart (sun = 0, mon = 1)
+       $months = array(_("January"),_("February"),_("March"),_("April"),_("May"),_("June"),_("July"),_("August"),_("September"),_("October"),_("November"),_("December"));
+       $wdays = array(_("Su"),_("Mo"),_("Tu"),_("We"),_("Th"),_("Fr"),_("Sa"));
+       $back = _("Back");
+       if ($date_system == 1)
+               list($cyear, $cmon, $cday) = gregorian_to_jalali(date("Y"), date("n"), date("j"));
+       else if ($date_system == 2)
+               list($cyear, $cmon, $cday) = gregorian_to_islamic(date("Y"), date("n"), date("j"));
+
+
+       $js = "
 function positionInfo(object) {
   var p_elm = object;
   this.getElementLeft = getElementLeft;
@@ -1060,23 +1056,30 @@ function changeCCMonth(change) {
   cC.changeMonth(change);
 }
 document.write(\"<iframe id='CCIframe' src='javascript:false;' frameBorder='0' scrolling='no'></iframe>\");
-document.write(\"<div id='CC'></div>\");
--->
-</script>
-";
-       return $js;
+document.write(\"<div id='CC'></div>\");";
+
+     cache_js_file($fpath, $js);
+    } 
+    add_js_ufile($fpath);
+
+ return '';
 }
+
 //
 //     Javascript conversions to/from user numeric format.
 //
 function add_js_user_num() {
+
+    global $comp_path;
+    $fpath = $comp_path.'/'.user_company().'/js_cache/'.'user_num.js';
+
+    if (!file_exists($fpath)) {
+    
        global $thoseps, $decseps;
        $ts = $thoseps[user_tho_sep()];
        $ds = $decseps[user_dec_sep()];
 
-       $js =
-       "<script language=\"javascript\">
-function price_format(post, num, dec, label) {
+       $js = "function price_format(post, num, dec, label) {
        //num = num.toString().replace(/\\$|\\,/g,'');
        if(isNaN(num))
                num = \"0\";
@@ -1108,14 +1111,21 @@ function price_format(post, num, dec, label) {
                val = val.replace(/\\".$ds."/g,'.');
                return 1*val;
        }
-       </script>";
-  add_js_source($js);
+       ";
+
+     cache_js_file($fpath, $js);
+    } 
+    add_js_ufile($fpath);
 }
 
 function add_js_allocate() {
-       $source =
-       "<script>
-       function allocate_all(doc) {
+    global $comp_path;
+    $fpath = $comp_path.'/'.user_company().'/js_cache/'.'allocate.js';
+
+    if (!file_exists($fpath)) {
+    
+       $js =
+       "function allocate_all(doc) {
        var amount = get_amount('amount'+doc);
        var unallocated = get_amount('un_allocated'+doc);
        var total = get_amount('total_allocated', 1);
@@ -1142,10 +1152,12 @@ function add_js_allocate() {
        price_format('left_to_allocate',amount+left, ".user_price_dec().", 1);
        price_format('amount'+doc, 0, ".user_price_dec().");
        price_format('total_allocated', total-amount, ".user_price_dec().", 1);
-       }
-       </script>";
-       add_js_user_num();
-       add_js_source($source);
+       }";
+
+     cache_js_file($fpath, $js);
+    } 
+    add_js_ufile($fpath);
+    add_js_user_num();
 }
 
 function alert($msg)