// Place your application-specific JavaScript functions and classes here
// This file is automatically included by javascript_include_tag :defaults

// The default animation speed is sooooooo slow...
Effect.DefaultOptions['duration'] = 0.3;

// Scriptaculous doesn't support toggling w/ grow/shrink by default, so we add it
Effect.PAIRS['shrink_grow'] = ['Grow','Shrink'];

function blendimage(divid, imageid, imagefile, millisec) {
//    var speed = Math.round(millisec / 100);
//    var timer = 0;
    $(divid).style.backgroundImage = "url(" + $(imageid).src + ")";
    changeOpac(0, imageid);
    $(imageid).src = imagefile;
    //fade in image
		Effect.Appear('slideShowImage', { duration: 0.6 })
//    for(i = 0; i <= 100; i++) {
//        setTimeout("changeOpac(" + i + ",'" + imageid + "')",(timer * speed));
//        timer++;
//    }
} 

function changeOpac(opacity, id){
	var object = $(id).style;
	object.opacity = (opacity / 100);
	object.MozOpacity = (opacity / 100);
	object.KhtmlOpacity = (opacity / 100);
	object.filter = "alpha(opacity=" + opacity + ")";
} 

var photos=new Array()
photos[0]="/images/home/SeqImg1.jpg"
photos[1]="/images/home/SeqImg22.jpg"
photos[2]="/images/home/SeqImg33.jpg"

function preLoadImages(){
  for(var i=0; i<= photos.length-1; i++) 
	document.write('<img style="display:none;" src=\''+photos[i]+'\'/>')
}

active="/images/bullet_white.png"
inactive="/images/bullet.png"

var Onerotate_delay = 5000; // delay in milliseconds (5000 = 5 secs)
Onecurrent = 0;

function Onerotate() {
	if ($('button').value == "Stop") {
		Onecurrent = (Onecurrent == photos.length-1) ? 0 : Onecurrent+1;
		//document.images.Oneshow.src = photos[Onecurrent];
		blendimage('slideShowImageDiv', 'slideShowImage', photos[Onecurrent], 600)
		//$(Onecurrent).innerHTML = '<span id= \''+Onecurrent+'\' onclick="javascript:$(\'button\').value=\'Start\'">0</span>'
		for(var n = 0; n < photos.length; n++) {
			$(''+n+'').innerHTML = "<img src='/images/bullet.png'/>";
		}
		$(''+Onecurrent+'').innerHTML = "<img src='/images/bullet_white.png'/>";
		window.setTimeout("Onerotate()", Onerotate_delay);
	}
}

//stop show 
function stopShow(id){
	$('button').value='Start'
	for (var n = 0; n < photos.length; n++) {
		$(''+n+'').innerHTML = "<img src='/images/bullet.png'/>";
	}
	$(id).innerHTML = "<img src='/images/bullet_white.png'/>";
//	blendimage('slideShowImageDiv', 'slideShowImage', photos[id.id], 100)
	var image = document.images.Oneshow
	image.src = photos[id.id];
	if(image.style.opacity != 100)
		image.style.opacity = 100
}

// create current page indicator
function createindicator(){
	document.write('<span id=\'0\' style="padding:0px 10px;" onclick="javascript:stopShow(this)"><img src=\''+active+'\' /></span>')
	for (var i = 1; i < photos.length; i++) {
		document.write('<span id=\''+i+ '\' style="padding:0px 10px;" onclick="javascript:stopShow(this)"><img src=\''+inactive+'\'/></span>')
	}
}


//white diamonds slideshow 
var images=new Array()
images[0]="/images/white_diamonds/white_diamonds_1.jpg"
images[1]="/images/white_diamonds/white_diamonds_2.jpg"
images[2]="/images/white_diamonds/white_diamonds_3.jpg"
images[3]="/images/white_diamonds/white_diamonds_4.jpg"

var whiteDiamond={}
var t
whiteDiamond={
	
	startSlideShow:function(){
		t = window.setTimeout("whiteDiamond.Onerotate()", Onerotate_delay);
	},
	
	resetTimeout:function(){
		window.clearTimeout(t)
	},
	
	preLoadImages:function(){
	  for(var j=0; j<= images.length-1; j++) 
		document.write('<img style="display:none;" src=\''+images[j]+'\'/>')
	},

	Onenext: function(){
		if (images[Onecurrent + 1]) {
			document.images.Oneshow.src = images[++Onecurrent];
		}
		else whiteDiamond.Onefirst();
		whiteDiamond.resetTimeout();
		if ($('button').title == "Pause") {
			whiteDiamond.startSlideShow();
		}
	},
	
	Oneprevious:function(){
		if (Onecurrent-1 >= 0) {
			document.images.Oneshow.src = images[--Onecurrent];
		   }
		else whiteDiamond.Onelast();
		whiteDiamond.resetTimeout();
		if ($('button').title == "Pause") {
			whiteDiamond.startSlideShow();
		}
	},
	
	Onefirst: function() {
		Onecurrent = 0;
		document.images.Oneshow.src = images[0];
	},
	
	Onelast: function() {
		Onecurrent = images.length-1;
		document.images.Oneshow.src = images[Onecurrent];
	},
	
	Oneap: function(text) {
		element=$('button')
		if (element.title == "Pause") {
		//element.value = "Play";
		element.className = "playButton";
		element.title = "Play";
		}
		else{
	//	element.value = "Pause";
		element.className = "pauseButton";
		element.title = "Pause";
		}
		whiteDiamond.Onerotate();
	},
	
	Onerotate: function() {
		if ($('button').title == "Pause") {
			Onecurrent = (Onecurrent == images.length-1) ? 0 : Onecurrent+1;
			document.images.Oneshow.src = images[Onecurrent];
			whiteDiamond.startSlideShow();
		}
	}
}

