var count_bug = 0;
var bug = 0;
var fn = 0; // form number

$(function(){
	$('a[id^="item_"]').live('click',add2Cart);
    $("#newsletter_button").live('click',send_newsletter);
	$('a#pop_login').bind('click', function(){return false;});
	$('a#pop_login').click(function(){$('form#login:eq('+fn+')').submit();});
    $('form#login:eq('+fn+')').submit(function(){chkForm(); return false;})
	// Check for ENTER keypress over input fields
	$('input').bind('keypress',function(e){
		var code = (e.keyCode ? e.keyCode : e.which);
		if(code == 13){chkForm(); return false;}
	});
    
    
    $('form#checkout_form').submit(function(){chkCheckoutForm(); })

	$('#copybill2ship').bind('click', function(){ if($(this).is(':checked')) copyship2bill();});
    $('input[name="choose_shipping"]').click(function(){$('form#checkout_form').submit(); return false;});

    ////////////////////////////////////////////////
    /***********SHIPPING PAGE CODE*****************/
    ////////////////////////////////////////////////
    
	unselectAll();
	$('.subservices input:radio').bind('click',function(){
		unselectAll();
		$(this).attr('checked', 'checked');
		var parentService = $(this).parents('.service_wrap').children('.mainservice').children('input');
		$(parentService).attr('checked', 'checked');
		var price = $('#'+($(this).attr('id')).replace("service", "price")).val();
		updateShipGrandTotal(price);
	});

	$('.mainservice input:radio').bind('click',function(){
		unselectAll();
		$(this).attr('checked', 'checked');
		var firstchild = $(this).parents('.service_wrap').children('.subservices').children().children(':input:radio:first');
		$(firstchild).attr('checked', 'checked');
		var price = $('#'+($(firstchild).attr('id')).replace("service", "price")).val();
		updateShipGrandTotal(price);
	});
	$('form:eq('+fn+') input:first:radio').trigger('click');
    


    ////////////////////////////////////////////////
    /***********PAYMENT PAGE CODE*****************/
    ////////////////////////////////////////////////
    
	// Set focus
	$('#card_holder_name').focus();
	$('#pay').click(function(){$('form#cc_form').trigger('submit'); return false;})
	// Check for ENTER keypress over input fields
	$('form#cc_form input').bind('keypress', function(e){
		var code = (e.keyCode ? e.keyCode : e.which);
		if(code == 13){$('form:#cc_form').trigger('submit'); return false;}
	});
	
	// Country change handeller
	$('#card_country').bind('change', function(){changeState();});
	changeState();
	
	// Reset trigger handeller
	$('#reset_changes').bind('click', function(){$('form#cc_form').trigger('reset'); $('input').removeClass('fld_error'); $('#error_msg').remove(); return false;});
	// Form submit trigger handeller
	$('form#cc_form').bind('submit', function(){return chkPaymentForm();});
	// Check for promo code
	$('#apply_promo_code').bind('click', function(){applyPromoCode();});
	// Remove promo code
	$('#remove_promo_code').bind('click', function(){removePromoCode();});
    
    
    
    
    ////////////////////////////////////////////////
    /***********RESEND PASSWORD PAGE CODE*****************/
    ////////////////////////////////////////////////

   	$('a#resend_password').show();
    $('a#resend_password').bind('click', function(){return false;});
	$('a#resend_password').click(function(){$('form#forget_password').submit();});
    $('form#forget_password').submit(function(){chkResendPasswordForm(); return false;})
	// Check for ENTER keypress over input fields
	$('form#forget_password input').bind('keypress',function(e){
		var code = (e.keyCode ? e.keyCode : e.which);
		if(code == 13){chkForm(); return false;}
	});
    
    

	$('#bill_country_name').bind('change', function(){changeState();});
	$('#ship_country_name').bind('change', function(){changeState4ship();});
	changeState();
	changeState4ship()

    
    
});


