/******************************************************************************
* javascript code                                                             *
*                                                                             *
* Copyright 2006 by Kosta Psimoulis.                                          *
* Visit http://www.samco.com                                                  *
* Last update: Aug 31st, '06 Javascript created in a seperate file.           *
*                                                                             *
* Note: All Javascript main functions will be included in this file           *
******************************************************************************/

function Checkfn(objVar)
{
 var ele1=document.getElementById('type');
 var ele2=document.getElementById('desctype');
 var ele3=document.getElementById('text');
//	if(document.getElementById('type').value =="all")
	if(objVar.value=="all")
	{
		ele2.disabled=true;
		ele3.disabled=true;
	}
	else if(objVar.value=="item")
	{
		ele2.disabled=true;
		ele3.disabled=false;
	}
	else
	{
		ele2.disabled=false;
		ele3.disabled=false;
	}
//	if(document.getElementById('type').value =="desc")
   if(objVar.value=="all")	//all
   {
		document.getElementById('btnGo').focus();
   }
   else if(objVar.value=="desc")	//description
   {
        document.getElementById('desctype').focus();
   }
   else	//partnumber vendor part number
   {
		document.getElementById('text').focus();
   }
   if(objVar.value!="all" && objVar.value!="desc" && objVar.value!="item")
   {
		ele3.disabled=true;
   }
}
function checkAdvanced(objVar)
{
 var ele1=document.getElementById('advancedtype');
 var ele2=document.getElementById('advanceddesctype');
 var ele3=document.getElementById('advancedtext');
 
	if(objVar.value=="all")
//	if(document.getElementById('type').value =="all")
	{
		ele2.disabled=true;
		ele3.disabled=true;
	}
	else if(objVar.value=="item")
	{
		ele2.disabled=true;
		ele3.disabled=false;
	}
	else
	{
		ele2.disabled=false;
		ele3.disabled=false;
	}
   if(objVar.value=="all")	//all
   {
		document.getElementById('submit').focus();
   }
   else if(objVar.value=="desc")	//description
   {
        document.getElementById('advanceddesctype').focus();
   }
   else	//partnumber vendor part number
   {
		document.getElementById('advancedtext').focus();
   }
   if(objVar.value!="all" && objVar.value!="desc" && objVar.value!="item")
   {
		ele3.disabled=true;
   }
}
function checkCat(objVar)
{
	var ele=document.getElementById('cat');
//	if (document.getElementById('allcat').checked == true)
	if(objVar.checked == true)
	{
	ele.disabled=true;
	}
	else
	{
	ele.disabled=false;
	}
	
}
function checkSubCat(objVar)
{
	var ele=document.getElementById('subcat');
//	if (document.getElementById('allcat').checked == true)
	if(objVar.checked == true)
	{
	ele.disabled=true;
	}
	else
	{
	ele.disabled=false;
	}
	
}
function focusto()
{
   document.getElementById('text').focus();
   //document.forms[0].TextBox1.focus();
}
function advancedfocusto()
{
   document.getElementById('advancedtext').focus();
   //document.forms[0].TextBox1.focus();
}
function loginfocus()
{
//	var ele1=document.getElementById('uname');
//	var ele2=document.getElementById('passwd');
	if(document.getElementById('uname').value !="")
	{
		document.getElementById('passwd').focus();
	}
	else
	{
		document.getElementById('uname').focus();
	}
}
function checkDisabled()
{

	var ele1=document.getElementById('desctype');
//	var ele2=document.getElementById('advanceddesctype');
	var ele3=document.getElementById('text');
//	var ele4=document.getElementById('advancedtext');
	if(document.getElementById('type').value =="all")
	{
		ele1.disabled=true;
//		ele2.disabled=true;
		ele3.disabled=true;
//		ele4.disabled=true;
	}
	else if(document.getElementById('type').value =="item")
	{
		ele1.disabled=true;
//		ele2.disabled=true;
		ele3.disabled=false;
//		ele4.disabled=false;
	}
	else
	{
		ele1.disabled=false;
//		ele2.disabled=false;
		ele3.disabled=false;
//		ele4.disabled=false;
	}
}
function checkform (form)
{
	if((document.getElementById('type').value =="desc" || document.getElementById('type').value =="item") && document.getElementById('text').value == "")
	{
	    alert( "Please enter what would you like to search for." );
    	document.getElementById('text').focus();
    	return false ;
	}
	return true ;
}
function checkCost (item_no)
{
	if(document.form1.item1.value == "" || document.form1.qty1.value == "") {
		alert( "The item number and Qty are required before you can check details." );
	}
	else {
		alert( "Reserved for future." );
	}
}

function showCC()
{
   document.getElementById('credit_card').style.visibility = "visible";
}

function hideCC()
{
   document.getElementById('credit_card').style.visibility = "hidden";
}


