var test_var = 1;
var test_var2 = 1;
var nDeliveryHiddenFlag = 1;
var aStates = new Array();
var aStatesDelivery = new Array();
Array.prototype.in_array = function(p_val) {
	for(var nArrayIndex = 0, l = this.length; nArrayIndex < l; nArrayIndex++) {
		if(this[nArrayIndex] == p_val) {
			return true;
		}
	}
	return false;
}

function DeleteItem(product_id, license_id) {
	if(confirm('Do you realy want to delete this product from your shopping cart?')) {
		$('#del_item_' + product_id + '_' + license_id).val(1);
		$('#row_' + product_id + '_' + license_id).hide();
	} else {
		return false;
	}
}
function ViewCurrencyForm() {
	if($('#currency_form').css('display') == 'none') {
		$('#currency_form').show();
	} else {
		$('#currency_form').hide();
	}
}
function ViewMaintenancePlansForm(item_key, cart_item_id, old_period) {
	if($('#mp_form_'+item_key).css('display') == 'none') {
		$('.mp_form').hide();
		//sKey = cart_item_key;
		//aKey = sKey.split('_');
		//purchase_type = $('.hidden_purchase_type_'+sKey+'_'+item_key).val();
		//alert('#mp_period_'+sKey+'_'+purchase_type+'_'+aKey[4]);
		$('#mp_period_'+cart_item_id+'_'+old_period).attr('checked', true);
		$('#mp_form_'+item_key).show();
	} else {
		$('.mp_form').hide();
		$('#mp_form_'+item_key).hide();
	}
}
function ChangeMP(key, sUrl, new_period) {
    if(sUrl.indexOf('?') == -1) {
        sUrl += '?';
    } else {
        sUrl += '&';
    }
	sUrl += 'action=change_mp&id='+key+'&new_period='+new_period;
	document.location = sUrl;
}
function NewCompanyClick() {
	$('#company_type_radio1').attr('checked', false);
	$('#company_type_radio2').attr('checked', false);
	$('#company_type_radio3').attr('checked', true);
	$('#company_type_radio4').attr('checked', false);
	$('#company_type').val(3);
	$('#company_id').val('-2');
	$('#company_type_select').val('');
	$('#ok_btn').hide();
	$('#next_btn').show();
	$.ajax({
		url: BASE_URL+'/'+CURR_PAGE,
		data: {client_id: 0, action: 'set_reseller_client'},
		dataType: 'json',
		success: function(data, textStatus) { },
		type: 'POST'
	});
}

function form_second_step() {
    if($('#company_type_radio2').attr('checked')) {
        if($('#company_id').val() <= 0 || $('#company_type_select').val() == '') {
			alert('You must type existing company name!');
			nErrorFlag = 1;
		}
		if($('#company_id').val() > 0 && $('#company_type_select').val() != '') {
			$.ajax({
				url: BASE_URL+'/shopping_cart',
				data: {client_name: $('#company_type_select').val(), action: 'check_reseller_client'},
				dataType: 'json',
				success: function(data, textStatus) {
					if(data.error) {
						alert(data.error_msg);
						$('#company_id').val(0);
						nErrorFlag = 1;
					} else {
					    $.ajax({
            				url: BASE_URL+'/shopping_cart',
            				data: {client_id: $('#company_id').val(), action: 'get_client_contacts'},
            				dataType: 'json',
            				success: function(data, textStatus) {
            					if(data.empty_list == 0) {
            					    $('div#first_step').hide();
                    	            $('div#second_step_for_exist_client').show();
                    	            $("div.contacts_list").html('');
                    	            for(i=0; i < data.contacts_list.length; i++) {
                    	                contact = data.contacts_list[i];
                                        labelText = ' ' + contact.firstname + ' ' + contact.lastname;
                                        disabledCheck = '';
                                        if(contact.blocked == 1) {
                                            labelText += ' (blocked)';
                                            disabledCheck = 'disabled';
                                        }
                                        checkContact = document.createElement('input');
                                        checkContact.type = 'radio';
                                        //checkContact.name = 'contact_id[' + contact.id + ']';
                                        checkContact.name = 'contact_id';
                                        checkContact.id = 'contact' + contact.id;
                                        checkContact.className = 'contact_chk inp_chkbx';
                                        checkContact.value = contact.id;
                                        checkContact.disabled = disabledCheck;
                                        checkContact.onclick = function() {
                                            elementId = this.id;
                                            if(!$('input#' + elementId).attr('checked') && !$('input#' + elementId).attr('disabled')) {
                                                $('input.contact_chk').removeAttr('checked');
                                                $('input#' + elementId).attr('checked', 'checked');
                                            }
                                        }
                                        $("div.contacts_list").append(checkContact);
                                        
                                        checkContactLabel = document.createElement('label');
                                        checkContactLabel.setAttribute('for','contact_' + contact.id);
                                        checkContactLabel.innerHTML = labelText;
                                        checkContactLabel.onclick = function() {
                                            elementId = this.getAttribute('for').replace('_', '');
                                            if(!$('input#' + elementId).attr('checked') && !$('input#' + elementId).attr('disabled')) {
                                                $('input.contact_chk').removeAttr('checked');
                                                $('input#' + elementId).attr('checked', 'checked');
                                            }
                                        }
                                        
                                        $("div.contacts_list").append(checkContactLabel);
                                        $("div.contacts_list").append(document.createElement('br'));
                                    }
                                    if(data.contacts_list.length > 0) {
                                        $('input.contact_chk:first').attr('checked', 'checked');
                                    }
                    	            $('div#third_step').hide();
                    	            $('div#second_step_for_exist_client').css({height: 120});
                    	            $('div#TB_ajaxContent').css({height: 140});
                    	            $('input#back_btn').show();
                    	            $('#next_btn').hide();
                    	            $('#next_btn2').hide();
                    	            $('input#back_btn2').hide();
                    	            $('#step2_ok_btn_qqq').show();
            					} else {
                                    $('input#empty_contacts_list').val(1);
                                    $('div#first_step').hide();
                    	            $('div#second_step_for_exist_client').show();
                    	            $('div#third_step').hide();
                    	            $('div#second_step_for_exist_client').css({height: 120});
                    	            $('div#TB_ajaxContent').css({height: 140});
                    	            $('input#back_btn').show();
                    	            $('#next_btn').hide();
                    	            $('#next_btn2').hide();
                    	            $('input#back_btn2').hide();
                    	            $('#step2_ok_btn_qqq').show();
                                }
            				},
//            				error: function(XMLHttpRequest, textStatus, errorThrow) { alert('AJAX Error : '+textStatus + '    ' + errorThrow);},
            				type: 'POST'
            			});
					}
				},
//				error: function(XMLHttpRequest, textStatus, errorThrow) { alert('AJAX Error : '+textStatus + '    ' + errorThrow); },
				type: 'POST'
			});
		}
    } else if($('#company_type_radio3').attr('checked')) {
        nErrorFlag = 0;
        if($('#company_type_text').val() == '') {
            alert('You must type the new company name!');
    	} else {
        	$.get('iconv.php', {'string': $('#company_type_text').val()}, function(data){
        		$('#company_type_text').val(data);
    		    if(nameRegexp.test($('#company_type_text').val())) {
    	            alert('Company name contains invalid characters, please correct.');
    	        } else {
    	            test_var = 0;
    	            $('div#first_step').hide();
    	            $('div#second_step').show();
    	            $('div#second_step').css({height: 220});
    	            $('div#TB_ajaxContent').css({height: 240});
    	            $('input#back_btn').show();
    	            $('#next_btn').hide();
    	            $('#step2_ok_btn_qqq').show();
    	            $('#select_country').change();
    	        }
        	});
        }
    }
    return false;
}
function clearHiddenLicences()
{
	$('select.variation:hidden').remove();
}

