//moved to individual pages
//var currentQuantity = 1;
//var lastQuantity = 0;
var currentProductId;


function changeAddProductId(sku) {
    document.addform.add_product_id.value = sku;
    
    currentProductId = sku;
}

function setAddProductId(name) {
    document.addform.add_product_id.value = name;
}


var waiting_for_response = false;
var queued_request = false;

function setQuantity() {
	
    var numtest = /^\d+$/;
    var blanktest = /^$/;
    var maxBookQuantity=999999;
    if (blanktest.test(val)) {
        document.getElementById('quantity').value = lastQuantity;
    } else {
    	
        if (numtest.test(document.getElementById('quantity').value)) {
        	
           var val = parseInt(document.getElementById('quantity').value);
           /* if (val != lastQuantity) {*/
        	
                /* if count has been set down to 1, then clear the promo code field
			so that 241 codes don't force it back up to */

               if (((lastQuantity < 0) || (val < lastQuantity)) && (val < 2)) {
                	
	                document.getElementById('productPromoCodeId').value='';
                }
    		
            	if(val <= maxBookQuantity)
            		lastQuantity = val;
            	else
            		document.getElementById('quantity').value = lastQuantity;
            	
            	   
                //document.getElementById('quantity').className = undefined;
                addToCartJSON(document.addform);
           /* } else {
                document.getElementById('quantity').className = undefined;
            }*/

        } else {

            document.getElementById('quantity').value = lastQuantity;
        }
    }
    
}



//sg- 05/02/08 mypublisher cards and calendars 3.0
//set the maximum quantity for greeting and post cards.
function setCardsQuantity(product) {
    var numtest = /^\d+$/;
    var blanktest = /^$/;
	var maxPostCardQuantity=2000;
	var maxGreetingCardQuantity=1000;
	var grgCardMsg='The maximum number of greeting cards you can order is 1000.';
	var pstCardMsg='The maximum number of postcards you can order is 2000.';
	var val=document.getElementById('quantity').value;
	
    if (blanktest.test(val)) {
    	document.getElementById('quantity').value = lastQuantity;
    } else {
    	
        if (numtest.test(val)) {
           /* if (val != lastQuantity) {*/
            	var greater=false;
	            if(product=="pstcrdH1" ||product=="pstcrdV1"  ){
	            	if(val <= maxPostCardQuantity)
	            		lastQuantity = val;
	            	else
	            		greater=true;
	            }
	            else if(product=="grtgcrdH1" ||product=="grtgcrdV1"  ){
	            	if(val <= maxGreetingCardQuantity)
	            		lastQuantity = val;
	            	else
	            		greater=true;
	            		
	            }
                        
                
                document.getElementById('quantity').className = undefined;
                //Error message for max greeting card and postcard quantity.                
                if(greater){
                	if(product=="pstcrdH1" ||product=="pstcrdV1"  ){
                		document.getElementById('quantityMsg').innerHTML =pstCardMsg;            			
                	}
                	else if(product=="grtgcrdH1" ||product=="grtgcrdV1"  ){
                		document.getElementById('quantityMsg').innerHTML =grgCardMsg;	
                	}
                	document.getElementById('quantityValueDiv').style.display = '';
                	               	            	
                }
                else{
                	document.getElementById('quantityValueDiv').style.display = 'none';
        			document.getElementById('quantityMsg').innerHTML='';
              		  	
                }
              	document.getElementById('quantity').value = lastQuantity;
                addToCartJSON(document.addform);
      /*      } else {
                document.getElementById('quantity').className = undefined;
            }*/

        } else {

            document.getElementById('quantity').value = lastQuantity;
        }
    }
  
  
}




function addToCartJSON(formEl) {

    if(waiting_for_response) {
        queued_request = true;
        return;
    }

    waiting_for_response = true;

    document.addform.display_total.value = '--';

    new Ajax.Request(addItemJsonUrl, {
        method:'post',
        onSuccess: function(transport, json) {
            processAddToCartJSONResp(json);
            },
        parameters: $('addform').serialize(true)
    });
}


