﻿
// litle helpers-collection
// ---------------------------------------- 
// 04.09.2008 CKE openDLG(),requestTextLine()
var isIE = (window.navigator.userAgent.indexOf("MSIE") > 0);
var rootfolder = getWebRoot();
var arrowimg = createArrowImg();
var comphome = "bosch.de";
var comphome1 = "com.";
var transtags = "|SPAN|TD|LABEL|LI|BUTTON|A|P|H1|H2|H3|H4|H5|H6|OPTION|";
var translng = "";


function getWebRoot() 
{
var allscripts = document.getElementsByTagName("script");
var s = "";
var vpath = "/bosch";
for (var n = 0; n < allscripts.length; n++) {
s = allscripts[n].src;
if ((s != null) && (s.length >= 19) && (s.substr(s.length - 19).toLowerCase() == "/framework/utils.js")) {
vpath = s.substr(0,s.length - 19);
}
}
return (vpath);
}
function shareOrWeb(localpath, entrypage)
{
var linkpath = "share/" + localpath + "/" + entrypage;
if (!localpath) {
localpath = entrypage;
entrypage = "";
}
entrypage = (entrypage.length > 0 ? "/" + entrypage : "");
localpath = localpath + entrypage;
if (localpath.indexOf("http") == 0) {
linkpath = localpath;
} else if (localpath.indexOf("www.") == 0) {
linkpath = "http://" + localpath;
}
return (linkpath);
}
function setCookie(mpage)
{
createCookie('MASTER', mpage, 2);
window.location.href = window.location.href;
}


function getModule(pageurl)
{
var module = "PTL";
var url = pageurl ? pageurl : window.location.href;
url = url.toLowerCase();
if (url.indexOf("/_lng_") > 0) {
module = "TRL";
} else if (url.indexOf("/lms") > 0) {
module = "LMS";
} else if (url.indexOf("/rm") > 0 || url.indexOf("/at/") > 0) {
module = "RMS";
} else if (url.indexOf("/serve") > 0) {
module = "SVC";
} else if (url.indexOf("/user") > 0 || url.indexOf("/um/") > 0) {
module = "UMS";
} else if (url.indexOf("/content") > 0) {
module = "CNT";
}
return (module);
}


function getServeUrl(webroot, pagetitle)
{
var serveurl = window.location.href;
var modul = getModule(serveurl);
var servename = pagetitle;
serveurl = encodeURIComponent(serveurl);
servename = servename.replace("Power Tools Learning Campus: ", "");
serveurl = webroot + "serve/serve.aspx?SERVEURL=" + serveurl + "&TYPE=W&STATE=1&PRIO=L&MODUL=" + getModule() + "&SERVENAME=" + servename;
return (serveurl);
}


function trimStr(txt)
{
if (txt != null) {
txt = String(txt);
txt = txt.replace(/^[\s\xA0]+/, "");
txt = txt.replace(/[\s\xA0]+$/, "");
}
return(txt);
}


function formatFileSize(size)
{
var kilobyte = 1024;
var megabyte = 1024 * 1024;
var ret = "";
if (size) {
ret = parseInt(size);
if (size < kilobyte) {
ret = size + " Bytes";
} else if (size < megabyte) {
ret = Math.ceil(size / kilobyte) + " kB";
} else {
ret = Math.ceil(size / megabyte) + " MB";
}
}
return (ret);
}


function createArrowImg() 
{
if (!arrowimg) {
arrowimg = window.document.createElement("img");
arrowimg.style.className = "blueArrow";
arrowimg.src = rootfolder + "/images/img_shared/arrow_8x7_blue.gif";
}
return (arrowimg);
}


