﻿// JScript File

// ************************************************************************************
// Following functions are used for OnClick and OnBlur where we display default text
// in textbox
// ************************************************************************************

function ClearText(control, strOriginalText)
{
    if (control.value == strOriginalText)
    {
	    control.value = "";
	}
}
			
function RestoreText(control, strOriginalText)
{
	if (Trim(control.value) == "")
	{
		control.value = strOriginalText;
	}
}

// Removes leading whitespaces
function LTrim( value ) 
{	
    while (value.substring(0,1) == ' ')
    {
        value = value.substring(1, value.length);
    }
    alert('ltrim' + value.length)
    return value;
}

// Removes ending whitespaces
function RTrim( value ) 
{	
    while (value.substring(value.length-1, value.length) == ' ')
    {
        value = value.substring(0,value.length-1);
    }
    alert('rtrim' + value.length)
    return value;
}

// Removes leading and ending whitespaces
function Trim( value ) 
{	
	return LTrim(RTrim(value));	
}

function DisplayErrorViaMessageBox(errorList)
{ 
    if ( errorList != '' )
    {    
        var result = errorList;          
        var errorArray = errorList.split("|");
        if ( errorArray.length > 1 )
        {
            result = '';
            var counter = 0;
            while( counter < errorArray.length)
            {
                result = result + errorArray[counter] + "\n\n";
                counter += 1;
            }
        }        
        alert(result);
    }
}   

function IsNumeric(sText)
{
   var ValidChars = "0123456789";
   var IsNumber=true;
   var Char;
    
   for (i = 0; i < sText.length && IsNumber == true; i++) 
   { 
      Char = sText.charAt(i); 
      if (ValidChars.indexOf(Char) == -1) 
      {
         IsNumber = false;
      }
   }
   return IsNumber;   
}

function IsMoney(sText)
{
   var ValidChars = "0123456789.";
   var IsNumber=true;
   var Char;
    
   for (i = 0; i < sText.length && IsNumber == true; i++) 
   { 
      Char = sText.charAt(i); 
      if (ValidChars.indexOf(Char) == -1) 
      {
         IsNumber = false;
      }
   }
   return IsNumber;   
}

function VerifyZipCode(textboxZipId)
{
    zipEntered = document.getElementById(textboxZipId).value
    zipEntered = trim(zipEntered);
    if ( zipEntered.length != 5 || !IsNumeric(zipEntered) )    
    {
        alert('Please enter a valid 5 digit zip code');
        return false;
    }
    else
    {
       return true;
    }
}

function VerifyZipCodeAndMake(textboxZipId, makeDropDownId)
{
    var errMsg = '';

    zipEntered = document.getElementById(textboxZipId).value
    zipEntered = trim(zipEntered);
    if ( zipEntered.length != 5 || !IsNumeric(zipEntered) )    
    {
        errMsg = 'Please enter a valid 5 digit zip code.'
    }
    
    if (document.getElementById(makeDropDownId).selectedIndex==0)
    {
        if (errMsg!='') errMsg += '|'
        errMsg += 'Make is a required field.';
    }
    
    if (errMsg!='')
    {
        DisplayErrorViaMessageBox(errMsg)
        return false;        
    }
    else
    {
       return true;
    }
}

function IsZipCodeValid(zipEntered)
{
    if ( zipEntered.length != 5 || !IsNumeric(zipEntered) )    
    {
        return false;
    }
    else
    {
       return true;
    }
}

function IsSocialSecurityValid(ssnEntered)
{
    ssnEntered = ssnEntered.replace(/ /g, "")
    ssnEntered = ssnEntered.replace(/-/g, "")
    if ( ssnEntered.length != 9 || !IsNumeric(ssnEntered) )    
    {
        return false;
    }
    else
    {
       return true;
    }
}

function HeaderMouseOver(idTableCell)
{
    document.getElementById(idTableCell).className = "HeaderMouseOver";
}

