function get_window_event(e) {
    return (event) ? event : e;
}

function set_element_display(elem_id, display_value) {
	document.getElementById(elem_id).style.display = display_value;
}

function update_footer_top() {

   if(document.getElementById('left')!=null){
    document.getElementById('bottom').style.top=
      (238+29+10
       + Math.max(
           (parseInt(document.getElementById('left').clientHeight)+289)
           , (parseInt(document.getElementById('center').clientHeight)+289)
           , (parseInt(document.getElementById('right').clientHeight)+20)
         )
      )+'px';
    }
    else{
      document.getElementById('bottom').style.top=
      (238+29
       + Math.max(
           (parseInt(document.getElementById('center').clientHeight)+289+30)
           , (parseInt(document.getElementById('right').clientHeight)+20)
         )
      )+'px';
    }
    
    //alert( document.getElementById('center').clientHeight);
    document.getElementById('bottom').style.display='block';
}


function test()
   {
   		alert();
   
   }
   
   function fill_address(postcode,postcodeId,suburb,suburbId,state,stateId,div)
   {
	   var s = suburb.split("%%%");
	   var i = 0;
	   var ss="";
	   for(i=0; i<s.length; i++)
	   {
			ss = ss + " " + s[i];
	   }
	   document.getElementById(postcodeId).value = postcode;
	   document.getElementById(suburbId).value = ss;
	   document.getElementById(stateId).value = state;
	   document.getElementById(div).style.display = 'none';
	   //alert(postcode);
	   
   }
   
   function postcode_lookup(postcodeId,suburbId,stateId,div)
   {
	    
	   var postcode = document.getElementById(postcodeId).value;
	   var suburb = document.getElementById(suburbId).value;
	   if (suburb=="") suburb="empty";
	   var state = document.getElementById(stateId).value;
	   document.getElementById("main_"+div).style.display='block';
	   
	    var url = 'ajax_frontend.php';    
    	//alert(email);
	    var params = 'cmd=address_lookup&postcode='+postcode+'&suburb='+suburb+'&state='+state+'&div='+div+'&postcodeId='+postcodeId+'&suburbId='+suburbId+'&stateId='+stateId;
   		//alert(params);
    	var ajax = new Ajax.Updater({success: div},url,{method: 'get',parameters: params });
		
		
   }
   
   function doformSubmit()
{
   var frm = document.loginForm;
   frm.submit();
}

   
   function update_discount_order(discount_code,qty,total,order_id)
   {
		//alert(discount_code+" " +qty+" "+total);
		var div = "discount_id";
		if (order_id==null) order_id = 0;
	    var url = 'ajax_frontend.php';    
    	//alert(email);
	    var params = 'cmd=discount&discount_code='+discount_code+'&qty='+qty+'&total='+total+'&order_id='+order_id;
   		//alert(params);
    	var ajax = new Ajax.Updater({success: div},url,{method: 'get',parameters: params });
   }
   
function search_header()
{
	var div = "search_header";
	//var obj = "pc_games";
	
	if (document.getElementById('cat_select'))
	{
		var obj = document.getElementById('cat_select').value;
	}
	
	var url;
	var params;
	var ajax;
	
	url         = '/ajax_frontend.php';
    params      = 'cmd=update_additional_search_filter&cat_select='+obj;
    
    ajax        = new Ajax.Updater({success: 'additional_search_filter'},url,{method: 'get',parameters: params });
	
    url         = '/ajax_frontend.php';
    params      = 'cmd=update_category_search_filter&cat_select='+obj;
    
    ajax        = new Ajax.Updater({success: 'category_search_filter'},url,{method: 'get',parameters: params });
    
    
}

function search_order_on_order_history() {
	var order_id					= document.search_order_frm.order_id.value;
	var order_status				= document.search_order_frm.order_status.value;
	var is_order_date_specified		= (document.search_order_frm.is_order_date_specified[1].checked) ? 'TRUE' : 'FALSE';
	var order_start_date			= document.search_order_frm.order_start_date.value;
	var order_end_date				= document.search_order_frm.order_end_date.value;
	
	var url		= 'order_history.php';
	var params	= 'cmd=get_search_order_results_html&order_id=' + order_id + '&order_status=' + order_status + '&is_order_date_specified=' + is_order_date_specified + '&order_start_date=' + order_start_date + '&order_end_date=' + order_end_date;
	
	var ajax	= new Ajax.Updater({success: 'search_order_results'},url,{method: 'get',parameters: params, evalScripts: true  });
	document.getElementById('search_order_results').style.display="block";
}

function view_search_order_results() {
	document.getElementById('search_order_results_contents').style.display="block";
	document.getElementById('view_order_contents').style.display="none";
	
	/*
	document.getElementById('search_order_results_tab_a0').className		= 'login_tab_on_1';
	document.getElementById('search_order_results_tab_b0').className		= 'tab_1_b_on';
	document.getElementById('search_order_results_tab_b1').className		= 'tab_1_text_on';
	document.getElementById('search_order_results_tab_c0').className		= 'tab_1_c_on';
	
	document.getElementById('view_order_tab_a0').className					= 'tab_2_a_off';
	document.getElementById('view_order_tab_b0').className					= 'tab_2_b_off';
	document.getElementById('view_order_tab_b1').className					= 'tab_2_text_off';
	document.getElementById('view_order_tab_c0').className					= 'tab_3_c_off';*/
}

function view_order_on_order_history(order_id) {
	var url		= 'order_history.php';
	var params	= 'cmd=get_view_order_html&order_id=' + order_id;
	
	var ajax	= new Ajax.Updater({success: 'view_order_contents'},url,{method: 'get',parameters: params, evalScripts: true  });
	document.getElementById('search_order_results_contents').style.display="none";
	document.getElementById('view_order_contents').style.display="block";
	
	/*document.getElementById('search_order_results_tab_a0').className		= 'login_tab_off_1';
	document.getElementById('search_order_results_tab_b0').className		= 'tab_1_b_off';
	document.getElementById('search_order_results_tab_b1').className		= 'tab_1_text_off';
	document.getElementById('search_order_results_tab_c0').className		= 'tab_1_c_off';
	
	document.getElementById('view_order_tab_a0').className					= 'tab_2_a_on';
	document.getElementById('view_order_tab_b0').className					= 'tab_2_b_on';
	document.getElementById('view_order_tab_b1').className					= 'tab_2_text_on';
	document.getElementById('view_order_tab_c0').className					= 'tab_3_c_on';
	
	document.getElementById('view_order_tab_b1').innerHTML					= order_id;
	document.getElementById('view_order_tab').style.display					= 'block';*/
}

function subcribe_newsletter()
{
   var div = "msg2";
   var pc_games = 0;
   if (document.getElementById('cb_pc_games').checked==true) pc_games = 1;
   var cb_pc_downloads  = 0;
   if (document.getElementById('cb_pc_downloads').checked==true) cb_pc_downloads = 1
   var cb_ps3 = 0;
   if (document.getElementById('cb_ps3').checked==true) cb_ps3 = 1;
   var cb_ps2 = 0;
   if (document.getElementById('cb_ps2').checked==true) cb_ps2 = 1;
   var cb_xbox360 = 0;
   if (document.getElementById('cb_xbox360').checked==true) cb_xbox360 = 1;
   var cb_wii = 0;
   if (document.getElementById('cb_wii').checked==true) cb_wii = 1;
   var cb_psp = 0;
   if (document.getElementById('cb_psp').checked==true) cb_psp = 1;
   var cb_ds = 0;
   if (document.getElementById('cb_ds').checked==true) cb_ds = 1;
   var cb_xbox = 0;
   //if (document.getElementById('cb_xbox').checked==true) cb_xbox = 1;
   var cb_gba = 0;
   //if (document.getElementById('cb_gba').checked==true) cb_gba = 1;
   var cb_gc = 0;
   
   var cb_dvd = 0;
   if (document.getElementById('cb_dvd').checked==true) cb_dvd = 1;
   var cb_hddvd = 0;
   //if (document.getElementById('cb_hddvd').checked==true) cb_hddvd = 1;
   var cb_blueray = 0;
   if (document.getElementById('cb_blueray').checked==true) cb_blueray = 1;
   var cb_cd = 0;
   if (document.getElementById('cb_cd').checked==true) cb_cd = 1;
   
   var email = document.getElementById('email2').value;
   
    if (validate_email(email) === true) {
        document.getElementById('msg2').innerHTML       = 'Newsletter subscription is successful';
        
        var url = '/ajax_frontend.php';
        var params = 'cmd=subcribe_newsletter&cb_pc_games='+pc_games+'&cb_pc_downloads=' + cb_pc_downloads + '&cb_ps3='+cb_ps3+'&cb_ps2='+cb_ps2+'&cb_xbox360='+cb_xbox360+'&cb_wii='+cb_wii+'&cb_psp='+cb_psp+'&cb_ds='+cb_ds+'&cb_xbox='+cb_xbox+'&cb_gba='+cb_gba+'&cb_gc='+cb_gc+'&cb_dvd='+cb_dvd+'&cb_hddvd='+cb_hddvd+'&cb_blueray='+cb_blueray+'&cb_cd='+cb_cd+'&email='+email;
        var ajax = new Ajax.Request(url,{method: 'get',asynchronous: true,parameters: params});  
    } else {
        document.getElementById('msg2').innerHTML       = '<font color="red">invalid email</font>';
    }
	return false;
}