function getDownloadMime(mime)
{
var archivemime = "";
switch (mime) 
{
case "html":
archivemime = "zip";
break;
case "aspx":
archivemime = "zip";
break;
case "ppt":
archivemime = "zip";
break;
//      archivemime = "swf";
//    case "wmv":
//      break;
//      archivemime = "xxx";
default:
archivemime = mime;
break;
}
return (archivemime);
}
function transIt()  
{
var e = window.event.srcElement;

if (window.event.altKey && transtags.indexOf("|" + e.tagName + "|")) {
transPopup(e.innerText);
window.event.returnValue = false; 
}
}
function transPopup(transtext)  
{
translng = document.cookie.substring(document.cookie.indexOf("LNG=")+4).split(';')[0];
var win = window.open("http://www.mirror.im-systems.de/bosch/transloc/translocobj.aspx?trans=" + transtext + "&lng=" + translng, "_trans", "width=714px,height=320px,toolbar=no,location=no,directories=no,scrollbars=yes,status=no,menubar=no,resizable=yes");
win.focus();
}
function AttachEvent(obj, eventname, handler) 
{
if (isIE) {
obj.attachEvent(eventname, handler);
} else { 
obj.addEventListener(eventname.substr(2), handler, false);
}
}

if (typeof this.AttachEvent == "function") {
this.AttachEvent(document, "oncontextmenu", this.transIt);
}
function tryContentPage(id, src, title)
{
if (this.loadContentPage) {
loadContentPage(id, src, title);
} else {
src = rootfolder + "/content.aspx#0.0.0.0." + id;

window.open(src, "_top", "status=yes,scrollbars=yes,toolbar=no,menubar=no,location=no,resizable=yes");
}
}


function Dump(id, src, title, marginalobj, replace)
{
var l = marginalobj.attributes["len"].value;
var p = window.document.createElement("div");
p.className = "itemMarginal";
var dumpimg = arrowimg.cloneNode(true);
img = p.appendChild(dumpimg);
var a = window.document.createElement("a");
a = p.appendChild(a);
a.innerHTML = title;
src = "share/" + src.replace(/\\/g, "/"); // wg.Umzug
a.href = "javascript:tryContentPage(" + id + ", '" + src + "', '" + title + "')";
if (id == "") {
p.style.display = "none";
}
marginalobj.appendChild(p);
var alldivs = marginalobj.getElementsByTagName("div");
if (replace && alldivs.length-1 > l) {
marginalobj.removeChild(alldivs[1]);
}
var ret = "";
if (alldivs && alldivs.length > 0) {
//    alert(alldivs[z].outerHTML);
//    }
}
return (ret);
}


function DumpNews(id, title, marginalobj)
{
var l = marginalobj.attributes["len"].value;
var p = window.document.createElement("div");
p.className = "itemMarginal";
var newsimg = arrowimg.cloneNode(true);
img = p.appendChild(newsimg);
var a = window.document.createElement("a");
a = p.appendChild(a);
a.innerHTML = title;
a.href = rootfolder + "/news.aspx?id=" + id;
marginalobj.appendChild(p);

var alldivs = marginalobj.getElementsByTagName("div");
if (alldivs.length-1 > l) {
marginalobj.removeChild(alldivs[0]);
}
var ret = "";
for (var z = 0; z < alldivs.length; z++) {
ret += alldivs[z].outerHTML;
}
return (ret);
}


function DumpTopPages(dumpobj)
{
if(dumpobj) {
var l = dumpobj.attributes["len"].value;
var toppageinfos = document.getElementById("topcontent").innerHTML.split("|");
for (var i = 0; i < l; i++) {
var pageinfo = toppageinfos[i].split(";");
Dump (pageinfo[0], pageinfo[1], pageinfo[2], dumpobj, false);
}
}
}


function DumpLastTitles(dumpobj)
{
if(dumpobj) {
var pageinfo;
var l = dumpobj.attributes["len"].value;
var lastpageinfos = document.getElementById("lastpages").innerHTML.split("|");
for (var i = 0; i < l; i++) { 
if (lastpageinfos[i]) {
pageinfo = lastpageinfos[i].split(";");
Dump (pageinfo[0], pageinfo[1], pageinfo[2], dumpobj, true);
} else {
Dump ("", "", "", dumpobj, true);
}
}
}
return (dumpobj.innerHTML);
}