function checkClientId(frm, nClearLic) {
	nErrorFlag = 1;
	if($('#company_type_radio2').attr('checked')) {
		if($('#company_id').val() <= 0 || $('#company_type_select').val() == '') {
			alert('You must type existing company name!');
			nErrorFlag = 1;
		} 
		if($('#company_id').val() > 0 && $('#company_type_select').val() != '') {
			$.ajax({
				url: BASE_URL+'/'+CURR_PAGE,
				data: {client_name: $('#company_type_select').val(), action: 'check_reseller_client'},
				dataType: 'json',
				success: function(data, textStatus) {
					if(data.error) {
						alert(data.error_msg);
						$('#company_id').val(0);
						nErrorFlag = 1;
					} else {
						if(nClearLic) {
							clearHiddenLicences();
						}
						frm.submit();
					}
				},
//				error: function(XMLHttpRequest, textStatus, errorThrow) { alert('AJAX Error : '+textStatus + '    ' + errorThrow); },
				type: 'POST'
			});
		}
	}
	if($('#company_type_radio3').attr('checked')) {
		if($('#company_type_text').val() == '') {
			alert('You must type the new company name!');
			nErrorFlag = 1;
		} else {
		    //reg = /[^a-zA-Z0-9@ \.\-\+\_\&]+/;
    	    if(nameRegexp.test($('#company_type_text').val())) {
                alert('Company name contains invalid characters, please correct.');
                nErrorFlag = 1;
            } else {
                nErrorFlag = 0;
            }
		}
	}
	if($('#company_type_radio1').attr('checked')) {
		nErrorFlag = 0;
	}
	if($('#company_type_radio4').attr('checked')) {
		nErrorFlag = 0;
	}
	return (nErrorFlag == 0);
}

