function Browser() {

  var ua, s, i;

  this.isIE    = false;  // Internet Explorer
  this.isOP    = false;  // Opera
  this.isNS    = false;  // Netscape
  this.version = null;

  ua = navigator.userAgent;

  s = "Opera";
  if ((i = ua.indexOf(s)) >= 0) {
    this.isOP = true;
    this.version = parseFloat(ua.substr(i + s.length));
    return;
  }

  s = "Netscape6/";
  if ((i = ua.indexOf(s)) >= 0) {
    this.isNS = true;
    this.version = parseFloat(ua.substr(i + s.length));
    return;
  }

  // Treat any other "Gecko" browser as Netscape 6.1.

  s = "Gecko";
  if ((i = ua.indexOf(s)) >= 0) {
    this.isNS = true;
    this.version = 6.1;
    return;
  }

  s = "MSIE";
  if ((i = ua.indexOf(s))) {
    this.isIE = true;
    this.version = parseFloat(ua.substr(i + s.length));
    return;
  }
}

var browser = new Browser();


function getPageOffsetLeft(el) {

  var x;

  // Return the x coordinate of an element relative to the page.

  x = el.offsetLeft;
  if (el.offsetParent != null)
    x += getPageOffsetLeft(el.offsetParent);

  return x;
}

function getPageOffsetTop(el) {

  var y;

  // Return the y coordinate of an element relative to the page.

  y = el.offsetTop;
  if (el.offsetParent != null)
    y += getPageOffsetTop(el.offsetParent);

  return y;
}

//----------------------------------------------------------------------------
// Fuctnions for validation
//----------------------------------------------------------------------------
var whitespace = " \t\n\r";

function isEmpty(s) { 
	return ((s == null) || (s.length == 0)) 
}

// Check if the string is just composed by whitespaces
function isWhitespace (s) {
	var i;
    if (isEmpty(s)) return true;
    for (i = 0; i < s.length; i++) {
		var c = s.charAt(i);
		if (whitespace.indexOf(c) == -1) return false;
	}
	return true;
}

// Force a entry from user for the field
function ForceEntry(val, str) {
	var strInput = new String(val.value);
	if (isWhitespace(strInput)) {
		alert(str);
		val.focus();
		return false;
	} 
	else
		return true;
}

// Check if is a valid email
function isEmail(val, str){
	var strInput = new String(val.value);
	if ( !/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(strInput) ){
 		alert(str);
		val.focus();
		return false;
	}
	else
		return true
}

// Check if is a word without numbers
function isWord(val, str){
	var strInput = new String(val.value);
	if ( !/^\w+$/.test(strInput) ){
 		alert(str);
		val.focus();
		return false;
	}
	else
		return true
}

// Check if is Entire
function IsEntire(s,str) {
	var ValidChars = "0123456789";
   	var IsEntire=true;
   	var theChar;
	for (i = 0; i < s.value.length && IsEntire == true; i++)  { 
    	theChar = s.value.charAt(i); 
     	if (ValidChars.indexOf(theChar) == -1) {
	       	IsEntire = false;
        }
    }
	if (!IsEntire) {
		alert(str);
		s.focus();
	}
   	return IsEntire;
}

// Validate if at least one checbox from fields is selected 
function isSomeChecked(fields, str){
	var isChecked = false;
	for( i = 0; i < fields.length; i++ ){		
		if( fields[i].checked ){	
			return true;
		}
	}
	fields[0].focus();
	alert(str);
	return isChecked;
}

// Check two fields for coincidence
function areEqual(val1, val2, str){
	var strInput1 = val1.value;
	var strInput2 = val2.value;
	if( strInput1 != strInput2 ){
		alert(str);
		val2.focus();
		return false;
	}
	else
		return true;
}

function isEntireValue(s,str) {
	var val=s.value;
	var ValidChars = "0123456789";
    var IsEntire=true;
   	var theChar;
	if(val != ""){
	   for (i = 0; i < val.length && IsEntire == true; i++)  { 
    	   theChar = val.substring(i, i+1); 
     	   if (ValidChars.indexOf(theChar) == -1) IsEntire = false;
       }
	}
	if (!IsEntire) {
		  alert(str);
		  s.focus();
	}
	return IsEntire;
}