//colored diamonds slideshow 
var colored_diamond_images=new Array()
colored_diamond_images[0]="/images/colored_diamonds/colored_diamond_1.jpg"
colored_diamond_images[1]="/images/colored_diamonds/colored_diamond_2.jpg"
colored_diamond_images[2]="/images/colored_diamonds/colored_diamond_3.jpg"

var coloredDiamond={}
var tt
coloredDiamond={
	
	startSlideShow:function(){
		tt = window.setTimeout("coloredDiamond.Onerotate()", Onerotate_delay);
	},
	
	resetTimeout:function(){
		window.clearTimeout(tt)
	},
	
	preLoadColoredDiamondImages:function(){
	  for(var j=0; j<= colored_diamond_images.length-1; j++) 
		document.write('<img style="display:none;" src=\''+colored_diamond_images[j]+'\'/>')
	},

	Onenext: function(){
		if (colored_diamond_images[Onecurrent + 1]) {
			document.images.Oneshow.src = colored_diamond_images[++Onecurrent];
		}
		else coloredDiamond.Onefirst();
		coloredDiamond.resetTimeout();
		if ($('button').title == "Pause") {
			coloredDiamond.startSlideShow();
		}
	},
	
	Oneprevious:function(){
		if (Onecurrent-1 >= 0) {
			document.images.Oneshow.src = colored_diamond_images[--Onecurrent];
		   }
		else coloredDiamond.Onelast();
		coloredDiamond.resetTimeout();
		if ($('button').title == "Pause") {
			coloredDiamond.startSlideShow();
		}
	},
	
	Onefirst: function() {
		Onecurrent = 0;
		document.images.Oneshow.src = colored_diamond_images[0];
	},
	
	Onelast: function() {
		Onecurrent = colored_diamond_images.length-1;
		document.images.Oneshow.src = colored_diamond_images[Onecurrent];
	},
	
	Oneap: function(text) {
		element=$('button')
		if (element.title == "Pause") {
		element.className = "playButton";
		element.title = "Play";
		}
		else{
		element.className = "pauseButton";
		element.title = "Pause";
		}
		coloredDiamond.Onerotate();
	},
	
	Onerotate: function() {
		if ($('button').title == "Pause") {
			Onecurrent = (Onecurrent == colored_diamond_images.length-1) ? 0 : Onecurrent+1;
			document.images.Oneshow.src = colored_diamond_images[Onecurrent];
			coloredDiamond.startSlideShow();
		}
	}
}

var ControlField = {
  toggleField: function(controlling_field_id, field_id) {
    $(controlling_field_id).disable();
    Effect.toggle(field_id);
    setTimeout("$('"+ controlling_field_id +"').enable();", 1500);
  },
  resetField: function(field_id) {
    $(field_id).clear();
  }
}

function javascript_call(code){
  eval(code);
}
function display_image(container_div, displayed_image){
  $(container_div).immediateDescendants().invoke('hide');
  $(displayed_image).show();
}

function is_number(string_or_number) {
  return !isNaN(string_or_number) && !isNaN(parseInt(string_or_number));
}

// Returns true if the argument can be parsed to 0
function is_zero(string_or_number) {
  return is_number(string_or_number) && parseInt(string_or_number) == 0;
}

// Returns true if the argument can be parsed to a number other than 0
function is_nonzero_number(string_or_number) {
  return is_number(string_or_number) && !is_zero(string_or_number);
}

