function go_page(a,b,c){
  window.location.href=a+b+c;
}

function checkValidEmail(str) {
        if (str.match("'") != null)
        {
        alert("The given e-mail address is not valid!");
        return 0;
        }

        if (str.match('"') != null)
        {
        alert("The given e-mail address is not valid!");
        return 0;
        }

        if (str.match("@") == null)
        {
        alert("The given e-mail address is not valid!");
        return 0;
        }
        return 1;
}

function checkValidFloat(str, fieldname) {
        if (!isFloatNumber(str)) {
        alert("Please provide a valid floating point number for " + fieldname + ".");
        return false;
        }
        return true;
}

function checkValidInt(str, fieldname) {
        if (!isNumber(str)) {
                alert("Please provide a valid integer number for " + fieldname + ".");
                return false;
        }
        return true;
}

function isDigit(aChar) {
        if (aChar.length != 1)
                return false;
        var num = parseInt(aChar,10);
        if (isNaN(num))
                return false;
        return true;
}

function isNumber(numString) {
        if (numString == '')
                return false;
        for (var i = 0; i < numString.length;i++)
                if (!isDigit(numString.charAt(i)))
                        return false;
        return true;
}

function isFloatNumber(numString) {
        if (numString == '') {
                return false;
        }
        var pc = 0;
        for (var i = 0; i < numString.length;i++)
                if (!isDigit(numString.charAt(i))) {
                  if ( ( numString.charAt(i) == ".") && (pc==0) ){
                        pc++;
                  } else {
                                return false;
                        }
                }
        return true;
}


function showAlert(fieldName, withPattern, pattern) {
   if (withPattern)
                alert("The entry for " + fieldName + " is incorrect.\rPlease check your entry and try again.\rThe allowed special characters are '" + pattern + "'.");
   else
                alert("The entry for " + fieldName + " is incorrect.");
}

function checkFieldWithPattern(fieldValue,pattern) {
        if (fieldValue == "")
                return false;
        var entryLength = fieldValue.length;
        var verifyChar = 0;
        var aChar = '';
        for (var i = 0;i < entryLength;i++) {
                aChar = fieldValue.charAt(i);
                verifyChar = pattern.indexOf(aChar);
                if ((pattern.indexOf(aChar) == -1) && (!isDigit(aChar))) {
                        return false;
           }
        }
        return true;
}

function trim(str) {
         while (str.substring(0,1) == '  ')
                 str = str.substring(1, str.length);

         while (str.substring(str.length - 1,str.length)  ==  '  ')
                 str = str.substring(0, str.length - 1);

        return str;
 }

function removeSpaces(str) {
   var newStr = '';
   for (i = 0;i < str.length;i++)
          if (str.charAt(i) != ' ')
                newStr += str.charAt(i);
   return newStr;
}

function checkTimeFormat(timeString) {
  var fieldArray = timeString.split(":");

  if (fieldArray.length < 2)
         return false;

  fieldArray[0] = parseInt(fieldArray[0]);
  fieldArray[1] = parseInt(fieldArray[1]);

  if (!isNumber(fieldArray[0])) {
        return false;
  }
  if (!isNumber(fieldArray[1])) {
        return false;
  }
  if (fieldArray.length > 2) {
        fieldArray[2] = parseInt(fieldArray[2]);
        if (!isNumber(fieldArray[2])) {
          return false;
        }
  }

  if ( (fieldArray[0] < 0) || (fieldArray[0] > 23)        ) {
   return false;
  }
  if ( (fieldArray[1] < 0) || (fieldArray[1] > 59) ) {
   return false;
  }
  if (fieldArray.length > 2) {
   if ( (fieldArray[2] < 0) || (fieldArray[2] > 59) ) {
         return false;
   }
  }
  return true;
}