function changeState(){
	$('#bill_state_name').after('<div id="small_checking" class="small_checking">Loading...</div>');
	var stateval = ($('input[name="bill_state_name"]').length != 0)? $('input[name="bill_state_name"]').val() : $('select[name="bill_state_name"] option:selected').text();
	var textstate = '<input name="bill_state_name" id="bill_state_name" maxlength="50" tabindex="5" onkeypress="return isAlphabetKey(event);" value="'+stateval+'" type="text" />';
	var state = $('#bill_state_name').get(0);
	if($('#bill_country_name').val() == 'US'){
		$.post(baseurl+"javascript/state_list", {state:$('#bill_state_name').val(), country:$('#bill_country_name').val(), field_name:'bill_state_name', tab_index:'5'}, function(data){
			$('#small_checking').remove();
			if(data != 0) $('#bill_state_name').replaceWith(data);
		});
	}
	else{
		$('#bill_state_name').replaceWith(textstate);
		$('#small_checking').remove();
	}
}

function changeState4ship(){
	$('#ship_state_name').after('<div id="small_checking" class="small_checking">Loading...</div>');
	var stateval = ($('input[name="ship_state_name"]').length != 0)? $('input[name="ship_state_name"]').val() : $('select[name="ship_state_name"] option:selected').text();
	var textstate = '<input name="ship_state_name" id="ship_state_name" maxlength="50" tabindex="13" onkeypress="return isAlphabetKey(event);" value="'+stateval+'" type="text" />';
	var state = $('#ship_state_name').get(0);
	if($('#ship_country_name').val() == 'US'){
		$.post(baseurl+"javascript/state_list", {state:$('#ship_state_name').val(), country:$('#ship_country_name').val(), field_name:'ship_state_name', tab_index:'13'}, function(data){
			$('#small_checking').remove();
			if(data != 0) $('#ship_state_name').replaceWith(data);
		});
	}
	else{
		$('#ship_state_name').replaceWith(textstate);
		$('#small_checking').remove();
	}
}



function chkResendPasswordForm(){
	bug = i	= 0;
	var msg = new Array();
    var e	= (chkField($('input#usern').get())) ? true: false;
    if(e){
		$('a#resend_password').hide();
		displayCommonMsg("check", Array("Preparing to send you details..."), 0, false, 'forget_password');
		$.post(baseurl+"javascript/resend_password", {u:$('input#usern').val()}, function(data){
			if(data == '1'){
				displayCommonMsg("success", Array("Ok, we have sent the instructions to your email. Go check it!."), 0, false, 'forget_password');
				setTimeout( "window.location.href = "+baseurl+"", 3*1000 );
			}
			else if(data == 'empty'){
				$('a#resend_password').show();
				displayCommonMsg("error", Array("Please enter something, either your username or your email address"), 0, false, 'forget_password');
			}
			else if(data == 'Not Found'){
				$('a#resend_password').show();
				displayCommonMsg("error", Array("Oops! we were not able to find you."), 0, false, 'forget_password');
			}
			else if(data == 'Not Send'){
				$('a#resend_password').show();
				displayCommonMsg("error", Array("Oops! we were not able to send you the mail, please try again after sometime."), 0, false, 'forget_password');
			}
		});
	}
	else{
		displayCommonMsg("error", Array("Please enter something, either your username or your email address"), bug, true, 'forget_password');
	}
}


function chkPaymentForm(){
	var bug = i = j	= 0;
	var msg		= new Array();
	var frmfld	= new Array();
	var flag = temp = true;
	
	// Step 1: Check form fields for emptyness
	var ername	= new Array("card holder's name", "credit card number", "a valid expiration date", "a valid expiration date", "CVV number", "card holder's address", "card holder country", "card holder state", "card holder city", "card holder zip code");
	var jqForm	= $('form#cc_form').find('input, textarea, select');
	jqForm.each(function(i){frmfld[i] = $(this).attr('name');});
	for(i=0; i<frmfld.length; i++){
		radio	= ($('[name='+frmfld[i]+']').is(':radio'))?':checked':'';
		if(frmfld[i] != "promo_code"){
			temp	= chkField($('[name='+frmfld[i]+']'+radio).get(0));
			if(!temp){
				msg[j++] = "Enter "+ername[jqForm.index($('[name='+frmfld[i]+']').get(0))];
				bug++;
			}
			flag	= flag && temp;
		}
	}
	
	if(bug > 0)	
        displayCommonMsg("error", msg, bug, true, 'cc_form');
	else{
	    displayCommonMsg("check", Array("Submitting form..."), bug, true, 'cc_form');
		//alert('Submit ho gaya');
		return true;
		//displayMsg("check", Array("Checking for the shipping services available..."), 0, false);
		//return true;
	}
	
	return false;
}