// Check if a select field was used, only works if select field has
// an option with value="" to indicate no selection
function isSelected(val, str){
	
	var strInput = (val.selectedIndex != -1 ) ? new String(val.options[ val.selectedIndex ].value ) : new String('');

	if (isWhitespace(strInput)) {
		alert(str);
		val.focus();
		return false;
	} 
	else
		return true;
}

// Check for a minimun lenght of a field
function minLength(val, minl, str){
	var strInput = new String(val.value);
	if( strInput.length < minl ){
		alert(str);
		val.focus();
		return false;
	}
	else
		return true;
}

// Check for maximun lenght, usefull on textarea fields
function maxLength(val, maxl, str){
	var strInput = new String(val.value);
	if( strInput.length > maxl ){
		alert(str);
		val.focus();
		return false;
	}
	else
		return true;
}

/* Funtions to drag and drop Divs*/
//*****************************************************************************
// Copyright 2001 by Mike Hall.
// See http://www.brainjar.com for terms of use.
//*****************************************************************************
// Global object to hold drag information.

var dragObj = new Object();
dragObj.zIndex = 0;

function dragStart(event, id) {

  var el;
  var x, y;
  
  // If an element id was given, find it. Otherwise use the element being
  // clicked on.

  if (id)
    dragObj.elNode = document.getElementById(id);
  else {
    if (browser.isIE)
      dragObj.elNode = window.event.srcElement;
    if (browser.isNS)
      dragObj.elNode = event.target;

    // If this is a text node, use its parent element.

    if (dragObj.elNode.nodeType == 3)
      dragObj.elNode = dragObj.elNode.parentNode;
  }

  // Get cursor position with respect to the page.

  if (browser.isIE) {
    x = window.event.clientX + document.documentElement.scrollLeft
      + document.body.scrollLeft;
    y = window.event.clientY + document.documentElement.scrollTop
      + document.body.scrollTop;
  }
  if (browser.isNS) {
    x = event.clientX + window.scrollX;
    y = event.clientY + window.scrollY;
  }

  // Save starting positions of cursor and element.

  dragObj.cursorStartX = x;
  dragObj.cursorStartY = y;
  dragObj.elStartLeft  = parseInt(dragObj.elNode.style.left, 10);
  dragObj.elStartTop   = parseInt(dragObj.elNode.style.top,  10);

  if (isNaN(dragObj.elStartLeft)) dragObj.elStartLeft = 0;
  if (isNaN(dragObj.elStartTop))  dragObj.elStartTop  = 0;

  // Update element's z-index.

  dragObj.elNode.style.zIndex = ++dragObj.zIndex;

  // Capture mousemove and mouseup events on the page.

  if (browser.isIE) {
    document.attachEvent("onmousemove", dragGo);
    document.attachEvent("onmouseup",   dragStop);
    window.event.cancelBubble = true;
    window.event.returnValue = false;
  }
  if (browser.isNS) {
    document.addEventListener("mousemove", dragGo,   true);
    document.addEventListener("mouseup",   dragStop, true);
    event.preventDefault();
  }
}

function dragGo(event) {

  var x, y;  
  var theFrm = document.getElementById( 'upAllFrm' );
  // Get cursor position with respect to the page.

  if (browser.isIE) {
    x = window.event.clientX + document.documentElement.scrollLeft
      + document.body.scrollLeft;
    y = window.event.clientY + document.documentElement.scrollTop
      + document.body.scrollTop;
  }
  if (browser.isNS) {
    x = event.clientX + window.scrollX;
    y = event.clientY + window.scrollY;
  }

  // Move drag element by the same amount the cursor has moved.

  dragObj.elNode.style.left = (dragObj.elStartLeft + x - dragObj.cursorStartX) + "px";
  dragObj.elNode.style.top  = (dragObj.elStartTop  + y - dragObj.cursorStartY) + "px";

  if (browser.isIE) {
	if(theFrm){
		theFrm.style.left = (dragObj.elStartLeft + x - dragObj.cursorStartX) + "px";
  		theFrm.style.top  = (dragObj.elStartTop  + y - dragObj.cursorStartY) + "px";
	}
    window.event.cancelBubble = true;
    window.event.returnValue = false;
  }
  if (browser.isNS)
    event.preventDefault();
}

