function SimpleAddress(sformId){
	this._formId = sformId;
}

function handleFail(request){
	alert("Sorry. There was an error.");
}

function displayAddress(object){
	// After changing the shipping address uncheck checkbox saying "Same as Shipping Address"
	var chkBoxObj = document.getElementById("shipBillSame");
	if(chkBoxObj != null){
		chkBoxObj.checked = false;
	}
	var uatRfNum = object.value;
	if(uatRfNum != ""){
		var myAjaxJS = new Ajax.Updater('simpleAddressDiv','multipleAddressPage.jsp', 
		{
			parameters: {'multiAddressPage:action':'BuyerAccountActionBean.getAddressFromSession','shippingUat':uatRfNum}
		});
	}
	else{
		resetShippingAddress();
	}
}


function validateShipAddress(){
	var isValidAddress = isShippingAddressValid();//Refer addressJS.js
	if(isValidAddress){
		//alert( $('shipCountryLabel').value);
		$('shipCountryLabel').value = $('shipCountryValue').options[$('shipCountryValue').selectedIndex].text;
		$('shipStateLabel').value = $('shipStateValue').options[$('shipStateValue').selectedIndex].text;
		$('shipCityLabel').value = $('shipCityValue').options[$('shipCityValue').selectedIndex].text;
		//alert($('shipCountryLabel').value +":"+$('shipStateLabel').value+":"+$('shipCityLabel').value);
		//return false
	}
	return isValidAddress;
}
function validateBillAddress(){
	try{
	var isValid = new Validator().isValidEmail($('loginId').value);
	if(!isValid){
		alert('Please enter valid email.');
		$('loginId').focus();
		return false;
	}else{
		$('mailId').value=$('loginId').value;
	}
	var isValidAddress = false;
	if($('shipFname')!=null){
		isValidAddress = validateShipAddress();
	}
	else{
		isValidAddress = true;
	}
	if(isValidAddress){
		isValidAddress = isBillingAddressValid();//Refer addressJS.js
	}
	if(isValidAddress){
		//alert( $('billCountryLabel').value);
		$('billCountryLabel').value = $('billCountryValue').options[$('billCountryValue').selectedIndex].text;
		$('billStateLabel').value = $('billStateValue').options[$('billStateValue').selectedIndex].text;
		$('billCityLabel').value = $('billCityValue').options[$('billCityValue').selectedIndex].text;
		//alert($('billCountryLabel').value +":"+$('billStateLabel').value+":"+$('billCityLabel').value);
		//return false
	}
	if(isValidAddress){
		if(isValidAddress){
			var url = path+'/faces/tiles/components/checkout/checkoutSimpleAddress.jsp';
			var myAjax = new Ajax.Request(
				url, 
				{
					method: 'POST', 
					parameters: $('userAddress').serialize(),
					onSuccess : handleSimple,
					onFailure:handleFail
				});
		}
	}
	return isValidAddress;
	}catch(err){
			alert(err.message);
		}
}
function handleFail(request){
		alert("Sorry. There was an error.");
}
function handleSimple(transport){
	//alert(transport.responseText);
	if(200 == transport.status){

		updateMiniShoppingCartPage();
		if($('multiAddressFlag').value=='N'){
			updateShippingOptionDisplayDiv();
		}		
		else{
			updateGcDcOptionDisplayDiv();
			updatePaymentOptionDisplayDiv();
		}
	}
}
function updateErrorDiv(){
	var errorAjax = new Ajax.Updater('errorMessageDiv',path+'/faces/tiles/components/checkout/errorDisplay.jsp', 
	{
		onFailure:handleFail
	});
}