function applyPromoCode(){
	var msg		= new Array();
	bug = 0;
	if(chkField($('[name=promo_code]').get(0))){
		// Check for promo code
		$.post(baseurl+"javascript/chk_promo", {pcode:$('input#promo_code').val()}, function(data){
			if(data == "true"){
				$('#promo_code').removeClass('fld_error');
				reloadParent();
			}else{
				bug++;
				var clas = "fail icon_cross";
				if( !$('#promo_error_msg').is("p") )
					$('#promo_tbl').after('<p id="promo_error_msg" class="'+clas+'"></p>');
				else $('#promo_error_msg').removeClass().addClass(clas);
				$('#promo_error_msg').html(data);
				$('#promo_code').addClass('fld_error');
				alert("You have done " + bug + " mistake(s).\n Please correct the highlighted field(s) first!");
				return false;
			}
		});
	}
	else{
		var clas = "fail icon_cross";
		if( !$('#promo_error_msg').is("p") )
			$('#promo_tbl').after('<p id="promo_error_msg" class="'+clas+'"></p>');
		else $('#promo_error_msg').removeClass().addClass(clas);
		$('#promo_error_msg').html('Please enter some promo code first.');
		$('#promo_code').addClass('fld_error');
		alert("You have done " + bug + " mistake(s).\n Please correct the highlighted field(s) first!");
		return false;
	}
}

function removePromoCode(){
	var msg		= new Array();
	bug = 0;
	// Check for promo code
	$.post(baseurl+"javascript/remove_promo", {a:''}, function(data){
		if(data == "true"){
			reloadParent();
		}
		else{
			bug++;
			//msg[0] = "Entered promo code is expired.";
			msg[0] = data;
			displayMsg("error", msg, bug, true);
			return false;
		}
	});
}

function reloadParent(){
	window.location.href=baseurl+'checkout/paynow';
	//self.parent.location.reload(true);
}

function changeState(){
	var state_tindex = $('#card_state').attr('tabindex');
	$('#card_state').after('<div id="small_checking" class="small_checking">Loading...</div>');
	var stateval = ($('input[name="card_state"]').length != 0)? $('input[name="card_state"]').val() : $('select[name="card_state"] option:selected').text();
	var textstate = '<input name="card_state" id="card_state" maxlength="50" tabindex="'+state_tindex+'" onkeypress="return isAlphabetKey(event);" value="'+stateval+'" type="text" />';
	var state = $('#card_state').get(0);
	if($('#card_country').val() == 'US'){
		$.post(baseurl+"javascript/state_list", {state:$('#card_state').val(), country:'US', field_name:'card_state', tab_index:state_tindex}, function(data){
			$('#small_checking').remove();
			if(data != 0) $('#card_state').replaceWith(data);
		});
	}
	else{
		$('#card_state').replaceWith(textstate);
		$('#small_checking').remove();
	}
}



function checkCC(val) {
    String.prototype.startsWith = function(str) {
        return (this.match("^" + str) == str)
        }

    Array.prototype.has = function(v, i) {
        for (var j = 0; j < this.length; j++) {
            if (this[j] == v)
                return (!i ? true: j);
        }
        return false;
    }

    // get rid of all non-numbers (space etc)
    val = val.replace(/[^0-9]/g, "");

    // now get digits
    var d = new Array();
    var a = 0;
    var len = 0;
    var cval = val;
    while (cval != 0) {
        d[a] = cval % 10;
        cval -= d[a];
        cval /= 10;
        a++;
        len++;
    }

    if (len < 13)
        return - 1;

    var cType = -1;

    // mastercard
    if (val.startsWith("5")) {
        if (len != 16)
            return - 1;
        cType = 1;
    } else
    // visa
    if (val.startsWith("4")) {
        if (len != 16 && len != 13)
            return - 1;
        cType = 2;
    } else
    // amex
    if (val.startsWith("34") || val.startsWith("37")) {
        if (len != 15)
            return - 1;
        cType = 3;
    } else
    // diners
    if (val.startsWith("36") || val.startsWith("38") || val.startsWith("300") || val.startsWith("301") || val.startsWith("302") || val.startsWith("303") || val.startsWith("304") || val.startsWith("305")) {
        if (len != 14)
            return - 1;
        cType = 4;
    } else
    // discover
    if (val.startsWith("6011")) {
        if (len != 15 && len != 16)
            return - 1;
        cType = 5;
    } else
    // enRoute
    if (val.startsWith("2014") || val.startsWith("2149")) {
        if (len != 15 && len != 16)
            return - 1;
        // any digit check
        return 6;
    } else
    // jcb
    if (val.startsWith("3")) {
        if (len != 16)
            return - 1;
        cType = 7;
    } else
    // jcb
    if (val.startsWith("2131") || val.startsWith("1800")) {

        if (len != 15)
            return - 1;
        cType = 7;
    } else
        return - 1;
    // invalid cc company
    // lets do some calculation
    var sum = 0;
    var i;
    for (i = 1; i < len; i += 2) {
        var s = d[i] * 2;
        sum += s % 10;
        sum += (s - s % 10) / 10;
    }

    for (i = 0; i < len; i += 2)
        sum += d[i];

    // musst be %10
    if (sum % 10 != 0)
        return - 1;

    return cType;
}