function HeaderMouseOut(idTableCell)
{
    document.getElementById(idTableCell).className = "HeaderMouseOut";
}


function ClickedDefaultButton(e, buttonid)
{ 
      var bt = document.getElementById(buttonid); 
      if (typeof bt == 'object')
      { 
            if(navigator.appName.indexOf("Netscape")>(-1))
            { 
                  if (e.keyCode == 13)
                  { 
                        bt.click(); 
                        return false; 
                  } 
            } 
            if (navigator.appName.indexOf("Microsoft Internet Explorer")>(-1))
            { 
                  if (event.keyCode == 13)
                  { 
                        bt.click(); 
                        return false; 
                  } 
            } 
      } 
} 

function IsPhoneValid(phone)
{
    phone = Trim(phone);
    var i;
    var count = 0;
    for (i = 0; i < phone.length; i++)
    {   
        // Check that current character is number, ignore spaces.
        var c = phone.charAt(i);
        if (!( c == ' ' || c == '(' || c == ')' || c== '-' || c == '.' ))
        {
            if ( c < "0" || c > "9" ) return false;
            count++;
        }
    }
    
    if ( count == 10 )
        return true;
    else
        return false;
}

function IsSsnValid(ssn) 
{
    var matchArr = ssn.match(/^(\d{3})-?\d{2}-?\d{4}$/);
    var numDashes = ssn.split('-').length - 1;
    if (matchArr == null || numDashes == 1) 
    {
        return false;
    }
    else if (parseInt(matchArr[1],10)==0) 
    {
        return false
    }
    else 
    {
        return true;
    }
}

function IsEmailValid(str) 
{
	var at="@"
	var dot="."
	var lat=str.indexOf(at)
	var lstr=str.length
	var ldot=str.indexOf(dot)

	if (str.indexOf(at)==-1)
	   return false

	if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr)
	   return false

	if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr)
	   return false

	 if (str.indexOf(at,(lat+1))!=-1)
	   return false

	 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot)
	   return false

	 if (str.indexOf(dot,(lat+2))==-1)
	   return false
	
	 if (str.indexOf(" ")!=-1)
	   return false

	 return true					
}

<!-- Original:  Sandeep V. Tamhankar (stamhankar@hotmail.com) -->
<!-- This script and many more are available free online at -->
<!-- The JavaScript Source!! http://javascript.internet.com -->
function IsDateValid(dateStr) 
{
    // Checks for the following valid date formats:
    // MM/DD/YY   MM/DD/YYYY   MM-DD-YY   MM-DD-YYYY
    // Also separates date into month, day, and year variables

    var datePat = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{2}|\d{4})$/;

    // To require a 4 digit year entry, use this line instead:
    // var datePat = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{4})$/;

    var matchArray = dateStr.match(datePat); // is the format ok?
    if (matchArray == null) 
    {
        //alert("Date is not in a valid format.")
        return false;
    }
    month = matchArray[1]; // parse date into variables
    day = matchArray[3];
    year = matchArray[4];
    if (month < 1 || month > 12) 
    { 
        // check month range
        //alert("Month must be between 1 and 12.");
        return false;
    }
    if (day < 1 || day > 31) 
    {
        //alert("Day must be between 1 and 31.");
        return false;
    }
    if ((month==4 || month==6 || month==9 || month==11) && day==31) 
    {
        //alert("Month "+month+" doesn't have 31 days!")
        return false
    }
    if (month == 2) 
    { 
        // check for february 29th
        var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
        if (day>29 || (day==29 && !isleap)) 
        {
            //alert("February " + year + " doesn't have " + day + " days!");
            return false;
        }
    }
    return true;  // date is valid
}

