function copyBillingAddress(form) {
	if (form.sameAsBill.checked) {
		if (form.shipping_lastName.value && 
			form.billing_lastName.value != form.shipping_lastName.value) {
			form.billing_lastName.value = form.shipping_lastName.value;
			form.billing_address1.value = form.shipping_address1.value;
			form.billing_address2.value = form.shipping_address2.value;
			form.billing_city.value = form.shipping_city.value;
			form.billing_state.selectedIndex = form.shipping_state.selectedIndex;
			form.billing_zipCode.value = form.shipping_zipCode.value;
			form.billing_country.value = form.shipping_country.value;
		} else if (form.billing_lastName.value && 
				   form.billing_lastName.value != form.shipping_lastName.value) {
			form.shipping_lastName.value = form.billing_lastName.value;
			form.shipping_address1.value = form.billing_address1.value;
			form.shipping_address2.value = form.billing_address2.value;
			form.shipping_city.value = form.billing_city.value;
			form.shipping_state.selectedIndex = form.billing_state.selectedIndex;
			form.shipping_zipCode.value = form.billing_zipCode.value;
			form.shipping_country.value = form.billing_country.value;
		}
	}
}

	function queryToParamObject(queryString, object, toArray){
		// summary		: This function converts given Query String into JavaScript Object.
		// description	: This function converts given Query String into JavaScript Object.
		//				  It extracts the parameters and their respective values from given Query String
		//				  and then put them as a Key-Value pair in a JavaScript Object.
		//				  This function can be used when we have to pass JavaScript Object ( params ),
		//				  as a parameter for WebService. For example
		//						var params = [];
		//						var queryString = dojo.io.encodeForm(dojo.byId("FormId"));
		//						params = queryToParamObject(queryString, params)
		//						wc.service.invoke("AddToCart", params);
		// queryString	: String
		//				  Its an Query String. i.e. param1='value1'&param2='value2'&param3=3.
		// object		: JavaScript Object
		//				  It could be a JavaScript Object or JavaScript Array. JavaScript treats Array as Object only.
		// toArray		: Boolean
		//				  If true, creates an Array for duplicate entries
		//				  If false, does not creat an Array for duplicate entries. It overwrites the old value.
		// assumptions	: None.
		// dojo API		: None.
		// returns		: A JavaScript Object having Query string parameters as Key-Value pair.

		var mergedObject = [];

		for(var name in mergedObject){ 
			mergedObject[name] = '';			
		}		

		if (object != null) {
			for(var i = 0; i < object.length; i++) {
				mergedObject.push(object[i]);
			}	
		}
		var queryStringArray = queryString.split('&');
		for(var i = 0; i < queryStringArray.length; i++) {
			var tempString = queryStringArray[i];
			var tempArray = tempString.split('=');
			if(tempArray != null && tempArray.length > 1){
				var key = tempArray[0];
				var value = tempArray[1];
				mergedObject = updateParamObject(mergedObject, key, value, toArray);
			}
		}
		return mergedObject;
	}

	// summary		: This function updates the given params object with Key value pair.
	// description	: This function updates the given params object with Key value pair.
	//				  If the toArray value is true, It creates an Array for duplicate entries.
	//				  else, It overwrites the old value.
	//				  It is useful while making a service call which excepts few paramters of type array
	// params		: JavaScript Object
	//				  It could be a JavaScript Object or JavaScript Array. JavaScript treats Array as Object only.
	// key			: String
	// value		: String
	// toArray		: Boolean
	//				  If true, creates an Array for duplicate entries
	//				  If false, does not creat an Array for duplicate entries. It overwrites the old value.
	// assumptions	: None.
	// dojo API		: None.
	// returns		: A JavaScript Object having key - value pair.
	function updateParamObject(params, key, value, toArray, index){
			if(params == null)
				params = [];

			if(params[key] != null && toArray){
				if(dojo.lang.isArrayLike(params[key])){
					//3rd time onwards
					if(index != null && index != ""){
						//overwrite the old value at specified index
						params[key][index] = value;
					}else{
						params[key].push(value);
					}
				}else{
					//2nd time
					var tmpValue = params[key];
					params[key] = [];
					params[key].push(tmpValue);
					params[key].push(value);
				}
			}
			else{
				//1st time
				if(index != null && index != "" && index != -1){
						//overwrite the old value at specified index
						params[key+"_"+index] = value;
				}else if(index == -1){
						var i = 1;
						while(params[key + "_" + i] != null){
							i++;
						}
						params[key + "_" + i] = value;
				}else{
						params[key] = value;
				}
			}

			return params;
	}

function Add2ShopCartAjax(formId, imageId, image, addingImage, addedImage) {
	var queryString = dojo.io.encodeForm(dojo.byId(formId));
	if (currentId != '' && currentImage != '') {
		document.getElementById(currentId).src = currentImage;
	} 	
	currentId = imageId;
	if (addedImage) {
		currentImage = addedImage;
		document.getElementById(formId).action = "javascript:void(0);";
		document.getElementById(formId).onsubmit = "return false;";
	} else {
		currentImage = image;
	}
	document.getElementById(imageId).src = addingImage;

	var paramsOrderItemAdd = queryToParamObject(queryString, null, false);		
	wc.service.invoke("AjaxAddOrderItem", paramsOrderItemAdd);

	return false;
}

function addingToCart(input, image) {
	input.src = image
}

function syncField(inputField) {
	if (document.getElementById('sameAsBill') && document.getElementById('sameAsBill').checked) {
		var fieldType = inputField.name.substr(0,inputField.name.indexOf('_'));
		var fieldName = inputField.name.substr(inputField.name.indexOf('_')+1);
		if (fieldType == 'billing') {
			if (inputField.type == 'text') {
				document.getElementById('shipping_'+fieldName).value = inputField.value;
			} else if (inputField.type == 'select-one') {
				document.getElementById('shipping_'+fieldName).selectedIndex = inputField.selectedIndex;
			}
		} else if (fieldType == 'shipping') {
			if (inputField.type == 'text') {
				document.getElementById('billing_'+fieldName).value = inputField.value;
			} else if (inputField.type == 'select-one') {
				document.getElementById('billing_'+fieldName).selectedIndex = inputField.selectedIndex;
			}
		}
	}
}