function updateShipGrandTotal(price){
	var cT = parseFloat($('#grandTotal').val());
	var sT = parseFloat(price);
	var shipGrandTotal = roundNumber(cT + sT, 2);
	$('#finalCartTtoal').val(roundNumber(cT, 2));
	$('#finalShipTotal').val(roundNumber(sT, 2));
	$('#shipGrandTotal').val(shipGrandTotal);
}

function unselectAll(){
	$('form:eq('+fn+') input:radio:checked').each(function(){$(this).removeAttr('checked');});
}



function changeState(){
	$('#bill_state_name').after('<div id="small_checking" class="small_checking">Loading...</div>');
	var stateval = ($('input[name="bill_state_name"]').length != 0)? $('input[name="bill_state_name"]').val() : $('select[name="bill_state_name"] option:selected').text();
	var textstate = '<input name="bill_state_name" id="bill_state_name" maxlength="50" tabindex="5" onkeypress="return isAlphabetKey(event);" value="'+stateval+'" type="text" />';
	var state = $('#bill_state_name').get(0);
	if($('#bill_country_name').val() == 'US'){
		$.post(baseurl+"javascript/state_list", {state:$('#bill_state_name').val(), country:$('#bill_country_name').val(), field_name:'bill_state_name', tab_index:'5'}, function(data){
			$('#small_checking').remove();
			if(data != 0) $('#bill_state_name').replaceWith(data);
		});
	}
	else{
		$('#bill_state_name').replaceWith(textstate);
		$('#small_checking').remove();
	}
}

function changeState4ship(){
	$('#ship_state_name').after('<div id="small_checking" class="small_checking">Loading...</div>');
	var stateval = ($('input[name="ship_state_name"]').length != 0)? $('input[name="ship_state_name"]').val() : $('select[name="ship_state_name"] option:selected').text();
	var textstate = '<input name="ship_state_name" id="ship_state_name" maxlength="50" tabindex="13" onkeypress="return isAlphabetKey(event);" value="'+stateval+'" type="text" />';
	var state = $('#ship_state_name').get(0);
	if($('#ship_country_name').val() == 'US'){
		$.post(baseurl+"javascript/state_list", {state:$('#ship_state_name').val(), country:$('#ship_country_name').val(), field_name:'ship_state_name', tab_index:'13'}, function(data){
			$('#small_checking').remove();
			if(data != 0) $('#ship_state_name').replaceWith(data);
		});
	}
	else{
		$('#ship_state_name').replaceWith(textstate);
		$('#small_checking').remove();
	}
}


