File "Functions.js"
Full path: /home/meharicl/www/recensement2/Functions.js
File size: 36.64 KiB (37522 bytes)
MIME-type: text/plain
Charset: utf-8
Download Open Edit Advanced Edit Back
//JS Functions @0-DB11AB67
var isNN = (navigator.appName.indexOf("Netscape") != -1);
//var isIE = (navigator.appName.indexOf("Microsoft") != -1);
var isIE = !!(window.attachEvent && !window.opera); // Internet Explorer
var isO = !!window.opera; // Opera
var isW = navigator.userAgent.indexOf('AppleWebKit/') > -1; // WebKit browsers i.e. Safari, Chrome
var isG = navigator.userAgent.indexOf('Gecko') > -1 && navigator.userAgent.indexOf('KHTML') == -1; // Gecko
var IEVersion = (isIE ? getIEVersion() : 0);
var NNVersion = (isNN ? getNNVersion() : 0);
var EditableGrid = false;
var disableValidation = false;
// Date formatting functions begin ---------------------------------------------------
var arrayLocaleInfo = "fr|fr|FR|1;0;|2|,| |janvier;février;mars;avril;mai;juin;juillet;août;septembre;octobre;novembre;décembre|janv.;févr.;mars;avr.;mai;juin;juil.;août;sept.;oct.;nov.;déc.|dimanche;lundi;mardi;mercredi;jeudi;vendredi;samedi|dim.;lun.;mar.;mer.;jeu.;ven.;sam.|dd/mm/yyyy|dddd d mmmm yyyy|HH:nn|HH:nn:ss|1||".split("|");
function getLocaleInfo(id)
{
switch (id)
{
case "LanguageAndCountry": return arrayLocaleInfo[0];
case "language": return arrayLocaleInfo[1];
case "country": return arrayLocaleInfo[2];
case "booleanFormat": return arrayLocaleInfo[3];
case "decimalDigits": return arrayLocaleInfo[4];
case "decimalSeparator": return arrayLocaleInfo[5];
case "groupSeparator": return arrayLocaleInfo[6];
case "monthNames": return arrayLocaleInfo[7];
case "monthShortNames": return arrayLocaleInfo[8];
case "weekdayNames": return arrayLocaleInfo[9];
case "weekdayShortNames": return arrayLocaleInfo[10];
case "shortDate": return arrayLocaleInfo[11];
case "longDate": return arrayLocaleInfo[12];
case "shortTime": return arrayLocaleInfo[13];
case "longTime": return arrayLocaleInfo[14];
case "firstWeekDay": return arrayLocaleInfo[15];
case "AMDesignator": return arrayLocaleInfo[16];
case "PMDesignator": return arrayLocaleInfo[17];
}
return "";
}
var listMonths = String(getLocaleInfo("monthNames")).split(";");
var listShortMonths = String(getLocaleInfo("monthShortNames")).split(";");
var firstWeekDay = getLocaleInfo("firstWeekDay");
var listWeekdays = String(getLocaleInfo("weekdayNames")).split(";");
var listShortWeekdays = String(getLocaleInfo("weekdayShortNames")).split(";");
firstWeekDay = listShortWeekdays[parseInt(firstWeekDay)];
function isInArray(strValue, arrArray)
{
var intResult = -1;
for ( var j = 0; j < arrArray.length && (strValue != arrArray[j]); j++ );
if ( j != arrArray.length )
intResult = j;
return intResult;
}
function parseDateFormat(strMask)
{
if (strMask=="LongDate")
return parseDateFormat(getLocaleInfo("longDate"));
else if (strMask=="LongTime")
return parseDateFormat(getLocaleInfo("longTime"));
else if (strMask=="ShortDate")
return parseDateFormat(getLocaleInfo("shortDate"));
else if (strMask=="ShortTime")
return parseDateFormat(getLocaleInfo("shortTime"));
else if (strMask=="GeneralDate")
return parseDateFormat(getLocaleInfo("shortDate")+" "+getLocaleInfo("longTime"));
var UNDEF;
var arrResult = new Array();
if (strMask == "" || typeof(strMask) == "undefined")
return arrResult;
var arrMaskTokens = new Array(
"d", "w", "m", "M", "q", "y", "h", "H", "n", "s",
"dd", "ww", "mm", "MM", "yy", "hh", "HH", "nn", "ss", "S",
"ddd", "mmm", "MMM", "A/P", "a/p", "dddd", "mmmm", "MMMM",
"yyyy", "tt", "AM/PM", "am/pm", "LongDate", "LongTime",
"ShortDate", "ShortTime", "GeneralDate");
var arrMaskTokensFirstLetters = new Array("d", "w", "m", "M",
"q", "y", "h", "H", "n", "s", "A", "a", "L", "S", "G", "t");
var strMaskLength = strMask.length;
var i = 0, intMaskPosition = 0;
var arrMask = new Array();
var strToken = "";
while (i < strMaskLength)
{
if (strMask.charAt(i) == "\\")
{
strToken += strMask.charAt(++i);
i ++;
}
else if (strMask.charAt(i) == "'")
{
i ++;
while ((i < strMask.length) && (strMask.charAt(i) != "'"))
strToken += strMask.charAt(i++);
i ++;
}
else
{
var j = isInArray(strMask.charAt(i), arrMaskTokensFirstLetters);
if ( j != -1 )
{
var k;
for (k = (arrMaskTokens.length - 1); k >= 0 &&
strMask.slice(i, i + arrMaskTokens[k].length) != arrMaskTokens[k]; k--);
if (k != -1)
{
if (strToken.length > 0)
{
if ( isInArray(strToken, arrMaskTokens) == -1)
arrMask[intMaskPosition ++] = strToken;
else
arrMask[intMaskPosition ++] = "\\" + strToken;
strToken = "";
}
arrMask[intMaskPosition ++] = arrMaskTokens[k];
i += arrMaskTokens[k].length;
}
else
{
strToken = strMask.charAt(i);
i ++;
}
}
else
{
strToken += strMask.charAt(i);
i ++;
}
}
}
if (strToken.length > 0)
{
if ( isInArray(strToken, arrMaskTokens) == -1)
arrMask[intMaskPosition ++] = strToken;
else
arrMask[intMaskPosition ++] = "\\" + strToken;
strToken = "";
}
arrResult = arrMask;
return arrResult;
}
function parseParams(text,substitutions)
{
// replace the {0}, ... with corresponded substitution string and return the result
var resString = text;
if (resString!="" && substitutions!=null)
{
var array = (typeof(substitutions)!="object")?(new Array(substitutions)):substitutions;
var icount = array.length;
for (var i=0; i<icount; i++)
resString = resString.replace("{"+i+"}", array[i]);
delete array;
array = null;
}
return resString;
}
function functionExists(functionName)
{
var exists = true;
try{
exists = typeof(eval(functionName))=="function";
}catch(e){
exists = false;
}
return exists;
}
function ccsShowError(control, msg)
{
alert(msg);
control.focus();
return false;
}
function getNNVersion()
{
var userAgent = window.navigator.userAgent;
var isMajor = parseInt(window.navigator.appVersion);
var isMinor = parseFloat(window.navigator.appVersion);
if (isMajor == 2) return 2;
if (isMajor == 3) return 3;
if (isMajor == 4) return 4;
if (isMajor == 5)
{
if (userAgent.toLowerCase().indexOf('netscape')!=-1)
{
isMajor = parseInt(userAgent.substr(userAgent.toLowerCase().indexOf('netscape')+9));
if (isMajor>0) return isMajor;
}
if (userAgent.toLowerCase().indexOf('firefox')!=-1) return 7;
return 6;
}
return isMajor;
}
function getIEVersion()
{
var userAgent = window.navigator.userAgent;
var MSIEPos = userAgent.indexOf("MSIE");
return (MSIEPos > 0 ? parseInt(userAgent.substring(MSIEPos+5, userAgent.indexOf(".", MSIEPos))) : 0);
}
function inputMasking(evt)
{
if (isIE && IEVersion > 4)
{
if (window.event.altKey) return false;
if (window.event.ctrlKey) return false;
if (typeof(this.ccsInputMask) == "string")
{
var mask = this.ccsInputMask;
var keycode = window.event.keyCode;
this.value = applyMask(keycode, mask, this.value);
}
return (window.event.keyCode==13?true:false);
} else if (isNN && NNVersion<6)
{
if (evt.ALT_MASK) return false;
if (evt.CONTROL_MASK) return false;
if (typeof(this.ccsInputMask) == "string")
{
var mask = this.ccsInputMask;
var keycode = evt.which;
this.value = applyMask(keycode, mask, this.value);
}
return (evt.which==13?true:false);
} else if (isNN && NNVersion==6)
{
if (evt.ctrlKey) return false;
var cancelKey = evt.which < 32;
if (typeof(this.ccsInputMask) == "string")
{
var mask = this.ccsInputMask;
var keycode = evt.which;
if (keycode >= 32)
this.value = applyMask(keycode, mask, this.value);
}
return cancelKey;
} else if (isNN && NNVersion==7)
{
if (evt.altKey) return false;
if (evt.ctrlKey) return false;
var cancelKey = evt.which==13;
if (typeof(this.ccsInputMask) == "string")
{
var mask = this.ccsInputMask;
var keycode = evt.which;
cancelKey = keycode < 32;
if (!cancelKey)
this.value = applyMask(keycode, mask, this.value);
}
return cancelKey || evt.which==13;
} else
return true;
}
function applyMaskToValue(mask, value)
{
var oldValue = String(value);
var newValue = "";
var icount = oldValue.length;
for (var i=0; i<icount; i++)
{
newValue = applyMask(oldValue.charCodeAt(i), mask, newValue);
}
return newValue;
}
function applyMask(keycode, mask, value)
{
var digit = (keycode >= 48 && keycode <= 57);
var plus = (keycode == 43);
var dash = (keycode == 45);
var space = (keycode == 32);
var uletter = (keycode >= 65 && keycode <= 90);
var lletter = (keycode >= 97 && keycode <= 122);
var pos = value.length;
switch(mask.charAt(pos))
{
case "0":
if (digit)
value += String.fromCharCode(keycode);
break;
case "L":
if (uletter || lletter)
value += String.fromCharCode(keycode);
break;
default:
var isMatchMask = (String.fromCharCode(keycode) == mask.charAt(pos));
while (pos < mask.length && mask.charAt(pos) != "0" && mask.charAt(pos) != "L")
value += mask.charAt(pos++);
if (!isMatchMask && pos < mask.length)
value = applyMask(keycode, mask, value);
}
return value;
}
function validate_control(control)
{
/*
ccsCaption - string
ccsErrorMessage - string
ccsRequired - boolean
ccsMinLength - integer
ccsMaxLength - integer
ccsRegExp - string
ccsValidator - validation function
ccsInputMask - string
*/
if (disableValidation) return true;
var errorMessage = control.ccsErrorMessage;
var customErrorMessage = (typeof(errorMessage) != "undefined");
if (typeof(control.ccsRequired) == "boolean" && control.ccsRequired)
if (control.value == "")
return ccsShowError(control, customErrorMessage ? errorMessage :
parseParams("La valeur du champ {0} est obligatoire.", control.ccsCaption));
if (typeof(control.ccsMinLength) == "number")
if (control.value != "" && control.value.length < parseInt(control.ccsMinLength))
return ccsShowError(control, customErrorMessage ? errorMessage :
parseParams("Le nombre de caractères dans le champ {0} ne peut pas être inférieur à {1}.", Array(control.ccsCaption,parseInt(control.ccsMinLength))));
if (typeof(control.ccsMaxLength) == "number")
if (control.value != "" && control.value.length > parseInt(control.ccsMaxLength))
return ccsShowError(control, customErrorMessage ? errorMessage :
parseParams("Le nombre de caractères dans le champ {0} ne peut pas être supérieur à {1}.", Array(control.ccsCaption,parseInt(control.ccsMaxLength))));
if (typeof(control.ccsInputMask) == "string")
{
var mask = control.ccsInputMask;
var maskRE = new RegExp(stringToRegExp(mask).replace(/0/g,"\\d").replace(/L/g,"[A-Za-z]"), "i");
if (control.value != "" && (control.value.search(maskRE) == -1))
return ccsShowError(control, customErrorMessage ? errorMessage :
parseParams("La valeur du champ {0} n'est pas valide.", control.ccsCaption));
}
if (typeof(control.ccsRegExp) == "string")
if (control.value != "" && (control.value.search(new RegExp(control.ccsRegExp, "i")) == -1))
return ccsShowError(control, customErrorMessage ? errorMessage :
parseParams("La valeur du champ {0} n'est pas valide.", control.ccsCaption));
if (typeof(control.ccsDateFormat) == "string")
{
if (control.value != "" && !checkDate(control.value, parseDateFormat(control.ccsDateFormat).join("")))
return ccsShowError(control, customErrorMessage ? errorMessage :
parseParams("La valeur du champ {0} n'est pas valide. Veuillez utiliser le format : {1}", Array(control.ccsCaption, parseDateFormat(control.ccsDateFormat).join(""))));
}
if (typeof(control.ccsValidator) == "function")
if (!control.ccsValidator())
return ccsShowError(control, customErrorMessage ? errorMessage :
parseParams("La valeur du champ {0} n'est pas valide.", control.ccsCaption));
return true;
}
function stringToRegExp(string, arg)
{
var str = String(string);
str = str.replace(/\\/g,"\\\\");
str = str.replace(/\//g,"\\/");
str = str.replace(/\./g,"\\.");
str = str.replace(/\(/g,"\\(");
str = str.replace(/\)/g,"\\)");
str = str.replace(/\[/g,"\\[");
str = str.replace(/\]/g,"\\]");
return str;
}
function checkDate(dateValue, dateFormat)
{
dateFormat = dateFormat.replace("AM/PM","f1").replace("A/P","f2").replace("am/pm","f3").replace("a/p","f4");
var DateMasks = new Array(
new Array("MMMM", "[a-z]+"),
new Array("mmmm", "[a-z]+"),
new Array("yyyy", "[0-9]{4}"),
new Array("MMM", "[a-z]+"),
new Array("mmm", "[a-z]+"),
new Array("HH", "([0-1][0-9]|2[0-4])"),
new Array("hh", "(0[1-9]|1[0-2])"),
new Array("dd", "([0-2][0-9]|3[0-1])"),
new Array("MM", "(0[1-9]|1[0-2])"),
new Array("mm", "(0[1-9]|1[0-2])"),
new Array("yy", "[0-9]{2}"),
new Array("nn", "[0-5][0-9]"),
new Array("ss", "[0-5][0-9]"),
new Array("w", "[1-7]"),
new Array("d", "([1-9]|[1-2][0-9]|3[0-1])"),
new Array("y", "([1-2][0-9]{0,2}|3([0-5][0-9]|6[0-5]))"),
new Array("H", "(00|0?[1-9]|1[0-9]|2[0-4])"),
new Array("h", "(0?[1-9]|1[0-2])"),
new Array("M", "(0?[1-9]|1[0-2])"),
new Array("m", "(0?[1-9]|1[0-2])"),
new Array("n", "[0-5]?[0-9]"),
new Array("s", "[0-5]?[0-9]"),
new Array("q", "[1-4]"),
new Array("tt", "("+getLocaleInfo("AMDesignator")+"|"+getLocaleInfo("PMDesignator")+")")
);
var regExp = "^"+stringToRegExp(dateFormat)+"$";
var icount = DateMasks.length;
for (var i=0; i<icount; i++)
{
regExp = regExp.replace(DateMasks[i][0], DateMasks[i][1]);
}
regExp=regExp.replace("f1","(AM|PM)").replace("f2","(A|P)").replace("f3","(am|fm)").replace("f4","(a|f)");
var regExp = new RegExp(regExp,"i");
return String(dateValue).search(regExp)!=-1;
}
function validate_row(rowId, form)
{
var result = true;
var isInsert = false;
if (disableValidation) return true;
if(typeof(eval(form + "EmptyRows")) == "number")
if(eval(form + "Elements").length - rowId <= eval(form + "EmptyRows"))
isInsert = true;
var icount = eval(form + "Elements")[rowId].length;
for (var i = 0; i < icount && isInsert; i++)
isInsert = GetValue(eval(form + "Elements")[rowId][i]) == "";
if(isInsert) return true;
if(typeof(eval(form + "DeleteControl")) == "number")
{
var control = eval(form + "Elements")[rowId][eval(form + "DeleteControl")];
if(control.type == "checkbox")
if(control.checked == true ) return true;
if(control.type == "hidden")
if(control.value != "" ) return true;
}
for (var i = 0; i < icount && (result = validate_control(eval(form + "Elements")[rowId][i])); i++);
return result;
}
function GetValue(control) {
if (typeof(control.value) == "string") {
return control.value;
}
if (typeof(control.tagName) == "undefined" && typeof(control.length) == "number") {
var j;
var jcount = control.length;
for (j=0; j < jcount; j++) {
var inner = control[j];
if (typeof(inner.value) == "string" && (inner.type != "radio" || inner.status == true)) {
return inner.value;
}
}
}
else {
return GetValueRecursive(control);
}
return "";
}
function GetValueRecursive(control)
{
if (typeof(control.value) == "string" && (control.type != "radio" || control.status == true)) {
return control.value;
}
var i, val;
var icount = control.children.length;
for (i = 0; i<icount; i++) {
val = GetValueRecursive(control.children[i]);
if (val != "") return val;
}
return "";
}
function validate_form(form)
{
var result = true;
if (disableValidation) return true;
if(typeof(form) == "object" && String(form.tagName).toLowerCase()!="form" && form.form!=null) form = form.form;
if(typeof(form) == "object" && document.getElementById(form.name + "Elements")) {
if (typeof(eval(form.name + "Elements")) == "object")
{
var jcount = eval(form.name + "Elements").length;
for (var j = 0; j < jcount && result; j++) result = validate_row(j, form.name);
}else
{
var icount = form.elements.length;
for (var i = 0; i < icount && (result = validate_control(form.elements[i])); i++);
}
}else if(typeof(form) == "string" && document.getElementById(form.name + "Elements"))
{
if(typeof(eval(form + "Elements")) == "object"){
var jcount = eval(form + "Elements").length;
for (var j = 0; j < jcount && result; j++)
result = validate_row(j, form);
}
}else if (typeof(form) == "object")
{
var icount = form.elements.length;
for (var i = 0; i < icount && (result = validate_control(form.elements[i])); i++);
}
else
{
var icount = document.forms[form].elements.length;
for (var i = 0; i < icount && (result = validate_control(document.forms[form].elements[i])); i++);
}
return result;
}
function forms_onload()
{
var forms = document.forms;
var i, j, elm, form;
var icount = forms.length;
var arrElementsOnLoad = new Array();
for(i = 0; i < icount; i++)
{
form = forms[i];
if (typeof(form.onLoad) == "function") form.onLoad();
var jcount = form.elements.length;
for (j = 0; j < jcount; j++)
{
elm = form.elements[j];
if (typeof(elm.onLoad) == "function") arrElementsOnLoad[arrElementsOnLoad.length] = elm;
}
}
for (i = 0; i < arrElementsOnLoad.length; i++)
arrElementsOnLoad[i].onLoad();
return true;
}
function all_onload()
{
var element = null;
var elements = new Array();
var all = document.all || document.getElementsByTagName("*");
var icount = all.length;
for(var i = 0; i < icount; i++)
{
element = all[i] || (all.item && all.item(i));
if (typeof(element.onLoad) == "function") elements[elements.length] = element;
}
for (var i = 0; i < elements.length; i++)
elements[i].onLoad();
return true;
}
//
// If element exist than bind function func to element on event.
// Example: check_and_bind('document.NewRecord1.Delete1','onclick',page_NewRecord1_Delete1_OnClick);
//
function check_and_bind(element,event,func,iterate_id) {
if (iterate_id)
{
var i = 1;
var next_element = null;
do {
var next_id = element + i;
next_element = document.getElementById(next_id);
if (next_element) check_and_bind("document.getElementById(\"" + next_id + "\")", event, func);
i++;
} while (next_element)
return;
}
var htmlElement = eval(element);
if (!htmlElement)
{
var index = element.lastIndexOf(".");
var form = element.substr(0,index);
var control = element.substr(index+1);
var htmlForm = eval(form);
if (htmlForm)
{
var list = document.getElementsByName(control);
var icount = list.length;
for (var i=0; i<icount; i++)
{
if (list[i].form && list[i].form.name==htmlForm.name)
{
eval("document.getElementsByName(\""+control+"\")["+i+'].'+event+'='+func);
}
}
}
}else{
if (htmlElement) {
if (typeof(htmlElement)=="object" && !htmlElement.tagName && htmlElement.length > 0)
{
var icount = htmlElement.length;
for (var i=0; i < icount; i++)
eval(element+"["+i+'].'+event+'='+func);
}else eval(element+'.'+event+'='+func);
}
}
}
function getElement(elementId, rowNumber, existingElement) {
var control = document.getElementById(elementId);
if (control == null) {
control = document.getElementById(elementId + "_" + rowNumber);
}
if (control == null)
{
var controlName = elementId;
if (existingElement && existingElement.form && existingElement.form.id && controlName.indexOf(existingElement.form.id) == 0)
controlName = controlName.replace(existingElement.form.id, "");
var controls = document.getElementsByName(controlName);
for (var i = 0; i < controls.length; i++)
if (controls[i].checked == true)
{
control = controls[i];
break;
}
}
return control;
}
function getRowFromId(elementId) {
var lastUnderscore = elementId.lastIndexOf("_");
if (lastUnderscore != -1) {
return elementId.substring(lastUnderscore + 1);
}
return null;
}
function getSameLevelCtl(elementName, existingElement) {
var rowNumber = null;
if (existingElement != null && existingElement['id'] != null) {
rowNumber = getRowFromId(existingElement.id);
}
return getElement(elementName, rowNumber, existingElement);
}
var controlIds = null;
function initControlIds() {
if (controlIds)
return;
var tempAr = document.getElementsByTagName("*");
controlIds = [];
var l = tempAr.length;
for (var i = 0; i < l; i++)
if (tempAr[i].id)
controlIds.push(tempAr[i].id);
controlIds.sort();
}
addEventHandler.prototype.isOnLoad = false;
function addEventHandler(elementId, event, handler) {
initControlIds();
var loadCalled = false;
addEventHandler.isOnLoad = true;
var l = controlIds.length;
var wereFound = false;
var re = new RegExp("^" + elementId + "_\\d+$" ,"");
for (var i = 0; i < l; i++) {
var cId = controlIds[i];
re.lastIndex = 0;
var element = (cId == elementId || re.test(cId)) ? document.findElementById(cId) : null;
if (element) {
wereFound = true;
var handlerWithSender = function (evt) {
var ret = true;
if (window.event) {
ret = handler.apply(window.event.srcElement, [window.event.srcElement]);
window.event.returnValue = ret;
} else {
ret = handler.apply(this, [this]);
if (typeof ret != "undefined" && evt && !ret) evt.preventDefault();
}
return ret;
};
if (event == "load") {
handler.apply(element, [element]);
loadCalled = true;
} else {
if (element.addEventListener) {
element.addEventListener(event, handlerWithSender, false);
} else if (element.attachEvent) {
element.attachEvent("on" + event, handlerWithSender);
}
}
}
}
addEventHandler.isOnLoad = false;
if (event == "load" && loadCalled == false) {
handler.apply(window, [window]);
}
}
function addEventHandler2(element, event, handler) {
if (typeof(element) == "string") {
return bindEventHandler(element, event, handler);
}
if (element) {
var oldHandler = (element['on'+event]) ? element['on'+event] : function () {};
element['on'+event] = function () {
oldHandler.apply(element, [element]);
handler.apply(element, [element])
};
return true;
}
return false;
}
function bindEventHandler(elementName, event, handler) {
var element = getElement(elementName);
if (event == 'load' && elementName == "") { //Page
handler.apply(element, [element]);
}
if (element != null) {
if (event != 'load') {
addEventHandler(element, event, handler);
} else {
handler.apply(element, [element]);
}
} else {
var currentRow = 1;
while (element = getElement(elementName, currentRow)) {
if (event != 'load') {
addEventHandler(element, event, handler);
} else {
handler.apply(element, [element]);
}
currentRow++;
}
}
}
function CCGetParam(param) {
if (!CCGetParam.params) {
CCGetParam.params = ({});
var href = window.location.href;
if (href.indexOf("?") == -1)
return "";
if (href.indexOf("#") != -1)
href = href.split("#")[0];
href = href.split("?")[1];
var pars = href.split("&");
for (var i = 0; i < pars.length; i++) {
var p = pars[i];
if (p.indexOf("=") == -1)
break;
p = p.split("=");
CCGetParam.params[unescape(p[0])] = unescape(p[1]);
}
}
return CCGetParam.params[param] ? CCGetParam.params[param] : "";
}
function CCGetCookie(name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for(var i=0;i < ca.length;i++)
{
var c = ca[i];
while (c.charAt(0)==' ') c = c.substring(1,c.length);
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
}
return null;
}
function CCChangeSize(sender, formName, pageSize) {
var currentElement = sender;
while (!currentElement.filterId && currentElement != document) {
currentElement = currentElement.parentNode;
}
var insidePanel = false;
if (currentElement != document) {
insidePanel = currentElement;
}
var oldLocation = null;
if (insidePanel) {
oldLocation = insidePanel.location;
} else {
oldLocation = location.href.toString();
}
var newLocation = CCAddParam(oldLocation, formName + 'PageSize', sender.value);
var newLocation = CCAddParam(newLocation, formName + 'Page', 1);
if (insidePanel) {
AjaxPanel.reload(insidePanel, newLocation);
} else {
window.open(newLocation, '_self');
}
}
function CCChangePage(sender, formName, pageSize) {
var currentElement = sender;
while (!currentElement.filterId && currentElement != document) {
currentElement = currentElement.parentNode;
}
var insidePanel = false;
if (currentElement != document) {
insidePanel = currentElement;
}
var oldLocation = null;
if (insidePanel) {
oldLocation = insidePanel.location;
} else {
oldLocation = location.href.toString();
}
var newLocation = CCAddParam(oldLocation, formName + 'Page', sender.previousSibling.value);
if (insidePanel) {
insidePanel.location = newLocation.replace(/\??ccsForm=\w+&?/g, "?").replace(/&?ccsForm=\w+/g, "");
AjaxPanel.reload(insidePanel);
} else {
window.open(newLocation, '_self');
}
}
function CCAddParam(location, paramName, paramValue) {
if (location.indexOf('?') == -1) {
return location + '?' + paramName + '=' + paramValue;
}
return location.replace(new RegExp(paramName + '=[^&]*[&]?', 'gi'), '')
.replace(new RegExp('[&]?' + paramName + '=[^&]*', 'gi'), '')
.replace(/\?/, '?' + paramName + '=' + paramValue + '&')
.replace(/[&]+$/m, '');
}
function isIncluded(href1, href2)
{
if (href1 == null || href2 == null)
return href1 == href2;
if (href1.indexOf("?") == -1 || href1.split("?")[1] == "")
return href1.split("?")[0] == href2.split("?")[0];
if (href2.indexOf("?") == -1 || href2.split("?")[1] == "")
return href1.replace("?","") == href2.replace("?","");
if (href1.split("?")[0] != href2.split("?")[0])
return false;
var params = href1.split("?")[1];
params = params.split("&");
var i,par1,par2,nv;
par1 = new Array();
for (i in params)
{
if (typeof(params[i]) == "function")
continue;
nv = params[i].split("=");
if (nv[0]!="FormFilter")
par1[nv[0]] = nv[1];
}
params = href2.split("?")[1];
params = params.split("&");
par2 = new Array();
for (i in params)
{
if (typeof(params[i]) == "function")
continue;
nv = params[i].split("=");
if (nv[0]!="FormFilter")
par2[nv[0]] = nv[1];
}
/*if (par1.length != par2.length)
return false;*/
for (i in par1)
if (par1[i]!=par2[i])
return false;
return true;
}
function getKeycode(e)
{
if (isO || isW || isG)
return e.which;
else
return window.event.keyCode;
}
function caret(element, begin, end)
{
if (typeof begin == 'number')
{
end = (typeof end == 'number') ? end : begin;
if (element.setSelectionRange)
{
element.focus();
element.setSelectionRange(begin, end);
} else if (element.createTextRange)
{
var range = element.createTextRange();
range.collapse(true);
range.moveEnd('character', end);
range.moveStart('character', begin);
range.select();
}
} else
{
if (element.setSelectionRange)
{
begin = element.selectionStart;
end = element.selectionEnd;
} else if (document.selection && document.selection.createRange)
{
var range = document.selection.createRange();
begin = 0 - range.duplicate().moveStart('character', -100000);
end = begin + range.text.length;
}
return { begin: begin, end: end };
}
}
function inputMaskInitialize(control, placeholder)
{
function inputMask(e, sender)
{
function genSequence(str, times)
{
var res='';
for (var i=0; i<times; i++)
res += str;
return res;
}
function sType(c)
{
if (c.charAt(0).match(/[0-9]/g)) return '0';
if (c.charAt(0).match(/[a-zA-Z]/g)) return 'L';
if (c.charAt(0) == placeholder) return placeholder;
return '';
}
function getMask(val)
{
var i;
var res = '';
for (i=0; i<val.length; i++)
res += sType(val.charAt(i));
return res;
}
function getValueFromMaskedValue(val)
{
var res = "";
var i;
for (i=0; i<val.length; i++)
if (sType(val.charAt(i)) != '')
res += val.charAt(i);
return res;
}
function maskCanBeApplied(val, mask, result)
{
var i=0, j=0, res = '';
for (i=0; i<mask.length/* && j<val.length*/; i++)
if (j < val.length && mask.charAt(i) == sType(val.charAt(j)))
{
res += val.charAt(j);
j++;
}
else if (sType(mask.charAt(i)) == '')
{
res += mask.charAt(i);
//if (j < val.length && sType(val.charAt(j)) == placeholder)
// j++;
}
else if (sType(val.charAt(j)) == placeholder)
{
res += placeholder;
j++;
}
else if (j >= val.length)
{
res += (sType(mask.charAt(i)) == '')?mask.charAt(i):placeholder;
}
else
return {ans:false};
result = res;
return {ans: true, result: res};
}
function getTypedChar()
{
var keycode;
if (isO || isW || isG)
keycode = e.which;
else
keycode = window.event.keyCode;
return (keycode < 32 && keycode != 8)?'':String.fromCharCode(keycode);
}
function getNextSymbolPosition(str, start)
{
for (var i=start; i<str.length; i++)
if (sType(str.charAt(i))!='')
return i + 1;
return start+1;
}
function calculatedValue(control)
{
var keycode = getKeycode(e);
var s = caret(control);
var res;
var mid = '';
if (keycode == 8) // backspace
{
mid = control.value.substring((s.end - s.begin == 0)?s.begin-1:s.begin, s.end).match(/[A-Za-z0-9_]/g);
if (!mid)
mid = '';
else
mid = genSequence(placeholder, mid.length);
res = control.value.substring(0, Math.max(0, (s.end - s.begin == 0)?s.begin-1:s.begin)) + mid + control.value.substr(s.end);
}
else if (keycode == 46) // del
{
mid = control.value.substring(s.begin, (s.end - s.begin == 0)?s.end+1:s.end).match(/[A-Za-z0-9_]/g);
if (!mid)
mid = '';
else
mid = genSequence(placeholder, mid.length);
res = control.value.substring(0, s.begin) + mid + control.value.substr(Math.min((s.end - s.begin == 0)?s.end+1:s.end, control.value.length));
}
else
{
if (s.end - s.begin == 0)
res = control.value.substring(0, s.begin) + String.fromCharCode(keycode) + control.value.substr(getNextSymbolPosition(control.value, s.end));
else
{
mid = control.value.substring(s.begin, s.end).match(/[A-Za-z0-9_]/g);
if (!mid)
mid = '';
else
mid = genSequence(placeholder, mid.length - 1);
res = control.value.substring(0, s.begin) + String.fromCharCode(keycode) + mid + control.value.substr(s.end);
}
}
return res;
}
function getNewCaretPosition(control, keycode, newValue)
{
var res;
var cur = caret(control);
if (keycode == 8)
{
res = cur.begin;
/*if (cur.begin >= newValue.length)
return newValue.length;*/
if (cur.end - cur.begin > 0)
return cur.begin;
if (res !=0 && sType(newValue.charAt(res-1)) != '')
return res - 1;
for (var i=cur.begin-1; i>=0; i--)
if (sType(newValue.charAt(i)) != '')
return i + 1;
return 0;
} else if (keycode == 46)
{
res = cur.begin;
for (var i=res; i<newValue.length; i++)
if (sType(newValue.charAt(i)) != '')
return i;
return newValue.length;
} else
{
res = cur.begin;
if (res + 1 == newValue.length)
return res + 1;
if (sType(newValue.charAt(res)) != '')
return res + 1;
for (var i=res; i<newValue.length; i++)
{
if (sType(newValue.charAt(i)) != '')
return i + 1;
}
}
}
var placeholder = sender.ccsPlaceholder;
var keycode = getKeycode(e);
if (keycode < 32 && keycode != 8)
return true;
if (!String.fromCharCode(keycode).match(/[a-zA-Z0-9]/g) && keycode != 8 && keycode != 46)
return false;
var newControlVal = calculatedValue(sender);
var newVal = getValueFromMaskedValue(newControlVal);
var newMaskedValue = maskCanBeApplied(newVal, sender.ccsInputMask, newMaskedValue);
if (newMaskedValue.ans)
{
var cp = getNewCaretPosition(sender, keycode, newMaskedValue.result);
sender.value = newMaskedValue.result;
caret(sender, cp);
}
return false;
}
function inputMask_onkeypress(e)
{
return inputMask(e, this);
}
function inputMask_onkeydown(e)
{
var keycode = getKeycode(e);
if (keycode == 8 && !isG || keycode == 46)
return inputMask(e, this);
}
function inputMask_onfocus(e)
{
if (this.value == '')
{
this.value = this.blankValue;
caret(this, this.blankValue.indexOf(this.ccsPlaceholder));
}
}
function inputMask_onblur(e)
{
if (this.value == this.blankValue)
this.value = '';
}
//control.ccsInputMask = mask;
control.ccsPlaceholder = placeholder;
var res = '';
for (var i=0; i<control.ccsInputMask.length; i++)
if (control.ccsInputMask.charAt(i).match(/[0L]/gi))
res += control.ccsPlaceholder;
else
res += control.ccsInputMask.charAt(i);
control.blankValue = res;
control.onkeypress = inputMask_onkeypress;
if (isW || isIE || isG)
control.onkeydown = inputMask_onkeydown;
control.onfocus = inputMask_onfocus;
control.onblur = inputMask_onblur;
}
document.findElementById = function(elementId)
{
var element = document.getElementById(elementId);
if (element && element.id && element.id != elementId && document.all)
for (var i=0;i<document.all.length;i++)
if (document.all[i].id && document.all[i].id == elementId)
return document.all[i];
return element;
}
//End JS Functions