// JavaScript Document



image1 = new Image();

image1.src = "images/spacer.gif";



function preview_image(url, text){

	document.photo_img.src 								= url;

	document.getElementById("photo_text").innerHTML 	= text;

}



function print_page(listing) {

	var leftPos = (screen.availWidth-550) / 2;

	var topPos = (screen.availHeight-500) / 2;

	Press1Win = window.open('site_detail_print.php?listing=' + listing,'','width=550,height=500,scrollbars=yes,resizable=no,titlebar=0,top=' + topPos + ',left=' + leftPos);

}

// ************************************************************************************
// 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 ) 
{	
	var re = /\s*((\S+\s*)*)/;
	return value.replace(re, "$1");	
}

// Removes ending whitespaces
function RTrim( value ) 
{	
	var re = /((\s*\S+)*)\s*/;
	return value.replace(re, "$1");	
}

// 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(textboxId)
{
    zipEntered = document.getElementById(textboxId).value
    if ( zipEntered.length != 5 || !IsNumeric(zipEntered) )    
    {
        alert('Please enter a valid 5 digit zip code');
        return false;
    }
    else
    {
       return true;
    }
}


function VerifyZipCodeAndMake(dropdownMakeId, textboxId)
{

    var error = "";
     makeEntered = document.getElementById(dropdownMakeId).value
    if ( makeEntered=="any" )    
    {
        error = "Make is a required field";
    }

    zipEntered = document.getElementById(textboxId).value
    if ( zipEntered.length != 5 || !IsNumeric(zipEntered) )    
    {
        if(error != "") error = error + "\n";
        error = error + "Please enter a valid 5 digit zip code"
    }
    
    if(error != "")
    {
      alert(error);
      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 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 IsInternetExplorer(){
    var strUserAgent = navigator.appName.toString();
    if (strUserAgent == "Microsoft Internet Explorer")
        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));
}

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;
}

function pauseDelay(milliseconds) 
{
    var date = new Date();
    var curDate = null;

    do { curDate = new Date(); } 
    while(curDate-date < milliseconds);
}

function showPopUpObj(objNextTo, objToPlace, posX, posY)
{
    //pauseDelay(1000);
    
    var InfoObj = document.getElementById(objToPlace);
    InfoObj.style.visibility = 'visible';

    InfoObj.style.left = (findPosX(objNextTo) + posX) + 'px';
    InfoObj.style.top =  (findPosY(objNextTo) + posY) + 'px';
}

function hidePopUpObj(infoObjName)
{
    certInfoObj = document.getElementById(infoObjName);
    certInfoObj.style.visibility = 'hidden';
}

// AJAX call
// 3 Variables being passed in:
// url - Handler URL to get the data from
// AsynchSwitch - true/false (true: It is an Asynch call. false: it is a synch call)
// callFunction - function to pass on the handler data to
function AJAX(url, AsynchSwitch, callFunction)
{
    var request = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("MSXML2.XMLHTTP.3.0"); 

    //Error: uncaught exception: Permission denied to call method XMLHttpRequest.open
    request.open("GET", url, AsynchSwitch);

    request.onreadystatechange = function()
    {
        if (request.readyState == 4 && request.status == 200) 
        {
                if (request.responseText)
                {
                    callFunction(request.responseText);
                }
        }
    }
    request.send(null);
    
    // check if async is false, if so get the result because it is ready
    // this is needed to fix Firefox related issue.
    if( AsynchSwitch == false )
    {
        if (request.responseText)
        {
            callFunction(request.responseText);
        }
    }
}

// This function formats numbers by adding commas
function numberFormat(nStr,prefix)
{
    var prefix = prefix || '';
    nStr += '';
    x = nStr.split('.');
    x1 = x[0];
    x2 = x.length > 1 ? '.' + x[1] : '';
    var rgx = /(\d+)(\d{3})/;
    while (rgx.test(x1))
        x1 = x1.replace(rgx, '$1' + ',' + '$2');
    
    return prefix + x1 + x2;
}

/* This is to hide the Advanced Search if a user clicks on any of the other controls in Ajax version of SearchResults */
function filtersClicked()
{
    //pauseDelay(100);
    if (document.getElementById("advancedSearch"))
    {
        var objNewSearchControl = document.getElementById("advancedSearch");
        var objSearchColumn = document.getElementById("leftColumnSearchControls");
        var objSearchToggleImg = document.getElementById("newSearchToggle");
        objSearchColumn.style.paddingTop = "0px";
        objNewSearchControl.style.visibility = "hidden";
        objSearchToggleImg.src = "/sites/common/images/searchResults/icons/plus_sign.gif";
        
        if (document.getElementById("divUpdatePanelBackground"))
        {
            var divUpdatePanelBG = document.getElementById("divUpdatePanelBackground");
            var updateImgDiv = document.getElementById("divUpdatePanelImage");
            var winWidth = 0;
            var winHeight = 0;
            var updateImgDivHeight = updateImgDiv.style.height;
            var updateImgDivWidth = updateImgDiv.style.width;
            
            updateImgDivHeight = String(updateImgDivHeight).substring(0,updateImgDivHeight.length - 2); 
            updateImgDivWidth = String(updateImgDivWidth).substring(0,updateImgDivWidth.length - 2);
            
            divUpdatePanelBG.style.top = 0 + 'px';
            divUpdatePanelBG.style.left = 0 + 'px';
            
            if( typeof( window.innerWidth ) == 'number' )
            {
                //Non-IE
            
                //This is to set the transparent screen to 100% height
                winWidth = window.innerWidth;
                winHeight = document.getElementById("tblSearchResults").offsetHeight;
                winHeight = winHeight + 557;
                
                minHeight = document.getElementById("leftColumn").offsetHeight + 138 + 62;
                
                //This is to position the UPLOADING <div> in the center of the page
                updateImgDiv.style.left = (window.innerWidth/2) - (updateImgDivWidth/2) + 'px';
                updateImgDiv.style.top = (window.pageYOffset + (window.innerHeight/2)) - (updateImgDivHeight/2) + 'px';
            }
            else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) 
            {
                //IE 6+ in 'standards compliant mode'
                
                //This is to set the transparent screen to 100% height
                winWidth = document.documentElement.clientWidth;
                winHeight = document.getElementById("tblSearchResults").clientHeight;
                winHeight = winHeight + 577;
                
                minHeight = document.getElementById("leftColumn").offsetHeight + 138 + 62;
                
                //This is to position the UPLOADING <div> in the center of the page                
                updateImgDiv.style.left = (document.documentElement.clientWidth/2) - (updateImgDivWidth/2) + 'px';
                updateImgDiv.style.top = (document.documentElement.scrollTop + (document.documentElement.clientHeight/2)) - (updateImgDivHeight/2) + 'px';
          
            }
                    
            if (winHeight >  minHeight)
                divUpdatePanelBG.style.height = (winHeight) + 'px';
            else
                divUpdatePanelBG.style.height = (minHeight) + 'px';
                
            divUpdatePanelBG.style.width = (winWidth) + 'px';
        }
    }
}

function doNothing(myVar)
{
;
}
 