function send_to_friend()

{

   var div = "msg_friend";

   var recipient_full_name = document.getElementById('recipient_full_name').value;

   var recipient_email = document.getElementById('recipient_email').value;

   var sender_full_name = document.getElementById('sender_full_name').value;
   
   var sender_email		= document.getElementById('sender_email').value;

   var send_to_friend_message = document.getElementById('send_to_friend_message').value;
   
   var send_to_friend_url	= document.getElementById('send_to_friend_url').value;

   var url = '/ajax_frontend.php';

   var params = 'cmd=send_to_friend&recipient_email='+recipient_email+'&recipient_full_name='+recipient_full_name+'&sender_email='+sender_email+'&sender_full_name='+sender_full_name+'&send_to_friend_message='+encodeURIComponent(send_to_friend_message) + '&send_to_friend_url=' + encodeURIComponent(send_to_friend_url);

   var ajax = new Ajax.Updater({success: div},url,{method: 'get',parameters: params });

}

function send_wishlist_to_friend(product_id) {
	var recipient_full_name = document.getElementById('recipient_full_name').value;
	var recipient_email = document.getElementById('recipient_email').value;
	var sender_full_name = document.getElementById('sender_full_name').value;
	var send_to_friend_message = document.getElementById('send_to_friend_message').value;
	var product_id = document.getElementById('wishlist_product_id').value;
	
	var url		= 'ajax_frontend.php';
	var params	= 'cmd=send_wishlist_to_friend&recipient_email='+recipient_email+'&recipient_full_name='+recipient_full_name+'&sender_full_name='+sender_full_name+'&send_to_friend_message='+send_to_friend_message + '&product_id=' + product_id; 
	
	var ajax = new Ajax.Updater({success: 'response_message'},url,{method: 'get',parameters: params });
}

function check_gift_page()
{
   var div = "main_content";
   var url = 'ajax_frontend.php';    
   var ajax = new Ajax.Updater({success: div},url,{method: 'get',parameters: 'cmd=check_gift_page'});
}

function gift_page()
{
   var div = "main_content";
   var url = 'ajax_frontend.php';    
   var ajax = new Ajax.Updater({success: div},url,{method: 'get',parameters: 'cmd=gift_page'});
}

function signin_page()
{
   var div = "main_content";
   var url = 'ajax_frontend.php';    
   var ajax = new Ajax.Updater({success: div},url,{method: 'get',parameters: 'cmd=signin_page'});
}

function register_page()
{
   var div = "main_content";
   var url = 'ajax_frontend.php';    
   var ajax = new Ajax.Updater({success: div},url,{method: 'get',parameters: 'cmd=register_page'});
}

function add_to_basket_fix()
{
	var o1=document.getElementById('cart_amount');
	var o2=document.getElementById('total_amount_1');
	if (o1!==null && o2!=null) o2.innerHTML=o1.innerHTML;
	
	var o1=document.getElementById('cart_delivery');
	var o2=document.getElementById('total_delivery');
	if (o1!==null && o2!=null) o2.innerHTML=o1.innerHTML;

	var o1=document.getElementById('cart_item');
	var o2=document.getElementById('total_item');
	if (o1!==null && o2!=null) o2.innerHTML=o1.innerHTML;

	var o1=document.getElementById('cart_item');
	var o2=document.getElementById('total_items');
	if (o1!==null && o2!=null) o2.innerHTML=o1.innerHTML;
}


function add_to_basket(product_id, div)
{
   //alert(product_id + "  " +div);
	disable_add_to_cart_btn(product_id);

	document.getElementById('cart2').style.display='none';

   var url = '/add_to_basket.php';    
   var ajax = new Ajax.Updater({success: div},url,{method: 'get',parameters: 'cmd=add_to_basket&product_id='+parseInt(product_id)});
   // ajax_call = new Ajax.Request('shopping.phpproduct_id='+product_id,{method: 'get',asynchronous: true});  
   document.getElementById('cart2').style.display='block';
   
   display_add_to_cart_success_msg_div(product_id);
   
   // BEGIN:    by Richard
   window.setTimeout("ajax_update_shopping_cart_floating_panel()",200);
   window.setTimeout("add_to_basket_fix()",1000);
   setTimeout("document.getElementById('cart2').style.display='none'",5000);
   
   //document.getElementById('shopping_cart_img').src	= '/images/mybargain/top_section/btn_checkout.gif';
   // END:      by Richard
   
    window.setTimeout(
		'enable_add_to_cart_btn(' + product_id + ', \'javascript: add_to_basket(' + product_id + ',\\\'cart2\\\');\')'
		, 1000
	);
}  

function ajax_update_shopping_cart_floating_panel() {
	var url	= '/ajax_update_shopping_cart_floating_panel.php';
	var ajax = new Ajax.Updater({success: 'shopping_cart_floating_panel'},url,{method: 'get',parameters: 'cmd=update_shopping_cart_floating_panel', evalScripts: true});
}

function add_to_basket_products(product_id, div, n)
{
   //alert(product_id + "  " +div);
	disable_add_to_cart_btn(product_id);
    
	document.getElementById('cart2').style.display='none';
	
   var url = '/add_to_basket.php';    
   var ajax = new Ajax.Updater({success: div},url,{method: 'get',parameters: 'cmd=add_to_basket&product_id='+parseInt(product_id)+'&quantity='+n});
   // ajax_call = new Ajax.Request('shopping.phpproduct_id='+product_id,{method: 'get',asynchronous: true});  
   document.getElementById('cart2').style.display='block';
   
   display_add_to_cart_success_msg_div(product_id);
   
   // BEGIN:    by Richard
    window.setTimeout("ajax_update_shopping_cart_floating_panel()",200);
   window.setTimeout("add_to_basket_fix()",1000);
   setTimeout("document.getElementById('cart2').style.display='none'",5000);
   
   //document.getElementById('shopping_cart_img').src	= '/images/mybargain/top_section/btn_checkout.gif';
   // END:      by Richard
   
	window.setTimeout(
		'enable_add_to_cart_btn(' + product_id + ', \'javascript: add_to_basket_products(' + product_id + ',\\\'cart2\\\',document.shopForm.quantity.value);\')'
		, 1000
	);
}
function add_to_basket_products_details(product_id, div, n)
{
   //alert(product_id + "  " +div);
	//disable_add_to_cart_btn(product_id);
    
	document.getElementById('cart2').style.display='none';
	
   var url = '/add_to_basket.php';    
   var ajax = new Ajax.Updater({success: div},url,{method: 'get',parameters: 'cmd=add_to_basket&product_id='+parseInt(product_id)+'&quantity='+n});
   // ajax_call = new Ajax.Request('shopping.phpproduct_id='+product_id,{method: 'get',asynchronous: true});  
   document.getElementById('cart2').style.display='block';
   
   //display_add_to_cart_success_msg_div(product_id);
   
   // BEGIN:    by Richard
    window.setTimeout("ajax_update_shopping_cart_floating_panel()",200);
   window.setTimeout("add_to_basket_fix()",1000);
   setTimeout("document.getElementById('cart2').style.display='none'",5000);
   
   //document.getElementById('shopping_cart_img').src	= '/images/mybargain/top_section/btn_checkout.gif';
   // END:      by Richard
   
	//window.setTimeout(
	//	'enable_add_to_cart_btn(' + product_id + ', \'javascript: add_to_basket_products(' + product_id + ',\\\'cart2\\\',document.shopForm.quantity.value);\')'
	//	, 1000
	//);
}

function display_add_to_cart_success_msg_div(product_id) {
	hide_add_to_cart_success_msg_div(product_id)
	
	var add_to_cart_success_msg_div	= document.getElementById('add_to_cart_success_msg');
	var clone			= add_to_cart_success_msg_div.cloneNode(true);
	document.getElementById('document_body').appendChild(clone);
	
	var add_to_cart_btn_id	= 'add_to_cart_btn_' + product_id;
	var add_to_cart_btn_div	= document.getElementById(add_to_cart_btn_id);
	
	clone.id			= 'add_to_cart_success_msg_' + product_id;
	
	clone.style.top		= (get_div_top(add_to_cart_btn_div) + 30) + 'px';
	clone.style.left	= (get_div_left(add_to_cart_btn_div) + 30) + 'px';
	clone.style.display	= 'block';
	
	window.setTimeout(
		'hide_add_to_cart_success_msg_div(' + product_id + ')'
		, 5000
	);
}

function hide_add_to_cart_success_msg_div(product_id) {
	var clone			= document.getElementById('add_to_cart_success_msg_' + product_id);
	if (clone != null) {
		document.getElementById('document_body').removeChild(clone);
	}
}

var download_free_trial_user_email_error_msg_div;
var download_free_trial_user_email_error_msg_text;
var download_free_trial_popup_top_left_corner_img_div;
var r_download_free_trial_popup_top_left_corner_img_div;
var download_free_trial_popup_bottom_border_img_div;
var r_download_free_trial_popup_bottom_border_img_div;

var active_download_free_trial_popup_div_prod_id;