function verify_courier(ship_via_cod, courier_ac)
{
   var box = document.getElementById('shipvia');
   var choice  = box.options[box.selectedIndex].value;
   var destination = document.getElementById('COURIER_AC');
   if (choice == ship_via_cod)
     destination.value = courier_ac;
   else {
     destination.value = '';
	 destination.focus();
   }
}
// Thumbnails:
// ===============================

// Set the horizontal and vertical position for the popup

PositionX = 100;
PositionY = 100;

// Set these value approximately 20 pixels greater than the
// size of the largest image to be used (needed for Netscape)

defaultWidth  = 500;
defaultHeight = 500;

// Set autoclose true to have the window close automatically
// Set autoclose false to allow multiple popup windows

var AutoClose = true;
// Example: <a href="javascript:popImage('image1.jpg','title')">View image1</a>

// Do not edit below this line...
// ================================
if (parseInt(navigator.appVersion.charAt(0))>=4){
var isNN=(navigator.appName=="Netscape")?1:0;
var isIE=(navigator.appName.indexOf("Microsoft")!=-1)?1:0;}
var optNN='scrollbars=no,width='+defaultWidth+',height='+defaultHeight+',left='+PositionX+',top='+PositionY;
var optIE='scrollbars=no,width=150,height=100,left='+PositionX+',top='+PositionY;
function popImage(imageURL,imageTitle){
if (isNN){imgWin=window.open('about:blank','',optNN);}
if (isIE){imgWin=window.open('about:blank','',optIE);}
with (imgWin.document){
writeln('<html><head><title>Loading...</title><style>body{margin:0px;}</style>');writeln('<sc'+'ript>');
writeln('var isNN,isIE;');writeln('if (parseInt(navigator.appVersion.charAt(0))>=4){');
writeln('isNN=(navigator.appName=="Netscape")?1:0;');writeln('isIE=(navigator.appName.indexOf("Microsoft")!=-1)?1:0;}');
writeln('function reSizeToImage(){');writeln('if (isIE){');writeln('window.resizeTo(100,100);');
writeln('width=100-(document.body.clientWidth-document.images[0].width);');
writeln('height=100-(document.body.clientHeight-document.images[0].height);');
writeln('window.resizeTo(width,height);}');writeln('if (isNN){');       
writeln('window.innerWidth=document.images["George"].width;');writeln('window.innerHeight=document.images["George"].height;}}');
writeln('function doTitle(){document.title="'+imageTitle+'";}');writeln('</sc'+'ript>');
if (!AutoClose) writeln('</head><body bgcolor=FFFFFF scroll="no" onload="reSizeToImage();doTitle();self.focus()">')
else writeln('</head><body bgcolor=FFFFFF scroll="no" onload="reSizeToImage();doTitle();self.focus()" onblur="self.close()">');
writeln('<img name="George" src='+imageURL+' style="display:block"></body></html>');
close();		
}}

// Example: <a href="dynamicbook1.gif" onclick="newImg(this.href);return false"><img src="dynamicbook1.gif"></a>
function newImg(which, imgw, imgh){
var theImg = new Image();
theImg.src = which;
//var imgw = theImg.width;
//var imgh = theImg.height;

if(imgw<100){imgw = 100};
if(imgh<100){imgh = 100};

var ImgWin = window.open('','imgwin',config='height='+imgh+',width='+imgw+',top=0,left=100')
with(ImgWin.document){
writeln('<html><head><title>Display Image</title><style>b ody{margin:0px;}</style></head>');
writeln('<body onload="self.focus()" onblur="self.close()" >');
writeln('<div style="text-align:center">');
//writeln('<div align="center">');
writeln('<img src='+which+' border="0" ></div>');
//writeln('<div style="text-align:center;font-size:12px">');
//var temp1 = which.replace("img/items", "pdf");
///var temp2 = temp1.replace(".jpg", ".pdf");
//writeln('<a href="'+temp2+'" target="_blank"><br>Information about this product</a></div>');
writeln('<div style="text-align:center;font-size:10px"><a href="#" onmousedown="self.close()"><br>Close This Window</a></div>');
writeln('</body></html>');
close();
}
}
function newImgWithoutdf(which, imgw, imgh){
var theImg = new Image();
theImg.src = which;
//var imgw = theImg.width;
//var imgh = theImg.height;

if(imgw<100){imgw = 100};
if(imgh<100){imgh = 100};

var ImgWin = window.open('','imgwin',config='height='+imgh+',width='+imgw+',top=0,left=100')
with(ImgWin.document){
writeln('<html><head><title>Display Image</title><style>body{margin:0px;}</style></head>');
writeln('<body onload="self.focus()" >');
writeln('<div style="text-align:center">');
//writeln('<div align="center">');
writeln('<img src='+which+' border="0" width="50%" height="50%"></div>');
writeln('<div style="text-align:center;font-size:12px">');
writeln('<div style="text-align:center;font-size:10px"><a href="#" onmousedown="self.close()"><br>Close This Window</a></div>');
writeln('</body></html>');
close();
}
}
function popWindow(loc, item_no, uom, token)
{
	if(loc == "qty") {
		var URL = '/qty_avail.php?item='+item_no+'&uom='+uom;
		mywindow = window.open (URL, "mywindow", "location=0,status=0,scrollbars=0,resizable=0,directories=0,menubar=0,width=550,height=350");
	}
	if(loc == "cost") {
		var URL = '/cost_check.php?item='+item_no+'&uom='+uom;
		mywindow = window.open (URL, "mywindow", "location=0,status=0,scrollbars=0,resizable=0,directories=0,menubar=0,width=550,height=350");
	}
	if(loc == "comments") {
		var URL = '/comments.php?token='+token+'&item='+item_no;
		mywindow = window.open (URL, "mywindow", "location=0,status=0,scrollbars=0,resizable=0,directories=0,menubar=0,width=350,height=350");
	}
	if(loc == "warehouse") {
		var URL = '/warehouse.php?item='+item_no+'&uom='+uom;
		mywindow = window.open (URL, "mywindow", "location=0,status=0,scrollbars=0,resizable=0,directories=0,menubar=0,width=550,height=350");
	}
	
	if(loc == "order_status") {
		var URL = '/order_status.php?id='+item_no;
		mywindow = window.open (URL, "mywindow", "location=0,status=0,scrollbars=0,resizable=0,directories=0,menubar=0,width=350,height=400");
	}
	if(loc == "upload") {
		var URL = '/scripts/upload_file.php?token='+token+'&item='+item_no;
		mywindow = window.open (URL, "mywindow", "location=0,status=0,scrollbars=0,resizable=0,directories=0,menubar=0,width=350,height=350");
	}
}