function updateMiniShoppingCartPage(){
	var simpleCart = new Ajax.Updater('miniShoppingCartDiv',path+'/faces/tiles/components/product/miniShoppingCart.jsp', 
	{
		/*method: 'POST', */
		parameters: {'checkoutButton':'N'},
		/*onSuccess : handleSimple,*/
		onFailure:handleFail
		/*evalScripts:true*/
	});
}
function updateShippingOptionDisplayDiv(){
	var shipOpt = new Ajax.Updater('productShippingOptionDiv',path+'/faces/tiles/components/checkout/shippingOptionsComponent.jsp', 
	{
		/*method: 'POST', 
		parameters: {'checkoutButton':'N'},*/
		//onSuccess : updateErrorDiv,
		onFailure:handleFail
		/*evalScripts:true*/
	});
}
function makeBillAsShipAddress(chkBoxObj){
var isChecked = chkBoxObj.checked;
	if(isChecked){
		chkBoxObj.value="Y";
		if(validateShipAddress()){
			if(billAddressObjects.length==shipAddressObjects.length){

				//First set all state and country in billing state and city drop down same as shipping dropdown
				changeStateCity("country",document.getElementById("shipCountryValue").value, 		
										  document.getElementById("billStateValue"));
				changeStateCity("state",document.getElementById("shipStateValue").value,
					                    document.getElementById("billCityValue"));
				setTimeout("copyShipToBillAddress()",300);
			}
			else{
				chkBoxObj.checked=false;
				alert("Error in makeBillAsShipAddress() javascript function used for coping data. Check length and sequence of object id.");
			}
		}
		else{
			chkBoxObj.checked=false;
		}
	}
	else{
		for(var i=0;i<billAddressObjects.length;i++){
			document.getElementById(billAddressObjects[i]).disabled=false;
		}
	}
		
}

function copyShipToBillAddress(){
	for(var i=0;i<billAddressObjects.length;i++){
		document.getElementById(billAddressObjects[i]).value=document.getElementById(shipAddressObjects[i]).value;		
		//document.getElementById(billAddressObjects[i]).disabled=true;
	}
}
function validateShippingOption(){
	var flag=false;
	var giftMsg = "";
	if($('giftMessage')!=null){
		giftMsg =  $('giftMessage').value;
		if($('giftWrapSelected').checked && giftMsg.length>50){
			alert('Gift Message Must Have Less Than 50 Characters.');
			flag = true;
		}
	}
	if(!flag){
		var list = document.prdShipOption.elements;
		for(var i=0;i<list.length;i++){
			if(list[i].id.indexOf("finalShipOption")!=-1 && list[i].checked){
				flag=true;
				break;
			}
		}
		if(flag){
			var myAjax = new Ajax.Request(path+'/faces/tiles/components/checkout/shippingOptionsComponent.jsp', 
			{
				method: 'POST', 
				parameters: $('prdShipOption').serialize(),
				onSuccess : handleShipOptResponse,
				onFailure:handleFail,
				evalScripts:true
			});
		}
		else{
			alert("Please Select Shipping Option");
		}
	}
	
}
function handleShipOptResponse(transport){
	if(200 == transport.status){
		updateGcDcOptionDisplayDiv();
		updatePaymentOptionDisplayDiv();
	}

}
function updatePaymentOptionDisplayDiv(){

	updateMiniShoppingCartPage();
	
	var myAjax = new Ajax.Updater('productPaymentOptionDiv',path+'/faces/tiles/components/checkout/paymentOptionModeComponent.jsp', 
	{
		onSuccess : handlePmtResponse,
		onFailure:handleFail
	});
}
function handlePmtResponse(transport){
	if(200 == transport.status){
		$('productPaymentOptionDiv').setStyle({display:'block'});
		//updateErrorDiv();
	}
}

function isGuestUser(oldNewUser){
	var passwordDiv = document.getElementById("passwordDiv");
	var submitDiv = document.getElementById("submitDiv");
	if(oldNewUser=="existingUser"){
		passwordDiv.style.display='block';
		submitDiv.style.display='block';
	}
	if(oldNewUser=="newUser"){
		passwordDiv.style.display='none';
		submitDiv.style.display='none';
	}
}

function simpleLoginSubmit(){
	if(isValidForm()){
		/*$('simpleLogin').request({
		  //onComplete: function(transport){ $('simpleLogin').innerHTML = transport.responseText ;},
		  onFailure:function(){alert('Oops Error.');},
		  onSuccess:  function(transport){ *alert( transport.responseText );}
		});*/
		document.forms['simpleLoginForm'].submit();
	}		
}
function makeThisPayment(formId,url)
{
	
	new Ajax.Updater(
		'productPaymentOptionDiv',
		url,
		{
		method: 'GET', 
		parameters: $(formId).serialize(),
		onSuccess: function(transport){/*alert(transport.responseText)*/},
		onFailure:function(){alert("Oops!! error!")}
		});
}