function display_download_free_trial_popup_div(e, prod_id, download_free_trial_btn_id) {
    // BEGIN:   hack
    if (download_free_trial_user_email_error_msg_div == null
        || download_free_trial_user_email_error_msg_text == null) {
        download_free_trial_user_email_error_msg_div    = document.getElementById('download_free_trial_user_email_error_msg_div');
        download_free_trial_user_email_error_msg_text   = document.getElementById('download_free_trial_user_email_error_msg_text');
        download_free_trial_popup_top_left_corner_img_div   = document.getElementById('download_free_trial_popup_top_left_corner_img_div');
        download_free_trial_popup_bottom_border_img_div     = document.getElementById('download_free_trial_popup_bottom_border_img_div');
        r_download_free_trial_popup_top_left_corner_img_div = document.getElementById('r_download_free_trial_popup_top_left_corner_img_div');
        r_download_free_trial_popup_bottom_border_img_div   = document.getElementById('r_download_free_trial_popup_bottom_border_img_div');
    }
    
    //alert(download_free_trial_user_email_error_msg_div);
    //alert(download_free_trial_user_email_error_msg_text);
    
    download_free_trial_user_email_error_msg_div.id     = 'download_free_trial_user_email_error_msg_div_' + prod_id;
    download_free_trial_user_email_error_msg_text.id    = 'download_free_trial_user_email_error_msg_text_' + prod_id;
    download_free_trial_popup_top_left_corner_img_div.id     = 'download_free_trial_popup_top_left_corner_img_div_' + prod_id;
    download_free_trial_popup_bottom_border_img_div.id       = 'download_free_trial_popup_bottom_border_img_div_' +  prod_id;
    r_download_free_trial_popup_top_left_corner_img_div.id   = 'r_download_free_trial_popup_top_left_corner_img_div' + prod_id;
    r_download_free_trial_popup_bottom_border_img_div.id     = 'r_download_free_trial_popup_bottom_border_img_div' + prod_id;
    // END:     hack
    
    if (! download_free_trial_btn_id) {
        var download_free_trial_btn_id	= 'download_free_trial_btn_' + prod_id;
    }
    var download_free_trial_btn_div	= document.getElementById(download_free_trial_btn_id);
    var clone_top;
    
    if (e.clientY > get_window_height() / 2 && get_div_top(download_free_trial_btn_div) > 560) {
        // display download_free_trial_popup_div to the top
        clone_top   = (get_div_top(download_free_trial_btn_div) - 32 - 527);
        
        download_free_trial_popup_top_left_corner_img_div.style.display     = 'none';
        download_free_trial_popup_bottom_border_img_div.style.display       = 'none';
        r_download_free_trial_popup_top_left_corner_img_div.style.display   = 'block';
        r_download_free_trial_popup_bottom_border_img_div.style.display     = 'block';
    } else {
        // display download_free_trial_popup_div to the bottom
        clone_top   = (get_div_top(download_free_trial_btn_div) + 32);
        
        download_free_trial_popup_top_left_corner_img_div.style.display     = 'block';
        download_free_trial_popup_bottom_border_img_div.style.display       = 'block';
        r_download_free_trial_popup_top_left_corner_img_div.style.display   = 'none';
        r_download_free_trial_popup_bottom_border_img_div.style.display     = 'none';
    }

    var download_free_trial_popup_div	= document.getElementById('download_free_trial_popup_div');
    
    if (active_download_free_trial_popup_div_prod_id != null) {
        hide_download_free_trial_popup_div(active_download_free_trial_popup_div_prod_id);
    }
    
    var clone			= download_free_trial_popup_div.cloneNode(true);
    download_free_trial_user_email_error_msg_div.id     = 'download_free_trial_user_email_error_msg_div';
    download_free_trial_user_email_error_msg_text.id    = 'download_free_trial_user_email_error_msg_text';
    
    document.getElementById('document_body').appendChild(clone);
    
    clone.id			= 'download_free_trial_popup_div_' + prod_id;
    
    clone.style.top		= clone_top + 'px';
    
	clone.style.left	= (get_div_left(download_free_trial_btn_div)) + 'px';
	clone.style.display	= 'block';
	
	var form                    = clone.firstChild;
	form.id                     = 'download_free_trial_popup_form_' + prod_id;
	form.name                   = 'download_free_trial_popup_form_' + prod_id;
	form.prod_id.value          = prod_id;
	
	active_download_free_trial_popup_div_prod_id    = prod_id;
}

function hide_download_free_trial_popup_div(prod_id) {
    var clone			= document.getElementById('download_free_trial_popup_div_' + prod_id);
	if (clone != null) {
		document.getElementById('document_body').removeChild(clone);
	}
}

function sleep(delay)
{
    var start = new Date().getTime();
    while (new Date().getTime() < start + delay);
}

function download_free_trial_on_popup_div(form) {
    var prod_id             = form.prod_id.value;
    var user_email          = form.user_email.value;
    var user_is_subscribed  = form.user_is_subscribed.checked;
    
    var ret_val;
    
    var download_free_trial_user_email_error_msg_div    = document.getElementById('download_free_trial_user_email_error_msg_div_' + prod_id);
    var download_free_trial_user_email_error_msg_text   = document.getElementById('download_free_trial_user_email_error_msg_text_' + prod_id);
    
    if (validate_email(user_email) == true) {
   
        //document.getElementById('download_free_trial_user_email_error_msg_text').innerHTML       = 'Sign up for the latest news &amp; offers';
        //document.getElementById('download_free_trial_user_email_error_msg_div').style.display = 'block';
        download_free_trial_user_email_error_msg_div.style.display  = 'none';
        
        var url;
        var params;
        var ajax;
        
        url     =   '/ajax_frontend.php';
        params  =   'cmd=download_free_trial&user_email=' + user_email + '&prod_id=' + prod_id;
        ajax    =   new Ajax.Request(url,{method: 'get',asynchronous: true,parameters: params});
        sleep(1000);
        
        if (user_is_subscribed) {
            url = '/ajax_frontend.php';
            params = 'cmd=subcribe_newsletter&email='+user_email;
            ajax = new Ajax.Request(url,{method: 'get',asynchronous: true,parameters: params});
            sleep(1000);
        }
        
        set_element_display('download_free_trial_popup_div_' + prod_id, 'none');
        
        ret_val = true;
        
    } else {
         
        download_free_trial_user_email_error_msg_text.innerHTML      = 'Invalid Email Address';
        download_free_trial_user_email_error_msg_div.style.display  = 'block';
        
        ret_val = false;
    }
    
    return ret_val;
}

function disable_add_to_cart_btn(product_id) {
	var add_to_cart_btn_id	= 'add_to_cart_btn_' + product_id;
	document.getElementById(add_to_cart_btn_id).innerHTML	= '<img src="/images/mybargain/main_section/btn_addtocart.gif" alt="Add %%PRODUCT_NAME%% to cart" border="0" />';
}

function enable_add_to_cart_btn(product_id, btn_href) {
	var add_to_cart_btn_id	= 'add_to_cart_btn_' + product_id;
	document.getElementById(add_to_cart_btn_id).innerHTML	= '<a href="' + btn_href + '"><img src="/images/mybargain/main_section/btn_addtocart.gif" alt="Add %%PRODUCT_NAME%% to cart" border="0" /></a>';
}

function save_email_request(productId, div)
{
	var email_obj = document.getElementById("save_email");
	var email = email_obj.value;
	
	var url = '/ajax_save_email.php';        
	
	var ajax = new Ajax.Updater({success: div},url,{method: 'get',parameters: 'cmd=save_email&productId='+parseInt(productId)+'&email='+email});
	
}
function change_class_left_menu(obj_click,div_id)
{
	var obj = document.getElementById(div_id);
	if (obj)
	{
		obj.className="menu_on";
	}
	obj_click.parentNode.className="menu_text_on";
	
	return true;
}

function resize_div(main_div,lower_div)
{
			content_base =  document.getElementById(lower_div).clientHeight;
			content_offset = document.getElementById(lower_div).offsetTop;
			document.getElementById(main_div).style.height = content_base+content_offset+"px";
			
}

function toggle_div_display(div)
{
		
		var elem = document.getElementById(div);
		elem.style.display = (elem.style.display == "none")?"":"none";
		
}
		
function ajax_form_submit(div,url,form_element)
{
		var params  = Form.serialize(form_element);
		var ajax = new Ajax.Updater({success: div},url,{method: 'get',parameters: params});
		
}

	
function change_tab(display_key,off_class,on_class,display_class,tab)
{
	
	on_tab = document.getElementsByClassName(on_class);
	on_tab[0].className = off_class;
	tab.className = on_class;
	div_array = document.getElementsByClassName(display_class);
	inc = 0;
	for(inc=0; inc<div_array.length; inc++)
	{
		div_array[inc].style.display = 'none'; 
	}
	div_array[display_key].style.display = ''; 	
}

function ajax_load_div(div,url,id)
{
		if( $( div ).innerHTML == "" )
		{
		    var ajax = new Ajax.Updater({success: div},url,{method: 'get',parameters: 'id='+id});
        }
        else
        {
            var ajax = new Ajax.Updater({success: div},url,{method: 'get',parameters: 'hide=1'});
        }
}