function hideMybutton(){
var myForm = document.checkout;
myForm.complete.style.visibility="hidden";
alert("The Form has been sent please wait");
}

function IsNumeric(sText)
{
	if(sText==undefined) {
		   var IsNumber=false;
	}
	else {
	   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 setUOM(select_obj, id) {
//	console.log("setting uom for"+id);
	var selectfld = "uom_choice"+id;
	var itemfld = "item"+id;
    var costfld = "cost"+id;
	var qtyfld = "qty"+id;
	var qtyafld = "qtya"+id;
	var uomfld = "uom"+id;
	var qty = $('#qty'+id).val();
	var uom = $("#"+selectfld+" option:selected").val();
	var uom_text = $("#"+selectfld+" option:selected").text();
	var item_no =  document.getElementById(itemfld).value;
	// Set uom
	$('#'+uomfld).val(uom);
	if (qty.length==0)
	{
		document.getElementById(costfld).innerHTML="";
		return;
	}
	if (item_no == "")
	{
		alert ("Please enter and item number first on line "+id);
		return;
	}
	var req = "item_no="+item_no+"&line_no="+id+"&qty="+qty+"&uom="+uom+"&uom_text="+uom_text;
	req = "req=session&aj_action=getQtyInfo&" + req;
	$.getJSON("ajaxrequest.php",
			req,
		    function(json) {
				var qty_avail = json.data.qty_avail;
				var ucost = json.data.cost;
				qtyChanged(id, ucost, qty_avail);
//				console.log(ucost);
//			$('#'+costfld).text(json.data.cost);
//			$('#'+qtyafld).text(json.data.qty_avail);
//				console.log(json.data.cost);
//				console.log(json.data.qty_avail);
		}); // eo jason request
//	console.log(json.data.qty_avail);	
//	qtyChanged(id, ucost, qty_avail);
	//	var default_str = select_obj.defaultValue;
//	console.log("request = "+req);
	// Get selected text
//	var str = $("#"+select_id+" option:selected").text();
	// Set new value
//	$("#"+uom_id).val(str);
//	console.log("Your choice for "+uom_id+"="+str);
}

function setgridUOM(id, item_no) {
	var decimals = 2;
	var selectfld = "uom_choice"+id;
	var costfld = "cost"+id;
	var retail_prcfld = "retail_prc"+id;
	var qtyafld = "qtya"+id;
	var uomfld = "uom"+id;
	var uom = $("#"+selectfld+" option:selected").val();
	var uom_text = $("#"+selectfld+" option:selected").text();
	// set uom input field
	$('#'+uomfld).val(uom);
	// set js functions for cost (qty is handled by php and returns html)
	$('#'+costfld).attr("href", "javascript:popWindow('cost', '"+item_no+"','"+uom+"', '');");
	//	var qty = $('#qty'+id).val();
	qty = 1;
	if (qty.length==0) {
		qty = 1;
	}
	//	console.log("qty = "+qty);
	var req = "item_no="+item_no+"&line_no="+id+"&qty="+qty+"&uom="+uom+"&uom_text="+uom_text;
	req = "req=session&aj_action=getGridUomInfo&" + req;
	$.getJSON("ajaxrequest.php",
			req,
		    function(json) {
				var qty_avail = json.data.qty_avail;
				var ucost = json.data.cost;
				var retail_prc = json.data.retail_prc;
				if (IsNumeric(ucost)) {
					ucost = eval(json.data.cost);
					ucost = ("$" + (ucost).toFixed( 2 ));
				}
				else {
					ucost = 'N/A';
				}
				if (IsNumeric(retail_prc)) {
					retail_prc = eval(retail_prc);
					retail_prc = ("$" + (retail_prc).toFixed( 2 ));
				}
				else {
					retail_prc = 'N/A';
				}
				$('#'+retail_prcfld).text(retail_prc);
				$('#'+costfld).text(ucost);
				$('#'+qtyafld).html(qty_avail);
//				$('#'+qtyafld).attr("href", "http://www.google.com/");
	}); // eo jason request
}

function showDesc(item_obj, id, token)
{
	var str = item_obj.value;
	var default_str = item_obj.defaultValue;
	if(str != default_str){
		$.getJSON("ajaxrequest.php",
			{ req: "session", aj_action: "getItemInfo", item_no: str, line_no: id},
		    function(json) {
			    $('#item'+id).val(json.data.item_no);
			    $('#qtya'+id).text(json.data.qty);
			    $('#desc'+id).text(json.data.desc);
			    $('#img'+id).html(json.data.img);
			    // Set item to valid
			    $('#valid'+id).val(1);
			    var $select = $('#uom_choice'+id);
			    if (json.data.uom_box == 'label') {
//				    console.log('Replacing with '+json.data.uom[json.data.uom_selected]);
				    $select.replaceWith("<label id='uom_choice"+id+"'>"+json.data.uom_text[json.data.uom_selected]+"</label>");
			    }
			    else if (json.data.uom_box == 'select') {
				    var selectbox = "<select id='uom_choice"+id+"' onkeypress=\"return handleEnter("+id+", 'uom', event, '')\" onchange=\"setUOM('this', '"+id+"')\">";
				    $.each(json.data.uom, function(i,uom){
					    selectbox += "<option value="+uom+">"+json.data.uom_text[i]+"</option>";
				    }); //eo each
				    selectbox += "</select>";
				    $select.replaceWith(selectbox);
			    }
		}); // eo jason request
	} // eo different item_no
}

function showCost(qty_obj, id)
{
	var uom_type = document.getElementById('uom_choice'+id).nodeName;
	// If selectbox, focus on select
	if (uom_type == "SELECT") {
		var focusid = 'uom_choice'+id;
		document.getElementById(focusid).focus();
	}
	// if label, show price
	else {
		setUOM(qty_obj, id);
	}
}

function toggle_all (a,b) {
	var el = document.getElementById(b);
	if(a.checked == true)
	{
		el.disabled=true;
	}
	else
	{
		el.disabled=false;
	}
}

(function ($) {
    $.fn.selectChain = function (options) {
        var defaults = {
            key: "id",
            value: "label",
            data: {}
        };
        
        var settings = $.extend({}, defaults, options);
        
        if (!(settings.target instanceof $)) settings.target = $(settings.target);
        
        return this.each(function () {
            var $$ = $(this);
            
            $$.change(function () {
                var data = null;
                if (typeof settings.data == 'string') {
                    data = settings.data + '&' + this.name + '=' + $$.val();
                } else if (typeof settings.data == 'object') {
                    data = settings.data;
                    data[this.name] = $$.val();
                }
                
                settings.target.empty();

                $.ajax({
                    url: settings.url,
                    data: data,
                    type: (settings.type || 'get'),
                    dataType: 'json',
                    success: function (j) {
                        var options = [], i = 0, o = null;
                        
                        for (i = 0; i < j.length; i++) {
                            // required to get around IE bug (http://support.microsoft.com/?scid=kb%3Ben-us%3B276228)
                            o = document.createElement("OPTION");
                            o.value = typeof j[i] == 'object' ? j[i][settings.key] : j[i];
                            o.text = typeof j[i] == 'object' ? j[i][settings.value] : j[i];
                            settings.target.get(0).options[i] = o;
                        }

			// hand control back to browser for a moment
			setTimeout(function () {
			    settings.target
                                .find('option:first')
                                .attr('selected', 'selected')
                                .parent('select')
                                .trigger('change');
			}, 0);
                    },
                    error: function (xhr, desc, er) {
                        // add whatever debug you want here.
			alert("An error occurred and your select menu could not be updated");
                    }
                });
            });
        });
    };
})(jQuery);
