function escapeChar(val,escChar)
{ var str=""+val;
  var ret="";
  for (var i = 0; i < str.length; i++)
  {
    if (str.charAt(i)==escChar)
    {
      ret=ret+"\\"+str.charAt(i);
    }
    else
    {
      ret=ret+str.charAt(i);
    }
  }
  return ret;
}
function setField(fieldName, filedValue)
{ var element = eval("document.forms[0]."+fieldName);
  if(element!=null && element.value!=null)
  {
    theValue = filedValue;
    eval("document.forms[0]."+fieldName+".value='"+theValue+"'");
  }
}
function getFormElement(elementName)
{
  var element = eval("document.forms[0]."+elementName);
  return element;
}
function goToPage(page)
{
  window.location.href=page;
}

function checkForLinkQuestion(hasLinkToProfile,elementName)
{ if (hasLinkToProfile)
  {
    var sText = "You are about to make current survey as Profile Survey." +
      "\nWarning: Current survey has the question that linked to other Profile Survey."+
      "\nThis operation will remove this link to other Profile Survey." +
      "\nWould you like to continue?";
    if(confirm(sText))
    {
      document.forms[0].submit();
    }
    else
    {
      radioElement = getFormElement(elementName);
      radioElement.checked=true;
    }
  }
  else
  {
    document.forms[0].submit();
  }
}

function warningForProfile(elementName)
{
  var sText = 'You are about to assign current survey profile data type.' +
    '\nWarning: This type of survey does not support randomization of questions and "Thank you page" option.'+
    '\nThese options will be disabled automatically!'+
    '\nWould you like to continue?';
  if(confirm(sText))
  {
    document.forms[0].submit();
    return true;
  }
  else
  {
    radioElement = getFormElement(elementName);
    radioElement.checked=true;
    return false;
  }
}

function isInteger(data) {
    var numStr="0123456789";
    var thisChar;
    var counter = 0 ;
    for (var i=0; i < data.length; i++) {
      thisChar = data.substring(i, i+1) ;
      if (numStr.indexOf(thisChar) != -1)
        counter++ ;
    }
    return counter==data.length;
}

function isNumber(data) {

    var numStr="0123456789,.";
    var thisChar;
    var counter = 0 ;

    for (var i=0; i < data.length; i++) {
      thisChar = data.substring(i, i+1) ;
      if (numStr.indexOf(thisChar) != -1)
        counter++ ;
    }
    return counter==data.length;
}


 function IsImage(file) {

  if (!file) return true;
  filename = file.value ;

  if ( file.value == "" ) return true ;

  while (filename.indexOf("\\") != -1)
    filename = filename.slice(filename.indexOf("\\") + 1);

  ext = filename.slice(filename.indexOf(".")).toLowerCase();

  for (var i = 0; i < extArray.length; i++) {
    if (extArray[i] == ext) { allowSubmit = true; return true; }
  }

  alert("Please only upload files that end in types:  "
       + (extArray.join("  ")) + "\n\nPlease select a new "
       + "file to upload and submit again.");

  return false ;

}

function IsEmail(mail)
{
   if (mail == null)
      return true ;
        if ( mail == "" )
                return true ;

    var supported = 0;
   if (window.RegExp)
   {
      var tempStr = "a";
      var tempReg = new RegExp(tempStr);
      if (tempReg.test(tempStr)) supported = 1;
   }
   if (!supported)
      return (mail.indexOf(".") > 2) && (mail.indexOf("@") > 0);
   var r1 = new RegExp("(@.*@)|(\\.\\.)|(@\\.)|(^\\.)|(\\.$)");
   var r2 = new RegExp("^['a-zA-Z0-9_.-]+@(?!-+)(\\[?)[a-zA-Z0-9.-]+\\.([a-zA-Z]{2,}|[0-9]{1,3})(\\]?)\\s*$");
   return (!r1.test(mail) && r2.test(mail));
}


//*********** isDate (MM/dd/yyyy) *************
function isDate(inDate){
    var theDate = Trim(inDate);
    var theDigit = 0;
    if (theDate.length != 10){
        return false;
    }
    if ((theDate.charAt(2) != '/')||(theDate.charAt(5) != '/')){
        return false;
    }
    theDigit=parseInt(theDate.substring(0,2));
    if(theDate.charAt(0) == '0'){
      theDigit = parseInt(theDate.substring(1,2));
    }
    if ((theDigit > 12)||(theDigit < 1)){
        return false;
    }
    theDigit=parseInt(theDate.substring(3,5));
    if(theDate.charAt(3) == '0'){
      theDigit = parseInt(theDate.substring(4,5));
    }
    if ((theDigit > 31)||(theDigit < 1)){
        return false;
    }
    theDigit=parseInt(theDate.substring(6,10));
    if ((theDigit > 2049)||(theDigit < 1)){
        return false;
    }
    return true;
}