function DumpTopNews(dumpobj)
{
if(dumpobj) {
var l = dumpobj.attributes["len"].value;
var lastnewsinfos = document.getElementById("lastnews").innerHTML.split("|");
for (var i = 0; i < l; i++) {
if (lastnewsinfos[i]) {
var newsinfo = lastnewsinfos[i].split(";");
DumpNews (newsinfo[0], newsinfo[1], dumpobj);
}
}
}
}
function getLastChild(obj) 
{
var ret = obj.lastChild;
while (ret.nodeType != 1) {
ret = ret.previousSibling;
}
return ret;
}


function createCookie(name, val, days) 
{
if (days) {
var date = new Date();
date.setTime(date.getTime() + (days*24*60*60*1000));
var expires = "; expires=" + date.toGMTString();
} else {
expires = "";
}
document.cookie = name + "=" + val + expires + "; path=/";
}
//{
//  var ca = document.cookie.split(';');
//    var c = ca[i];
//    if (c.indexOf(nameEQ) == 0) 
//  }
//}


function changeLng(lng)
{
lng = proxies.DBUse.SetSessionLngCty(lng);
createCookie("LNG", lng, 2);
window.location.reload();
}


function changeall(obj, tabid)
{
var tabobj = (tabid ? document.getElementById(tabid) : document) ;
var cbx = tabobj.getElementsByTagName("INPUT");
for (var i = 0; i < cbx.length; i++) {
cbx[i].checked = obj.checked;
}
}
function changebetween(tabid)
{
var tabobj = (tabid ? document.getElementById(tabid) : document);
var cbx = tabobj.getElementsByTagName("INPUT");
var first = -1;
var last = -1;
  
for (var i = 0; i < cbx.length; i++) {
if(cbx[i].checked && first == -1) {
first = i;
} else if(cbx[i].checked && first > -1 && last == -1) {
last = i;
break;
}
}

for (var j = first; j < last; j++) {
cbx[j].checked = true;
}

}
function getIdList()
{
var idlist = "";
var cbx = document.getElementsByTagName("INPUT");
for (var i = 0; i < cbx.length; i++) {
if (cbx[i].type == "checkbox") {
if (cbx[i].checked) {
idlist += cbx[i].id + ","
}
}
}
if (idlist.length > 0) {
idlist = idlist.substring(1, idlist.length-1);
}
return(idlist);
}


function getTabIdList(tabid, selVal)
{
var idlist = "";
var tabobj = (tabid ? document.getElementById(tabid) : document) ;
var cbx = tabobj.getElementsByTagName("INPUT");

for (var i = 0; i < cbx.length; i++) {
if (cbx[i].type == "checkbox") {
if (cbx[i].checked) {
if(selVal == "id") {
idlist += cbx[i].id + ",";
} else if (selVal == "pname") { // name.attribute
idlist +=  (cbx[i].pname ? cbx[i].pname + "," : "");
} else { // name.attribute
idlist += cbx[i].name + ",";
}
}
}
}
if (idlist.length > 0) {
if(idlist.charAt(0) == ",") {
idlist = idlist.substring(1, idlist.length-1);
} else {
idlist = idlist.substring(0, idlist.length-1);
}
}
return(idlist);
}


function resourceTypeIcon(type, url)
{
var ret = "";
switch (type) {
case 0:
ret = "default.gif";
break;
case 1:
ret = "wbt.gif";
break;
case 2:
ret = "link.gif";
break;
case 3:
ret = "wbt.gif";
break;
case 4:
ret = "forum.gif";
break;
case 5:
ret = "date.gif";
break;
case 6:
if (url.toLowerCase().indexOf(".doc") > -1) {
ret = "doc";
} else if (url.toLowerCase().indexOf(".xsl") > -1) {
ret = "xls";
} else if (url.toLowerCase().indexOf(".txt") > -1) {
ret = "ascii";
} else if (url.toLowerCase().indexOf(".zip") > -1) {
ret = "images";
} else if (url.toLowerCase().indexOf(".jpg") > -1) {
ret = "images";
} else if (url.toLowerCase().indexOf(".bmp") > -1) {
ret = "images";
} else if (url.toLowerCase().indexOf(".png") > -1) {
ret = "images";
} else if (url.toLowerCase().indexOf(".gif") > -1) {
ret = "images";
} else if (url.toLowerCase().indexOf(".php") > -1) {
ret = "ascii";
} else if (url.toLowerCase().indexOf(".pdf") > -1) {
ret = "pdf";
} else {
ret = "download";
}
ret += ".gif";
break;
case 7:
ret = "local_website.gif";
break;
case 8:
ret = "query.gif";
break;
case 9:
ret = "project.gif";
break;
default:
ret = "default.gif";
break;
}
return (ret);
}