function copy_billing_address(id)
{
	if($(id).checked == true)
		{
			$('member[d_address_01]').value = $('member[address_01]').value; 
			$('member[d_address_02]').value = $('member[address_02]').value; 
			$('member[d_state]').value = $('member[state]').value;
			$('member[d_postcode]').value = $('member[postcode]').value;
			$('member[d_suburb]').value = $('member[suburb]').value;
			$('member[d_country]').value = $('member[country]').value;
		}
		else
		{
			$('member[d_address_01]').value = "";
			$('member[d_address_02]').value = "";
			$('member[d_state]').value = "";
			$('member[d_postcode]').value = "";
			$('member[d_suburb]').value = "";
			$('member[d_country]').value = "";
		}
	
}


function get_suburb(postcode,div,url)
{
  
  if(postcode != "")
  {
  Effect.toggle(div,'blind',{duration: .2});  

 new Ajax.Updater({success: div},'actions/'+url+'?postcode='+postcode,{method: 'get',evalScripts : true});  
// alert("got called");
// alert(div);
    }
  }  

function get_postcode(suburb,state_field,div,url)
{
  if(suburb != "")
  {
  		Effect.toggle(div,'blind',{duration: .2});  

 		new Ajax.Updater({success: div},'actions/'+url+'?suburb='+suburb+'&state='+state_field,{method: 'get',evalScripts : true});  
// alert("got called");
// alert(div);
  }

}

function display_suburb_check(ajax_response)    
{
  suburb = ajax_response.responseText;
  result=   suburb.split("|");
  $('member[suburb]').value = result[0];
  $('member[state]').value =  result[1];

}





function get_suburb_d(postcode)
{

   ajax_call = new Ajax.Request('actions/get_suburb.php?postcode='+postcode,{method: 'get',asynchronous: true,onComplete: display_suburb_check_d});  
}  

function get_postcode_d(suburb,state_field)
{
    

 // alert(suburb);


}

function display_suburb_check_d(ajax_response)    
{
  suburb = ajax_response.responseText;
  result=   suburb.split("|");
  $('member[d_suburb]').value = result[0];
  $('member[d_state]').value =  result[1];

}

function registerAllVariable( div, file, param )
{
    var objupdate = new Ajax.Updater(
        {success: div},
        file,
        {
            method: "post",
            parameters: param,
            evalScripts: true
        }
    );
}

var hwnd_NewAlternate;

function NewAlternate( type ) 
{
	//alert($F( 'b_postcode2' )); return;
    if( type == 'b' )
    {
        hwnd_NewAlternate = window.open( 
                                            "addressLookUp.php?p="+escape($F( 'b_postcode2' ))+
                                            "&st="+escape($F( 'b_state2' ))+
                                            "&s="+escape($F( 'b_suburb2' ))+
                                            "&t=" + type
                                            ,"image","width=370,height=460,scrollbars=yes" 
                                        );
    }
    else
    {
        hwnd_NewAlternate = window.open( 
                                            "addressLookUp.php?p="+escape($F( 'd_postcode' )) +
                                            "&st="+escape($F( 'd_state' ))+
                                            "&s="+escape($F( 'd_suburb' ))+
                                            "&t=" + type
                                            ,"image","width=370,height=460,scrollbars=yes" 
                                        );
    }
}

function postCodeLookUp()
{
    hwnd_NewAlternate = window.open( 
                                        "addressLookUp.php?p="+escape($F( 'delivery[postcode]' )) +
                                        "&st="+escape($F( 'delivery[state]' ))+
                                        "&s="+escape($F( 'delivery[suburb]' ))+
                                        "&t=c"
                                        ,"image","width=370,height=460,scrollbars=yes" 
                                    );
}

function setAddr( zip, state, suburb, type)
{
    if (type == 'b')
    {
	    window.opener.document.register_form[ 'member[postcode]' ].value=zip;
	    window.opener.document.register_form[ 'member[state]' ].value=state;
	    window.opener.document.register_form[ 'member[suburb]' ].value=suburb;
    }
    else if( type == 'c' )
    {
        window.opener.document.process_payment[ 'delivery[postcode]' ].value=zip;
	    window.opener.document.process_payment[ 'delivery[state]' ].value=state;
	    window.opener.document.process_payment[ 'delivery[suburb]' ].value=suburb;
    }
    else
    {
	    window.opener.document.register_form[ 'member[d_postcode]' ].value=zip;
	    window.opener.document.register_form[ 'member[d_state]' ].value=state;
	    window.opener.document.register_form[ 'member[d_suburb]' ].value=suburb;
    }
    window.close ();
}

function addressCheck()
{
    if( $( 'copy_addy' ).checked == true )
    {
        $( 'member[copy_addy]' ).value = 1;
    }
    else
    {
        $( 'member[copy_addy]' ).value = 0;
    }
}

function validateGiftCertificate()
{
    div =  "giftCerti_gcDiv";
    file = "./actions/giftCertificate.php?gift_code=" + $( 'gift_c' ).value;
    var param  = "";
    var objupdate = new Ajax.Updater(
        {success: div},
        file,
        {
            method: "post",
            parameters: param,
            evalScripts: true
        }
    );
}

function removeGC( code )
{
    div =  "giftCerti_gcDiv";
    file = "./actions/giftCertificate.php?r=1&gift_code=" + code;
    var param  = "";
    var objupdate = new Ajax.Updater(
        {success: div},
        file,
        {
            method: "post",
            parameters: param,
            evalScripts: true
        }
    );
}

function detectBrowser()
{
    version=0;
    type = 0;
    if( navigator.userAgent.indexOf("Firefox")!=-1 )
    {
        var versionindex=navigator.userAgent.indexOf("Firefox")+8;
        if( parseInt(navigator.userAgent.charAt(versionindex))>=1 )
            type = 1;//firefox
    }
    else if (navigator.appVersion.indexOf("MSIE")!=-1)
    {
        temp=navigator.appVersion.split("MSIE");
        version=parseFloat(temp[1]);
        
        if (version>=5.5) //NON IE browser will return 0
            type = 2;//IE
    }
    
    file = "./actions/browser.php?t=" + type;
    var objupdate = new Ajax.Updater(
        {success: ""},
        file,
        {
            method: "post",
            parameters: "",
            evalScripts: true
        }
    );
}

var dissapeardiv;
var height = 0;
var elem;
var open1 = false;
function add_to_cart( products,n )
{
    var productString = "";
    var numreg = /^\d*$/;
    //var isnumber = new RegExp(numreg);
    
    var k = 0;    
    
    for( i = 0; i < products.length; i++ )
    {
        
       if(!$( 'product_' + products[ i ] ) || $( 'product_' + products[ i ] ).value == "")
       {
	 continue; 
       }
       else
       {
       	 k = 1;	
       }	
	
       if($( 'product_' + products[ i ] ))
       {
         if (!numreg.test($( 'product_' + products[ i ] ).value)) {
           $( 'product_' + products[ i ] ).focus();

           document.getElementById("msgcontent_"+n).innerHTML="Sorry, please input digit(s) only!"
           document.getElementById("showmsghere_"+n).style.display="";
           dissapeardiv = window.setInterval( "stopdiv("+n+")", 3000 );           
           return;
         }

        
        if( $( 'product_' + products[ i ] ). value != "" )
        {
            productString += products[ i ] + "_" + $( 'product_' + products[ i ] ). value + "^";
        }
        
       }
               
    }

        if(k == 0)
        {
           document.getElementById("msgcontent_"+n).innerHTML="Please type quantity in a box above!"
           document.getElementById("showmsghere_"+n).style.display="";	
           dissapeardiv = window.setInterval( "stopdiv("+n+")", 3000 );
           return;
        }  
               
    if( productString == "" )
        return;
    
           document.getElementById("msgcontent_"+n).innerHTML="Product(s) added into the cart successfully!"
           document.getElementById("showmsghere_"+n).style.display="";
           dissapeardiv = setInterval( "stopdiv("+n+")", 3000 );
           
           for(i=0;i<products.length;i++) //clear the value in each text box;
           {
    	      if($( 'product_' + products[ i ] ))
           	$( 'product_' + products[ i ] ).value = "";	
           }           
           
    var div = "cartBodyTable";
    var file = "../actions/add_to_cart.php?ps=" + productString;
    //prompt( "", file );
    var aj = new Ajax.Updater(
//        {success: div},
	{},
        file,
        {
            method: "post",
            parameters: "",
            evalScripts: true,
            onSuccess: dropDownShoppingCart
        }
    );
}

function stopdiv(n)
{

	var elem = document.getElementById( "showmsghere_"+n );

	elem.style.display = "none";

	clearInterval( dissapeardiv );

}


function removeitem(div,n,m)
{
	if(m == 0)
	{
	  document.getElementById("qty_"+n).value = document.getElementById("def_quan_"+n).value;
	  document.getElementById("showmsghere_"+n).style.display = "none";	
	  return;
	}
	if(m == 1)
	{
	  var aj = new Ajax.Updater
	  (
	  	  {success: div},
		  "../actions/deal_with_cart.php?action=remove&pid="+n,
		  {
		  	  method: "post",
			  parameters: "",
			  evalScripts: true
		  }
	  );
	}
}

