diff -r de56132c008d -r bdac73ed481e includes/clientside/static/paginate.js
--- a/includes/clientside/static/paginate.js Sun Mar 28 21:49:26 2010 -0400
+++ b/includes/clientside/static/paginate.js Sun Mar 28 23:10:46 2010 -0400
@@ -13,69 +13,69 @@
window.paginator = function(data, callback, offset, perpage, passer, ov_num_pages, ov_flip_func)
{
- load_component('flyin');
- if ( !perpage || typeof(perpage) != 'number' || ( typeof(perpage) == 'number' && perpage < 1 ) )
- {
- this.perpage = 10;
- }
- else
- {
- this.perpage = perpage;
- }
- if ( typeof(offset) != 'number' )
- this.offset = 0;
- else
- this.offset = offset;
- if ( typeof(passer) != 'undefined' )
- this.passer = passer;
- else
- this.passer = false;
- if ( ov_num_pages )
- {
- this.num_pages = ov_num_pages;
- this.flip_func = ov_flip_func;
- }
- else
- {
- this.num_pages = Math.ceil(data.length / perpage);
- this.flip_func = false;
- }
- this.random_id = 'autopagin_' + Math.floor(Math.random() * 1000000);
- this._build_control = _build_paginator;
- this.set_page = function(number)
- {
- this.offset = number * this.perpage;
- var html = this._build_control(number);
- var elements = getElementsByClassName(document.body, 'div', this.random_id + '_control');
- for ( var i = 0; i < elements.length; i++ )
- elements[i].innerHTML = html;
- }
- if ( this.num_pages > 1 )
- {
- var pg_control = '
'+this._build_control(0)+'
';
- }
- else
- {
- var pg_control = '';
- }
- this.html = pg_control;
- var i = 0;
- while ( i < data.length )
- {
- if ( i % this.perpage == 0 )
- {
- if ( i > 0 )
- this.html += '';
- var display = ( ( i * this.perpage ) == this.offset ) ? '' : 'display: none;';
- var thispage = Math.floor(i / this.perpage);
- this.html += '';
- }
- this.html += callback(data[i], this.passer);
- i++;
- }
- this.html += '
';
- this.html += pg_control;
- pagin_objects[this.random_id] = this;
+ load_component('flyin');
+ if ( !perpage || typeof(perpage) != 'number' || ( typeof(perpage) == 'number' && perpage < 1 ) )
+ {
+ this.perpage = 10;
+ }
+ else
+ {
+ this.perpage = perpage;
+ }
+ if ( typeof(offset) != 'number' )
+ this.offset = 0;
+ else
+ this.offset = offset;
+ if ( typeof(passer) != 'undefined' )
+ this.passer = passer;
+ else
+ this.passer = false;
+ if ( ov_num_pages )
+ {
+ this.num_pages = ov_num_pages;
+ this.flip_func = ov_flip_func;
+ }
+ else
+ {
+ this.num_pages = Math.ceil(data.length / perpage);
+ this.flip_func = false;
+ }
+ this.random_id = 'autopagin_' + Math.floor(Math.random() * 1000000);
+ this._build_control = _build_paginator;
+ this.set_page = function(number)
+ {
+ this.offset = number * this.perpage;
+ var html = this._build_control(number);
+ var elements = getElementsByClassName(document.body, 'div', this.random_id + '_control');
+ for ( var i = 0; i < elements.length; i++ )
+ elements[i].innerHTML = html;
+ }
+ if ( this.num_pages > 1 )
+ {
+ var pg_control = ''+this._build_control(0)+'
';
+ }
+ else
+ {
+ var pg_control = '';
+ }
+ this.html = pg_control;
+ var i = 0;
+ while ( i < data.length )
+ {
+ if ( i % this.perpage == 0 )
+ {
+ if ( i > 0 )
+ this.html += '';
+ var display = ( ( i * this.perpage ) == this.offset ) ? '' : 'display: none;';
+ var thispage = Math.floor(i / this.perpage);
+ this.html += '';
+ }
+ this.html += callback(data[i], this.passer);
+ i++;
+ }
+ this.html += '
';
+ this.html += pg_control;
+ pagin_objects[this.random_id] = this;
}
/**
@@ -85,334 +85,334 @@
window._build_paginator = function(this_page)
{
- var div_styling = ( IE ) ? 'width: 1px; margin: 10px auto 10px 0;' : 'display: table; margin: 10px 0 10px auto;';
- var begin = '' + $lang.get('paginate_lbl_page') + ' | ';
- var block = '{LINK} | ';
- var end = '
---|
';
- var blk = new templateParser(block);
- var inner = '';
- var cls = 'row2';
-
- if ( this_page > 0 )
- {
- var url = '#page_'+(this_page);
- var link = "« " + $lang.get('paginate_btn_prev') + "";
- cls = ( cls == 'row1' ) ? 'row2' : 'row1';
- blk.assign_vars({
- CLASS: cls,
- LINK: link
- });
- inner += blk.run();
- }
- if ( this.num_pages < 5 )
- {
- for ( var i = 0; i < this.num_pages; i++ )
- {
- cls = ( cls == 'row1' ) ? 'row2' : 'row1';
- var j = i + 1;
- var url = '#page_'+j;
- var link = ( i == this_page ) ? ""+j+"" : ""+j+"";
- blk.assign_vars({
- CLASS: cls,
- LINK: link
- });
- inner += blk.run();
- }
- }
- else
- {
- if ( this_page + 5 > this.num_pages )
- {
- var list = new Array();
- var tp = this_page; // The vectors below used to be 3, 2, and 1
- if ( this_page + 0 == this.num_pages ) tp = tp - 2;
- if ( this_page + 1 == this.num_pages ) tp = tp - 1;
- if ( this_page + 2 == this.num_pages ) tp = tp - 0;
- for ( var i = tp - 1; i <= tp + 1; i++ )
- {
- list.push(i);
- }
- }
- else
- {
- var list = new Array();
- var current = this_page;
- var lower = ( current < 3 ) ? 1 : current - 1;
- for ( var i = 0; i < 3; i++ )
- {
- list.push(lower + i);
- }
- }
- var url = '#page_1';
- var link = ( 0 == this_page ) ? "" + $lang.get('paginate_btn_first') + "" : "« " + $lang.get('paginate_btn_first') + "";
- blk.assign_vars({
- CLASS: cls,
- LINK: link
- });
- inner += blk.run();
+ var div_styling = ( IE ) ? 'width: 1px; margin: 10px auto 10px 0;' : 'display: table; margin: 10px 0 10px auto;';
+ var begin = '' + $lang.get('paginate_lbl_page') + ' | ';
+ var block = '{LINK} | ';
+ var end = '
---|
';
+ var blk = new templateParser(block);
+ var inner = '';
+ var cls = 'row2';
+
+ if ( this_page > 0 )
+ {
+ var url = '#page_'+(this_page);
+ var link = "« " + $lang.get('paginate_btn_prev') + "";
+ cls = ( cls == 'row1' ) ? 'row2' : 'row1';
+ blk.assign_vars({
+ CLASS: cls,
+ LINK: link
+ });
+ inner += blk.run();
+ }
+ if ( this.num_pages < 5 )
+ {
+ for ( var i = 0; i < this.num_pages; i++ )
+ {
+ cls = ( cls == 'row1' ) ? 'row2' : 'row1';
+ var j = i + 1;
+ var url = '#page_'+j;
+ var link = ( i == this_page ) ? ""+j+"" : ""+j+"";
+ blk.assign_vars({
+ CLASS: cls,
+ LINK: link
+ });
+ inner += blk.run();
+ }
+ }
+ else
+ {
+ if ( this_page + 5 > this.num_pages )
+ {
+ var list = new Array();
+ var tp = this_page; // The vectors below used to be 3, 2, and 1
+ if ( this_page + 0 == this.num_pages ) tp = tp - 2;
+ if ( this_page + 1 == this.num_pages ) tp = tp - 1;
+ if ( this_page + 2 == this.num_pages ) tp = tp - 0;
+ for ( var i = tp - 1; i <= tp + 1; i++ )
+ {
+ list.push(i);
+ }
+ }
+ else
+ {
+ var list = new Array();
+ var current = this_page;
+ var lower = ( current < 3 ) ? 1 : current - 1;
+ for ( var i = 0; i < 3; i++ )
+ {
+ list.push(lower + i);
+ }
+ }
+ var url = '#page_1';
+ var link = ( 0 == this_page ) ? "" + $lang.get('paginate_btn_first') + "" : "« " + $lang.get('paginate_btn_first') + "";
+ blk.assign_vars({
+ CLASS: cls,
+ LINK: link
+ });
+ inner += blk.run();
- // if ( !in_array(1, $list) )
- // {
- // $cls = ( $cls == 'row1' ) ? 'row2' : 'row1';
- // $blk->assign_vars(array('CLASS'=>$cls,'LINK'=>'...'));
- // $inner .= $blk->run();
- // }
+ // if ( !in_array(1, $list) )
+ // {
+ // $cls = ( $cls == 'row1' ) ? 'row2' : 'row1';
+ // $blk->assign_vars(array('CLASS'=>$cls,'LINK'=>'...'));
+ // $inner .= $blk->run();
+ // }
- for ( var k in list )
- {
- var i = list[k];
- if ( i == this.num_pages )
- break;
- cls = ( cls == 'row1' ) ? 'row2' : 'row1';
- var j = i + 1;
- var url = '#page_'+j;
- var link = ( i == this_page ) ? ""+j+"" : ""+j+"";
- blk.assign_vars({
- CLASS: cls,
- LINK: link
- });
- inner += blk.run();
- }
+ for ( var k in list )
+ {
+ var i = list[k];
+ if ( i == this.num_pages )
+ break;
+ cls = ( cls == 'row1' ) ? 'row2' : 'row1';
+ var j = i + 1;
+ var url = '#page_'+j;
+ var link = ( i == this_page ) ? ""+j+"" : ""+j+"";
+ blk.assign_vars({
+ CLASS: cls,
+ LINK: link
+ });
+ inner += blk.run();
+ }
- if ( this_page < this.num_pages )
- {
- // $cls = ( $cls == 'row1' ) ? 'row2' : 'row1';
- // $blk->assign_vars(array('CLASS'=>$cls,'LINK'=>'...'));
- // $inner .= $blk->run();
+ if ( this_page < this.num_pages )
+ {
+ // $cls = ( $cls == 'row1' ) ? 'row2' : 'row1';
+ // $blk->assign_vars(array('CLASS'=>$cls,'LINK'=>'...'));
+ // $inner .= $blk->run();
- cls = ( cls == 'row1' ) ? 'row2' : 'row1';
- var url = '#page_' + String( this.num_pages-1 );
- var link = ( ( this.num_pages - 1 ) == this_page ) ? "" + $lang.get('paginate_btn_last') + "" : "" + $lang.get('paginate_btn_last') + " »";
- blk.assign_vars({
- CLASS: cls,
- LINK: link
- });
- inner += blk.run();
- }
+ cls = ( cls == 'row1' ) ? 'row2' : 'row1';
+ var url = '#page_' + String( this.num_pages-1 );
+ var link = ( ( this.num_pages - 1 ) == this_page ) ? "" + $lang.get('paginate_btn_last') + "" : "" + $lang.get('paginate_btn_last') + " »";
+ blk.assign_vars({
+ CLASS: cls,
+ LINK: link
+ });
+ inner += blk.run();
+ }
- }
+ }
- if ( this_page < ( this.num_pages - 1 ) )
- {
- var url = '#page_' + String(this_page + 2);
- var link = "" + $lang.get('paginate_btn_next') + " »";
- cls = ( cls == 'row1' ) ? 'row2' : 'row1';
- blk.assign_vars({
- CLASS: cls,
- LINK: link
- });
- inner += blk.run();
- }
+ if ( this_page < ( this.num_pages - 1 ) )
+ {
+ var url = '#page_' + String(this_page + 2);
+ var link = "" + $lang.get('paginate_btn_next') + " »";
+ cls = ( cls == 'row1' ) ? 'row2' : 'row1';
+ blk.assign_vars({
+ CLASS: cls,
+ LINK: link
+ });
+ inner += blk.run();
+ }
- inner += '↓ | ';
+ inner += '↓ | ';
- var paginator = "\n"+begin+inner+end+"\n";
- return paginator;
-
+ var paginator = "\n"+begin+inner+end+"\n";
+ return paginator;
+
}
var __paginateLock = false;
window.jspaginator_goto = function(pagin_id, jump_to)
{
- if ( __paginateLock )
- return false;
- var theobj = pagin_objects[pagin_id];
- if ( theobj.flip_func )
- {
- theobj.flip_func(theobj, jump_to);
- __paginateLock = false;
- return true;
- }
- var current_div = false;
- var new_div = false;
- for ( var i = 0; i < theobj.num_pages; i++ )
- {
- var thediv = document.getElementById(pagin_id + '_' + i);
- if ( !thediv )
- {
- // if ( window.console )
- // window.console.error('jspaginator_goto(): got a bad DOM object in loop');
- return false;
- }
- // window.console.debug("Div "+i+' of '+(theobj.num_pages-1)+': ', thediv);
- if ( thediv.style.display != 'none' )
- current_div = thediv;
- else if ( i == jump_to )
- new_div = thediv;
- }
-
- if ( !new_div )
- {
- // if ( window.console )
- // window.console.error('jspaginator_goto(): didn\'t get new div');
- return false;
- }
- if ( !current_div )
- {
- // if ( window.console )
- // window.console.error('jspaginator_goto(): didn\'t get current div');
- return false;
- }
-
- // window.console.debug(current_div);
- // window.console.debug(new_div);
-
- // White-out the old div and fade in the new one
-
- if ( IE || is_Safari || aclDisableTransitionFX )
- {
- current_div.style.display = 'none';
- new_div.style.display = 'block';
- }
- else
- {
- __paginateLock = true;
- var fade_time = 375;
- var code = 'var old = \'' + current_div.id + '\';';
- code += 'var newer = \'' + new_div.id + '\';';
- code += 'document.getElementById(old).style.display = "none";';
- code += 'changeOpac(0, newer);';
- code += 'document.getElementById(newer).style.display = "block";';
- code += 'opacity(newer, 0, 100, '+fade_time+');';
- code += '__paginateLock = false;';
- // if ( window.console )
- // window.console.debug('metacode for fader: ', code);
- opacity(current_div.id, 100, 0, fade_time);
- setTimeout(code, (fade_time + 50));
- }
-
-
- var pg_control = theobj._build_control(jump_to);
- var divs = getElementsByClassName(document, 'div', pagin_id + '_control');
- for ( var i = 0; i < divs.length; i++ )
- {
- divs[i].innerHTML = pg_control;
- }
+ if ( __paginateLock )
+ return false;
+ var theobj = pagin_objects[pagin_id];
+ if ( theobj.flip_func )
+ {
+ theobj.flip_func(theobj, jump_to);
+ __paginateLock = false;
+ return true;
+ }
+ var current_div = false;
+ var new_div = false;
+ for ( var i = 0; i < theobj.num_pages; i++ )
+ {
+ var thediv = document.getElementById(pagin_id + '_' + i);
+ if ( !thediv )
+ {
+ // if ( window.console )
+ // window.console.error('jspaginator_goto(): got a bad DOM object in loop');
+ return false;
+ }
+ // window.console.debug("Div "+i+' of '+(theobj.num_pages-1)+': ', thediv);
+ if ( thediv.style.display != 'none' )
+ current_div = thediv;
+ else if ( i == jump_to )
+ new_div = thediv;
+ }
+
+ if ( !new_div )
+ {
+ // if ( window.console )
+ // window.console.error('jspaginator_goto(): didn\'t get new div');
+ return false;
+ }
+ if ( !current_div )
+ {
+ // if ( window.console )
+ // window.console.error('jspaginator_goto(): didn\'t get current div');
+ return false;
+ }
+
+ // window.console.debug(current_div);
+ // window.console.debug(new_div);
+
+ // White-out the old div and fade in the new one
+
+ if ( IE || is_Safari || aclDisableTransitionFX )
+ {
+ current_div.style.display = 'none';
+ new_div.style.display = 'block';
+ }
+ else
+ {
+ __paginateLock = true;
+ var fade_time = 375;
+ var code = 'var old = \'' + current_div.id + '\';';
+ code += 'var newer = \'' + new_div.id + '\';';
+ code += 'document.getElementById(old).style.display = "none";';
+ code += 'changeOpac(0, newer);';
+ code += 'document.getElementById(newer).style.display = "block";';
+ code += 'opacity(newer, 0, 100, '+fade_time+');';
+ code += '__paginateLock = false;';
+ // if ( window.console )
+ // window.console.debug('metacode for fader: ', code);
+ opacity(current_div.id, 100, 0, fade_time);
+ setTimeout(code, (fade_time + 50));
+ }
+
+
+ var pg_control = theobj._build_control(jump_to);
+ var divs = getElementsByClassName(document, 'div', pagin_id + '_control');
+ for ( var i = 0; i < divs.length; i++ )
+ {
+ divs[i].innerHTML = pg_control;
+ }
}
window.paginator_goto = function(parentobj, this_page, num_pages, perpage, additive, url_string)
{
- load_component('flyin');
-
- var height = $dynano(parentobj).Height();
- var width = $dynano(parentobj).Width();
- var left = $dynano(parentobj).Left();
- var top = $dynano(parentobj).Top();
- var left_pos = left + width ;
- var top_pos = height + top;
- var div = document.createElement('div');
- div.style.position = 'absolute';
- div.style.top = top_pos + 'px';
- div.className = 'question-box';
- div.style.margin = '1px 0 0 2px';
- var vtmp = 'input_' + Math.floor(Math.random() * 1000000);
- var regex = new RegExp('\"', 'g');
- var submit_target = ( typeof(url_string) == 'object' ) ? ( toJSONString(url_string) ).replace(regex, '\'') : 'unescape(\'' + escape(url_string) + '\')';
- var onclick = 'paginator_submit(this, '+num_pages+', '+perpage+', '+additive+', '+submit_target+'); return false;';
- div.innerHTML = $lang.get('paginate_lbl_goto_page') + '
» ×';
-
- var body = document.getElementsByTagName('body')[0];
- domObjChangeOpac(0, div);
-
- body.appendChild(div);
-
- document.getElementById(vtmp).onkeypress = function(e)
- {
- if ( e.keyCode == 13 )
- this.nextSibling.nextSibling.onclick();
- };
- document.getElementById(vtmp).focus();
-
- // fade the div
- /*
- if(!div.id) div.id = 'autofade_'+Math.floor(Math.random() * 100000);
- var from = '#33FF33';
- Fat.fade_element(div.id,30,2000,from,Fat.get_bgcolor(div.id));
- */
-
- fly_in_bottom(div, false, true);
-
- var divh = $dynano(div).Width();
- left_pos = left_pos - divh;
- div.style.left = left_pos + 'px';
+ load_component('flyin');
+
+ var height = $dynano(parentobj).Height();
+ var width = $dynano(parentobj).Width();
+ var left = $dynano(parentobj).Left();
+ var top = $dynano(parentobj).Top();
+ var left_pos = left + width ;
+ var top_pos = height + top;
+ var div = document.createElement('div');
+ div.style.position = 'absolute';
+ div.style.top = top_pos + 'px';
+ div.className = 'question-box';
+ div.style.margin = '1px 0 0 2px';
+ var vtmp = 'input_' + Math.floor(Math.random() * 1000000);
+ var regex = new RegExp('\"', 'g');
+ var submit_target = ( typeof(url_string) == 'object' ) ? ( toJSONString(url_string) ).replace(regex, '\'') : 'unescape(\'' + escape(url_string) + '\')';
+ var onclick = 'paginator_submit(this, '+num_pages+', '+perpage+', '+additive+', '+submit_target+'); return false;';
+ div.innerHTML = $lang.get('paginate_lbl_goto_page') + '
» ×';
+
+ var body = document.getElementsByTagName('body')[0];
+ domObjChangeOpac(0, div);
+
+ body.appendChild(div);
+
+ document.getElementById(vtmp).onkeypress = function(e)
+ {
+ if ( e.keyCode == 13 )
+ this.nextSibling.nextSibling.onclick();
+ };
+ document.getElementById(vtmp).focus();
+
+ // fade the div
+ /*
+ if(!div.id) div.id = 'autofade_'+Math.floor(Math.random() * 100000);
+ var from = '#33FF33';
+ Fat.fade_element(div.id,30,2000,from,Fat.get_bgcolor(div.id));
+ */
+
+ fly_in_bottom(div, false, true);
+
+ var divh = $dynano(div).Width();
+ left_pos = left_pos - divh;
+ div.style.left = left_pos + 'px';
}
window.paginator_submit = function(obj, max, perpage, additive, formatstring)
{
- var userinput = obj.previousSibling.previousSibling.value;
- userinput = parseInt(userinput);
- var offset = (( userinput - 1 ) * perpage) + additive;
- if ( userinput > max || isNaN(userinput) || userinput < 1 )
- {
- load_component(['messagebox', 'fadefilter', 'flyin']);
- new MessageBox(MB_OK|MB_ICONSTOP, $lang.get('paginate_err_bad_page_title'), $lang.get('paginate_err_bad_page_body', { max: max }));
- return false;
- }
- if ( typeof(formatstring) == 'object' )
- {
- fly_out_top(obj.parentNode, false, true);
- jspaginator_goto(formatstring.random_id, ( offset / perpage ));
- }
- else
- {
- var url = sprintf(formatstring, String(offset));
- fly_out_top(obj.parentNode, false, true);
- window.location = url;
- }
+ var userinput = obj.previousSibling.previousSibling.value;
+ userinput = parseInt(userinput);
+ var offset = (( userinput - 1 ) * perpage) + additive;
+ if ( userinput > max || isNaN(userinput) || userinput < 1 )
+ {
+ load_component(['messagebox', 'fadefilter', 'flyin']);
+ new MessageBox(MB_OK|MB_ICONSTOP, $lang.get('paginate_err_bad_page_title'), $lang.get('paginate_err_bad_page_body', { max: max }));
+ return false;
+ }
+ if ( typeof(formatstring) == 'object' )
+ {
+ fly_out_top(obj.parentNode, false, true);
+ jspaginator_goto(formatstring.random_id, ( offset / perpage ));
+ }
+ else
+ {
+ var url = sprintf(formatstring, String(offset));
+ fly_out_top(obj.parentNode, false, true);
+ window.location = url;
+ }
}
// This code is in the public domain. Feel free to link back to http://jan.moesen.nu/
function sprintf()
{
- if (!arguments || arguments.length < 1 || !RegExp)
- {
- return;
- }
- var str = arguments[0];
- var re = /([^%]*)%('.|0|\x20)?(-)?(\d+)?(\.\d+)?(%|b|c|d|u|f|o|s|x|X)(.*)/;
- var a = b = [], numSubstitutions = 0, numMatches = 0;
- while (a = re.exec(str))
- {
- var leftpart = a[1], pPad = a[2], pJustify = a[3], pMinLength = a[4];
- var pPrecision = a[5], pType = a[6], rightPart = a[7];
-
- //alert(a + '\n' + [a[0], leftpart, pPad, pJustify, pMinLength, pPrecision);
+ if (!arguments || arguments.length < 1 || !RegExp)
+ {
+ return;
+ }
+ var str = arguments[0];
+ var re = /([^%]*)%('.|0|\x20)?(-)?(\d+)?(\.\d+)?(%|b|c|d|u|f|o|s|x|X)(.*)/;
+ var a = b = [], numSubstitutions = 0, numMatches = 0;
+ while (a = re.exec(str))
+ {
+ var leftpart = a[1], pPad = a[2], pJustify = a[3], pMinLength = a[4];
+ var pPrecision = a[5], pType = a[6], rightPart = a[7];
+
+ //alert(a + '\n' + [a[0], leftpart, pPad, pJustify, pMinLength, pPrecision);
- numMatches++;
- if (pType == '%')
- {
- subst = '%';
- }
- else
- {
- numSubstitutions++;
- if (numSubstitutions >= arguments.length)
- {
- alert('Error! Not enough function arguments (' + (arguments.length - 1) + ', excluding the string)\nfor the number of substitution parameters in string (' + numSubstitutions + ' so far).');
- }
- var param = arguments[numSubstitutions];
- var pad = '';
- if (pPad && pPad.substr(0,1) == "'") pad = leftpart.substr(1,1);
- else if (pPad) pad = pPad;
- var justifyRight = true;
- if (pJustify && pJustify === "-") justifyRight = false;
- var minLength = -1;
- if (pMinLength) minLength = parseInt(pMinLength);
- var precision = -1;
- if (pPrecision && pType == 'f') precision = parseInt(pPrecision.substring(1));
- var subst = param;
- if (pType == 'b') subst = parseInt(param).toString(2);
- else if (pType == 'c') subst = String.fromCharCode(parseInt(param));
- else if (pType == 'd') subst = parseInt(param) ? parseInt(param) : 0;
- else if (pType == 'u') subst = Math.abs(param);
- else if (pType == 'f') subst = (precision > -1) ? Math.round(parseFloat(param) * Math.pow(10, precision)) / Math.pow(10, precision): parseFloat(param);
- else if (pType == 'o') subst = parseInt(param).toString(8);
- else if (pType == 's') subst = param;
- else if (pType == 'x') subst = ('' + parseInt(param).toString(16)).toLowerCase();
- else if (pType == 'X') subst = ('' + parseInt(param).toString(16)).toUpperCase();
- }
- str = leftpart + subst + rightPart;
- }
- return str;
+ numMatches++;
+ if (pType == '%')
+ {
+ subst = '%';
+ }
+ else
+ {
+ numSubstitutions++;
+ if (numSubstitutions >= arguments.length)
+ {
+ alert('Error! Not enough function arguments (' + (arguments.length - 1) + ', excluding the string)\nfor the number of substitution parameters in string (' + numSubstitutions + ' so far).');
+ }
+ var param = arguments[numSubstitutions];
+ var pad = '';
+ if (pPad && pPad.substr(0,1) == "'") pad = leftpart.substr(1,1);
+ else if (pPad) pad = pPad;
+ var justifyRight = true;
+ if (pJustify && pJustify === "-") justifyRight = false;
+ var minLength = -1;
+ if (pMinLength) minLength = parseInt(pMinLength);
+ var precision = -1;
+ if (pPrecision && pType == 'f') precision = parseInt(pPrecision.substring(1));
+ var subst = param;
+ if (pType == 'b') subst = parseInt(param).toString(2);
+ else if (pType == 'c') subst = String.fromCharCode(parseInt(param));
+ else if (pType == 'd') subst = parseInt(param) ? parseInt(param) : 0;
+ else if (pType == 'u') subst = Math.abs(param);
+ else if (pType == 'f') subst = (precision > -1) ? Math.round(parseFloat(param) * Math.pow(10, precision)) / Math.pow(10, precision): parseFloat(param);
+ else if (pType == 'o') subst = parseInt(param).toString(8);
+ else if (pType == 's') subst = param;
+ else if (pType == 'x') subst = ('' + parseInt(param).toString(16)).toLowerCase();
+ else if (pType == 'X') subst = ('' + parseInt(param).toString(16)).toUpperCase();
+ }
+ str = leftpart + subst + rightPart;
+ }
+ return str;
}