function resourceTypeName(type, url)
{
var ret = "";
switch (type) {
case 0:
ret = "Unbekannt";
break;
case 1:
ret = "Scorm WBT";
break;
case 2:
ret = "Link";
break;
case 3:
ret = "Scorm WBT";
break;
case 4:
ret = "Forum";
break;
case 5:
ret = "Datum";
break;
case 6:
if (url.toLowerCase().indexOf(".doc") > -1) {
ret = "Worddokument";
} else if (url.toLowerCase().indexOf(".xsl") > -1) {
ret = "Exceldokument";
} else if (url.toLowerCase().indexOf(".txt") > -1) {
ret = "Text";
} else if (url.toLowerCase().indexOf(".zip") > -1) {
ret = "Image";
} else if (url.toLowerCase().indexOf(".jpg") > -1) {
ret = "Image";
} else if (url.toLowerCase().indexOf(".bmp") > -1) {
ret = "Image";
} else if (url.toLowerCase().indexOf(".png") > -1) {
ret = "Image";
} else if (url.toLowerCase().indexOf(".gif") > -1) {
ret = "Image";
} else if (url.toLowerCase().indexOf(".php") > -1) {
ret = "Programmtext";
} else if (url.toLowerCase().indexOf(".pdf") > -1) {
ret = "Pdf-Datei";
} else {
ret = "Download";
}
break;
case 7:
ret = "Lokale Website";
break;
case 8:
ret = "Test";
break;
case 9:
ret = "Projekt";
break;
default:
ret = "Unbekannt";
break;
}
return (ret);
}


function absoluteUrl(aUrl)
{
if ((aUrl != null) && (aUrl.length > 2)) {
if (aUrl.substr(0, 3) == "/./")
aUrl = location.href.split("/").slice(0,4).join("/") + aUrl.substr(2);
else if (aUrl.substr(0, 2) == "~/")
aUrl = location.href.split("/").slice(0,4).join("/") + aUrl.substr(1);
else if (aUrl.substr(0, 18) == "http://server/web/")
aUrl = location.href.split("/").slice(0,4).join("/") + aUrl.substr(17);
else if (aUrl.charAt(0) == "/")
aUrl = location.href.split("/").slice(0,3).join("/") + aUrl;
}
return(aUrl);
}


function openDLG(url, params, winopts)
{
var opts = "resizable:0;status:0;";
var ret = "";
if (document.body.macroMode == "true") {
opts += "center:0;dialogLeft:1;";
}
if (winopts != null) {
opts += winopts;
}
ret = window.showModalDialog(absoluteUrl(url), params, opts);
if(ret != null && typeof(ret) == "string") {
ret = ret.replace(/ *$/, "");
}
return(ret); 
}


function requestTextLine(title, defaults) 
{
var ret;
var p = new Object();
p.title = title;
p.txt = defaults;
ret = openDLG("../framework/requestTextLine.htm", p, "resizable:0;dialogWidth:100px;dialogHeight:60px;");
return(ret); 
}