function deal_with_cart(div,n)
{
	var x = document.getElementById("qty_"+n);
	var defx = document.getElementById("def_quan_"+n).value;
    	var numreg = /^\d*$/;	
	
	if (!numreg.test(x.value))
	{
		alert("Sorry, please input digit(s) only!");
		x.value = defx;
		x.focus();		
		return false;
	}
	
	if (x.value == 0)
	{
           document.getElementById("showmsghere_"+n).style.display="";
           //dissapeardiv = window.setInterval( "stopdiv("+n+")", 10000 ); 		
	}
	else
	{
        	var quantity = x.value;

//        	alert ("../actions/deal_with_cart.php?action=update&pid="+n+"&amount="+quantity);
		var aja = new Ajax.Updater
		(
			{success: div},
			"../actions/deal_with_cart.php?action=update&pid="+n+"&amount="+quantity,			
			{
				method: "post",
				parameters: "",
				evalScripts: true
			}
		);

	}
	
}


var intervalID, dissapearId;
var height = 0;
var elem;
var open1 = false;
function dropDownShoppingCart(data)
{
    //elem.style.border = "solid 1px #000000";
    //alert( elem.innerHTML );

	var elem = document.getElementById( "shoppinCart" );
	document.getElementById( "cartBodyTable" ).innerHTML=data.responseText;
	elem.innerHTML = data.responseText;
    //alert( document.body.scrollTop );
    //elem.style.height = "auto";  
//    if( navigator.userAgent.indexOf("Firefox")!=-1 )
//    {
//        var versionindex=navigator.userAgent.indexOf("Firefox")+8;
//        if( parseInt(navigator.userAgent.charAt(versionindex))>=1 )
//        {
//            elem.style.height = getHeight( document.getElementById( "cartBodyTable" ).innerHTML ) + "px";
//            alert( elem.style.height + " >>> " + $( "ddCart" ).style.height );
//        }
//    }
    
    //height = 0;
    dropDownCart();
    //intervalID = setInterval( dropDownCart, 30 );
    //dissapearId = setInterval( stopDropDown, 2000 );
    //elem.style.clip = 'rect(0px 0px 0px 0px)';
    //elem.style.display = "block";
}



function changeColor()
{
  
}

function dropDownCart()
{
    
//    if( height < 500 )
//    {
//        height += 10;
//        elem.style.height = height + "px";
        
        //prompt( "", $( "ddCart" ).innerHTML );
        //elem.style.position = "fixed";
	var elem = document.getElementById( "shoppinCart" );
	elem.style.position = "absolute";
	elem.style.display = "block";
        elem.style.overflow = "hidden";
	elem.style.visibility = "visible";

	var pos=0;
      if ( window.pageYOffset )
         pos=window.pageYOffset;
      else if ( document.documentElement && document.documentElement.scrollTop )
         pos=document.documentElement.scrollTop;
      else if ( document.body )
         pos=document.body.scrollTop;

	elem.style.top = pos+'px';

	elem.style.left = '-276px';
	elem.style.width = '686px';

//	alert(document.body.scrollTop);
//alert(elem.scrollTop);
        
        //document.getElementById( "ddCart" ).removeChild( document.getElementById( "fixedCart" ) );
        //$( "fixedCart" ).innerHTML = "abhishek";//document.getElementById( "floatingCart" ).innerHTML;
        //elem.style.clip = 'rect(0px 0px ' + height + 'px 0px)';
//    }
//    else
//    {
        //clearInterval( intervalID );
        //open = true;
        dissapearId = setInterval( stopDropDown, 3000 );
//    }
}

function stopDropDown()
{
//    elem.style.visibility = "visible";
//    elem.style.display = "block";
	var elem = document.getElementById( "shoppinCart" );
	elem.style.overflow = "hidden";
    //animate( 100, 100, 400, 20 );
    //height = 0;
    //elem.style.height = "0px";
    //elem.style.position = "absolute";
	elem.style.visibility = "hidden";
	elem.style.display = "none";
//    open = false;
	clearInterval( dissapearId );
    //ypSlideOutMenu.hideMenu('menu1');
    //document.getElementById( "fixedCart" ).innerHTML = document.getElementById( "floatingCart" ).innerHTML;
}

function animate( top, left, width, height )
{
    var d = document
	d.write('<style type="text/css">')
	d.write('#' + elem + 'Container { visibility:hidden; ')
	d.write('left:' + left + 'px; ')
	d.write('top:' + top + 'px; ')
	d.write('overflow:hidden; }')
	d.write('#' + elem + 'Container, #' + elem + 'Content { position:absolute; ')
	d.write('width:' + width + 'px; ')
	d.write('height:' + height + 'px; ')
	d.write('clip:rect(0 ' + width + ' ' + height + ' 0); ')
	d.write('}')
	d.write('</style>')

	this.load()
}

function getHeight( str )
{
    //alert( str.indexOf( "<tr>" ) );
    var occurances = 0;
    while( true )
    {
        if( str.indexOf( "<tr>" ) != -1 )
        {
            str = str.substring( str.indexOf( "<tr>" ) + 10, 1000  );
            //alert( str );
            occurances ++;
        }
        else
        {
            return occurances * 70;
        }
        
    }
}

form_submited=false;
function submit_once()
{
	var temp=form_submited;
	form_submited=true;
	return (!temp);
}

///////////////////////////////////////////////////////////////////////////////////


updateAmount = function( key )
{
	div =  'giftCerti_gcDiv';
    file = "./actions/giftCertificate.php?ua=" + key + "&amount=" + $( 'gc' + key ).value;
    var param  = "";
    var objupdate = new Ajax.Updater(
        {success: div},
        file,
        {
            method: "post",
            parameters: param,
            evalScripts: true
        }
    );
    //$( 'a' + key ).focus();
}


lockGiftCertis = function()
{
	div =  'giftCerti_gcDiv';
    file = "./actions/giftCertificate.php?lock=1";
    var param  = "";
    var objupdate = new Ajax.Updater(
        {success: div},
        file,
        {
            method: "post",
            parameters: param,
            evalScripts: true
        }
    );
}

setFocus = function( key )
{
	$( 'a' + key ).focus()
}

function add_bookmark(n)
{

	  var aj = new Ajax.Updater
	  (
	  	  {},
		  "../actions/add_to_bookmark.php?actnow=add&pid="+n,
		  {
		  	  method: "post",
			  parameters: "",
			  evalScripts: true
		  }
	  );

}

function delete_from_bookmark(n)
{

	  var aj = new Ajax.Updater
	  (
	  	  {},
		  "../actions/add_to_bookmark.php?actnow=delete&pid="+n,
		  {
		  	  method: "post",
			  parameters: "",
			  evalScripts: true
		  }
	  );

}

showOutOfStock = function( e )
{
//    var tempX = 0;
//    var tempY = 0;
//    
//    if( document.all )
//    { // grab the x-y pos.s if browser is IE
//        tempX = event.clientX + document.body.scrollLeft;
//        tempY = event.clientY + document.body.scrollTop;
//    }
//    else 
//    {  // grab the x-y pos.s if browser is NS
//        tempX = e.pageX;
//        tempY = e.pageY;
//    }  
//    
//    if (tempX < 0)
//    {
//        tempX = 0;
//    }
//    if (tempY < 0)
//    {
//        tempY = 0;
//    }  
//    
//    alert( e + "   " + findPosX( e ) + "   " + findPosY( e ) );

//    var pos=0;
//      if ( window.pageYOffset )
//         pos=window.pageYOffset;
//      else if ( document.documentElement && document.documentElement.scrollTop )
//         pos=document.documentElement.scrollTop;
//      else if ( document.body )
//         pos=document.body.scrollTop;

    $( 'outOfStockEmail_' + e ).value = '';
    $( e ).style.display = '';
}

function sendEmailNotification( divID, pID, nID )
{
    var aj = new Ajax.Updater
	  (
	  	  {success: "error_" + divID},
		  "../actions/outOfStock.php?pid=" + pID + "&email=" + $( 'outOfStockEmail_' + divID ).value + "&did=" + divID + "&n=" + nID,
		  {
		  	  method: "post",
			  parameters: "",
			  evalScripts: true
		  }
	  );
}

var div_Id;
function load_products_by_category(div_id, cat_id, prod_status) {
    var url = 'ajax_loader.php';
    var params = 'div_id=' + div_id + '&cmd=load_products_by_category&cat_id=' + parseInt(cat_id) + '&prod_status=' + prod_status;
    var ajax = new Ajax.Updater({success: div_id},url,{method: 'get',parameters: params });
}

function loadProduct(cat,divId,catId)
{
    div_Id = divId;
    var url = 'ajax_loader.php?cmd=loadProductsDetail&catId='+parseInt(catId)+'&cat_name='+cat;        
  
    new Ajax.Request(
      url
      , {
        method: 'post',
        onComplete:callbackProducts
      }
    );
        
}

function load_products_by_cat_id(divId, catId, status)
{
	div_Id = divId;
	var url = '/ajax_loader.php?cmd=load_products_by_cat_id&cat_id='+parseInt(catId)+'&status='+status;
  
    new Ajax.Request(url, {
         method: 'post',
         onComplete:callbackProducts
        }
      );
}

function callbackProducts(resp)
{
  
  
  $(div_Id).innerHTML = resp.responseText;  
}

function loadRightName(cat,catId,divId)
{
  div_Id = divId;
  var url = '/ajax_loader.php?cmd=loadRightProducts&catId='+parseInt(catId)+'&cat_name='+cat;        
  new Ajax.Request(url, {
             method: 'post',
             onComplete:callbackRightProducts
            }
          );
      
}
function callbackRightProducts(resp)
{
  
  $(div_Id).innerHTML = resp.responseText;  
}