function chkCheckoutForm(){
	var bug = i = j	= 0;
	var msg		= new Array();
	var frmfld	= new Array();
	var flag = temp = true;
	
	// Step 1: Check form fields for emptyness
	var ername	= new Array("billing contact name", "billing contact number", "your billing business address", "your billing business address", "your billing country name", "your billing state name", "your billing city name", "your billing zip code", "a valid billing email address", "", "", "shipping contact name", "shipping contact number", "your shipping business address", "your shipping business address", "your shipping country name", "your shipping state name", "your shipping city name", "your shipping zip code");
	var jqForm	= $('form#checkout_form:eq('+fn+')').find('input, textarea, select');
	jqForm.each(function(i){frmfld[i] = $(this).attr('name');});
	for(i=0; i<frmfld.length; i++){
		radio	= ($('[name='+frmfld[i]+']').is(':radio'))?':checked':'';
		if(frmfld[i] != "bill_comments" && frmfld[i] != "bill_street_address2" && frmfld[i] != "ship_street_address2"){
			temp	= chkField($('[name='+frmfld[i]+']'+radio).get(0));
			if(!temp){
				msg[j++] = "Enter "+ername[jqForm.index($('[name='+frmfld[i]+']').get(0))];
				bug++;
			}
			flag	= flag && temp;
		}
	}
	
	if(bug > 0)	displayCommonMsg("error", msg, bug, true,'checkout_form');
	else{
		displayCommonMsg("check", Array("Checking for the shipping services available..."), 0, false,'checkout_form');
		return true;
	}
	
	return false;
}

function copyship2bill(){
	$('#ship_contact_name').val($('#bill_contact_name').val());
	$('#ship_contact_number').val($('#bill_contact_number').val());
	$('#ship_street_address1').val($('#bill_street_address1').val());
	$('#ship_street_address2').val($('#bill_street_address2').val());
	if($('#ship_country_name option:selected').val() != $('#bill_country_name option:selected').val()){
		$('#ship_country_name option:selected').removeAttr('selected');
		$('#ship_country_name option').each(function(){
				if($(this).val() == $('#bill_country_name option:selected').val()) $(this).attr('selected', 'selected');
			}
		);
	}
	if($('#bill_state_name').is('input')) $('#ship_state_name').val($('#bill_state_name').val());
	else $('#ship_state_name').val($('#bill_state_name option:selected').html());
	$('#ship_city_name').val($('#bill_city_name').val());
	$('#ship_zip_code').val($('#bill_zip_code').val());
}
function checkAgain(){
	if(t == undefined || timer_count < 5) t = setTimeout("checkAgain()",1000);
	else if($('.skiptranslate').get(0) != undefined){
		if($('.skiptranslate').css('display') != 'none'){
			t = setTimeout("checkAgain()",1000);
		}
		else{
			$('#s911ToolbarContent').css('margin-top', '0');
			clearTimeout(t);
		}
	}
	timer_count ++;
}

function canLogout(){
	$(this).blur();
	if($("#cart_items").is('span') && $(".icon_logout").is('span') && $("#cart_items").html() != "Cart is Empty")
		if(!confirm("Cart is not empty! \nAre you sure you want to logout?")) return false;
}
function chkEmpty(o){
    if ($.trim($(o).val()).length > 0)
        return true;
    else
        return false;
}
function chkField(o){
    if (!chkEmpty($(o).get())){
        $(o).addClass('fld_error');
        bug++;
        return false;
    } else if ($(o).attr('id') == "customeremailid" && !validateEmail($(o).val())){
        $(o).addClass('fld_error');
        bug++;
        return false;
    } else {
        $(o).removeClass('fld_error');
        return true;
    }
}

function chkForm(){
	bug = i	= 0;
	var msg = new Array();
    var u	= (chkField($('input#username').get())) ? true: false;
    var p	= (chkField($('input#pass').get())) ? true: false;
    if(u && p){
		displayMsg("check", "Checking credentials...", false);
		$.post(baseurl+"javascript/user_login", {un:$('input#username').val(), pw:$('input#pass').val()}, function(data){
			if(data == 'true'){
			     displayMsg("success", "Authenticated!", true);
            }else{
                displayMsg("fail", data, false);
            }
		});
    }
	else{
		if( !$("#error_msg").is("p") )
			$('form#login:eq('+fn+')').after('<p id="error_msg" class="warning icon_warn"></p>');
		if($('input#username').val().length<=0) msg[i++] = "Oops you missed username!";
		if($('input#pass').val().length<=0) msg[i++] = "Oops you missed password!";
		$("#error_msg").html(msg.join("<br />"));
		alert("You have done " + bug + " mistake(s).\n Please correct the highlighted field(s) first!");
	}
}