function checkDateFormat(dateString) {
  var fieldArray = dateString.split("/");
  if (fieldArray.length != 3)
         return false;

   fieldArray[0] = parseInt(fieldArray[0]);
   fieldArray[1] = parseInt(fieldArray[1]);
   fieldArray[2] = parseInt(fieldArray[2]);

   if (!isNumber(fieldArray[0])) {
          return false;
   }
   if (!isNumber(fieldArray[1])) {
          return false;
   }
   if (!isNumber(fieldArray[2])) {
          return false;
   }
   if ( (fieldArray[0] < 1) || (fieldArray[0] > 12)  ) {
         return false;
   }
   if ( (fieldArray[1] < 1) || (fieldArray[1] > 31) ) {
         return false;
   }
   if ( (fieldArray[2] < 1900) || (fieldArray[2] > 2500) ) {
         return false;
   }
   return true;
}

function checkDateTimeFormat(datetimeString) {
  datetimeString = trim(datetimeString);
  var index = datetimeString.indexOf(' ');
  if (index>0) {
        dateString = trim(datetimeString.slice(0,index))
        timeString = trim(datetimeString.slice(index))
        return checkDateFormat(dateString) && checkTimeFormat(timeString);
  } else {
        return checkDateFormat(datetimeString);
  }
}

function padleft(s,wdt,filler) {
  s = "" + s;
  while (s.length < wdt) {
        s = filler + s;
  }
  return s;
}

function normalizeDate(dateString) {
  var fieldArray = dateString.split("/");
   var mm = parseInt(fieldArray[0],10);
   var dd = parseInt(fieldArray[1],10);
   var yyyy = parseInt(fieldArray[2],10);

   dd = padleft(dd,2,"0");
   mm = padleft(dd,2,"0");

   return "" + dd + "/" + mm + "/" + yyyy;
}

function createDateObject(dateString) {
   var fieldArray = dateString.split("/");
   var mm = parseInt(fieldArray[0],10);
   var dd = parseInt(fieldArray[1],10);
   var yyyy = parseInt(fieldArray[2],10);
   var tmpDate = new Date(yyyy,(mm - 1),dd);
   return tmpDate;
}

function isBefore(date1,date2) {
  var time1 = date1.getTime();
  var time2 = date2.getTime();
  if (time1 < time2)
        return true;
  return false;
}

function isAfter(date1,date2) {
  var time1 = date1.getTime();
  var time2 = date2.getTime();
  if (time1 > time2)
        return true;
  return false;
}

function isEqual(date1,date2) {
   var d1 = date1.getDate();
   var m1 = date1.getMonth();
   var y1 = date1.getFullYear();
   var d2 = date2.getDate();
   var m2 = date2.getMonth();
   var y2 = date2.getFullYear();
   return ((d1 == d2) && (m1 == m2) && (y1 == y2));
}

function checkExpirationDate(dateString) {
  if (dateString == '') {
         alert("The expiration date is invalid.");
         return;
  }
  dateString = removeSpaces(trim(dateString));
  if (!checkDateFormat(dateString))  {
         alert("The expiration date is invalid.\rEnter date in mm/dd/YYYY format.");
         return false;
  }
  var date1 = createDateObject(dateString);
  var date2 = new Date();
  if (isEqual(date1,date2))
        return true;
  if (isBefore(date1,date2)) {
         alert("Expiration date should be in the future.");
         return false;
  }
  return true;
}

function checkBirthDate(dateString) {
  if (dateString == '') {
         alert("The birth date is invalid.");
         return;
  }
  dateString = removeSpaces(trim(dateString));
  if (!checkDateFormat(dateString))  {
         alert("The bith date is invalid.\rEnter date in mm/dd/YYYY format.");
         return false;
  }
  var date1 = createDateObject(dateString);
  var date2 = new Date();
  if (isAfter(date1,date2)) {
         alert("The birth date is invalid.");
         return false;
  }
  return true;
}