function processAddToCartJSONResp(responseObj) {
    if(responseObj) {
        currencySymbol = getCurrencySymbol(responseObj.currency);
        displaySubtotal = currencySymbol + responseObj.subtotal;

        document.addform.display_total.value = displaySubtotal;
        if('false' == responseObj.couponValid) {
            document.getElementById('adjustmentAmount').innerHTML = responseObj.errorMessage;
            document.getElementById('couponValueDiv').style.display = '';
            document.getElementById('quantity').value = responseObj.quantity;
        } else {
            document.getElementById('quantity').value = responseObj.quantity;

            if(responseObj.promoValue) {
                document.getElementById('adjustmentAmount').innerHTML = responseObj.promoValue;
                document.getElementById('couponValueDiv').style.display = '';

            } else {
                document.getElementById('adjustmentAmount').innerHTML = '';
                document.getElementById('couponValueDiv').style.display = 'none';
            }
        }

        if('false' != responseObj.couponValid && responseObj.promoKeyDisplay) {
            document.addform.productPromoCodeId.value = responseObj.promoKeyDisplay;
        }

      /*  if(responseObj.discountValue) {
            document.getElementById('discountAmount').innerHTML = responseObj.discountValue;
            document.getElementById('discountValueDiv').style.display = '';
        } else {
            document.getElementById('discountAmount').innerHTML = '';
            document.getElementById('discountValueDiv').style.display = 'none';            
        }
        */
       //sg,ik-05-13-08  Mypublisher 3.0 - max quantity check.
        if('false' == responseObj.quantityValid) {
            document.getElementById('quantityMsg').innerHTML = responseObj.quantityErrorMessage;
            document.getElementById('quantity').value = responseObj.quantity;
            document.getElementById('quantityValueDiv').style.display = '';
        }
        waiting_for_response = false;
    }

    if(queued_request) {
        queued_request = false;
        addToCartJSON(document.addform);
    }
}


function getCurrencySymbol(currencyCode) {
    if(currencyCode == 'USD') {
        return '$';
    }
    if(currencyCode == 'GBP') {
        return '\u00A3';
    }
    if(currencyCode == 'EUR') {
        return '\u20AC';
    }
    return '';
}


function verifyCoupon() {
	 var numtest = /^\d+$/;
	var blanktest = /^$/;
	var val=document.getElementById('quantity').value;
    if (blanktest.test(val) || !numtest.test(val)) {
        document.getElementById('quantity').value = lastQuantity;
    }
    coupnCode = document.addform.productPromoCodeId.value;
    document.addform.productPromoCodeId.value = trim(coupnCode);
    addToCartJSON(document.addform);
    // lastQuantity = -1
}


// Removes leading whitespaces
function LTrim( value ) {

	var re = /\s*((\S+\s*)*)/;
	return value.replace(re, "$1");

}

// Removes ending whitespaces
function RTrim( value ) {

	var re = /((\s*\S+)*)\s*/;
	return value.replace(re, "$1");

}

// Removes leading and ending whitespaces
function trim( value ) {

	return LTrim(RTrim(value));

}

function chooseDDValue(ddOptions, valSel) {
    if(!valSel) {
        return;
    }
    for(pq = 0; pq < ddOptions.length; pq++) {
        if(ddOptions[pq].value == valSel) {
            ddOptions[pq].selected = 'true';
            break;
        }
    }
}




//hidden div functions

function getStyleObject(objectId) {
    if (document.getElementById && document.getElementById(objectId)) {
        return document.getElementById(objectId).style;
    } else if (document.all && document.all(objectId)) {
        return document.all(objectId).style;
    } else if (document.layers && document.layers[objectId]) {
        return document.layers[objectId];
    } else {
        return false;
    }
}
function changeObjectVisibility(objectId, newVisibility) {
    var styleObject = getStyleObject(objectId);
    if (styleObject) {
        styleObject.visibility = newVisibility;
        return true;
    } else {
        return false;
    }
}



function submitFormTest() {
    if (document.addform.add_product_id.value == 'NULL') {
        alert("Please select the required amount.");
        return;
    } else {
    	if(ValidateEmail()==true){
	        if (isVirtual(document.addform.add_product_id.value)) {
	            document.location = '<@ofbizUrl>product?category_id=${categoryId?if_exists}&product_id=</@ofbizUrl>' + document.addform.add_product_id.value;
	            return;
	        } else {
	            document.addform.submit();
	        }
    	}
    	else
        	return;
    }
 }