function displayCommonMsg(e, m, b, se, form){
	if(e == "remove"){$('#error_msg').remove();}
	else{
		se = (se == "undefined")? false : se;
		var clas = (e == "error")? "fail icon_cross" : ((e == "success")?"success icon_tick":((e == "warning")?"warning icon_warn": "check ico_check"));
		if( !$('#error_msg').is("p") )
			$('form#'+form+':eq('+fn+')').after('<p id="error_msg" class="'+clas+'"></p>');
		else $('#error_msg').removeClass().addClass(clas);
		$('#error_msg').html(m.join("<br />"));
		if(se) alert("You have done " + b + " mistake(s).\n Please correct the highlighted field(s) first!");
	}
}

function displayMsg(e, m, r){
	var clas = (e == "success")? "success icon_tick" : ((e == "check")? "check ico_check" : "fail icon_cross");
	if( !$("#error_msg").is("p") )
		$('form#login:eq('+fn+')').after('<p id="error_msg" class="'+clas+'"></p>');
	else $("#error_msg").removeClass().addClass(clas);
	$("#error_msg").html(m);
	if(r){
		$('input#username').val("username");
		$('input#pass').val("password");
		$("#error_msg").fadeOut("slow");
        if(window.parent){
    		if($('#referrer').get(0)) window.parent.location.href=$('#referrer').val();
    		else window.parent.location.href=baseurl;
        }else{
    		if($('#referrer').get(0)) window.location.href=$('#referrer').val();
    		else window.location.href=baseurl;
      }
	}
}

function search_validation(){
    if($("#query").val()==""){
        alert("Please enter search term.")
        $("#query").focus();
        return false;
    }
}
function send_newsletter(){
    var name = $("#newsletter_name").val(); 
    var email = $("#newsletter_email").val();
	$.post(baseurl+"ajax_request/send_newsletter", {name:name,email:email}, function(data){
		if(data){
			$('#newsletter_msg').html(data);
		}
		else{
			$('#newsletter_msg').removeClass().addClass('fail icon_cross').html('Error, Try Again!').fadeTo(2000,'0.1',function(){ $(this).replaceWith(add_link).show(); });
		}
   });
}
function add2Cart(){
	add_link = $(this).get();
	$(this).replaceWith('<span class="check ico_check">Adding...</span>');
	item_id	= $(this).attr('id').substring(5);
    
    var e = document.getElementById("qty_"+item_id);
    if(e){
        if(isNaN(e.value)){
            qty = 1;
        }else{
            qty = e.value;
        }
    }else{
        qty = 1;
    }

    var dg = document.getElementById("design");
    if(dg){
        design = dg.value;
    }else{
        design = "";
    }

    var dm = document.getElementById("dimension");
    if(dm){
        dimension = dm.value;
    }else{
        dimension = "";
    }

    color = "";
    var cl = document.getElementById("color_1");
    if(cl){
        for(n=1;n<100;n++){
            var cl2 = document.getElementById("color_" + n); 
            if(cl2){
                if(cl2.checked){
                    color = cl2.value;
                    break;
                }
            }else{
                break;
            }
        }
    }else{
        color = "";
    }

	$.post(baseurl+"cart/ajax_add_item", {id:item_id,q:qty, design:design, dimension:dimension, color:color}, function(data){
		if(data){
			$.ajax({type:"POST", url:baseurl+"cart/cart_total_items", success:function(data){$('#cart_items').html(data);}});
			$('span.check').removeClass().addClass('success icon_tick').html('Added').fadeTo(400,'0.1',function(){ $(this).replaceWith(add_link).show(); });
		}
		else{
			$('span.check').removeClass().addClass('fail icon_cross').html('Error!').fadeTo(2000,'0.1',function(){ $(this).replaceWith(add_link).show(); });
		}
	});
	return false;
}

function isNumberKey(evt)
{
	 var charCode = (evt.which) ? evt.which : event.keyCode;
	 if (charCode > 31 && (charCode < 48 || charCode > 57))
            return false;
     return true;
}
function isAlphabetKey(evt)
{
	 var charCode = (evt.which) ? evt.which : event.keyCode;
	 if ( (charCode >= 33 || charCode  == 45 || charCode  == 46) && (charCode < 65 || charCode > 91) && (charCode < 97 || charCode > 122))
            return false;
     return true;
}