function compareDates (value1, value2) 
{
   var date1, date2;
   var month1, month2;
   var year1, year2;

   month1 = value1.substring (0, value1.indexOf ("/"));
   date1 = value1.substring (value1.indexOf ("/")+1, value1.lastIndexOf ("/"));
   year1 = value1.substring (value1.lastIndexOf ("/")+1, value1.length);

   month2 = value2.substring (0, value2.indexOf ("/"));
   date2 = value2.substring (value2.indexOf ("/")+1, value2.lastIndexOf ("/"));
   year2 = value2.substring (value2.lastIndexOf ("/")+1, value2.length);

   if (parseInt(year1) > parseInt(year2)) return 1;
   else if (parseInt(year1) < parseInt(year2)) return -1;
   else if (parseInt(month1) > parseInt(month2)) return 1;
   else if (parseInt(month1) < parseInt(month2)) return -1;
   else if (parseInt(date1) > parseInt(date2)) return 1;
   else if (parseInt(date1) < parseInt(date2)) return -1;
   else return 0;
} 

function BlendImage(largeImageControlId, imageUrl) 
{
    if (document.getElementById(largeImageControlId).filters) 
    {
        document.getElementById(largeImageControlId).style.filter = "blendTrans(duration=1.5)"
        document.getElementById(largeImageControlId).filters.blendTrans.Apply()
        document.getElementById(largeImageControlId).style.visibility="visible"
        document.getElementById(largeImageControlId).filters.blendTrans.Play()
    }
    document.getElementById(largeImageControlId).src = imageUrl
    if (document.getElementById(largeImageControlId).filters) 
    {
        document.getElementById(largeImageControlId).style.filter = "blendTrans(duration=1.5)"
        document.getElementById(largeImageControlId).filters.blendTrans.Apply()
        document.getElementById(largeImageControlId).style.visibility="visible"
        document.getElementById(largeImageControlId).filters.blendTrans.Play()
    }
}

function findPosX(obj) 
{
    var curleft = 0;
    if (obj.offsetParent) 
    {
        while (1) 
        {
            curleft+=obj.offsetLeft;
            if (!obj.offsetParent) 
            {
                break;
            }
            obj=obj.offsetParent;
        }
    } 
    else if (obj.x) 
    {
        curleft+=obj.x;
    }
    return curleft;
}

function findPosY(obj) 
{
    var curtop = 0;
    if (obj.offsetParent) 
    {
        while (1) 
        {
            curtop+=obj.offsetTop;
            if (!obj.offsetParent) 
            {
                break;
            }
            obj=obj.offsetParent;
        }
    } 
    else if (obj.y) 
    {
        curtop+=obj.y;
    }
    return curtop;
}

function AttachEventToListener(obj, eventname, eventhandler){
    //Used to attach an event to an event handler.    

    if(obj.addEventListener){
	 if(eventname.substring(0, 2)=="on")
		eventname = eventname.substring(2, eventname.length+1);
         obj.addEventListener(eventname, eventhandler, false);
    }
    else  
    {
        if(obj.attachEvent)
            obj.attachEvent(eventname, eventhandler);
    }
}

function IsFireFox(){
    var strUserAgent = navigator.userAgent.toString();
    //return (strUserAgent.match(/Firefox/) != null)

    if(navigator.userAgent.indexOf("Firefox")!=-1){
    var versionindex=navigator.userAgent.indexOf("Firefox")+8
    if (parseInt(navigator.userAgent.charAt(versionindex))>=1)
            return true;
    else
            return false;
    }
}

function getcookie(cookiename) {
 var cookiestring=""+document.cookie;
 var index1=cookiestring.indexOf(cookiename);
 if (index1==-1 || cookiename=="") return ""; 
 var index2=cookiestring.indexOf(';',index1);
 if (index2==-1) index2=cookiestring.length; 
 return unescape(cookiestring.substring(index1+cookiename.length+1,index2));
}

// The following is for hiding and showing a div smoothly...
var inter;

function OpenDiv(controlId, controlHeight, speed)
{
    inter = setInterval("ShowBox('" + controlId + "'," + controlHeight + ", " + speed + ")", 3);
}

