//var webHost="http://localhost/vb/";
var webHost="http://www.visualbadge.com/";

String.prototype.trim = function () {
    return this.replace(/^\s*/, "").replace(/\s*$/, "");
}

function FileExists(strURL)
{
oHttp = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP"); 
oHttp.open("HEAD", strURL, false);
oHttp.send(null);
return (oHttp.status==404) ? false : true;
}


function xstooltip_findPosX(obj) 
{
  var curleft = 0;
  if (obj.offsetParent) 
  {
    while (obj.offsetParent) 
        {
            curleft += obj.offsetLeft
            obj = obj.offsetParent;
        }
    }
    else if (obj.x)
        curleft += obj.x;
    return curleft;
}

function xstooltip_findPosY(obj) 
{
    var curtop = 0;
    if (obj.offsetParent) 
    {
        while (obj.offsetParent) 
        {
            curtop += obj.offsetTop
            obj = obj.offsetParent;
        }
    }
    else if (obj.y)
        curtop += obj.y;
    return curtop;
}

function xstooltip_show(tooltipId, parentId, posX, posY)
{
    it = document.getElementById(tooltipId);
    
    if ((it.style.top == '' || it.style.top == 0) 
        && (it.style.left == '' || it.style.left == 0))
    {
        // need to fixate default size (MSIE problem)
        it.style.width = it.offsetWidth + 'px';
        it.style.height = it.offsetHeight + 'px';
        
        img = document.getElementById(parentId); 
    
        // if tooltip is too wide, shift left to be within parent 
        if (posX + it.offsetWidth > img.offsetWidth) posX = img.offsetWidth - it.offsetWidth;
        if (posX < 0 ) posX = 0; 
        
        x = xstooltip_findPosX(img) + posX;
        y = xstooltip_findPosY(img) + posY;
        
        it.style.top = y + 'px';
        it.style.left = x + 'px';
    }
    
    it.style.visibility = 'visible'; 
}



function xstooltip_hide(id)
{
    it = document.getElementById(id); 
    it.style.visibility = 'hidden'; 
}


function formatCurrency(num) {
    num = isNaN(num) || num === '' || num === null ? 0.00 : num;
    return "$" + parseFloat(num).toFixed(2);
}

//To Unformat Currency to Number

function CurrencyToNumber(num)
{
    var noJunk = ""
    var withDollar = ""
    var foundDecimal = 0
    var foundAlphaChar = 0
    num += "";

    if (num == "") { return(0); }
    for (i=0; i <= num.length; i++)
    {
        var thisChar = num.substring(i, i+1);
        if (thisChar == ".")
        {
          foundDecimal = 1;
          noJunk = noJunk + thisChar;
        }
        if ((thisChar < "0") || (thisChar > "9"))
        {
          if ((thisChar != "$") && (thisChar !=".") && (thisChar != ",") && (thisChar != " ") && (thisChar !="")) foundAlphaChar = 1;
        }
        else
 {
    withDollar = withDollar + thisChar
    noJunk = noJunk + thisChar
 }

 if ((thisChar == "$") || (thisChar == ".") || (thisChar == ","))
 {
   withDollar = withDollar + thisChar
 }
  }
     if (foundDecimal) { return parseFloat(noJunk); }
     else if (noJunk.length > 0) { return parseFloat(noJunk); }
     else return 0;
}


function showhide(id){

if (document.getElementById){
obj = document.getElementById(id);
if (obj.style.display == "none"){
obj.style.display = "";
} else {
obj.style.display = "none";
}
}
} 



function addEvent(obj, evType, fn){ 
 if (obj.addEventListener){ 
   obj.addEventListener(evType, fn, false); 
   return true; 
 } else if (obj.attachEvent){ 
   var r = obj.attachEvent("on"+evType, fn); 
   return r; 
 } else { 
   return false; 
 } 
}



var xmlhttp;
function wrapXMLHTTPRequest(URL, func_state_Change){
if (window.XMLHttpRequest)
  {// code for Firefox, Opera, IE7, etc.
  xmlhttp=new XMLHttpRequest();
  }
else if (window.ActiveXObject)
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
if (xmlhttp!=null)
  {
  //alert(URL);
  xmlhttp.onreadystatechange=eval(func_state_Change);
  xmlhttp.open("GET",URL,true);
 xmlhttp.send(null);
  }
else
  {
  //alert("Your browser does not support XMLHTTP.");
  }

}



 function Right(str, n)
        /***
                IN: str - the string we are RIGHTing
                    n - the number of characters we want to return

                RETVAL: n characters from the right side of the string
        ***/
        {
                if (n <= 0)     // Invalid bound, return blank string
                   return "";
                else if (n > String(str).length)   // Invalid bound, return
                   return str;                     // entire string
                else { // Valid bound, return appropriate substring
                   var iLen = String(str).length;
                   return String(str).substring(iLen, iLen - n);
                }
        }




function GetSealTypeByName(name){
	var sTypeRet;
	switch (name){
		case 'ONE COLOR NO BORDER':
			sTypeRet = 'AB';
			break;
		case 'PLAIN NO BORDER':
			sTypeRet = 'AP';
			break;
		case 'CITY/CUSTOM':
			sTypeRet = 'C';
			break;
		case 'ONE COLOR BORDER':
			sTypeRet = 'E';
			break;
		case 'MULTI COLOR':
			sTypeRet = 'M';
			break;
		case 'PLAIN':
			sTypeRet = 'P';
		break;
			default:
			sTypeRet = 'M';
	}

	//alert(sTypeRet);
	return sTypeRet;
}

