// INDEX.JavaScript

var pSelected = 0; 

function $(objID){ return document.getElementById(objID);}

function getAbsoluteOffsetTop(obj) {
	var top = obj.offsetTop;
	var parent = obj.offsetParent;
	while (parent.id != 'relContainer') {
		top += parent.offsetTop;
		parent = parent.offsetParent;
	}
	return top;
 }
 
function getAbsoluteOffsetLeft(obj) {
	var left = obj.offsetLeft;
	var parent = obj.offsetParent;
	while (parent.id != 'relContainer') {
		left += parent.offsetLeft;
		parent = parent.offsetParent;
	}
	return left;
 }
 
function getBodyOffset(obj){
	var top = obj.offsetTop;
	var parent = obj.offsetParent;
	while (parent != document.body && parent != null) {
		top += parent.offsetTop;
		parent = parent.offsetParent;
	}
	return top;
}

//ORDER FORM FUNCTIONS


function showAddInfo(mark, info){
	//$('addInfoDiv').innerHTML = '<p style="margin:5px;">';
	$('addInfoDiv').innerHTML =  '<strong>Grower</strong>:&nbsp;'+info.grower+'<br />';
	$('addInfoDiv').innerHTML += '<strong>Grade</strong>:&nbsp;'+info.grade+'<br />';
	$('addInfoDiv').innerHTML += '<strong>Colors per box</strong>:&nbsp;'+info.colors+'<br />';
	$('addInfoDiv').innerHTML += '<strong>Bunches per box</strong>:&nbsp;'+info.bunches+'<br />';
	//$('addInfoDiv').innerHTML += '</p>';
				
	$('addInfoDiv').style.top = getAbsoluteOffsetTop(mark) + 'px';
	$('addInfoDiv').style.left = getAbsoluteOffsetLeft(mark) + 25 + 'px';
	
	$('addInfoDiv').style.display = 'block';
}

function showTotalInfo(mark){	
			
	$('totalInfoDiv').style.top = getAbsoluteOffsetTop(mark) + 'px';
	$('totalInfoDiv').style.left = getAbsoluteOffsetLeft(mark) + 25 + 'px';
	$('totalInfoDiv').style.display = 'block';
}

function showCart(){
	var oTop = document.all ? document.documentElement.scrollTop : window.pageYOffset;
	var offset = getBodyOffset($('relContainer')); 
	var cart = $('cartDiv');
	
	cart.style.top = oTop - offset + (document.all ? document.documentElement.clientHeight:innerHeight)/2 - 200 + 'px';
	cart.style.left = 72 + 'px';
	cart.style.display = 'block';	
}

function add2Cart(trObj){
	var cartTab = $('cartTab');

    if($(trObj.id+'_cloned') != null) delFromCart(trObj);
	
	var pclone = trObj.cloneNode(true);
	pclone.id += '_cloned';

	var TDs = pclone.getElementsByTagName('td');
	
	var inps = TDs[3].getElementsByTagName('input');
	for(var i in inps){
		inps[i].id += '_cloned';
		inps[i].onkeypress = null;
		inps[i].onkeyup = null;
		inps[i].disabled = true;
	}
	
	inps = TDs[TDs.length-2].getElementsByTagName('span');
	for(var k in inps)
		{	if(inps[k].id != 'undefined')
				inps[k].id += '_cloned';
		}
	inps = TDs[TDs.length-1].getElementsByTagName('input');
	for(var k in inps){
		if(inps[k].id != 'undefined')
		inps[k].id += '_cloned';
		inps[k].disabled = true;
	}
	
	cartTab.appendChild(pclone);
	
}

function delFromCart(trObj){
	var cartTab = $('cartTab');
	
	if($(trObj.id+'_cloned') != null)
		cartTab.removeChild($(trObj.id+'_cloned'));
}


function hideAddInfo(){ $('addInfoDiv').style.display = 'none';}
function hideTotalInfo(){ $('totalInfoDiv').style.display = 'none';}
function hideCart(){ $('cartDiv').style.display = 'none';}