function CloseDiv(controlId, controlHeight, speed)
{
    inter = setInterval("HideBox('" + controlId + "'," + controlHeight + ", " + speed + ")", 3);
}

//we show the box by setting the visibility of the element and incrementing the height smoothly
function ShowBox(controlId, controlHeight, speed)
{
    var obj, currentHeight, ctrlStyleHeight;
    
    obj = document.getElementById(controlId);
    ctrlStyleHeight = obj.style.height;
    if (ctrlStyleHeight == 'undefined' || ctrlStyleHeight == null)
    {
        ctrlStyleHeight = "0";
    }
    
    // Convert to an int...
    currentHeight = parseInt(ctrlStyleHeight);
    
    //Depending on the amount of text, set the maximum height here in pixels
	if (currentHeight == controlHeight)
	{
	    clearInterval(inter);
	    return;
	}
	
	obj.style.display = "block";
//	obj.style.visibility = 'visible';
	currentHeight += speed;
	if (currentHeight > controlHeight)
	{
	    currentHeight = controlHeight;
	}
	obj.style.height = currentHeight + 'px';
	obj.scrollTop = controlHeight - currentHeight;
}

//same way as above but reversed
function HideBox(controlId, controlHeight, speed)
{
	var obj, currentHeight, ctrlStyleHeight;
    
    obj = document.getElementById(controlId);
    ctrlStyleHeight = obj.style.height;
    if (ctrlStyleHeight == 'undefined' || ctrlStyleHeight == null)
    {
        ctrlStyleHeight = "0";
    }
    
    // Convert to an int...
    currentHeight = parseInt(ctrlStyleHeight);

	if(currentHeight <= 2)
	{
	    obj.style.display = "none";
	    obj.style.height = '0.1em';
	    clearInterval(inter);
	    return;
	}
	
	currentHeight -= speed;
	if (currentHeight < 1)
	{
	    currentHeight = 1;
	}
	obj.style.height = currentHeight + 'px';
	obj.scrollTop = controlHeight - currentHeight;
}

function ViewGallery(vehicleId)
{
    url = "VehicleGallery.aspx?vehicleId=" + vehicleId;
    var gallery = window.open(url, 'vehicleGallery', 'status=0, toolbar=0, width=700, height=490');
    if (gallery) gallery.focus();
    return false;
}

// Removes leading whitespaces
function LTrim( value ) 
{
    while (value.substring(0,1) == ' ')
    {
        value = value.substring(1, value.length);
    }
    return value;
}

// Removes ending whitespaces
function RTrim( value ) 
{
    while (value.substring(value.length-1, value.length) == ' ')
    {
        value = value.substring(0,value.length-1);
    }
    return value;
}

// Removes leading and ending whitespaces
function trim( value ) 
{
	return LTrim(RTrim(value));
}

function URLEncode (clearString) {
  var output = '';
  var x = 0;
  clearString = clearString.toString();
  var regex = /(^[a-zA-Z0-9_.]*)/;
  while (x < clearString.length) {
    var match = regex.exec(clearString.substr(x));
    if (match != null && match.length > 1 && match[1] != '') {
    	output += match[1];
      x += match[1].length;
    } else {
      if (clearString[x] == ' ')
        output += '+';
      else {
        var charCode = clearString.charCodeAt(x);
        var hexVal = charCode.toString(16);
        output += '%' + ( hexVal.length < 2 ? '0' : '' ) + hexVal.toUpperCase();
      }
      x++;
    }
  }
  return output;
}

//Gets a querystring value
//default_ can be passed in as the default value if there is no value available
function getQuerystring(key, default_)
{
  if (default_==null) default_=""; 
  key = key.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
  var regex = new RegExp("[\\?&]"+key+"=([^&#]*)");
  var qs = regex.exec(window.location.href);
  if(qs == null)
    return default_;
  else
    return qs[1];
}