function dragStop(event) {

  // Stop capturing mousemove and mouseup events.

  if (browser.isIE) {
    document.detachEvent("onmousemove", dragGo);
    document.detachEvent("onmouseup",   dragStop);
  }
  if (browser.isNS) {
    document.removeEventListener("mousemove", dragGo,   true);
    document.removeEventListener("mouseup",   dragStop, true);
  }
}

//Show Hidden Divs
function showHideDiv( divId, theLink ){
    var theDiv = document.getElementById( divId );
	var theImg = document.getElementById( divId+"img" );
	if( theDiv.style.display != "block" ){
		theDiv.style.display = "block";
		theImg.src = "images/i_hideinfo.gif";
	}
	else{
		theDiv.style.display = "none";
		theImg.src = "images/i_moreinfo.gif";
	}
	return false;
}

function showHelpDiv(divId, el){
  var x, y;
  var theDiv = document.getElementById( divId );
  var theFrm = document.getElementById( 'upAllFrm' );
  // Position the associated drop down menu under the button and
  // show it.
  x = getPageOffsetLeft(el);
  y = getPageOffsetTop(el) + el.offsetHeight;

  // For IE, adjust position.
  if (browser.isIE) {
    x += el.offsetParent.clientLeft;
    y += el.offsetParent.clientTop;
  }
  if( theDiv.style.display != "block" )
  	theDiv.style.display = "block";
  theDiv.style.left = x + "px";
  theDiv.style.top  = y + "px";
  if (browser.isIE && theFrm) {
	theFrm.style.height = theDiv.offsetHeight
	theFrm.style.width = theDiv.offsetWidth
  	theFrm.style.display = "block";
	theFrm.style.left = x + "px";
	theFrm.style.top  = y + "px";	
  }
}

function hideDiv(divId){
	TheDiv = document.getElementById(divId);
	var theFrm = document.getElementById( 'upAllFrm' );
	TheDiv.style.display='none';
	if (browser.isIE && theFrm) {
		theFrm.style.display = "none";
	}
}

/*function selectsDisplay( pDisplay ){
	numForms = document.forms.length;
	for(i=0;i<numForms;i++){
	theForm = document.forms[i]
		numElements = theForm.elements.length;
		for(j=0;j<numElements;j++){
			theElement = theForm.elements[j]			
			if(theElement.tagName=='SELECT'){				
				theElement.setAttribute(  'disabled', 'disabled') ;

			}
		}
	}
}*/
/*Validate Data of search*/
function validateSearchDataAll(form){ 
	var messageA = "Please select a make";
	var messageB = "Please select an initial year";
	var messageC = "Please select a final year";
	var messageD = "Please use at least one field";
	var messageE = "Initial or final year selected. Please select a make.";
	
	var CanSubmit = false;
	
	var strInput  = new String(form.valuemake.value);	
	var strInput1 = new String(form.fromyear.value);
	var strInput2 = new String(form.toyear.value);
	var strInput3 = new String(form.valuevin.value);
	var strInput4 = new String(form.valuelot.value);
	var strInput5 = new String(form.valueState.value);

	if (isWhitespace(strInput)   && isWhitespace(strInput1)  && isWhitespace(strInput2) && isWhitespace(strInput3) && isWhitespace(strInput4) && isWhitespace(strInput5)) {
		alert(messageD);
	}

	else if(!isWhitespace(strInput) && (isWhitespace(strInput1) || isWhitespace(strInput2))) {
		if(isWhitespace(strInput1)) 
			alert(messageB);
		else if(isWhitespace(strInput2))
			alert(messageC);
	}
	else if((!isWhitespace(strInput1) || !isWhitespace(strInput2)) && isWhitespace(strInput)){
		 alert(messageE);
			
	}
	else {
		CanSubmit = true;
	}
	

	return CanSubmit;
}