function setSubTotal(inp, data, dot){
	var qty = inp.value;
	
	var reg = /^([0-9]*\.?5?)$/i;
	var reg2 = /^([0-9]*\.?){1}$/i;
	var reg3 = new RegExp("product_[0-9]*_quan*", 'i');

	var flag = false;
	var elems = $('product_'+data.id+'_row').getElementsByTagName('input');
	for (var i in elems)
		if(elems[i].value && reg3.test(elems[i].name)){
			if (elems[i].value.length > 0 && elems[i].value != '0') flag = true;}
			
		
	if(flag){ pSelected += 1; 
			 $('product_'+data.id+'_row').style.backgroundColor = '#FFC055';
			 }
		else { pSelected -= 1;
				$('product_'+data.id+'_row').style.backgroundColor = '#F4EDE2';
				}
	if ($('sortForm').sortType){
		if (pSelected > 0) $('sortForm').sortType.disabled = true;
		else $('sortForm').sortType.disabled = false;
	}
		
	var price = 0;
	for(var i=1; i<=5; i++)
		if ($('product_'+data['id']+'_quan'+i)){
			qty = $('product_'+data['id']+'_quan'+i).value.length > 0 && $('product_'+data['id']+'_quan'+i).value != '.' ? $('product_'+data['id']+'_quan'+i).value : 0;
			if (inp.id = 'product_'+data['id']+'_quan'+i) qty = inp.value.length > 0 && inp.value != '.' ? inp.value:0;
			//alert('product_'+data['id']+'_quan'+i + ':'+ $('product_'+data['id']+'_quan'+i).value.length);
			if ($('sortForm').sortType) //boxes form
				price += parseFloat(qty*data.price*data.bunches, 10);
			else price += parseFloat(qty*data.price, 10);
				
		}

	$('product_'+data.id+'_subtotal').innerHTML = '$ ' + price.toFixed(2);
	updateGrandTotal();
	
	if(flag) add2Cart($('product_'+data.id+'_row'));
	 else delFromCart($('product_'+data.id+'_row'));
}

function verifyInput(e, dot){
	var reg; 
	var key = document.all  ? window.event.keyCode : e.which;
	var trg = document.all  ? window.event.srcElement : e.target;
	if (key == 8 || key == 9 || key == 0) return true;
	
	var sTest = trg.value + String.fromCharCode(key);
		
	var reg2 = new RegExp("^[0-9]*(\\.)?5?$", 'i'); 
	var reg = new RegExp("[0-9.]", 'i');
	
	//if (!reg.test(String.fromCharCode(key))) return false;
	if (!reg2.test(sTest)) return false;
	return true;
}

function updateGrandTotal(){
	var totObj = $('grand_total');
	var f = $('orderForm');
	
	var total = 0;
	var temp;
	
	var reg = new RegExp("product_[0-9]*_quan", 'i');
	
	for(i=0; i<f.elements.length; i++)
		if(reg.test(f.elements[i].name) && f.elements[i].value.length > 0){
			temp = f.elements[i].name.split('_');
			total += parseFloat($('product_'+temp[1]+'_subtotal').innerHTML.split('$ ')[1]);
		}
			
	totObj.innerHTML = '$ ' + total.toFixed(2);	
	f.grand_total.value = total.toFixed(2);
}

function preSubmitForm(f){
	//check email
	var reg = new RegExp("[0-9a-z_]+@[0-9a-z_^.]+\\.[a-z]", 'i');
	if(f.email.value.length > 0 && !reg.test(f.email.value)){
		alert('Please enter valid email or leave this field blank to use account email!');
		return false;
	}
	
	reg = new RegExp("product_[0-9]*_quan1", 'i');
	var reg2 = new RegExp("product_[0-9]*_quan*", 'i');
	var orderNotEmpty = false;
	
	//check that order is not empty
	for(var i=0; i<f.elements.length; i++)
		if(reg.test(f.elements[i].name) && f.elements[i].value.length > 0 && f.elements[i].value != '0'){
			orderNotEmpty = true;
			break; 
			}
			
	if(!orderNotEmpty) {
			alert ('Please, select at least 1 product!');
			return false;
		} 
	
	//disable non-used inputs
	var temp, sId, obj, k;
	for(i=0; i<f.elements.length; i++)
		if(reg.test(f.elements[i].name)){
			temp = '';
			
			sId = f.elements[i].name.split('_')[1];
			reg2 = new RegExp("product_"+sId+"*_quan*", 'i');
			for(k=1; k<=5; k++)
				if($('product_' + sId + '_quan' + k)){
					obj = $('product_' + sId + '_quan' + k);
					temp += (obj.value == '' || obj.value == 0) ? '' : obj.value;
				}
				
				
			if (temp.length == 0)
			{
				f.elements[i].disabled = true;
				if (f.elements[i+1] && reg2.test(f.elements[i+1].name)) f.elements[i+1].disabled = true;
				if (f.elements[i+2] && reg2.test(f.elements[i+2].name)) f.elements[i+2].disabled = true;
				if (f.elements[i+3] && reg2.test(f.elements[i+3].name)) f.elements[i+3].disabled = true;
				if (f.elements[i+4] && reg2.test(f.elements[i+4].name)) f.elements[i+4].disabled = true;
				
				$('product_' + sId + '_' + 'comment').disabled = true;
				$('product_' + sId + '_' + 'desc').disabled = true;
			}	
		}

	
	return true;							
}