//*********** isDate (dd/MM/yyyy) *************
function isDate1(inDate){
    var theDate = Trim(inDate);
    var theDigit = 0;
    if (theDate.length != 10){
        return false;
    }
    if ((theDate.charAt(2) != '/')||(theDate.charAt(5) != '/')){
        return false;
    }
    theDigit=parseInt(theDate.substring(0,2));
    if(theDate.charAt(0) == '0'){
      theDigit = parseInt(theDate.substring(1,2));
    }
    if ((theDigit > 31)||(theDigit < 1)){
        return false;
    }
    theDigit=parseInt(theDate.substring(3,5));
    if(theDate.charAt(3) == '0'){
      theDigit = parseInt(theDate.substring(4,5));
    }
    if ((theDigit > 12)||(theDigit < 1)){
        return false;
    }
    theDigit=parseInt(theDate.substring(6,10));
    if ((theDigit > 2049)||(theDigit < 1)){
        return false;
    }
    return true;
}

function LTrim(String)
{ if (String==null) return "";
  return String.replace(/^\s*(.*)/,"$1");
}
function RTrim(String)
{ if (String==null) return "";
  return String.replace(/^(.*\S)(\s*)$/,"$1");
}
function Trim(String)
{ if (String==null) return "";
  return RTrim(LTrim(String));
}

function openWindow(url,width,height,returnRef)
{
  var windowname="newWin"+(Math.round(Math.random()*1000000));
  //self.name = "mainWindow"; // names current window as "mainWindow"
  newWindow = window.open(url,windowname,'status=yes,toolbar=no,scrollbars=yes,resizable=yes,width='+width+',height='+height);
  newWindow.focus();
  if(returnRef) return newWindow;
}

function openNamedWindow(url,winName,width,height,returnRef)
{
  newWindow = window.open(url,winName,'toolbar=no,status=yes,scrollbars=yes,resizable=yes,width='+width+',height='+height);
  newWindow.focus();
  if(returnRef) return newWindow;
}
function closeWindowIfNoSession()
{
  if(window.opener!=null && window.opener.document.forms[0]!=null)
  {
    window.opener.document.forms[0].target="_self";
    window.opener.document.forms[0].action="/Member/no_session.jsp";
    window.opener.document.forms[0].submit();
  }
  window.close();
}

function submitParWinAndClose()
{ if(window.opener!=null && window.opener.document.forms[0]!=null)
  { window.opener.document.forms[0].submit();
  }
  window.close();
}

function submitForm(theForm)
{ if(theForm!=null)
  { theForm.submit();
  }
}

function changeAPic(aElem,isOver)
{ var img = aElem.getElementsByTagName("img")[0];
  var src = img.src;
  var dot = src.lastIndexOf('.');
  if( src.substring(dot-4,dot)=='Over' ){
    src = src.substring(0,dot-4)+src.substring(dot);// without '-Over'
  }
  if( isOver ){
    // add '-Over'
    dot = src.lastIndexOf('.');
    src = src.substring(0,dot)+"Over" + src.substring(dot);
  }
  img.src=src;
}
function changeAPicOver(aElem){
  changeAPic(aElem,true);
}
function changeAPicOut(aElem){
  changeAPic(aElem,false);
}
function changePic(img_name,img_src)
{ document[img_name].src=img_src;
}

// accept and validate date in format
// yyyyXmmXdd, yyXmmXdd where X - any char(s) except 0..9
function check_date(field){

 var yyyy=""+field.value.replace(/^\s*(\d{2}(\d{2})?)\D(\d{2})\D(\d{2})\s*$/,"$1");
 var mm=""+field.value.replace(/^\s*(\d{2}(\d{2})?)\D(\d{2})\D(\d{2})\s*$/,"$2");
 var dd=""+field.value.replace(/^\s*(\d{2}(\d{2})?)\D(\d{2})\D(\d{2})\s*$/,"$3");
 if (yyyy.search(/^\d{2}$/)>=0){
   yyyy="20"+yyyy;
 }
var DateValue = yyyy+mm+dd;
var seperator = "-";
var leap = 0;
var err = 0;

   /* year is wrong if year = 0000 */
   if (yyyy == 0) {
      err = 20;
   }
   /* Validation of month*/

   if (mm<1 || mm>12) {
      err = 21;
   }
   /* Validation of day*/
   if (dd<1 || dd>32) {
     err = 22;
   }
   /* Validation leap-year / february / day */
   if (yyyy%4==0 || yyyy%100==0 || yyyy%400==0) {
      leap = 1;
   }
   if (mm==2 && leap==1 && dd>29) {
      err = 23;
   }
   if (mm==2 && leap!=1 && dd>28) {
      err = 24;
   }
   /* Validation of other months */
   if (dd>31 && (mm=="01" || mm=="03" || mm=="05" || mm=="07" || mm=="08" || mm=="10" || mm=="12")) {
      err = 25;
   }
   if (dd>30 && (mm=="04" || mm=="06" || mm=="09" || mm=="11")) {
      err = 26;
   }
   /* if 00 ist entered, no error, deleting the entry */
   if (dd==0 && mm==0 && yyyy==00) {
      err = 0; dd = ""; mm = ""; yyyy = ""; seperator = "";
   }
   /* if no error, write the completed date to Input-Field (e.g. 13.12.2001) */
   if (err == 0) {
      field.value = yyyy + seperator + mm + seperator + dd;
      return true;
   }
   /* Error-message if err != 0 */
    alert("Date is incorrect!");
    field.select();
    field.focus();
    return false;
}

function appendArrays(/*arr1, ..., arrN*/){
  var arr=new Array();
  for( var j = 0; j < arguments.length; j++ ){
    var arrj = arguments[j];
    for( var i in arrj ){
      arr.push(arrj[i]);
    }
  }
  return arr;
}