function setFolderISrc(tabname, isFrame)
{
var idName = isFrame ? "folder" : "ctl00_ContentPlaceHolder1_folder";
var activenr = document.getElementById(idName).activenr;
var _folders = document.getElementById(idName)._folders;
var i, frame, tmp;
var iframeobj = null;
tabname = tabname.toUpperCase();
var datasetid = document.getElementById("_" + tabname + "ID").value;
if (datasetid) {
for(i = 0; i < _folders.length; i++) {
if (i == activenr) {
var ilist = _folders[i].getElementsByTagName("iframe");
if (ilist.length > 0) {
try {
if (ilist[0].framesrc && ilist[0].src.indexOf(ilist[0].framesrc + tabname + "ID=" + datasetid) < 0) {
ilist[0].src = ilist[0].framesrc + tabname + "ID=" + datasetid;
iframeobj = ilist[0];
}
} catch (e) {}
}
}
}
}
return (iframeobj);
}
function setFolderISrcDirect(someVals)
{
  var activenr = document.getElementById("ctl00_ContentPlaceHolder1_folder").activenr;
  var _folders = document.getElementById("ctl00_ContentPlaceHolder1_folder")._folders;
  var i, frame, tmp;
  var iframeobj = null;

  if (_folders && someVals != null && someVals.length > 0) {
    for(i = 0; i < _folders.length; i++) {
      if (i == activenr) {
        var ilist = _folders[i].getElementsByTagName("iframe");
        if (ilist.length > 0) {
          // no refresh for the same src
          if (ilist[0].framesrc && ilist[0].src.indexOf(ilist[0].framesrc + someVals) < 0) {
            ilist[0].src = ilist[0].framesrc + someVals;
            iframeobj = ilist[0];
          }
        }
      }
    } // for
  } else if (_folders) {
    for(i = 0; i < _folders.length; i++) {
      if (i == activenr) {
        var ilist = _folders[i].getElementsByTagName("iframe");
        if (ilist.length > 0) {
          // no refresh for the same src
          if (ilist[0].framesrc && ilist[0].src.indexOf(ilist[0].framesrc) < 0) {
            ilist[0].src = ilist[0].framesrc;
            iframeobj = ilist[0];
          }
        }
      }
    } // for
  }
  
  return (iframeobj);
} // setFolderISrcDirect
function prepDatesToSql(dateNameList, compcty, bBirthday)
{
var aDate, fName;
var arrList, tmpArr;
var i, y, m, d;

if (dateNameList != null && dateNameList.length > 0) {
arrList = dateNameList.split(",");

for(i = 0; i < arrList.length; i++) { 
fName = arrList[i]; 
aDate = document.getElementById(fName).value;

if (aDate != null && aDate != "") {
if (aDate.indexOf("*") > -1) {
aDate = new Date();
aDate = formatDate(aDate, "yyyyMMdd");

} else if(aDate.indexOf(".") > -1) { // Annahme: de,eu
aDate = aDate.replace(/\-/g, ".").replace(/\//g, ".");
tmpArr = aDate.split("."); 
y = parseInt(tmpArr[2], 10);
if(y < 100 && !bBirthday) {
y += 2000;
}
m = parseInt(tmpArr[1], 10) - 1;
d = tmpArr[0];
aDate = new Date(y, m, d);
aDate = formatDate(aDate, "yyyyMMdd"); 

} else if(aDate.indexOf("/") > -1) {
aDate = aDate.replace(/\./g, "/").replace(/\-/g, "/");
tmpArr = aDate.split("/"); 
if(compcty.toLowerCase().indexOf("us") > -1) { 
y = parseInt(tmpArr[2], 10);
if(y < 100 && !bBirthday) {
y += 2000;
}
m = parseInt(tmpArr[0], 10) - 1;
d = tmpArr[1];
} else {
y = parseInt(tmpArr[2], 10);
if(y < 100 && !bBirthday) {
y += 2000;
}
m = parseInt(tmpArr[1], 10) - 1;
d = tmpArr[0];
}
aDate = new Date(y, m, d);
aDate = formatDate(aDate, "yyyyMMdd"); 

} else if(aDate.indexOf("-") > -1) {
aDate = aDate.replace(/\./g, "-").replace(/\//g, "-");
tmpArr = aDate.split("-"); 
y = parseInt(tmpArr[2], 10);
if(y < 100 && !bBirthday) {
y += 2000;
}
m = parseInt(tmpArr[1], 10) - 1;
d = tmpArr[0];
aDate = new Date(y, m, d);
aDate = formatDate(aDate, "yyyyMMdd"); 

} else if(aDate.length == 6) {
y = parseInt(aDate.substr(4, 2), 10);
if(y < 100 && !bBirthday) {
y += 2000;
}
aDate = new Date(y, parseInt(aDate.substr(2, 2), 10)-1, parseInt(aDate.substr(0, 2), 10));
aDate = formatDate(aDate, "yyyyMMdd"); 

} else if(aDate.length == 8) {
aDate = new Date(parseInt(aDate.substr(4, 4), 10), parseInt(aDate.substr(2, 2), 10)-1, parseInt(aDate.substr(0, 2), 10), 0, 0, 0);
aDate = formatDate(aDate, "yyyyMMdd"); 
}  
if(aDate != null && aDate.indexOf("NaN") < 0) {
document.getElementById(fName).value = aDate;
} else {
document.getElementById(fName).value = "";
}
} else {
document.getElementById(fName).value = "";
}
}
}
}
var MONTH_NAMES=new Array('January','February','March','April','May','June','July','August','September','October','November','December','Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec');
var DAY_NAMES=new Array('Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday','Sun','Mon','Tue','Wed','Thu','Fri','Sat');
function _isInteger(val) {
var digits="1234567890";
for (var i=0; i < val.length; i++) {
if (digits.indexOf(val.charAt(i))==-1) {
return false;
}
}
return true;
}

function _getInt(str,i,minlength,maxlength) {
for (var x=maxlength; x>=minlength; x--) {
var token=str.substring(i,i+x);
if (token.length < minlength) {
return null;
}
if (_isInteger(token)) {
return token;
}
}
return null;
}

function LZ(x) {
return (x < 0 || x > 9 ? "" : "0") + x;
}
function getDateFromFormat(val,format) {
val=val+"";
format=format+"";

var i_val=0;
var i_format=0;
var c="";
var token="";
var token2="";
var x,y;
var now=new Date();
var year=now.getYear();
var month=now.getMonth()+1;
var date=1;
var hh=now.getHours();
var mm=now.getMinutes();
var ss=now.getSeconds();
var ampm="";
while (i_format < format.length) {
c=format.charAt(i_format);
token="";
while ((format.charAt(i_format)==c) && (i_format < format.length)) {
token += format.charAt(i_format++);
}
if (token=="yyyy" || token=="yy" || token=="y") {
if (token=="yyyy") {
x=4;
y=4;
}
if (token=="yy") {
x=2;
y=2;
}
if (token=="y") { 
x=2;
y=4;
}
year = _getInt(val,i_val,x,y);
if (year==null) {
return 0;
}
i_val += year.length;
if (year.length==2) {
if (year > 70) {
year=1900+(year-0);
}	else {
year=2000+(year-0);
}
}
}	else if (token=="MMM"||token=="NNN") {
month=0;
for (var i=0; i<MONTH_NAMES.length; i++) {
var month_name=MONTH_NAMES[i];
if (val.substring(i_val, i_val + month_name.length).toLowerCase() == month_name.toLowerCase()) {
if (token=="MMM"||(token=="NNN"&&i>11)) {
month=i+1;
if (month>12) {
month -= 12;
}
i_val += month_name.length;
break;
}
}
}
if ((month < 1) || (month > 12)) {
return 0;
}
} else if (token=="EE" || token=="E") {
for (var i=0; i < DAY_NAMES.length; i++) {
var day_name = DAY_NAMES[i];
if (val.substring(i_val, i_val+day_name.length).toLowerCase() == day_name.toLowerCase()) {
i_val += day_name.length;
break;
}
}
} else if (token=="MM" || token=="M") {
month=_getInt(val,i_val,token.length,2);
if(month==null || (month<1) || (month>12)) {
return 0;
}
i_val+=month.length;
} else if (token=="dd"||token=="d") {
date=_getInt(val,i_val,token.length,2);
if(date==null || (date<1) || (date>31)) {
return 0;
}
i_val+=date.length;
}	else if (token=="hh" || token=="h") {
hh = _getInt(val, i_val, token.length, 2);
if(hh==null || (hh < 1) ||(hh > 12)) {
return 0;
}
i_val+=hh.length;
}	else if (token=="HH"||token=="H") {
hh=_getInt(val,i_val,token.length,2);
if(hh==null || (hh < 0) || (hh > 23)) {
return 0;
}
i_val+=hh.length;
}	else if (token=="KK" || token=="K") {
hh= _getInt(val, i_val, token.length, 2);
if(hh==null || (hh < 0) || (hh > 11)) {
return 0;
}
i_val+=hh.length;
}	else if (token=="kk" || token=="k") {
hh= _getInt(val, i_val, token.length, 2);
if(hh==null || (hh < 1) || (hh > 24)) {
return 0;
}
i_val+=hh.length;hh--;
}	else if (token=="mm" || token=="m") {
mm= _getInt(val, i_val, token.length, 2);
if(mm==null || (mm < 0) ||(mm > 59)) {
return 0;
}
i_val+=mm.length;
}	else if (token=="ss" || token=="s") {
ss= _getInt (val, i_val, token.length, 2);
if(ss==null || (ss < 0) || (ss > 59)) {
return 0;
}
i_val+=ss.length;
}	else if (token=="a") {
if (val.substring(i_val, i_val+2).toLowerCase()=="am") {
ampm="AM";
}	else if (val.substring(i_val, i_val+2).toLowerCase()=="pm") {
ampm="PM";
}	else {
return 0;
}
i_val+=2;
}	else {
if (val.substring(i_val, i_val+token.length)!=token) {
return 0;
}	else {
i_val+=token.length;
}
}
} 
if (i_val != val.length) {
return 0;
}
if (month == 2) {
if (((year % 4 == 0) && (year % 100 != 0) ) || (year % 400==0) ) { // leap year
if (date > 29) {
return 0;
}
}	else {
if (date > 28) {
return 0;
}
}
}
if ((month==4) || (month==6) || (month==9) || (month==11)) {
if (date > 30) {
return 0;
}
}
if (hh < 12 && ampm=="PM") {
hh = hh - 0 + 12; 
} else if (hh > 11 && ampm == "AM") {
hh -= 12;
}
var newdate = new Date(year, month-1, date, hh, mm, ss);
return newdate;
}
function formatDate(date, format) {
format=format+"";

var result="";
var i_format=0;
var c="";
var token="";
var y=date.getYear()+"";
var M=date.getMonth()+1;
var d=date.getDate();
var E=date.getDay();
var H=date.getHours();
var m=date.getMinutes();
var s=date.getSeconds();
var yyyy,yy,MMM,MM,dd,hh,h,mm,ss,ampm,HH,H,KK,K,kk,k;
var value=new Object();
if (y.length < 4) {
y= "" + (y-0+1900);
}
value["y"]=""+y;
value["yyyy"]=y;
value["yy"]=y.substring(2,4);
value["M"]=M;
value["MM"]=LZ(M);
value["MMM"]=MONTH_NAMES[M-1]; 
value["NNN"]=MONTH_NAMES[M+11];
value["d"]=d;
value["dd"]=LZ(d);
value["E"]=DAY_NAMES[E+7];
value["EE"]=DAY_NAMES[E];
value["H"]=H;
value["HH"]=LZ(H);
if (H == 0) {
value["h"]=12;
}	else if (H > 12){
value["h"]=H-12;
}	else {
value["h"]=H;
}
value["hh"]=LZ(value["h"]);
if (H > 11) {
value["K"]=H-12;
} else {
value["K"]=H;
}
value["k"]=H+1;
value["KK"]=LZ(value["K"]);
value["kk"]=LZ(value["k"]);
if (H > 11) {
value["a"]="PM";
}	else {
value["a"]="AM";
}
value["m"]=m;
value["mm"]=LZ(m);
value["s"]=s;
value["ss"]=LZ(s);
while (i_format < format.length) {
c=format.charAt(i_format);
token="";
while ((format.charAt(i_format)==c) && (i_format < format.length)) {
token += format.charAt(i_format++);
}
if (value[token] != null) { 
result=result + value[token];
} else { 
result=result + token;
}
}
return result;
}
var ex = null;


function openWebassistant()
{
var popurl = "";
try {
switch (compcty) {
case "jp":
popurl = "http://servicefunctions.bosch.com/user/webassistant/search.asp?country=jp&lang=ja";
break;
default:
popurl = "http://servicefunctions.bosch.com/user/webassistant/search.asp?country=" + compcty + "&lang=" + complng;
break;
}
window.open(popurl, "wa", "width=564,height=528,toolbar=no,location=no,directories=no,scrollbars=yes,status=no,menubar=no,resizable=no");
} catch(ex) {

}
}


function openContact()
{
var popurl = "";
try {
switch (compcty) {
case "jp":
popurl = "https://ssl.bosch.com/jp/contact/";
break;
case "cn":
popurl = "http://header.bosch.com.cn/web/site/dealer_locator.jsp?lan=" + complng + "-" + compcty.toUpperCase();
break;
case "xx":
popurl = "https://ssl.bosch.com/xx/contact/xx.php";
break;
case "br":
popurl = "http://www.bosch.com.br/br/contato/index.html?lang=" + complng;
break;
default:
popurl = "http://servicefunctions.bosch.com/user/contactdealer/index.asp?country=" + compcty + "&lang=" + complng + "&app=contact";
break;
}
window.open(popurl, "contact", "width=564,height=528,toolbar=no,location=no,directories=no,scrollbars=yes,status=no,menubar=no,resizable=yes");
} catch(ex) {

}
}


function openSource()
{
var popurl = "";
try {
switch (compcty) {
case "jp":
popurl  = "http://www.bosch.co.jp/jp/header/dealer_locator/";
break;
case "cn":
popurl = "http://header.bosch.com.cn/web/site/dealer_locator.jsp?lan=zh_CN"; 
break;
default:
popurl = "http://servicefunctions.bosch.com/user/contactdealer/index.asp?country=" + compcty + "&lang=" + complng + "&app=dealer";
break;
}
window.open(popurl, "dealer", "width=564,height=528,toolbar=no,location=no,directories=no,scrollbars=yes,status=no,menubar=no,resizable=yes");
} catch(ex) {

}
}


function openNewsletter()
{
var popurl = "";
try {
switch (compcty) {
default:
popurl = "http://www.newsletter-bosch.com/index.cfm?fuseaction=subnew&l=3&cl=" + complng + "-" + compcty.toUpperCase();
break;
}        
window.open(popurl, "newsletter", "width=787,height=700,toolbar=no,location=no,directories=no,scrollbars=yes,status=no,menubar=no,resizable=yes");
} catch(ex) {

}
}


function openAbout()
{
var popurl = "";
try {
switch (complng) {
case "de":
popurl = "http://www.bosch.com/content/language1/html/1062.htm";
break;
default:
popurl = "http://www.bosch.com/content/language2/html/1062.htm";
break;
}        
window.open(popurl, "newsletter", "width=420,height=600,toolbar=no,location=no,directories=no,scrollbars=yes,status=no,menubar=no,resizable=yes");
} catch(ex) {

}
}
function countChars(str, c)
{
var pos = 0;
var counter = 0;

while (pos >= 0) {
pos = str.indexOf(c, pos);
if (pos != -1) {
counter += 1;
pos += 1;
}
}
return(counter);
}
function getDate(asSqlDate)
{
var s = "", t = "";
var d = new Date(); 
if(! asSqlDate) {
t = d.getDate();
s += (t < 10 ? "0" + t : t) + "."; 
t = (d.getMonth() + 1);
s += (t < 10 ? "0" + t : t) + "." + d.getYear(); 
} else {
s += d.getYear();
t = (d.getMonth() + 1);
s += "-" + (t < 10 ? "0" + t : t); 
t = d.getDate();
s += "-" + (t < 10 ? "0" + t : t); 
}
return(s);
}