$(document).ready(function(){
    
    if($('span#cvv_explain').length > 0) {
        $('span#cvv_explain a[href]').qtip({
             content: '<table style="width: 400px;"><tr><td valign="top" style="width: 180px;"><b>CVV2 Number</b><br />' + 
                      'The CVV2 number helps protect you from fraud by verifying that you are actually in ' + 
                      'possession of the credit card you are using. Refer to the photos to find your CVV2 Number</td>' + 
                      '<td><img src="img/cvv2.jpg" alt="CVV2" /></td></tr></table>',
            style: { 
                width: 400
            },
            position: {
              corner: {
                 target: 'rightMiddle',
                 tooltip: 'leftBottom'
              }
           }
    
        });
    }
    if($("input#promo_code").length > 0) {
		$("input#promo_code").blur(function(){
		    if ($(this).val() == '') {
		        $(this).css("background", "#ffffff url('img/txt_enter_code_here.gif') no-repeat 3px 50%");
		    }
		}).focus(function(){
		    $(this).css("background", "#ffffff none repeat scroll 0 0");
		}).blur();
	}
	
	$('td.checkout_method input[type=radio]:first').attr('checked', true);
	//$('#method_paypal').attr('checked', true);
	$('#account').attr('checked', true);
	$('#same_location').attr('checked', true);
	
	if($('tr.u_password').length > 0) {
		if($('tr.u_password input[name="u_password"]').length > 0) {
			$('tr.u_password input[name="u_password"]').val('');
		}
	}
	//$form->getElement('u_password')->setValue('');
	//$form->getElement('u_re_password')->setValue('');
	
	$('#select_country').change(function() {
		aCanadaProvinces = new Array('ON', 'QC', 'NS', 'NB', 'MB', 'BC', 'PE', 'SK', 'AB', 'NL', 'NT', 'YT', 'NU');
		if (typeof(aEUCountries) != 'undefined' && aEUCountries.in_array($(this).val())) {
			$('div#check_country_div').hide();
		} else {
            $('div#check_country_div').show();
		}
		if($('#select_country').val() != 'CA' && $('#select_country').val() != 'US') {
			$('#select_state').attr('name', 'state_old');
			$('#select_state').attr('disabled', true);
			$('#state_text').attr('name', 'state');
			$('#state_text').attr('disabled', false);
			$('.state').hide();
			if(typeof(aEUCountries) != 'undefined') {		
				if((aEUCountries.length > 0 && aEUCountries.in_array($('#select_country').val())) || ($('#select_country').val() == 'GB')) {
					$('.vat').show();
				} else {
					$('.vat').hide();
				}
			} else {
				$('.vat').show();
			}
			$('tr.state_text').show();
			if(typeof($('#state_def')) != 'undefined') {
			    if($('#state_def').val() != '') {
			        $('#state_text').val($('#state_def').val());
                } else {
                    $('#state_text').val('');
                }
            } else {
                $('#state_text').val('');
            }
		} else {
			sStartValue = $('#select_state').val();
			if(aStates.length == 0) {
			    aStates = new Array();
			    if($('#states_full').length > 0) {
                    $('#states_full option').each(function () {
    					aStateData = new Array();
    					aStateData['code'] = $(this).val();
    					aStateData['name'] = $(this).text();
    					//aStates[aStateData['code']] = aStateData;
    					aStates[aStates.length] = aStateData;
    				});
                } else {
                    $('#select_state option').each(function () {
    					aStateData = new Array();
    					aStateData['code'] = $(this).val();
    					aStateData['name'] = $(this).text();
    					//aStates[aStateData['code']] = aStateData;
    					aStates[aStates.length] = aStateData;
    				});
                }
			}
			$('#select_state').attr('disabled', false);
			$('.state').show();
			$('#select_state option').each(function () { $(this).remove(); });
			for(nStateIndex = 0; nStateIndex < aStates.length; nStateIndex++) {
				aStateData = new Array();
				aStateData = aStates[nStateIndex];
				var selectOption = document.createElement('option');
				selectOption.value = aStateData['code'];
				selectOption.text = aStateData['name'];
				if($('#select_country').val() == 'US') {
					if(!aCanadaProvinces.in_array(aStateData['code'])) {
						try { $("#select_state")[0].add(selectOption,null); // standards compliant
						} catch(ex) { $("#select_state")[0].add(selectOption); // IE only 
						}
					}
				}
				if($('#select_country').val() == 'CA') {
					if(aCanadaProvinces.in_array(aStateData['code'])) {
						try { $("#select_state")[0].add(selectOption,null); // standards compliant
						} catch(ex) { $("#select_state")[0].add(selectOption); // IE only 
						}
					}
				}
			}
		    $('#state_text').attr('name', 'state_text');
		    $('#state_text').attr('disabled', true);
			$('#select_state').attr('name', 'state');
			if($('#select_state option[value="'+sStartValue+'"]').length > 0) {
				$('#select_state option[value="'+sStartValue+'"]').attr('selected', true);
			}
			$('.vat').hide();
			$('tr.state_text').hide();
		}
		if($('#select_country').val() != 'US') {
			$('tr.zip td.form_tbl_label').html('<span class="asterisk">*</span>Postal code');
		} else {
			$('tr.zip td.form_tbl_label').html('<span class="asterisk">*</span>ZIP');
		}
	}).change();
	
	$('#delivery_select_country').change(function() { 
		aCanadaProvinces = new Array('ON', 'QC', 'NS', 'NB', 'MB', 'BC', 'PE', 'SK', 'AB', 'NL', 'NT', 'YT', 'NU');
		if($('#delivery_select_country').val() != 'CA' && $('#delivery_select_country').val() != 'US') {
			$('#delivery_select_state').attr('name', 'delivery_state_old');
			$('#delivery_select_state').attr('disabled', true);
			$('#delivery_state_text').attr('name', 'delivery_state');
			$('.delivery_state').hide();
			if(typeof(aEUCountries) != 'undefined') { 
				if((aEUCountries.length > 0 && aEUCountries.in_array($('#delivery_select_country').val())) || ($('#delivery_select_country').val() == 'GB')) { 
					$('.delivery_vat').show();
				} else { 
					$('.delivery_vat').hide();
				}
			} else { 
				$('.delivery_vat').show();
			}
			$('tr.delivery_state_text').show();
			if(typeof($('#delivery_state_def')) != 'undefined') {
			    if($('#delivery_state_def').val() != '') {
                    $('#delivery_state_text').val($('#delivery_state_def').val());
                } else {
                    $('#delivery_state_text').val('');
                }
            } else {
                $('#delivery_state_text').val('');
            }
		} else {
			sStartValue = $('#delivery_select_state').val();
			if(aStatesDelivery.length == 0) {
				$('#delivery_select_state option').each(function () {
					aStateData = new Array();
					aStateData['code'] = $(this).val();
					aStateData['name'] = $(this).text();
					//aStates[aStateData['code']] = aStateData;
					aStatesDelivery[aStatesDelivery.length] = aStateData;
				});
			}
			$('#delivery_select_state').attr('disabled', false);
			$('.delivery_state').show();
			$('#delivery_select_state option').each(function () { $(this).remove(); });
			for(nStateIndex = 0; nStateIndex < aStatesDelivery.length; nStateIndex++) {
				aStateData = new Array();
				aStateData = aStatesDelivery[nStateIndex];
				var selectOption = document.createElement('option');
				selectOption.value = aStateData['code'];
				selectOption.text = aStateData['name'];
				if($('#delivery_select_country').val() == 'US') {
					if(!aCanadaProvinces.in_array(aStateData['code'])) {
						try { $("#delivery_select_state")[0].add(selectOption,null); // standards compliant
						} catch(ex) { $("#delivery_select_state")[0].add(selectOption); /* IE only */}
					}
				}
				if($('#delivery_select_country').val() == 'CA') {
					if(aCanadaProvinces.in_array(aStateData['code'])) {
						try { $("#delivery_select_state")[0].add(selectOption,null); // standards compliant
						} catch(ex) { $("#delivery_select_state")[0].add(selectOption); /* IE only */}
					}
				}
			}
			$('#delivery_state_text').attr('name', 'delivery_state_text');
			$('#delivery_select_state').attr('name', 'delivery_state');
			if($('#delivery_select_state option[value="'+sStartValue+'"]').length > 0) {
				$('#delivery_select_state option[value="'+sStartValue+'"]').attr('selected', true);
			}
			$('.delivery_vat').hide();
			$('tr.delivery_state_text').hide();
		}
		if($('#delivery_select_country').val() != 'US') {
			$('tr.delivery_zip td.form_tbl_label').html('<span class="asterisk">*</span>Postal code');
		} else {
			$('tr.delivery_zip td.form_tbl_label').html('<span class="asterisk">*</span>ZIP');
		}
	}).change();
	
	aHiddenElements = new Array('block_title', 'block_required', 'address1', 'address2', 'city', 'state', 'state_text', 'state_hidden', 'zip', 'country', 'vat');
	if($('#usage_addr_hidden').val() == 'differ') {
		$('#differ_location').attr('checked', 'checked');
	} else {	
		for(nIndex = 0; nIndex < aHiddenElements.length; nIndex++) {
			$('.delivery_'+aHiddenElements[nIndex]).hide();
		}
	}
	
	$('#differ_location').click(function () {
		$('#usage_addr_hidden').val('differ');
		for(nIndex = 0; nIndex < aHiddenElements.length; nIndex++) {
			$('.delivery_'+aHiddenElements[nIndex]).show();
		}
		if($('#delivery_select_country').val() != 'CA' && $('#delivery_select_country').val() != 'US') {
			$('.delivery_state').hide();
		} else {
			$('.delivery_state_text').hide();
		}
		nDeliveryHiddenFlag = 0;
		delivery_countryChange();
        $('#delivery_select_country').change();
	});
	$('#same_location').click(function () {
		$('#usage_addr_hidden').val('same');
		for(nIndex = 0; nIndex < aHiddenElements.length; nIndex++) {
			$('.delivery_'+aHiddenElements[nIndex]).hide();
		}
		nDeliveryHiddenFlag = 1;
		//delivery_countryChange();
	});
	//InitCompanyFormFunctionality();
	//countryChange();
	//delivery_countryChange();
});

