﻿// JScript File
function DoCallback(url){

    try {
        //Mozilla Browsers
        xmlRequest = new XMLHttpRequest();
    } 
    catch (e) {
        try {
            //IE
            xmlRequest = new ActiveXObject("Microsoft.XMLHTTP");
        } 
        catch (e) {
            xmlRequest=false;
        }
    } 
    xmlRequest.open("GET", url, false);
    xmlRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    xmlRequest.send(null);

    return xmlRequest;
}


//String fields limited to a number of characters (charNo)
function toolTipCharNo(control, evt, text, charNo)
{
    
    toolTip();//clears the existing tooltip
    var key  = (evt.which) ? evt.which : event.keyCode
    if (key != 0x08)
    {
        if(control.value.length >= charNo)
        {
       var controlPos = findPos(control);
       toolTip(text,controlPos[0],controlPos[1]+20);
       return false;
        }
    }
    return true;
}

//String fields limited to a number of characters (charNo)
function toolTipShoppingCart(control)
{
    toolTip();//clears the existing tooltip
    var controlPos = findPos(control);
    $.get("ShoppingCart.aspx", {action:'getProducts'}, 
        function(data) 
        {
            toolTip(data, controlPos[0]-100, controlPos[1]+20,250, 100);
          //toolTip(data,controlPos[0]-100,controlPos[1]+20);
        });
    
    return true;
}

function toolTipCalendarDate(control, evt, text)
{
    
    toolTip();//clears the existing tooltip
    var key  = (evt.which) ? evt.which : event.keyCode
    //if (key != 0x08)
    //{
        
       var controlPos = findPos(control);
       toolTip(text,controlPos[0],controlPos[1]+20);
       return false;
        
    //}
    //return true;
}
//Numeric fields limited to a number of characters (charNo)
function toolTipNumber(control,evt,textOnlyNo,textOverflow,charNo)
{
    var key = (evt.which) ? evt.which : event.keyCode
    if (key != 0x08)
    {
        if (key > 31 && (key < 48 || key > 57))
        {
            var controlPos = findPos(control);
            toolTip(textOnlyNo,controlPos[0],controlPos[1]+20);
            return false;
        }
        if(control.value.length >= charNo)
        {
            controlPos = findPos(control);
            toolTip(textOverflow,controlPos[0],controlPos[1]+20);
            return false;
        }
    }
    return true;
}
function toolTipFileUpload(control, text)
{
    
    toolTip();//clears the existing tooltip
    var controlPos = findPos(control);
    toolTip(text,controlPos[0],controlPos[1]+20);
      
}
//Numeric fields limited to a number of characters (charNo)
function toolTipJPEGorGIF(control,textOnlyImage)
{
    var fileName = control.value;
    //alert(fileName);
    if((fileName.indexOf(".gif") == -1)&&(fileName.indexOf(".jpg") == -1)&&(fileName.indexOf(".jpeg") == -1)){
        controlPos = findPos(control);
        toolTip(textOnlyImage,controlPos[0],controlPos[1]+20);
        control.value = "";
        return false;
    }
    return true;
}

//Money field limited to a number of characters (charNo) US type (Ex:20.50)
function toolTipMoneyUS(control,evt,textOnlyMoney,textOverflow,charNo)
{

var key  = (evt.which) ? evt.which : event.keyCode
var processKey = false;
var index = control.value.indexOf('.');
if (key != 0x08)
{
    if(control.value.length >= charNo)
    {
            var controlPos = findPos(control);
            toolTip(textOverflow,controlPos[0],controlPos[1]+20);
            return false;
    }
    if ((key == 0x2E) && (control.value.length == 0)) 
    {
        var controlPos = findPos(control);
        toolTip(textOnlyMoney,controlPos[0],controlPos[1]+20);
        return false;
    }
    if (index != -1)
    {
        if ((control.value.length - index)>2) 
        {
            var controlPos = findPos(control);
            toolTip(textOnlyMoney,controlPos[0],controlPos[1]+20);
            return false;
        }
    }
 
    if ((key >= 0x30) && (key <= 0x39))
    {
        processKey = true;
    }

    if (key == 0x2E)
    {
        if (index == -1) return true;
    }
    
    if (processKey == false)
    {
    var controlPos = findPos(control);
    toolTip(textOnlyMoney,controlPos[0],controlPos[1]+20);
    }
    return(processKey);
}
return true;

}
//Money field limited to a number of characters (charNo) FR type (Ex:20,50)
function toolTipMoneyFR(control,evt,textOnlyMoney,textOverflow,charNo)
{

var key  = (evt.which) ? evt.which : event.keyCode
var processKey = false;
var index = control.value.indexOf(',');
if (key != 0x08)
{
    if(control.value.length >= charNo)
    {
            var controlPos = findPos(control);
            toolTip(textOverflow,controlPos[0],controlPos[1]+20);
            return false;
    }
    if ((key == 0x2C) && (control.value.length == 0)) 
    {
        var controlPos = findPos(control);
        toolTip(textOnlyMoney,controlPos[0],controlPos[1]+20);
        return false;
    }
    if (index != -1)
    {
        if ((control.value.length - index)>2) 
        {
            var controlPos = findPos(control);
            toolTip(textOnlyMoney,controlPos[0],controlPos[1]+20);
            return false;
        }
    }
 
    if ((key >= 0x30) && (key <= 0x39))
    {
        processKey = true;
    }

    if (key == 0x2C)
    {
        if (index == -1) return true;
    }
    
    if (processKey == false)
    {
    var controlPos = findPos(control);
    toolTip(textOnlyMoney,controlPos[0],controlPos[1]+20);
    }
    return(processKey);
}
return true;

}
function findPos(obj)
{
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		curleft = obj.offsetLeft
		curtop = obj.offsetTop
		while (obj = obj.offsetParent) {
			curleft += obj.offsetLeft
			curtop += obj.offsetTop
		}
	}
	return [curleft,curtop];
}

function findPosRight(obj)
{
	var curright = curtop = 0;
	if (obj.offsetParent) {
		curright = obj.offsetRight
		curtop = obj.offsetTop
		while (obj = obj.offsetParent) {
			curright += obj.offsetRight
			curtop += obj.offsetTop
		}
	}
	return [curright,curtop];
}

// JScript File

function changed(tbxId, errorText)
{
    tbx = document.getElementById(tbxId);
    text = tbx.value;
    
    var controlPos = findPos(tbx);
    dates = text.split('/')
    if (dates.length != 3) 
    {
        toolTip(errorText,controlPos[0],controlPos[1]+20);
        return false;
    }
    
    xml = DoCallback("JSValidator.aspx?val="+text);
    lDoc = xml.responseText;
    if (lDoc == "Yes") return true;
    else
    {
        toolTip(errorText,controlPos[0],controlPos[1]+20);
        return false;
    }            
    
}
    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 checkDates(start,end,textStart,textEnd)
   {
        bstart = changed(start,textStart);
        bend = changed(end,textEnd);
        if (bstart == false || bend == false) return false;
   }