/***************CATR FUNCTIONS***********************/

// JavaScript Document
$(function(){
	$('input[name="main_remItem"]:checkbox').live('click', function(){
		$(this).parents('#scartWrap').find(':checkbox').attr('checked', this.checked);
		(this.checked) ? $('input:checkbox').parent('td').parent('tr').addClass('rowSelected') : $('input:checkbox').parent('td').parent('tr').removeClass('rowSelected');
	});
	$('input:checkbox').change(function(){
		(this.checked) ? $(this).parent('td').parent('tr').addClass('rowSelected') : $(this).parent('td').parent('tr').removeClass('rowSelected');
	});
	$('a.update_cart').live('click', function(){calTotalWeight(); $(this).blur(); return false;});
	$('a.remove_cart').live('click', function(){
		$(this).blur();
		$('form:eq(1)').trigger('submit');
		return false;
	});
	$('input[name^="quant"]').bind('change', updateCart);
	$('input[name^=quant]').live('keypress',function(e){return isNumberKey(e);});
	calTotalWeight();
    $('form#shipping_form:eq('+fn+') input:first:radio').trigger('click');
});

function updateCart(){
	$('input[name^=quant]').attr('readonly', 'true').addClass('disabledTF');
	var quantity= $(this).val();
	var number	= $(this).attr('id').replace('quant','');
	var item_id	= $('#itemName'+number).val();
	var baseurl	= $('base').attr('href');
	$a		= $('a.update_cart').get();
	
	if(quantity <= 0){
		alert('Please add quantity greater than 0.');
		$('span.check').replaceWith($a);
		$(this).val('1');
		quantity= 1;
	}
	
	$($a).replaceWith('<span class="check ico_check">Updating...</span>');

	// Update cart
	$.post(baseurl+"javascript/update_cart", {id:item_id, quant:quantity}, function(data){
		if(data != 0){
			$('span.check').removeClass().addClass('success icon_tick').html('Updated').fadeTo('slow','0.1',function(){ $(this).replaceWith($a).fadeIn('fast',function(){$(this).val('1');}); });
			// Update subtotal, quantity & weight
			prevcolor = "#000000";
			$('input[name="subtotal'+number+'"], input[name="quant'+number+'"], input[name="weight'+number+'"], #grandTotal, input[name=totalWeight]').css('color','#AAA');
			$.post(baseurl+"javascript/update_prcinquantweight", {id:item_id}, function(data){
				if(data != 0){
					d = data.split("|");
					s = d[0];
					q = d[1];
					w = d[2];
					$('input[name="subtotal'+number+'"]').val(s);
					$('input[name="quant'+number+'"]"]').val(q);
					$('input[name="weight'+number+'"]').val('x '+w+' = '+roundNumber(q*w, 2));
				}
				$('input[name="quant'+number+'"]').css('color', prevcolor);
				$('input[name="subtotal'+number+'"], input[name="weight'+number+'"]').css('color', "#ffffff");
			});
			// calculate Total Amount
			$.ajax({type:"POST", url:baseurl+"javascript/cart_total", success:function(data){
				if(data != 0){
					$('#grandTotal').val(data);
					$('#grandTotal, input[name=totalWeight]').css('color', prevcolor);
					enableNow();
				}
				else{
					$('#grandTotal, input[name=totalWeight]').css('color', prevcolor);
					enableNow();
				}
			}});
		}
		else{
			$('span.check').removeClass().addClass('fail icon_cross').html('Error!').fadeTo(2000,'0.1',function(){ $(this).replaceWith($a).fadeIn('fast'); });
			enableNow();
		}
	});
}

function enableNow(){
	calTotalWeight();
	$('input[name^=quant]').removeAttr('readonly').removeClass('disabledTF').css('background-color','#FFF');
}

function roundNumber(num, dec){
	var result = Math.round(num*Math.pow(10,dec))/Math.pow(10,dec);
	return result.toFixed(2);
}

function calTotalWeight(){
	var totalWeight = 0;
	$('input[name^=weight]').each(function(){
		array	= ($(this).val()).split(" ");
		weight	= array[array.length - 1];
		totalWeight += parseFloat(weight);
	});
	$('input[name=totalWeight]').val(roundNumber(totalWeight, 2));
	return true;
}