function validateSearchDataBids(form){ 
	var messageA = "Please use at least one field";
	var CanSubmit = false;
	
	var strInput = new String(form.cbvalue1.value);	
	var strInput1 = new String(form.cbvalue2.value);
	var strInput2 = new String(form.cbvalue3.value);

	if (isWhitespace(strInput) && isWhitespace(strInput1) && isWhitespace(strInput2)) {
		alert(messageA);
	} else {
		CanSubmit = true;
	}
	return CanSubmit;
}

function validateSearchData(form){
	var messageA = "Please select a make";
	var CanSubmit = false;
    CanSubmit = ForceEntry(form.valuemake,messageA);
	return CanSubmit;
}
function validateSearchData2(form){

	var messageA = "Please type a lot number";
	var CanSubmit = false;
    CanSubmit = ForceEntry(form.valuelot,messageA);
	return CanSubmit;
}
function validateSearchData3(form){

	var messageA = "Please type a VIN";
	var CanSubmit = false;
    CanSubmit = ForceEntry(form.valuevin,messageA);
	return CanSubmit;
}
function validateSearchData4(form){

	var messageA = "Please type a value";
	var CanSubmit = false;
    CanSubmit = ForceEntry(form.cbvalue,messageA);
	return CanSubmit;
}

function validateCreateSeller(form){

	var messageA = "Please type name";
	var messageB = "Please type last name";
	var messageC = "Please type workphone";
	var messageD = "Please type address";
	var messageE = "Please type email";
	var messageJ = "You must enter a real email";
	var messageF = "Please type city";
	var messageg = "Please type state";
	var messageH = "Please type zip";
	var messageK = "Zip Code can not have alphanumeric characters";
	var messageI = "Please type login";
	var messageL = "You must accept the Privacy Policy and Disclaimer.";
	var messageM = "You must enter a Password and confirm it";
	var messageN = "The Password has'nt been correectly confirmed";
	var messageQ = "Please select an option for How did you hear about us?";


	var CanSubmit = false;
    CanSubmit = ForceEntry(form.p_name,messageA);	
	if (CanSubmit) CanSubmit = ForceEntry(form.p_lastname,messageB);
	if (CanSubmit) CanSubmit = ForceEntry(form.p_workphone,messageC);
	if (CanSubmit) CanSubmit = ForceEntry(form.p_address,messageD);
	if (CanSubmit) CanSubmit = ForceEntry(form.p_city,messageF);
	if (CanSubmit) CanSubmit = ForceEntry(form.p_zip,messageH);	
	if (CanSubmit) CanSubmit = isEntireValue(form.p_zip, messageK);
	if (CanSubmit) CanSubmit = ForceEntry(form.p_email,messageE);
	if (CanSubmit) CanSubmit = isEmail(form.p_email, messageJ);


	
	if (CanSubmit) CanSubmit = ForceEntry(form.p_login,messageI);
	
	if (CanSubmit) CanSubmit = ForceEntry(form.p_password,messageM);
	if (CanSubmit) CanSubmit = ForceEntry(form.p_confirmPassword,messageM);	
	if (CanSubmit) CanSubmit = areEqual(form.p_password, form.p_confirmPassword, messageN);
	if (CanSubmit) CanSubmit = ForceEntry(form.hearaboutus,messageQ);	
	if(CanSubmit==true){
	if (document.getElementById("privacypolicy").checked==true)
		CanSubmit=true;
	else{
		CanSubmit=false;
		alert (messageL)
		
	}
	}
	
	return CanSubmit;
}
function validateCreateBuyer(form){
	var CanSubmit = false;
	var messageA = "Please type name";
	var messageB = "Please type last name";
	var messageC = "Please type workphone";
	var messageD = "Please type address";
	var messageE = "Please type email";
	var messageJ = "You must enter a real email";

	var messageF = "Please type city";
	var messageg = "Please type state";
	var messageH = "Please type zip";
	var messageK = "Zip Code can not have alphanumeric characters";
	var messageI = "Please type login";
	var messageL = "You must accept the Privacy Policy and Disclaimer.";
	var messageM = "You must enter a Password and confirm it";
	var messageN = "The Password has'nt been correectly confirmed";
	var messageQ = "Please select an option for How did you hear about us?";

	
    CanSubmit = ForceEntry(form.p_name,messageA);	
	if (CanSubmit) CanSubmit = ForceEntry(form.p_lastname,messageB);
	if (CanSubmit) CanSubmit = ForceEntry(form.p_workphone,messageC);
	if (CanSubmit) CanSubmit = ForceEntry(form.p_address,messageD);
	if (CanSubmit) CanSubmit = ForceEntry(form.p_city,messageF);
	if (CanSubmit) CanSubmit = ForceEntry(form.p_zip,messageH);	
	if (CanSubmit) CanSubmit = isEntireValue(form.p_zip, messageK);	
	if (CanSubmit) CanSubmit = ForceEntry(form.p_email,messageE);
	if (CanSubmit) CanSubmit = isEmail(form.p_email, messageJ);

	if (CanSubmit) CanSubmit = ForceEntry(form.p_login,messageI);

	if (CanSubmit) CanSubmit = ForceEntry(form.p_password,messageM);
	if (CanSubmit) CanSubmit = ForceEntry(form.p_confirmPassword,messageM);	
	if (CanSubmit) CanSubmit = areEqual(form.p_password, form.p_confirmPassword, messageN);
		

	
	if (CanSubmit) CanSubmit = ForceEntry(form.hearaboutus,messageQ);
	if(CanSubmit==true){
		if (document.getElementById("privacypolicy").checked==true)
			CanSubmit=true;
		else{
			CanSubmit=false;
			alert (messageL)
			
		}
	}


	
	return CanSubmit;
}
/*End Validate Data of search*/
function openPopUp (pagina) {
	var opciones="toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=yes, resizable=yes, width=965, height=1100, top=85, left=140";
	window.open(pagina,"",opciones);
}
function opNext(op){
	document.getElementById("op").value='remove';
}
function opDeleteTransportation(){
	form = document.forms["editTrans"];
	var cont=0;
	var canSubmit=false;
	if (form.deleteIds.length>0) {
		for (i = 0; i < form.deleteIds.length; i++)
			if(form.deleteIds[i].checked==true)
				cont++;
			if(cont>0){
				document.getElementById("op").value="delete";
				canSubmit=confirm ('Are you sure?');
			}
			else{
				document.getElementById("op").value="create";
				canSubmit=true;
			}
	}
return canSubmit;	
}
function userName(){
	var userName=document.getElementById("p_login").value;
	if( window.XMLHttpRequest )
		ajaxuserName = new XMLHttpRequest();
	else
		ajaxuserName = new ActiveXObject("Microsoft.XMLHTTP");
	ajaxuserName.onreadystatechange = funcionCallbackuserName;
	ajaxuserName.open( "GET", "../usernameAjax.php?name="+userName+"&cache="+Math.random(), true );
	ajaxuserName.send( "" );
}