function loadProductSubCat(cat,divId,catId)
{
    div_Id = divId;
    var url = 'ajax_loader.php?cmd=loadSubProducts&catId='+parseInt(catId)+'&cat_name='+cat;        
  
        new Ajax.Request(url, {
             method: 'post',
             onComplete:callbackProducts
            }
          );

}
function loadProductsFromPC(cat,divId,catId)
{
  div_Id = divId;
  var url = 'ajax_loader.php?cmd=loadProductsFromPC&catId='+parseInt(catId)+'&cat_name='+cat;        
  
        new Ajax.Request(url, {
             method: 'post',
             onComplete:callbackloadProductsFromPC
            }
          );
        
}

function callbackloadProductsFromPC(resp)
{
  
  
  $(div_Id).innerHTML = resp.responseText;  
}


function loadPaymentMethod(paymentType, error_msg)
{
	//var obj = document.getElementById('payment_method');
	//obj = obj.id;
	//alert(obj);
	var url     = '/ajax_loader.php';
	
	var params  = 'cmd=loadPaymentMethod&paymentType=' + paymentType;
	if (error_msg) {
	    params  += '&error_msg=' + error_msg;
	}
	
	var ajax = new Ajax.Updater({success: 'payment_method_type'},url,{method: 'get',parameters: params, evalScripts: true  });

}

function callbackloadPaymentType(resp)
{
	
  if (resp)
  {
    document.getElementById('payment_method').innerHTML = resp.responseText;
  }
  else
  {
	  document.getElementById('payment_method').value = "hhhhkllklkl";
  }
}

function checkGiftStatus(giftId)
{
  
  var url = 'ajax_loader.php?cmd=loadGiftStatus&giftId='+giftId;        
  
        new Ajax.Request(url, {
             method: 'post',
             onComplete:callbackLoadGiftStatus
            }
          );
}

function callbackLoadGiftStatus(resp)
{
  
  $('gift_status').innerHTML = resp.responseText;
}

var UNKNOWN_PRODUCT_MESSAGE     = 'Unknown Product ID';
var BLANK_ORDER_MESSAGE         = 'There is no complete order entered';
var PARTIAL_ORDER_MESSAGE       = "The order is not completed. \r\nPlease put valid item and quantity";
var INVALID_QUANTITY_MESSAGE    = 'Enter valid quantity'; 
var INVALID_CC_ALERT_MSG        = "The credit card number is invalid. \r\nIf it is valid, then we do not accept this type of credit card";
var INVALID_CC_INPUT            = 'Enter numbers only';
var INVALID_CCV2_ALERT_MSG      = 'The CVV number must be atleast 3 characters.';
var INVALID_CC_EXP_DATE         = 'The expiration date entered for the credit card is invalid. \r\nPlease check the date and try again.';
var INVALID_EMAIL_ALERT         = "Your email is invalid. \r\nPlease enter valid email address";
var CANCEL_ORDER_ALERT          = "Do you really want to cancel this order?";
var CREATE_CUSTMER_CONFIRM_MSG  = "Customer not found!\nWant to create one?";
var REG_NUMBER                  = /^([0-9])+$/;
var MIN_CCV2_LENGTH             = 3;

var cc_names                    = new Array();

cc_names["VISA"]                = 'Visa';
cc_names["MC"]                  = 'Master Card';
cc_names["AMEX"]                = 'American Express';
cc_names["DINERS_CLUB"]         = 'Diners_Club';
cc_names["DISCOVER"]            = 'Discover';
cc_names["JCB"]                 = 'JCB';
cc_names["AUSTRALIAN_BANKCARD"] = 'Australian BankCard';


function isValidCreditCard(cardNumber,cc_types)
{
return true;  // !!!
  
  var isValid = false;
  var ccCheckRegExp = /[^\d ]/;
  isValid = !ccCheckRegExp.test(cardNumber); 
  
  if (isValid)
  {
    var cardNumbersOnly = cardNumber.replace(/ /g,"");
    var cardNumberLength = cardNumbersOnly.length;
    var lengthIsValid = false;
    var prefixIsValid = false;
    var prefixRegExp;
    var valid = false;
    var cc_count=1;
    var i = 0;    
    for(i = 0; i < cc_count; i++)
    {

        switch(cc_types)
        {
           
           case "MC":
             lengthIsValid = (cardNumberLength == 16);
             prefixRegExp = /^5[1-5][0-9]{14}$/;
             break;
             
        
           case "VISA":
             lengthIsValid = (cardNumberLength == 16 || cardNumberLength == 13);
             prefixRegExp = /^4[0-9]{12}([0-9]{3})?$/;
             break;
        
           case "AMEX":             
             lengthIsValid = (cardNumberLength == 15);         
             prefixRegExp = /^3[47][0-9]{13}$/;
             break;
           
           case "DINERS":
             lengthIsValid = (cardNumberLength == 15);
             prefixRegExp = /^3(0[0-5]|[68][0-9])[0-9]{11}$/;
             break;         
             
           case "DISCOVER":
             lengthIsValid = (cardNumberLength == 15);
             prefixRegExp = /^6011[0-9]{12}$/;
             break;
             
           case "JCB":
             lengthIsValid = (cardNumberLength == 15);
             prefixRegExp = /^(3[0-9]{4}|2131|1800)[0-9]{11}$/;
             break;
             
           case "BC":
             lengthIsValid = (cardNumberLength == 15);
             prefixRegExp = /^5610[0-9]{12}$/;
             break;
        
        }
        
        if(prefixRegExp.test(cardNumbersOnly))
        {        	
        	 if(creditCardChecksum(cardNumbersOnly))
        	 {
        	   valid = true;
        	   break;
        	 }        	

        }

    }
    
    if(!valid)
    {
    
       alert(INVALID_CC_ALERT_MSG);
       return false;
    
    }
      return true;    

  }
  else
  {
  
     alert(INVALID_CC_INPUT);
     return false;
  }

}


function creditCardChecksum(cardNo)
{

    var checksum = 0;                                  // running checksum total
    var mychar = "";                                   // next char to process
    var j = 1;                                         // takes value of 1 or 2
  
    // Process each digit one by one starting at the right
    var calc;
    for (i = cardNo.length - 1; i >= 0; i--) {
    
      // Extract the next digit and multiply by 1 or 2 on alternative digits.
      calc = Number(cardNo.charAt(i)) * j;
    
      // If the result is in two digits add 1 to the checksum total
      if (calc > 9) {
        checksum = checksum + 1;
        calc = calc - 10;
      }
    
      // Add the units element to the checksum total
      checksum = checksum + calc;
    
      // Switch the value of j
      if (j ==1) {j = 2} else {j = 1};
    } 
  
    // All done - if checksum is divisible by 10, it is a valid modulus 10.
    // If not, report an error.
    if (checksum % 10 != 0)  {
     ccErrorNo = 3;
     return false; 
    }

   return true;

}

function formSubmit(cat)
{
  window.open('search.php?category='+cat,'_self');
}   