function GetSealTypeById(id){
	var sTypeRet;
	switch (id){
		case 'AB':
			sTypeRet = 'ONE COLOR NO BORDER';
			break;
		case 'AP':
			sTypeRet = 'PLAIN NO BORDER';
			break;
		case 'C':
			sTypeRet = 'CITY/CUSTOM';
			break;
		case 'E':
			sTypeRet = 'ONE COLOR BORDER';
			break;
		case 'M':
			sTypeRet = 'MULTI COLOR';
			break;
		case 'P':
			sTypeRet = 'PLAIN';
		break;
			default:
			sTypeRet = 'MULTI COLOR';
	}

	//alert(sTypeRet);
	return sTypeRet;
}



// Jefferson Scher -- Sept. 7, 2006 -- Fx 1.5.0.5 + IE6/WinXPSP2 //

function jfspress(e) { 
 // Check event for Enter key only
 var evt = (e) ? e : window.event;
 var key = (evt.keyCode) ? evt.keyCode : evt.which;
 if (key!=13) return true;

 // Check event for target in desired form/nodeName/type
 var target = (evt.target) ? evt.target : evt.srcElement;
 if (!target.form) return true;
 var nod = "input|select";
 if (nod.indexOf(target.nodeName.toLowerCase())<0) return true;
 var inpTypes = "text|file|checkbox|radio|select-one";
 if (target.getAttribute("type")) {
  if (inpTypes.indexOf(target.getAttribute("type").toLowerCase())<0) return true;
 }

 // Find and focus next form control
 //  Find target in the form's elements collection
 var els = target.form.elements;
 for (var i=0; i<els.length; i++){
  if (els[i]==target) {
   if (i==els.length-1) {
    return true; // last element, do default
   } else {
    var eldex = i;
    break;
   }
  }
 }
 //alert(els[eldex].tabIndex);
 //  If control has manually set tabIndex, try to find next higher
 if (target.tabIndex!=0) {
  var minTI = 999;
  var minTIel = -1;
  for (var k=0; k<els.length; k++){
   if (k!=eldex && els[k].tabIndex>=target.tabIndex && els[k].tabIndex<minTI && 
       els[k].disabled==false && els[k].type!="hidden") {
    minTI = els[k].tabIndex;
    minTIel = k;
   }
  }
  if (minTIel>-1) { // go to next by numbered tabIndex
   els[minTIel].focus();
   return false;
  }
 }
 //  Try natural tab order, forward only
 for (var j=eldex+1; j<els.length; j++){
  if (els[j].tabIndex==0 && els[j].disabled==false && els[j].type!="hidden") { // go to next in natural order
   els[j].focus();
   return false;   
  }
 }

 // TEMPORARY CATCH ALL FOR TESTING ONLY
 //alert("Not handled; eldex="+eldex);
 return false;
} // end function jfspress()


function setupEnterAsTab() {
 // add onkeydown event handlers to <form>s
 var forms = document.getElementsByTagName("FORM");
 for (var i=0; i<forms.length; i++) {
  forms[i].onkeypress=jfspress;
 }
} // end function setup()



function myGetElementById(sId, objCont){
    var obj, cliId,doc;
    if (objCont) {
         doc=objCont.document;}
    else{
         doc=document;
    }
    obj=doc.getElementById(sId);
    if (!obj){
       obj=doc.getElementById("hdn_" + sId);
       if (obj)    obj=doc.getElementById(obj.value);
       }
      
    return obj;
}




function keyPressed(dataType) {
    
    if ((dataType == "Number") && ("0123456789".search(String.fromCharCode(event.keyCode)) > -1)) {
        //alert("key is number");
    } else {
        //alert("key is not number");
        return false;
    }
}


function submitOnEnter(myfield, e) {
    var keycode;
    if (window.event) keycode = window.event.keyCode;
    else if (e) keycode = e.which;
    else return true;

    if (keycode == 13) {
        myfield.form.submit();
        return false;
    }
    else
        return true;
}

function enterPressed(e) {
    var keycode;
    if (window.event) 
        keycode = window.event.keyCode;
    else if (e) 
        keycode = e.which;
    else 
        return false;

    if (keycode == 13) {
        return true;
    }
    else
        return false;
}

//manuf cross ref
function MNFconvert(input, e) {
    if (!input) {
        var obj = document.getElementById("blackinton");
        input = (obj.value == "" ? document.getElementById("nielsen") : obj);

    }

    if (e && !enterPressed(e)) return;


    var pageUrl = "ajax.aspx?r=crossref&order=1&mnf=" + input.id + "&mnfno=" + input.value;
    $.ajax(
                {
                    url: pageUrl,
                    cache: false,
                    success: function(message) {
                        $("#sw").empty().append(message);

                    }
                });
}

function PriceLookup(e) {
    if (e && !enterPressed(e)) return;

    inp = document.getElementById("txtBadge");
    var pageUrl = "ajax.aspx?r=crossref&order=1&mnf=sw&mnfno=" + inp.value;
    $.ajax(
                {
                    url: pageUrl,
                    cache: false,
                    success: function(message) {
                        $("#sw").empty().append(message);

                    }
                });
}


function ReplaceAll(Source, stringToFind, stringToReplace) {
    var temp = Source;
    var index = temp.indexOf(stringToFind);
    while (index != -1) {
        temp = temp.replace(stringToFind, stringToReplace);
        index = temp.indexOf(stringToFind);
    }
    return temp;
}



(function($) {
    $.fn.forceNumeric = function() {
        return this.each(function() {

            $(this).keyup(function() {
                if (!/^[0-9]+$/.test($(this).val())) {
                    $(this).val($(this).val().replace(/[^0-9]/g, ''));
                }
            });
        });
    };
})(jQuery);

// Usage example: $('input.numeric').forceNumeric();