function funcionCallbackuserName(){
	if( ajaxuserName.readyState == 4 ){
		if( ajaxuserName.status == 200 ){	
			ajaxRows = ajaxuserName.responseText;									
			if (ajaxRows!=''){
				document.getElementById("p_login").value='';
				document.getElementById("p_login").focus();
				alert("Login already exists, please choose another user name.");

			}

		} 
	}
}	


function VerifyEmail(){
	var email=document.getElementById("p_email").value;	
	if( window.XMLHttpRequest )
		ajaxVerifyEmail = new XMLHttpRequest();
	else
		ajaxVerifyEmail = new ActiveXObject("Microsoft.XMLHTTP");
	ajaxVerifyEmail.onreadystatechange = funcionCallbackVerifyEmail;
	ajaxVerifyEmail.open( "GET", "VerifyEmailAjax.php?email="+email+"&cache="+Math.random(), true );
	ajaxVerifyEmail.send( "" );
}

function funcionCallbackVerifyEmail(){
	if( ajaxVerifyEmail.readyState == 4 ){
		if( ajaxVerifyEmail.status == 200 ){	
			ajaxRows = ajaxVerifyEmail.responseText;									
			if (ajaxRows!=''){
				document.getElementById("p_email").value='';
				document.getElementById("p_email").focus();				
				alert('E-mail Already Exists!');

			}

		} 
	}
}  