function InitCompanyFormFunctionality() {
    $('div#contacts_list_section').show();
    /*$('input.send_mail_to:first').attr('checked', true);
    $('input#send_to_client_only').click(function () {
        $('div#contacts_list_section').show();
    }).click();
    
    $('input#send_to_client_n_reseller').click(function () {
        $('div#contacts_list_section').show();
    });
    
    $('input#send_to_reseller_only').click(function () {
        $('div#contacts_list_section').hide();
    });*/
    
    
    if($('#company_type_radio1').val()) {
		$('#company_type_radio1').attr('checked', true);
		$('#company_type').val(1);
	} else if($('#company_type_radio2').val()) {
		$('#company_type_radio2').attr('checked', true);
		$('#company_type').val(2);
		$('#company_id').val($('#company_type_select').val());
		$('#ok_btn').hide();
		$('#next_btn').show();
	} else if($('#company_type_radio3').val()) {
		$('#company_type_radio3').attr('checked', true);
		$('#company_type').val(3);
	}
	if($('#radio_selected').val() == 3) {
		$('#company_type_radio1').attr('checked', false);
		$('#company_type_radio2').attr('checked', false);
		$('#company_type_radio3').attr('checked', true);
		$('#company_type_radio4').attr('checked', false);
		$('#company_type').val(3);
		$('#company_name').val($('#company_type_text').val());
		$('#company_type_text2').val($('#company_type_text').val());
	}
	
	$('#company_type_radio1').click(function () {
		$('#company_type_radio2').attr('checked', false);
		$('#company_type_radio3').attr('checked', false);
		$('#company_type_radio4').attr('checked', false);
		$('#company_type').val(1);
		$('#company_name').val('');
		$('#company_id').val('-1');
		$('#company_type_text').val('');
		$('#ok_btn').show();
		$('#next_btn').hide();
		$('#step2_ok_btn_qqq').hide();
		$('#step2_ok_btn').hide();
	});
	$('#company_type_radio2').click(function () {
		$('#company_type_radio1').attr('checked', false);
		$('#company_type_radio3').attr('checked', false);
		$('#company_type_radio4').attr('checked', false);
		$('#company_type').val(2);
		$('#company_name').val('');
		$('#company_id').val('0');
		$('#company_type_text').val('');
		/*$('#ok_btn').show();
		$('#next_btn').hide();
		$('#step2_ok_btn_qqq').hide();*/
		$('#ok_btn').hide();
		$('#next_btn').show();
	});
	$('#company_type_radio3').click(function () {
		$('#company_type_radio1').attr('checked', false);
		$('#company_type_radio2').attr('checked', false);
		$('#company_type_radio4').attr('checked', false);
		$.ajax({
			url: BASE_URL+'/'+CURR_PAGE,
			data: {client_id: 0, action: 'set_reseller_client'},
			dataType: 'json',
			success: function(data, textStatus) { },
			type: 'POST'
		});
		$('#company_type').val(3);
		$('#company_id').val('-2');
		$('#company_type_select').val('');
		$('#ok_btn').hide();
		$('#next_btn').show();
	});
	
	$('#company_type_radio4').click(function () {
		$('#company_type_radio1').attr('checked', false);
		$('#company_type_radio2').attr('checked', false);
		$('#company_type_radio3').attr('checked', false);
		$.ajax({
			url: BASE_URL+'/'+CURR_PAGE,
			data: {client_id: -1, action: 'set_reseller_client'},
			dataType: 'json',
			success: function(data, textStatus) { },
			type: 'POST'
		});
		$('#company_type').val(4);
		$('#company_id').val('-3');
		$('#company_type_select').val('');
		$('#company_type_text').val('');
		$('#ok_btn').val('Ok');
		$('#ok_btn').show();
		$('#next_btn').hide();
		$('#step2_ok_btn_qqq').hide();
		$('#step2_ok_btn').hide();
	});
	
	$('#company_type_text').keyup(function() {
		if($('#company_type').val() == 3) {
			$('#company_name').val(this.value);
			$('#company_type_text2').val(this.value);
		}
	});
	$('#company_type_select').click(function () {
		$('#company_type_radio1').attr('checked', false);
		$('#company_type_radio2').attr('checked', true);
		$('#company_type_radio3').attr('checked', false);
		$('#company_type_radio4').attr('checked', false);
		$('#company_type_text').val('');
		if($('#company_type_select').val() == '') {
			$('#company_type').val(2);
			$('#company_id').val('0');
			$('#company_name').val('');
		}
		/*$('#ok_btn').show();
		$('#next_btn').hide();
		$('#step2_ok_btn_qqq').hide();*/
		$('#ok_btn').hide();
		$('#next_btn').show();
	});
	$('#next_btn').click(function() {
       form_second_step();
	   return false;
    });
    $('#step2_ok_btn_qqq').click(function() {
        errorFlag = 0;
        if($('#company_type_radio2').attr('checked')) {
            if($('#send_to_client_only').attr('checked') || $('#send_to_client_n_reseller').attr('checked')) {
                if($('input.contact_chk:checked').length == 0) {
                    alert('You must select at least one contact');
                    errorFlag = 1;
                }
            }
            if(errorFlag == 0) {
                this.form.submit();
            }
        } else if($('#company_type_radio3').attr('checked')) {
            $.get('iconv.php', {'string[]': [$('input#firstname').val(), $('input#lastname').val(), $('input#email').val()]}, 
        			function(data){
        		eval('data = ' + data);
        		$('input#firstname').val(data[0]);
        		$('input#lastname').val(data[1]);
        		$('input#email').val(data[2]);
        		sError = '';
        		if($('input#firstname').val() == '') {
        			sError += ' - First Name is required\n';
        		} else {
        			if(nameRegexp.test($('input#firstname').val())) {
        				sError += ' - First Name contains invalid characters, please correct.\n';
        			}
        		}
        		if($('input#lastname').val() == '') {
        			sError += ' - Last Name is required\n';
        		} else {
        			if(nameRegexp.test($('input#lastname').val())) {
        				sError += ' - Last Name contains invalid characters, please correct.\n';
        			}
        		}
        		var regex = /^((\"[^\"\f\n\r\t\v\b]+\")|([\w\!\#\$\%\&'\*\+\-\~\/\^\`\|\{\}]+(\.[\w\!\#\$\%\&'\*\+\-\~\/\^\`\|\{\}]+)*))@((\[(((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9])))\])|(((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9])))|((([A-Za-z0-9\-])+\.)+[A-Za-z\-]+))$/;
        		if($('input#email').val() == '') {
        			sError += ' - Email is required\n';
        		} else {
        			if(!regex.test($('input#email').val())) {
        				sError += ' - Invalid email format\n';
        			} else if(nameRegexp.test($('input#email').val())) {
        				sError += ' - Email contains invalid characters, please correct.\n';
        			}
        		}
        		
        		if($('#select_country').val() == '') {
                   sError += ' - Country is required\n';
                }
                if($('input#address').val() == '') {
    	            sError += ' - Address is required\n';
                }
                if($('input#city').val() == '') {
    	            sError += ' - City is required\n';
                }
                if($('#select_country').val() == 'CA' || $('#select_country').val() == 'US') {
                    if($('input#select_state').val() == '') {
    	               sError += ' - State/Prov/Region is required\n';
                    }
                } else {
                    if($('input#state_text').val() == '') {
    	               sError += ' - State/Prov/Region is required\n';
                    }	
                }
                if($('input#zip').val() == '') {
    	            sError += ' - ZIP/Postal Code is required\n';
                }
                if($('input#phone').val() == '') {
    	            sError += ' - Phone is required\n';
                }
        		/*if($('input#u_password').val() != '' && $('input#u_re_password').val() != '' && 
               ($('input#u_password').val() != $('input#u_re_password').val())) {
                sError += ' - Password and Confirm password entries do not match\n';
            }*/
        		if(sError != '') {
        			sError = 'Invalid information entered.\n' + sError;  
        			sError += 'Please correct these fields.';
        			alert(sError);
        			return;
        		} else {
        			nErrorFlag = 1;
        			$.ajax({
        				url: BASE_URL+'/shopping_cart',
        				/*data: {u_login: $('input#u_login').val(), email: $('input#email').val(), action: 'check_contact_login'},*/
        				data: {email: $('input#email').val(), action: 'check_contact_login'},
        				dataType: 'json',
        				success: function(data, textStatus) {
        					if(data.error) {
        						alert(data.error_msg);
        						nErrorFlag = 1;
        						return;
        					} else {
        						$('#step2_ok_btn_qqq').parents('form:first').submit();
        					}
        				},
//        				error: function(XMLHttpRequest, textStatus, errorThrow) { alert('AJAX Error : '+textStatus + '    ' + errorThrow); },
        				type: 'POST'
        			});
        		}
        	});
        }
        return false;
    });
    $('#ok_btn').click(function () {
        if(!checkClientId(this.form)) {
            return false;
        }
        this.form.submit();
    });
    $('input#back_btn').click(function() {
        $(this).hide();
        $('#ok_btn').hide();
        $('#step2_ok_btn_qqq').hide();
        $('#next_btn').show();
        $('div#first_step').show();
        $('div#second_step').hide();
        $('div#TB_ajaxContent').css({height: 145});
        $('div#second_step_for_exist_client').hide();
    });
    
    $('#select_country').change(function() {
		aCanadaProvinces = new Array('ON', 'QC', 'NS', 'NB', 'MB', 'BC', 'PE', 'SK', 'AB', 'NL', 'NT', 'YT', 'NU');
		if (typeof(aEUCountries) != 'undefined' && aEUCountries.in_array($(this).val())) {
			$('div#check_country_div').hide();
		} else {
            $('div#check_country_div').show();
		}
		if($('#select_country').val() != 'CA' && $('#select_country').val() != 'US') {
			$('#select_state').attr('name', 'state_old');
			$('#select_state').attr('disabled', true);
			$('#state_text').attr('name', 'state');
			$('#state_text').attr('disabled', false);
			$('.state').hide();
			if(typeof(aEUCountries) != 'undefined') {		
				if((aEUCountries.length > 0 && aEUCountries.in_array($('#select_country').val())) || ($('#select_country').val() == 'GB')) {
					$('.vat').show();
				} else {
					$('.vat').hide();
				}
			} else {
				$('.vat').show();
			}
			$('tr.state_text').show();
			if(typeof($('#state_def')) != 'undefined') {
			    if($('#state_def').val() != '') {
			        $('#state_text').val($('#state_def').val());
                } else {
                    $('#state_text').val('');
                }
            } else {
                $('#state_text').val('');
            }
		} else {
			sStartValue = $('#select_state').val();
			aStates = new Array();
			$('#states_full option').each(function () {
				aStateData = new Array();
				aStateData['code'] = $(this).val();
				aStateData['name'] = $(this).text();
				//aStates[aStateData['code']] = aStateData;
				aStates[aStates.length] = aStateData;
			});
			$('#select_state').attr('disabled', false);
			$('.state').show();
			$('#select_state option').each(function () { $(this).remove(); });
			for(nStateIndex = 0; nStateIndex < aStates.length; nStateIndex++) {
				aStateData = new Array();
				aStateData = aStates[nStateIndex];
				var selectOption = document.createElement('option');
				selectOption.value = aStateData['code'];
				selectOption.text = aStateData['name'];
				if($('#select_country').val() == 'US') {
					if(!aCanadaProvinces.in_array(aStateData['code'])) {
						try { $("#select_state")[0].add(selectOption,null); // standards compliant
						} catch(ex) { $("#select_state")[0].add(selectOption); // IE only 
						}
					}
				}
				if($('#select_country').val() == 'CA') {
					if(aCanadaProvinces.in_array(aStateData['code'])) {
						try { $("#select_state")[0].add(selectOption,null); // standards compliant
						} catch(ex) { $("#select_state")[0].add(selectOption); // IE only 
						}
					}
				}
			}
		    $('#state_text').attr('name', 'state_text');
		    $('#state_text').attr('disabled', true);
			$('#select_state').attr('name', 'state');
			if($('#select_state option[value="'+sStartValue+'"]').length > 0) {
				$('#select_state option[value="'+sStartValue+'"]').attr('selected', true);
			}
			$('.vat').hide();
			$('tr.state_text').hide();
		}
		if($('#select_country').val() != 'US') {
			$('tr.zip td.form_tbl_label').html('<span class="asterisk">*</span>Postal code');
		} else {
			$('tr.zip td.form_tbl_label').html('<span class="asterisk">*</span>ZIP');
		}
	}).change();
}

function PromoFormSubmit(applyButton) {
	if($('#promo_code').val() == '') { 
		alert('Please enter promotion code'); 
	} else { 
		applyButton.form.submit();
	}
	return false;
}

function delivery_countryChange() {
	if($('#delivery_select_country').val() != 'CA' && $('#delivery_select_country').val() != 'US') {
		/*$('#delivery_select_state').attr('name', 'delivery_state_old');
		$('#delivery_select_state').attr('disabled', true);
		$('#delivery_state_hidden').attr('name', 'delivery_state');
		$('.delivery_state').hide();
		if(nDeliveryHiddenFlag == 0) {
			$('.delivery_vat').show();
		}*/
		$('#delivery_select_state').attr('name', 'delivery_state_old');
		$('#delivery_select_state').attr('disabled', true);
		$('#delivery_state_text').attr('name', 'delivery_state');
		$('.delivery_state').hide();
		$('.delivery_vat').show();
		$('tr.delivery_state_text').show();
	} else {
		$('#delivery_select_state').attr('disabled', false);
		$('.delivery_state').show();
		$('#delivery_state_text').attr('name', 'delivery_state_text');
		$('#delivery_select_state').attr('name', 'delivery_state');
		$('.delivery_vat').hide();
		$('tr.delivery_state_text').hide();
		/*$('#delivery_select_state').attr('disabled', false);
		$('#delivery_state_hidden').attr('name', 'delivery_state_hidden');
		$('#delivery_select_state').attr('name', 'delivery_state');
		if(nDeliveryHiddenFlag == 0) {
			$('.delivery_state').show();
		}
		$('.delivery_vat').hide();*/
	}
}


function validate_CheckoutDetailsForm2(frm) {
  var value = '';
  var errFlag = new Array();
  var _qfGroups = {};
  _qfMsg = '';

  value = frm.elements['email'].value;
  var regex = /^((\"[^\"\f\n\r\t\v\b]+\")|([\w\!\#\$\%\&'\*\+\-\~\/\^\`\|\{\}]+(\.[\w\!\#\$\%\&'\*\+\-\~\/\^\`\|\{\}]+)*))@((\[(((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9])))\])|(((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9])))|((([A-Za-z0-9\-])+\.)+[A-Za-z\-]+))$/;
  if (value != '' && !regex.test(value) && !errFlag['email']) {
    errFlag['email'] = true;
    _qfMsg = _qfMsg + '\n - Invalid email format';
  }

  value = frm.elements['email'].value;
  if (value == '' && !errFlag['email']) {
    errFlag['email'] = true;
    _qfMsg = _qfMsg + '\n - Email is required';
  }

  value = frm.elements['first_name'].value;
  if (value == '' && !errFlag['first_name']) {
    errFlag['first_name'] = true;
    _qfMsg = _qfMsg + '\n - First Name is required';
  }

  value = frm.elements['last_name'].value;
  if (value == '' && !errFlag['last_name']) {
    errFlag['last_name'] = true;
    _qfMsg = _qfMsg + '\n - Last Name is required';
  }
  
  value = frm.elements['phone'].value;
  if (value == '' && !errFlag['phone']) {
    errFlag['phone'] = true;
    _qfMsg = _qfMsg + '\n - Phone number is required';
  }
  
  value = frm.elements['address1'].value;
  if (value == '' && !errFlag['address1']) {
    errFlag['address1'] = true;
    _qfMsg = _qfMsg + '\n - Address #1 is required';
  }

  value = frm.elements['city'].value;
  if (value == '' && !errFlag['city']) {
    errFlag['city'] = true;
    _qfMsg = _qfMsg + '\n - City is required';
  }
  if($('#select_country').val() == 'CA' || $('#select_country').val() == 'US') {
	frm.elements['state'].value = $('#select_state').val();
  } else {
	if($('#state_text').val() == '' && !errFlag['state']) {
	    errFlag['state'] = true;
	    _qfMsg = _qfMsg + '\n - State/Province is required';
	}	
  }
  value = frm.elements['zip'].value;
  if (value == '' && !errFlag['zip']) {
    errFlag['zip'] = true;
    _qfMsg = _qfMsg + '\n - ZIP/Postal Code is required';
  }

  value = frm.elements['country'].selectedIndex == -1? '': frm.elements['country'].options[frm.elements['country'].selectedIndex].value;

  if (value == '' && !errFlag['country']) {
    errFlag['country'] = true;
    _qfMsg = _qfMsg + '\n - Country is required';
  }
  countryCode = value;  
  value = frm.elements['vat'].value;
  if (value != '' && $('.vat').css('display')!= 'none') {
  	if ((!checkVATNumber(value, countryCode) && !checkVATNumber(countryCode+value, countryCode))  && !errFlag['vat']) {
		errFlag['vat'] = true;
		_qfMsg = _qfMsg + '\n - VAT number has an invalid format';
	}
  }
  
  value = frm.elements['delivery_country'].selectedIndex == -1? '': frm.elements['delivery_country'].options[frm.elements['delivery_country'].selectedIndex].value;

  if (value == '' && !errFlag['delivery_country'] && $('.delivery_country').css('display')!= 'none') {
  	errFlag['delivery_country'] = true;
    _qfMsg = _qfMsg + '\n - Delivery Address: Country is required';
  }
  countryCode = value;

  value = frm.elements['delivery_address1'].value;
  //delivery_address1
  if (value == '' && !errFlag['delivery_address1'] && $('.delivery_address1').css('display')!= 'none') {
    errFlag['delivery_address1'] = true;
    _qfMsg = _qfMsg + '\n - Delivery Address: Address #1 is required';
  }

  value = frm.elements['delivery_city'].value;
  if (value == '' && !errFlag['delivery_city'] && $('.delivery_city').css('display')!= 'none') {
    errFlag['delivery_city'] = true;
    _qfMsg = _qfMsg + '\n - Delivery Address: City is required';
  }
  
  if($('.delivery_state').css('display') != 'none' || $('.delivery_state_text').css('display') != 'none') {
  	  if($('#delivery_select_country').val() == 'CA' || $('#delivery_select_country').val() == 'US') {
		frm.elements['delivery_state'].value = $('#delivery_select_state').val(); 
	  } else {
		if($('#delivery_state_text').val() == '' && !errFlag['delivery_state']) {
		    errFlag['delivery_state'] = true;
		    _qfMsg = _qfMsg + '\n - Delivery Address: State/Province is required';
		}	
	  }
  }
  
  /*if(typeof(frm.elements['delivery_state'].selectedIndex) != 'undefined' && $(frm.elements['delivery_state']).css('display') != 'none') {
	  value = frm.elements['delivery_state'].selectedIndex == -1? '': frm.elements['delivery_state'].options[frm.elements['delivery_state'].selectedIndex].value;
	
	  if (value == '' && !errFlag['delivery_state'] && $('.delivery_state').css('display')!= 'none') {
	    errFlag['delivery_state'] = true;
	    _qfMsg = _qfMsg + '\n - Delivery Address: State is required';
	  }
  }*/
  value = frm.elements['delivery_vat'].value;
  if (value != '' && $('.delivery_vat').css('display')!= 'none') {
  	if ((!checkVATNumber(value, countryCode) && !checkVATNumber(countryCode+value, countryCode))  && !errFlag['delivery_vat']) {
		errFlag['delivery_vat'] = true;
		_qfMsg = _qfMsg + '\n - Delivery VAT number has an invalid format';
	}
  }

 
  value = frm.elements['delivery_zip'].value;
  if (value == '' && !errFlag['delivery_zip'] && $('.delivery_zip').css('display')!= 'none') {
    errFlag['delivery_zip'] = true;
    _qfMsg = _qfMsg + '\n - Delivery Address: ZIP/Postal Code is required';
  }
  
  var paypal_type = $('input[name="paypal_type"]:checked').val();
  if (paypal_type == 3) {
        if(typeof(frm.elements['card_type']) != 'undefined') {
    		value = frm.elements['card_type'].selectedIndex == -1? '': frm.elements['card_type'].options[frm.elements['card_type'].selectedIndex].value;
    		if (value == '' && !errFlag['card_type']) {
    			errFlag['card_type'] = true;
    			_qfMsg = _qfMsg + '\n - Type of Card is required';
    		}
    	}
    	if(typeof(frm.elements['card_numb']) != 'undefined') {
    		value = frm.elements['card_numb'].value;
    		if (value == '' && !errFlag['card_numb']) {
    			errFlag['card_numb'] = true;
    			_qfMsg = _qfMsg + '\n - Card Number is required';
    		}
    	}
    	if(typeof(frm.elements['cvv2_numb']) != 'undefined') {
    		value = frm.elements['cvv2_numb'].value;
    		if (value == '' && !errFlag['cvv2_numb']) {
    			errFlag['cvv2_numb'] = true;
    			_qfMsg = _qfMsg + '\n - CVV2 is required';
    		}
    	}
      _qfGroups['exp_date'] = {'exp_date[exp_date1]': true, 'exp_date[exp_date2]': true};
      value = new Array();
      var valueIdx = 0;
      for (var i = 0; i < frm.elements.length; i++) {
        var _element = frm.elements[i];
        if (_element.name in _qfGroups['exp_date']) {
          switch (_element.type) {
            case 'checkbox':
            case 'radio':
              if (_element.checked) {
                value[valueIdx++] = _element.value;
              }
              break;
            case 'select-one':
              if (-1 != _element.selectedIndex) {
                value[valueIdx++] = _element.options[_element.selectedIndex].value;
              }
              break;
            case 'select-multiple':
              var tmpVal = new Array();
              var tmpIdx = 0;
              for (var j = 0; j < _element.options.length; j++) {
                if (_element.options[j].selected) {
                  tmpVal[tmpIdx++] = _element.options[j].value;
                }
              }
              if (tmpIdx > 0) {
                value[valueIdx++] = tmpVal;
              }
              break;
            default:
              value[valueIdx++] = _element.value;
          }
        }
      }
    	if(typeof(frm.elements['exp_date']) != 'undefined') {
    		if (value == '' && !errFlag['exp_date']) {
    			errFlag['exp_date'] = true;
    			_qfMsg = _qfMsg + '\n - Exp. Date is required';
    		}
    	}
    }
	
	if(typeof(frm.elements['u_login']) != 'undefined') {
		value = frm.elements['u_login'].value;
		if (value == '' && !errFlag['u_login']) {
			errFlag['u_login'] = true;
			_qfMsg = _qfMsg + '\n - Login is required';
		}
	}
  
	if(typeof(frm.elements['u_password']) != 'undefined') {
		value = frm.elements['u_password'].value;
		if (value == '' && !errFlag['u_password']) {
			errFlag['u_password'] = true;
			_qfMsg = _qfMsg + '\n - Password is required';
		}
	}
	if(typeof(frm.elements['u_re_password']) != 'undefined') {
		value = frm.elements['u_re_password'].value;
		if (value == '' && !errFlag['u_re_password']) {
			errFlag['u_re_password'] = true;
			_qfMsg = _qfMsg + '\n - Confirm Password is required';
		}
	}
	
	if (typeof($('#prev_country')) != 'undefined') {
		if($('#select_country').val() != $('#prev_country').val()) {
			if($('div#check_country_div').css('display') != 'none') {
				if($('#country_agree').attr('checked') == false) {
					errFlag['country_agree'] = true;
					_qfMsg = _qfMsg + '\n - You must agree with the country statement';
				}
			}
		}
	}
		
  if (_qfMsg != '') {
    _qfMsg = 'Invalid information entered.' + _qfMsg;
    _qfMsg = _qfMsg + '\nPlease correct these fields.';
    alert(_qfMsg);
    return false;
  }
  
  return true;
}