function fillFormValue()
   {
		var frm = document.payment_form;
		if (frm==null) var frm = document.registrationForm;

		 //alert(frm.copy.checked)
		 if(frm.copy.checked == true)
		{
			frm.d_first_name.value = frm.b_first_name.value;
			frm.d_last_name.value = frm.b_last_name.value;
			frm.d_company.value = frm.b_company.value;
			frm.d_address1.value = frm.b_address1.value;
			frm.d_address2.value = frm.b_address2.value;
			frm.d_postcode.value = frm.b_postcode.value;
			frm.d_suburb.value = frm.b_suburb.value;
			seIndex = frm.b_state.selectedIndex;
			frm.d_state.options[seIndex].selected = 'true';      
		 } 
		 else
		 {
			  //frm.d_first_name.value = '';
			  //frm.d_last_name.value = '';
			  //frm.d_address.value = '';
			  //frm.d_address_2.value = '';
			  //frm.d_postcode.value = '';
			  //frm.d_suburb.value = '';       
		   
		 }
   }
   
   function fillFormValueR()
   {
		 var frm = document.registrationForm;
    //alert(frm.copy1.checked);
    if(frm.copy1.checked == true)
    {
        frm.d_first_name.value = frm.b_first_name.value;
        frm.d_last_name.value = frm.b_last_name.value;
		frm.d_company.value	= frm.b_company.value;
        frm.d_address1.value = frm.b_address1.value;
        frm.d_address_2.value = frm.b_address_2.value;
        frm.d_postcode.value = frm.b_postcode.value;
        frm.d_suburb.value = frm.b_suburb.value;
        seIndex = frm.b_state.selectedIndex;
        
        frm.d_state.options[seIndex].selected = 'true';      
     } 
     else
     {
          frm.d_first_name.value = '';
          frm.d_last_name.value = '';
		  frm.d_company.value	= '';
          frm.d_address1.value = '';
          frm.d_address_2.value = '';
          frm.d_postcode.value = '';
          frm.d_suburb.value = '';       
       
     }
   }
  
  
   
   function doRegFormSubmit(form_name)
   {

      RE_NAME     = /^[a-zA-Z \-\.\']+$/;
      RE_USERNAME = /^[a-z0-9\_]+$/;
      RE_MOBILE   = /^((\d\d\d)|(\(\d\d\d\)))?\s*[\.-]?\s*(\d\d\d)\s*[\.-]?\s*(\d\d\d\d)$/;
      RE_CREDIT   =  /^[0-9]+$/;
      RE_URL      = /^(((http(s?))|(ftp))\:\/\/)?(www.|[a-zA-Z].)[a-zA-Z0-9\-\.]+\.(com|edu|gov|mil|net|org|biz|info|name|museum|us|ca|uk)(\:[0-9]+)*(\/($|[a-zA-Z0-9\.\,\;\?\'\\\+&%\$#\=~_\-]+))*$/i;
      RE_EMAIL_ADDRESS     =  /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,3}|[0-9]{1,3})(\]?)$/;
      RE_DECIMAL  = new RegExp(/^[0-9]{1,8}([\.]{1}[0-9]{1,2})?$/);
      RE_NUMBER   = new RegExp(/^[0-9]+$/);
      RE_PHONE    = new RegExp(/^((\d\d\d)|(\(\d\d\d\)))?\s*[\.-]?\s*(\d\d\d)\s*[\.-]?\s*(\d\d\d\d)$/);
	  //RE_PHONE    = new RegExp(/^((\d\d)|(\(\d\d\d\d)))?\s*[\.-]?\s*(\d\d\d\d)\s*[\.-]?\s*(\d\d\d\d)$/);
      RE_ZIP      = new RegExp(/^[0-9]{4}(([\-\ ])?[0-9]{4})?$/);
      RE_CHAR     = new RegExp(/^[a-zA-Z0-9\ ]+$/);

     
	  if (form_name=="payment_form")
	  {
		  var frm = document.payment_form;
		  
	  }
	  else
	  {
		  var frm = document.registrationForm;
	  }
	   var valid = true;
	   // bill address
	  if ((frm.username.value == '') /* || !(RE_USERNAME.test(frm.username.value)) */)
	  {
	  	 document.getElementById('username').className = 'register_longer_text_error';
		 valid = false;
	  }
	  else
	  {
	  		document.getElementById('username').className = 'register_longer_text';
	  }
	  if (frm.password.value == '')
	  {
	  	 document.getElementById('password').className = 'register_longer_text_error';
		 valid = false;
	  }
	  else
	  {
	  		document.getElementById('password').className = 'register_longer_text';
	  }
	   if (frm.confirm_password.value == '')
	  {
	  	 document.getElementById('confirm_password').className = 'register_longer_text_error';
		 valid = false;
	  }
	  else
	  {
	  		document.getElementById('confirm_password').className = 'register_longer_text';
	  }
	   
	   
	   if (frm.password.value!=frm.confirm_password.value)
	   {
   			document.getElementById('password').className = 'register_longer_text_error';
		 	valid = false;
	    	
	   }
  
   	 	  
	  // bill address
	  if ((frm.b_first_name.value == '') /* || !(RE_NAME.test(frm.b_first_name.value)) */)
	  {
	  	 document.getElementById('b_first_name').className = 'register_norm_text_error';
		 valid = false;
	  }
	  else
	  {
	  		document.getElementById('b_first_name').className = 'register_norm_text';
	  }
	  if (frm.b_last_name.value == '' /* || !(RE_NAME.test(frm.b_last_name.value)) */)
	  {
	  	 document.getElementById('b_last_name').className = 'register_norm_text_error';
		 valid = false;
	  }
	  else
	  {
	  	 document.getElementById('b_last_name').className = 'register_norm_text';
	  }
	  if (frm.b_phone.value == '' /* || !(RE_NUMBER.test(frm.b_phone.value)) */)
	  {
	  	 document.getElementById('b_phone').className = 'register_norm_text_error';
		 valid = false;
	  }
	  else
	  {
	  	document.getElementById('b_phone').className = 'register_norm_text';
	  }
	  if (frm.b_email.value == '' /* || !(RE_EMAIL_ADDRESS.test(frm.b_email.value)) */)
	  {
	  	 document.getElementById('b_email').className = 'register_norm_text_error';
		 valid = false;
	  }
	  else
	  {
	  	document.getElementById('b_email').className = 'register_norm_text';
	  }
	  if (frm.b_postcode.value == '' /* || !(RE_ZIP.test(frm.b_postcode.value)) */)
	  {
	  	 document.getElementById('b_postcode').className = 'register_norm_text_error';
		 valid = false;
	  }
	  else
	  {
	  	 document.getElementById('b_postcode').className = 'register_norm_text';
	  }
	  if (frm.b_address1.value == '' /* || !(RE_CHAR.test(frm.b_address1.value)) */)
	  {
	  	 document.getElementById('b_address1').className = 'register_norm_text_error';
		 valid = false;
	  }
	  else
	  {
	  	document.getElementById('b_address1').className = 'register_norm_text';
	  }

/*	  if (frm.b_address2.value == '' || !(RE_CHAR.test(frm.b_address2.value)))
	  {
	  	 document.getElementById('b_address_2').className = 'register_norm_text_error';
		 valid = false;
	  }
	  else
	  {
	  	document.getElementById('b_address_2').className = 'register_norm_text';
	  }
*/
	  if (frm.b_suburb.value == '' /* || !(RE_CHAR.test(frm.b_suburb.value)) */)
	  {
	  	 document.getElementById('b_suburb').className = 'register_norm_text_error';
		 valid = false;
	  }
	  else
	  {
	  	 document.getElementById('b_suburb').className = 'register_norm_text';
	  }
	  // delivery address
	  if ((frm.d_first_name.value == '') /* || !(RE_NAME.test(frm.d_first_name.value)) */)
	  {
	  	 document.getElementById('d_first_name').className = 'register_norm_text_error';
		 valid = false;
	  }
	  else
	  {
	  	 document.getElementById('d_first_name').className = 'register_norm_text';
	  }
	  if (frm.d_last_name.value == '' /* || !(RE_NAME.test(frm.d_last_name.value)) */)
	  {
	  	 document.getElementById('d_last_name').className = 'register_norm_text_error';
		 valid = false;
	  }
	  else
	  {
	  	document.getElementById('d_last_name').className = 'register_norm_text';
	  }
	  if (frm.d_postcode.value == '' /* || !(RE_ZIP.test(frm.d_postcode.value)) */)
	  {
	  	 document.getElementById('d_postcode').className = 'register_norm_text_error';
		 valid = false;
	  }
	  else
	  {
	  	document.getElementById('d_postcode').className = 'register_norm_text';
	  }
	  if (frm.d_address1.value == '' /* || !(RE_CHAR.test(frm.d_address1.value)) */)
	  {
	  	 document.getElementById('d_address1').className = 'register_norm_text_error';
		 valid = false;
	  }
	  else
	  {
	  	document.getElementById('d_address1').className = 'register_norm_text';
	  }

/*	  if (frm.d_address2.value == '' || !(RE_CHAR.test(frm.d_address2.value)) )
	  {
	  	 document.getElementById('d_address_2').className = 'register_norm_text_error';
		 valid = false;
	  }
	  else
	  {
	  	 document.getElementById('d_address_2').className = 'register_norm_text';
	  }
*/
	  if (frm.d_suburb.value == '' /* || !(RE_CHAR.test(frm.d_suburb.value)) */)
	  {
	  	 document.getElementById('d_suburb').className = 'register_norm_text_error';
		 valid = false;
	  }
	  else
	  {
	  	document.getElementById('d_suburb').className = 'register_norm_text';
	  }
	  
	   
	  if (!valid)
	 {
		  $('msg').innerHTML = "Please fill out all required fields marked with (*)";
		 
		  return false;
	 }
	 else
	 {
	  	frm.submit();
	 }
   }  
   
   function showDiv()
   {
     $('checkout').style.display = 'inline';
     $('information').style.display = 'inline';
	 $('row_shoppingcart').style.display = 'none';
   }
   
   function testPhoneFormat(x)
   {
   		return RE_MOBILE.test(x);
   		// regex=/^\d{1,10}$/;
		//return regex.test(x);
		// return /^\+\d{1,3}\ \d{1,10}$/.test(x);
   }

	var shopping_cart_left	= null;
	function may_float_shopping_cart() {
		if (BrowserDetect.browser == 'Explorer' && BrowserDetect.version == '6') {
			return;
		}
		
		if (shopping_cart_left == null) {
			shopping_cart_left	= get_div_left(document.getElementById('shopping_cart'));
		}
		
		if (get_scroll_top() > 130) {
			document.getElementById('cart2').style.position	= 'fixed';
			document.getElementById('cart2').style.top		= '0px';
			if (BrowserDetect.browser == 'Safari') {
				document.getElementById('cart2').style.left		= shopping_cart_left + 'px';
			} else {
				document.getElementById('cart2').style.left		= get_div_left(document.getElementById('shopping_cart')) + 'px';
			}
		} else {
			document.getElementById('cart2').style.position	= 'absolute';
			document.getElementById('cart2').style.top		= '0px';
			document.getElementById('cart2').style.left		= '0px';
		}
	}
	
	function doFromSubmit()
   {
      RE_NAME     = /^[a-zA-Z \-\.\']+$/;
      RE_USERNAME = /^[a-z0-9\_]+$/;
      RE_MOBILE   = /^((\d\d\d)|(\(\d\d\d\)))?\s*[\.-]?\s*(\d\d\d)\s*[\.-]?\s*(\d\d\d\d)$/;
      RE_CREDIT   =  /^[0-9]+$/;
      RE_URL      = /^(((http(s?))|(ftp))\:\/\/)?(www.|[a-zA-Z].)[a-zA-Z0-9\-\.]+\.(com|edu|gov|mil|net|org|biz|info|name|museum|us|ca|uk)(\:[0-9]+)*(\/($|[a-zA-Z0-9\.\,\;\?\'\\\+&%\$#\=~_\-]+))*$/i;
      RE_EMAIL_ADDRESS     =  /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,3}|[0-9]{1,3})(\]?)$/;
      RE_DECIMAL  = new RegExp(/^[0-9]{1,8}([\.]{1}[0-9]{1,2})?$/);
      RE_NUMBER   = new RegExp(/^[0-9]+$/);
      RE_PHONE    = new RegExp(/^((\d\d\d)|(\(\d\d\d\)))?\s*[\.-]?\s*(\d\d\d)\s*[\.-]?\s*(\d\d\d\d)$/);
	  //RE_PHONE    = new RegExp(/^((\d\d)|(\(\d\d\d\d)))?\s*[\.-]?\s*(\d\d\d\d)\s*[\.-]?\s*(\d\d\d\d)$/);
      RE_ZIP      = new RegExp(/^[0-9]{4}(([\-\ ])?[0-9]{4})?$/);
      RE_CHAR     = new RegExp(/^[a-zA-Z0-9\ ]+$/);

      var frm = document.payment_form;
	  var valid = true;
	  // bill address
	  if ((frm.b_first_name.value == '') /* || !(RE_NAME.test(frm.b_first_name.value)) */)
	  {
	  	 document.getElementById('b_first_name').className = 'register_norm_text_error';
		 valid = false;
	  }
	  else
	  {
	  		document.getElementById('b_first_name').className = 'register_norm_text';
	  }
	  if (frm.b_last_name.value == '' /* || !(RE_NAME.test(frm.b_last_name.value))*/)
	  {
	  	 document.getElementById('b_last_name').className = 'register_norm_text_error';
		 valid = false;
	  }
	  else
	  {
	  	 document.getElementById('b_last_name').className = 'register_norm_text';
	  }
	  if (frm.b_phone.value == '' /* || !(RE_PHONE.test(frm.b_phone.value)) */)
	  {
	  	 document.getElementById('b_phone').className = 'register_norm_text_error';
		 valid = false;
	  }
	  else
	  {
	  	document.getElementById('b_phone').className = 'register_norm_text';
	  }
	  if (frm.b_email.value == '' /* || !(RE_EMAIL_ADDRESS.test(frm.b_email.value))*/)
	  {
	  	 document.getElementById('b_email').className = 'register_norm_text_error';
		 valid = false;
	  }
	  else
	  {
	  	document.getElementById('b_email').className = 'register_norm_text';
	  }
	  if (frm.b_postcode.value == '' /* || !(RE_ZIP.test(frm.b_postcode.value)) */)
	  {
	  	 document.getElementById('b_postcode').className = 'register_norm_text_error';
		 valid = false;
	  }
	  else
	  {
	  	 document.getElementById('b_postcode').className = 'register_norm_text';
	  }
	  if (frm.b_address1.value == '' /* || !(RE_CHAR.test(frm.b_address1.value)) */)
	  {
	  	 document.getElementById('b_address1').className = 'register_norm_text_error';
		 valid = false;
	  }
	  else
	  {
	  	document.getElementById('b_address1').className = 'register_norm_text';
	  }

/*	  if (frm.b_address_2.value == '' || !(RE_CHAR.test(frm.b_address_2.value)) )
	  {
	  	 document.getElementById('b_address_2').className = 'register_norm_text_error';
		 valid = false;
	  }
	  else
	  {
	  	document.getElementById('b_address_2').className = 'register_norm_text';
	  }

*/	  if (frm.b_suburb.value == '' /* || !(RE_CHAR.test(frm.b_suburb.value)) */)
	  {
	  	 document.getElementById('b_suburb').className = 'register_norm_text_error';
		 valid = false;
	  }
	  else
	  {
	  	 document.getElementById('b_suburb').className = 'register_norm_text';
	  }
	  // delivery address
	  if ((frm.d_first_name.value == '') /* || !(RE_NAME.test(frm.d_first_name.value)) */)
	  {
	  	 document.getElementById('d_first_name').className = 'register_norm_text_error';
		 valid = false;
	  }
	  else
	  {
	  	 document.getElementById('d_first_name').className = 'register_norm_text';
	  }
	  if (frm.d_last_name.value == '' /* || !(RE_NAME.test(frm.d_last_name.value)) */)
	  {
	  	 document.getElementById('d_last_name').className = 'register_norm_text_error';
		 valid = false;
	  }
	  else
	  {
	  	document.getElementById('d_last_name').className = 'register_norm_text';
	  }
	  if (frm.d_postcode.value == '' /* || !(RE_ZIP.test(frm.d_postcode.value)) */)
	  {
	  	 document.getElementById('d_postcode').className = 'register_norm_text_error';
		 valid = false;
	  }
	  else
	  {
	  	document.getElementById('d_postcode').className = 'register_norm_text';
	  }
	  if (frm.d_address1.value == '' /* || !(RE_CHAR.test(frm.d_address1.value)) */)
	  {
	  	 document.getElementById('d_address1').className = 'register_norm_text_error';
		 valid = false;
	  }
	  else
	  {
	  	document.getElementById('d_address1').className = 'register_norm_text';
	  }
/*	  if (frm.d_address_2.value == '' || !(RE_CHAR.test(frm.d_address_2.value)))
	  {
	  	 document.getElementById('d_address_2').className = 'register_norm_text_error';
		 valid = false;
	  }
	  else
	  {
	  	 document.getElementById('d_address_2').className = 'register_norm_text';
	  }
*/
	  if (frm.d_suburb.value == '' /* || !(RE_CHAR.test(frm.d_suburb.value)) */)
	  {
	  	 document.getElementById('d_suburb').className = 'register_norm_text_error';
		 valid = false;
	  }
	  else
	  {
	  	document.getElementById('d_suburb').className = 'register_norm_text';
	  }
	  
	  //frm.submit();
	  
	  
	  if (!valid)
	 {
		  $('msg').innerHTML = "Please fill out all required fields marked with (*)";
		  //alert("Please fill out all required fields marked with (*)");
		  return false;
	 }
	  
	  var card_valid = true;
	  
	  // credit card
      if(frm.payment_method[0].checked == true)
      {
	  	 
	  	 if(frm.card_number.value == '')
		 {
		 	 document.getElementById('card_number').className = 'credit_card_text_error';
			 card_valid = false;
		 }
		 else
		 {
		 	 document.getElementById('card_number').className = 'credit_card_text';
		 }
	      if(frm.card_holder_name.value == '')
		 {
		 	 document.getElementById('card_holder_name').className = 'credit_card_text_error';
			 card_valid = false;
		 }
		 else
		 {
		 	 document.getElementById('card_holder_name').className = 'credit_card_text';
		 }
		  if(frm.ccv2.value == '')
		 {
		 	 document.getElementById('ccv2').className = 'credit_card_text_error';
			 card_valid = false;
		 }
		 else
		 {
		 	 document.getElementById('ccv2').className = 'credit_card_text';
		 }
	     
      }
	  if (!card_valid)
	  {
		  $('msg').innerHTML = "Please fill out all required fields marked with (*)";
		  //alert("Please fill out all required fields marked with (*)");
		  return false;
	  }
	  else if (frm.payment_method[0].checked == true)
	  {
	  		var status = isValidCreditCard(frm.card_number.value,frm.card_type.value);
			status = true;
		    if (!status)   
		    {
		 		document.getElementById('card_number').className = 'credit_card_text_error';
			    return false;
		    }       
		}
		else
		{
		
		}
	  // alert(status);
	 
	 
	 
      
      if(frm.payment_method[4].checked == true)
      {
        if(frm.gift_certificate_number.value == '')
        {
          alert('Please fill out gift certificate code');
          return false;
        }
      }
     //return false;
	 disable_place_order_btn();
     return true;
   }  
   
	function highlight_menu_item(menu_item_id) {
		links = document.getElementsByClassName('menu_text_on');
		for (var i=0; i < links.length; i++) {
			links[i].className = 'menu_text_off';
		}
		var on = document.getElementById(menu_item_id);
		if (on)
		{
			on.className='menu_text_on';
		}
	}
  
  function category_title_and_selection_handler(){
   
     if(document.getElementById('pulldown_area').style.display=='none'){
     
        document.getElementById('category_pulldown_col_bk_3').className='category_pulldown_col_bk_3_on';
  
       document.getElementById('pulldown_area').style.display='block';
     }
     else if(document.getElementById('pulldown_area').style.display=='block'){
        document.getElementById('category_pulldown_col_bk_3').className='category_pulldown_col_bk_3';
        document.getElementById('pulldown_area').style.display='none'
     
     }
     else{
        document.getElementById('category_pulldown_col_bk_3').className='category_pulldown_col_bk_3_on';
  
        document.getElementById('pulldown_area').style.display='block';
     }
  
  }
  
  
  function category_title_and_selection_mouse(type){
  
    
  
  
  }