function setShippingDescription(shipOptRef,name,discount,charge){
	$('finalShipOption').value=shipOptRef;	
	$('finalShipOptionName').value=name;	
	$('finalShipOptionDiscount').value=discount;	
	$('finalShipOptionCharge').value=charge;	
}
function setPaymentDescription(obj,payOptRef,name,discount,charge){
	var list = document.prdPayOption.elements;
	for(var i=0;i<list.length;i++){
		if(list[i].type=='radio' && list[i].id != obj.id && list[i].id.indexOf("paymentOpt")!=-1){
			list[i].checked = false;
		}
	}
	$('finalPayOption').value=payOptRef;	
	$('finalPayOptionName').value=name;	
	$('finalPayOptionDiscount').value=discount;	
	$('finalPayOptionCharge').value=charge;	
}

function shippingAddressPopUp(){
	window.open(path+"/faces/tiles/components/checkout/multipleShipAddressShipOption.jsp",'','scrollbars=yes,left=300,top=100,width=400,height=300');
}

function updateCheckoutErrorDiv(){
	var myAjax = new Ajax.Updater('errorMessagesDiv',path+'/faces/tiles/components/checkout/checkoutError.jsp', 
	{
		onFailure:handleFail
	});
}
function validateGCDC(){
	var couponNumber = new Array();
	var isValidGCDC = true;
	var flag = false;
	var showError = true;
	var list = document.gcDcOption.elements;
	var cnt = 0;
	for(var i=0;i<list.length;i++){
		if(list[i].id.indexOf("coupon")!=-1 && list[i].type=='text'){
			couponNumber[cnt++] = list[i].value;
		}
	}
	for(var j=0;j<couponNumber.length;j++){
		var number = couponNumber[j];
		if(number!=''){
			flag = true;
			break;
		}
	}
	if(flag){
		for(var j=0;j<couponNumber.length;j++){
		var number = couponNumber[j];
			if(number!=''){
				if(!alphaNumericCharWithoutSpace(number)){
					showError = true;
					break;
				}
				else{
					showError = false;
				}
			}
		}
	}
	if(showError){
		alert("Please Enter Valid Gift Certificate/Discount Coupon No.");
		isValidGCDC = false;
	}
	
	
	if(isValidGCDC){
		var myAjax = new Ajax.Request(path+'/faces/tiles/components/checkout/paymentOptionGiftCertificateComponent.jsp', 
		{
			method: 'POST', 
			parameters: $('gcDcOption').serialize(),
			onSuccess : handleGCDCOptResponse,
			onFailure:handleFail,
			evalScripts:true
		});
	}
}
function updateGcDcOptionDisplayDiv(){
	updateMiniShoppingCartPage();
	var gcdcOpt = new Ajax.Updater('productGcdcDiv',path+'/faces/tiles/components/checkout/paymentOptionGiftCertificateComponent.jsp', 
	{
		onSuccess : handleCouponResponse,
		onFailure:handleFail
	});
}
function handleCouponResponse(transport){
	if(200 == transport.status){
		$('productGcdcDiv').setStyle({display:'block'});
	}
}
function handleGCDCOptResponse(transport){
	var resp = transport.responseText ;
	if(resp.indexOf('success') != -1){
		var  ord = resp.split(':');
		window.location.href= "ccsuccessCheaque.jsp?oid="+ord[1];
	}
	else{
		updateGcDcOptionDisplayDiv();
	}
}
function validatePaymentOption(obj){
	var flag=false;
	var list = document.prdPayOption.elements;
	for(var i=0;i<list.length;i++){
		if(list[i].type=='radio' && list[i].id.indexOf("paymentOpt")!=-1 && list[i].checked){
			flag=true;
			break;
		}
	}
	if(!flag){
		alert("Please Select Payment Option");
		return false;
	}else{
		obj.form.submit();
		obj.disabled=true;
	}
}
function enableGiftMsgTextArea(obj){
	if(obj.checked){
		$('giftMessage').readOnly=false;
	}
	else{
		$('giftMessage').readOnly=true;
	}
}