// Checks the specified field for correct entry
/*
function isNumC(idx,msg) {
        var boxValue = idx.value;
        var boxLength = boxValue.length;
        var SpecChar = "-() ";
        var VerifyChar;
        for (var i = 0;i < boxLength;i++) {
                aChar = boxValue.charAt(i);
                VerifyChar = SpecChar.indexOf(aChar);
                if ((VerifyChar == -1) && (aChar < '0') || (aChar > '9')) {
                        idx.value=""
                        alert("The entry for '" + msg + "' was incorrect.\nPlease check your entry and try again.\nThe allowed special characters are '-()'.");
                        return false
                }
        }
        alert("The entry for '" + msg + "' was correct!");
        return true
}*/

function show_hide(divname){
       if (document.getElementById(divname).style.display=='none') {
         document.getElementById(divname).style.display='block';
       } else {
         document.getElementById(divname).style.display='none';
       }
}

function show_hide_pm(divname){
       if (document.getElementById(divname).style.display=='none') {
         document.getElementById(divname).style.display='block';
         document.getElementById(divname+'_plus').style.display='none';
         document.getElementById(divname+'_minus').style.display='block';
       } else {
         document.getElementById(divname).style.display='none';
         document.getElementById(divname+'_plus').style.display='block';
         document.getElementById(divname+'_minus').style.display='none';
       }
}

function show_hide_i(divname,imagesrc,showimage,hideimage){
       if (document.getElementById(divname).style.display=='none') {
         document.getElementById(divname).style.display='block';
         document.getElementById(imagesrc).src=hideimage;
       } else {
         document.getElementById(divname).style.display='none';
         document.getElementById(imagesrc).src=showimage;
       }
}


timeOutToCheck=300;//in Miliseconds
timeOutToDownload=1500;//in Miliseconds

function newReq(){
  if(window.XMLHttpRequest) {
    try {
      req = new XMLHttpRequest();
    } catch(e) {
      req = false;
    }
  } else if(window.ActiveXObject) {
     	try {
        req = new ActiveXObject("Msxml2.XMLHTTP");
    	} catch(e) {
        try {
          req = new ActiveXObject("Microsoft.XMLHTTP");
        } catch(e) {
          req = false;
        }
    }
  }
  return req;
}
lastId=-1;//The last message ID

function Connector(){
  this.message="";
  this.countDown=0;
  this.name="";

  this.send=function() {
    if (this.message!="") return;//If we have not sent the last message, return.
    var msg=document.getElementById("msg");
    if (msg.value=="") return;//No message to send
    msg.disabled=false;
    document.getElementById("btn").disabled=false;
    this.message=msg.value;
    msg.value="";
    msg.focus();
  }

  this.runner=function(){
    this.countDown--;
//    window.status=this.countDown;
    if (this.message || this.countDown<=0) {
      readFromServer("/"+"chata"+"sync"+"."+"php"+"?"+"location="+escape(window.location.href)+"&last_id="+lastId+"&name="+escape(this.name)+"&message="+escape(this.message));
      if (lastId==-1) lastId=0;
      this.name="";
      this.message="";
      this.countDown=timeOutToDownload/timeOutToCheck;
    } else setTimeout('connector.runner()',timeOutToCheck);
  }

  readFromServer=function(url){
    req=newReq();
    req.onreadystatechange=ready;
    req.open("GET", url, true);
    req.send("");
  }

  ready=function(){
    if (req.readyState==4 && req.getResponseHeader("response_ok")){
      if (req.responseText){
        addNewLine(req.responseText);
      }
      try{
        if (req.getResponseHeader("last_id")) {
          lastId=req.getResponseHeader("last_id");
        }
      } catch(e){

      }
     setTimeout('connector.runner()',timeOutToCheck);
    }
  }

  addNewLine=function(text){
    iframe=parent.innerFrame.window;
    iframeDocument=iframe.document;

    iframeDocument.body.innerHTML+=text;
    iframe.scrollBy(0,10000);
  }

}

function bookmark(){
  if(window.external) {
    window.external.AddFavorite('http://designasign.biz','Design A Sign');
  } else {
    //alert('Please bookmark us');
  }
}