function enable_or_disable_price_and_quantity(action_id, commodity_price_symbols){
  switch (action_id) {
  case '1':
    for (i = 0; i < commodity_price_symbols.length; i++) {
      $(commodity_price_symbols[i] + '_analysis').disabled = 'disabled';
      $(commodity_price_symbols[i] + '_quantity').disabled = 'disabled';
      $(commodity_price_symbols[i] + '_price').disabled = 'disabled';
    }
		$('weight_account_transaction_weight').disabled = 'disabled';
		$('weight_account_transaction_weight_after_melting').disabled = 'disabled';
    $('weight_account_transaction_description').disabled = '';
  	$('weight_account_transaction_composition').disabled = 'disabled';
    break;
  case '2':
    for (i = 0; i < commodity_price_symbols.length; i++) {
      $(commodity_price_symbols[i] + '_analysis').disabled = '';
      $(commodity_price_symbols[i] + '_quantity').disabled = '';
      $(commodity_price_symbols[i] + '_price').disabled = 'disabled';
    };
    $('weight_account_transaction_weight').disabled = '';
		$('weight_account_transaction_weight_after_melting').disabled = '';
    $('weight_account_transaction_description').disabled = '';
	  $('weight_account_transaction_composition').disabled = '';
    break;
  case '3':
    for (i = 0; i < commodity_price_symbols.length; i++) {
      $(commodity_price_symbols[i] + '_analysis').disabled = 'disabled';
      $(commodity_price_symbols[i] + '_quantity').disabled = '';
      $(commodity_price_symbols[i] + '_price').disabled = '';
    };
    $('weight_account_transaction_weight').disabled = 'disabled';
		$('weight_account_transaction_weight_after_melting').disabled = 'disabled';
    $('weight_account_transaction_description').disabled = '';
	  $('weight_account_transaction_composition').disabled = 'disabled';
    break;
  case '4':
    for (i = 0; i < commodity_price_symbols.length; i++) {
      $(commodity_price_symbols[i] + '_analysis').disabled = 'disabled';
      $(commodity_price_symbols[i] + '_quantity').disabled = '';
      $(commodity_price_symbols[i] + '_price').disabled = 'disabled';
    };
    $('weight_account_transaction_weight').disabled = 'disabled';
		$('weight_account_transaction_weight_after_melting').disabled = 'disabled';
    $('weight_account_transaction_description').disabled = '';
    $('weight_account_transaction_composition').disabled = 'disabled';
    break;
  case '5':
    for (i = 0; i < commodity_price_symbols.length; i++) {
      $(commodity_price_symbols[i] + '_analysis').disabled = 'disabled';
      $(commodity_price_symbols[i] + '_quantity').disabled = 'disabled';
      $(commodity_price_symbols[i] + '_price').disabled = 'disabled';
    };
    $('weight_account_transaction_weight').disabled = 'disabled';
		$('weight_account_transaction_weight_after_melting').disabled = 'disabled';
    $('weight_account_transaction_description').disabled = '';
    $('weight_account_transaction_composition').disabled = 'disabled';
    break;
  case '6':
	for (i = 0; i < commodity_price_symbols.length; i++) {
	  $(commodity_price_symbols[i] + '_analysis').disabled = 'disabled';
	  $(commodity_price_symbols[i] + '_quantity').disabled = '';
	  $(commodity_price_symbols[i] + '_price').disabled = 'disabled';
	};
	$('weight_account_transaction_weight').disabled = 'disabled';
	$('weight_account_transaction_weight_after_melting').disabled = 'disabled';
	$('weight_account_transaction_description').disabled = '';
	$('weight_account_transaction_composition').disabled = 'disabled';
	break;	
  }
}

function enable_or_disable_selected_metal_quantity_fields(composition, commodity_price_symbols){
	switch (composition){
		case "":
			$('1_quantity').disabled = 'disabled';
			$('2_quantity').disabled = 'disabled';
			$('3_quantity').disabled = 'disabled';
			$('4_quantity').disabled = 'disabled';
			break;
		case "Ag":
			$('1_quantity').disabled = 'disabled';
			$('2_quantity').disabled = '';
			$('3_quantity').disabled = 'disabled';
			$('4_quantity').disabled = 'disabled';
			break;
		case "AuAg":
			$('1_quantity').disabled = '';
			$('2_quantity').disabled = '';
			$('3_quantity').disabled = 'disabled';
			$('4_quantity').disabled = 'disabled';
			break;
		case "AuAgPtPd":
			$('1_quantity').disabled = '';
			$('2_quantity').disabled = '';
			$('3_quantity').disabled = '';
			$('4_quantity').disabled = '';
			break;
	}
}

function negative_balance_check()
{
	var is_negative = false;
	var a_id = $('weight_account_transaction_action_id').value
	if ((a_id == 3) || (a_id == 4)){
		// check to see if the balance would go negative...
		if (balance_au - parseFloat($('1_quantity').value) < 0.0){
			is_negative = true;
		}
		if (balance_ag - parseFloat($('2_quantity').value) < 0.0){
			is_negative = true;
		}
		if (balance_pt - parseFloat($('3_quantity').value) < 0.0){
			is_negative = true;
		}
		if (balance_pd - parseFloat($('4_quantity').value) < 0.0){
			is_negative = true;
		}
	}
	if (is_negative == true){
		var fwd_ck = confirm("This will cause one or more metal balances to go negative. Are you sure?");
		if (fwd_ck){
			return true;
		}else{
			return false;
		}
	}
	return true;
}