var j = jQuery.noConflict();

function Qas (){
	this.target = j("#orderNewAddress");
	this.url = "index.php?c=ajax&m=qasVerifyAddress&e=search";
	this.testurl = "index.php?c=ajax&m=qasVerifyAddress&e=serverup";
	this.format = "json";
	this.address = new Qas.Address();
	this.ajaxqas = '';
	this.ajaxqas_width =30;
	this.serverStatus = true;
	this.button = j("input#adsb");
	this.limit = 10;
	this.preTemplate = "<div class='ajax_qas'><strong id='alert'>We are verifying your address.....</strong><div id='srhing'></div><span></span></div>";
	this.ini = function(){
		var div = document.createElement("div");
		div.className = "relative";
		this.target.wrap(div);
		this.button.click(this.aClick.close(this));
	};
	this.aClick = function(){
		if(this.address.get_status() == true){
			this.button.hide();
			this.address.disable();
			this.target.after(this.preTemplate);
			this.ajaxqas = j('div.ajax_qas');
			if(j("div.alert2").size() != 0 && j("form.adsupdate").size() != 0){if(j.browser.msie){this.ajaxqas.css("top","172px");}else{this.ajaxqas.css("top","180px");}}
			this.ajaxqas.toggle('slow');
			this.send();
			return false;
		}else{
			return true;
		}
	};
	j("a#triggerTwo").click(function(){
		var tmp = j('div.ajax_qas');
		if(tmp.size() == 1)
			j('div.ajax_qas').toggle();
	});
}
Qas.prototype.template = function(data){
	var head = "<strong id='alert'>Verify and choose your shipping address below:</strong><ul>";
	var foot = "</ul><span></span><a href='#' id='qas_ok'>OK</a>";
	var html = head;
	if(data){
		if(typeof(data) != "string"){
			if(data.length == 1){
				if(this.address.fulladdress().toLowerCase() == (data[0].sPreview+" "+data[0].sPostcode).toLowerCase().replace("&#039;","'")){
					this.submit();
				}
			}
			var body_elem = "<li><input type='radio' id='adns_{$id}' name='real_address' value='{$address} {$postcode}' /><label for='adns_{$id}'>{$address} {$postcode}</label></li>";
			for(var i in data){
				var ajaxqas_length = data[i].sPreview.length+data[i].sPostcode.length-1;
				if(ajaxqas_length > this.ajaxqas_width){this.ajaxqas_width = ajaxqas_length;}
				var tmp = body_elem;
				html += tmp.replace(/\{\$address\}/g,data[i].sPreview).replace(/\{\$postcode\}/g,data[i].sPostcode).replace(/\{\$id\}/g,i);;
				if(i >= this.limit) break;
			}
		}else{
			this.submit();
		}
	}else{
		this.submit();
	} 
	var fulladdress = this.address.fulladdress();
	var fulladdress_length = fulladdress.length;
	if(fulladdress_length > this.ajaxqas_width){this.ajaxqas_width = fulladdress_length;}
	html += '<li class="red" id="sep">Keep the address as it is.</li><li><input type="radio" name="real_address" id="adns_" checked="checked" value="'+fulladdress+'" /><label for="adns_">'+fulladdress+'</label></li>';
	return html+foot;
};
Qas.prototype.submit = function(){
	this.address.enable();
	this.ajaxqas.remove();
	if(j("form.adsupdate").size() != 0)
		this.target.after("<input type='hidden' name='action' value='save changes' />");
	if(j("div#ads").size() != 0)
		this.target.after("<input type='hidden' name='action' value='save' />");
	this.target.after("<input type='hidden' name='submit1' />");
	j("form#adsform").submit();
}
Qas.prototype.complete = function(data,textStatus){
	this.ajaxqas.html(this.template(data));
	j("div.ajax_qas ul").width(this.ajaxqas_width*6+70);
	j("a#qas_ok").bind("click", function(){
		this.button.show();
		this.ajaxqas.toggle();
		this.address.enable();
		var tmp = this.ajaxqas.find("input:checked");
		this.address.parse(tmp.attr("value"));
		this.ajaxqas.remove();
		this.address.set_status(false);
		this.submit();
		return false;
	}.close(this));
};
Qas.prototype.test = function(){
	j.ajax({type:"post",url:this.testurl,data:{},dataType:this.format,success:this.testcall.close(this)});
};
Qas.prototype.testcall = function(data,textStatus){this.serverStatus = data;};
Qas.prototype.send = function (){
	var data = {"address":this.address.get_ads1()+" "+ this.address.get_ads2(),"zip":this.address.get_postcode()};
	j.ajax({type:"post",url:this.url,data:data,dataType:this.format,success:this.complete.close(this),error:this.errFunc.close(this),timeout:2000});
};
Qas.prototype.errFunc = function(){this.submit();};
Qas.Address = function (){
	this.ads1 = j("input#address1");
	this.ads2 = j("input#address2");
	this.postcode = j("input#zip");
	this.suburb = j("select#suburb");
	this.state = j("select#state");
	this.srh_btn = j("input#sch_sub");
	this.sub_btn = j("input#adsb");
	this.validate = function(){
		if((this.get_ads1().length >0 || this.get_ads2().length >0) && this.get_state() != '')
			return true;
		else
			return false;
	};
	this.enable();
	this.status = this.validate();
	this.ads1.change(function(){this.set_status(true);}.close(this)).change();
	this.ads2.change(function(){this.set_status(true);}.close(this)).change();
	this.postcode.change(function(){this.set_status(true);}.close(this)).change();
	this.suburb.change(function(){this.set_status(true);}.close(this)).change();
	this.state.change(function(){this.set_status(true);}.close(this)).change();
};
Qas.Address.prototype.parse = function (str_ads){
	if(this.fulladdress() != str_ads){
		var tmp = str_ads.split(",");
		var tmpLength = tmp[0].length;
		if(tmpLength > 30){
			this.set_ads1(tmp[0].substring(0,30));
			this.set_ads2(tmp[0].substring(30,tmpLength));
		}else{
			this.set_ads1(tmp[0]);
			this.set_ads2('');
		}
		var tmp2 = tmp[1].trim().split(" ");
		this.set_postcode(tmp2.pop());
		this.set_state(tmp2.pop());
		this.set_suburb(tmp2.join(" "));
	}
};
Qas.Address.prototype.disable = function(){
	this.ads1.attr("disabled","disabled");
	this.ads2.attr("disabled","disabled");
	this.postcode.attr("disabled","disabled");
	this.suburb.attr("disabled","disabled");
	this.state.attr("disabled","disabled");
	this.srh_btn.attr("disabled","disabled");
	this.sub_btn.hide();
};
Qas.Address.prototype.enable = function(){
	this.ads1.removeAttr("disabled");
	this.ads2.removeAttr("disabled");
	this.postcode.removeAttr("disabled");
	this.suburb.removeAttr("disabled");
	this.state.removeAttr("disabled");
	this.srh_btn.removeAttr("disabled");
	this.sub_btn.show();
};
Qas.Address.prototype.fulladdress = function(){
	var ads = jQuery.trim(this.get_ads1()+" "+this.get_ads2());
	return ads+", "+jQuery.trim(this.get_suburb()+" "+this.get_state()+" "+this.get_postcode());
};
Qas.Address.prototype.get_status = function(){return this.status;};
Qas.Address.prototype.get_ads1 = function(){return jQuery.trim(this.ads1.val().replace(/\"/g,""));};
Qas.Address.prototype.get_ads2 = function(){return jQuery.trim(this.ads2.val().replace(/\"/g,""));};
Qas.Address.prototype.get_postcode = function(){return this.postcode.val().replace(/[^0-9]/g,"");};
Qas.Address.prototype.get_suburb = function(){var tmp = j("select#suburb option:selected");if(tmp.size() == 1){return jQuery.trim(tmp.html());}else{return '';}};
Qas.Address.prototype.get_state = function(){return jQuery.trim(j("select#state option:selected").html());};
Qas.Address.prototype.set_status = function(status){if(this.validate()) this.status = status;};
Qas.Address.prototype.set_ads1 = function(value){this.ads1.val(value);};
Qas.Address.prototype.set_ads2 = function(value){this.ads2.val(value);};
Qas.Address.prototype.set_postcode = function(value){this.postcode.val(value);};
Qas.Address.prototype.set_suburb = function(value){var tmp = '<option value="'+value+'" selected="selected">'+value+'</option>';this.suburb.html(tmp);this.suburb.attr("size",1);};
Qas.Address.prototype.set_state = function(value){var tmp = '<option value="'+value+'" selected="selected">'+value+'</option>';this.state.html(tmp);this.state.attr("size",1);};

j("table#orderNewAddress").ready(function(){if(document.getElementById("orderNewAddress")){var qas = new Qas();qas.test();setTimeout(function(){if(qas.serverStatus) qas.ini();},1000);}});
j(".inputbox").ready(function(){var target = j(".inputbox[id!=autoComplete]");var normal = {"border":"1px solid #b1b1b1"};var efct = {"border":"1px solid #d92c29"};target.mouseover(function(){j(this).css(efct);}).focus(function(){j(this).css(efct);}).mouseout(function(){j(this).css(normal);}).blur(function(){j(this).css(normal);});});
j("select#subselect").ready(function(){j("select#subselect").change(function(event){var link = j("select#subselect option:selected").attr('title'); if(link){window.location.href = link;}});});
j("input.addToCart").ready(function(){
	var submitable = false;
	j("input.addToCart").mouseover(function(event){
		var target = event.target;
		var optionsize = j("select.nec_selects").size();
		var selectedsize = j("select.nec_selects option:selected").filter(function(){return j(this).val() != 'Please Select';}).size();
		if(optionsize != selectedsize){
			j("select.nec_selects").each(function(){
				if(j(this).find('option:selected').filter(function(){return j(this).val() != 'Please Select'}).size() == 0){
					j(this).parent().css("position","relative");
					if(j.browser.msie && j.browser.version == '6.0'){
						j(this).parent().css("margin-top","5px");
					}
					j(this).after('<span class="alertbox">Please select '+j(this).attr("title")+'<span class="corner"></span></span>');
				}
			});
			j(target).css("cursor","default");
			submitable = false;
		}else{
			j(target).css("cursor","pointer");
			submitable = true;
		}
	});
	j("input.addToCart").click(function(event){return submitable;});
	j("input.addToCart").mouseleave(function(){j("span.alertbox").remove();});
});
j("select#searchRange").ready(function(){
	j("select#searchRange").change(function(event){
		var value = j(event.target).val();
		if(value != 'Price Range' && value != 'any'){
			var form = j("form[name=range]");
			var url = form.attr('action');
			var prices = value.split("-");
			if(url.indexOf("searchstring") === -1){
				var action = url+"?min_price="+ prices[0]+"&max_price="+prices[1];
			}else{
				var action = url+"&min_price="+ prices[0]+"&max_price="+prices[1];
			}
			window.location.href = action;
		}else if(value == 'any'){
			j("form[name=range]").submit();
		}
	});
});
/*
j("li#password_input").ready(function(){
	var obj = j("li#password_input");
	if(obj.length == 0) return false;
	var target = obj.find('input');
	var submit = target.closest('form').find('input[type=submit]');
	target.blur(function(){
		if(j(this).val().indexOf(' ') != -1 && j('li#password_alert').size() == 0){
			j(this).closest('li').after('<li id="password_alert"><div class="inputerror">Passwords cannot include spaces.</div></li>');
			j(this).closest('form').find('input[type=submit]').attr("disabled",'disabled').removeClass('accept').addClass('accept_disabled');
		}
		if(j(this).val().indexOf(' ') == -1 && j('li#password_alert').size() != 0){		
			j('li#password_alert').remove();
			j(this).closest('form').find('input[type=submit]').removeAttr('disabled').removeClass('accept_disabled').addClass('accept');
		}
	});
});
j("td#password_input").ready(function(){
	var obj = j('td#password_input');
	if(obj.length == 0) return false;
	var target = obj.find('input');
	target.change(function(){
		if(j(this).val().indexOf(' ') != -1 && j('td#password_alert').size() == 0){
			j(this).closest('td').next().attr('id','password_alert').html('<div class="alert1">Passwords cannot include spaces.</div>');
			j(this).closest('form').find('input[type=submit]').attr("disabled",'disabled');
		}
		if(j(this).val().indexOf(' ') == -1 && j('td#password_alert').size() != 0){	
			j('td#password_alert').html('');
			j(this).closest('form').find('input[type=submit]').removeAttr('disabled');
		}
	});
});
*/
j('input#register_new_submit').ready(function(){
	var obj = j('input#register_new_submit');
	if(obj.length == 0) return false;
	var pass = j('li#password_input input');
	var pass1 = j('li#password1_input input');
	var info = pass.closest('li');
	obj.click(function(){
		var flag = true;
		var tmp = j('li#password_alert');
		if(pass.val().indexOf(' ') != -1){
			if(tmp.size() == 0)
				info.after('<li id="password_alert"><div class="inputerror">Passwords cannot include spaces.</div></li>');
			else
				tmp.html('<div class="inputerror">Passwords cannot include spaces.</div>');
			flag = false;
		}else{
			if(pass.val() != pass1.val()){
				if(tmp.size() == 0)
					info.after('<li id="password_alert"><div class="inputerror">Passwords are not identical.</div></li>');
				else
					tmp.html('<div class="inputerror">Passwords are not identical.</div>');
				flag = false;
			}
		}
		return flag;
	});
});
j('input#my_account_login_submit').ready(function(){
	var obj = j('input#my_account_login_submit');
	if(obj.length == 0) return false;
	var pass = j('td#password_input input');
	var pass1 = j('td#password1_input input');
	var info = pass.closest('td').next();
	obj.click(function(){
		var flag = true;
		if(pass.val().indexOf(' ') != -1){
			info.html('<div class="alert1">Passwords cannot include spaces.</div>');
			flag = false;
		}else{
			if(pass.val() != pass1.val()){
				info.html('<div class="alert1">Passwords are not identical.</div>');
				flag = false;
			}
		}
		return flag;
	});
});
j("div#amenu").ready(function(){
	var obj = j('div#amenu');
	if(obj.length == 0) return false;
	obj.find('ol li input[type=submit]').hover(function(){j(this).toggleClass('underline');},function(){j(this).toggleClass('underline');});
});
j('#paypalTag').ready(function(){
	var obj = j('#paypalTag');
	if(obj.length == 0 || obj.attr('disabled')=='disabled') return false;
	var i = j('#paypal'),s = j('#proceed'),u = j('#upadte'),t1 = j('#paypalTarget'),t2=j('#paypalTarget2'),f=j('#adsform');
	obj.click(function(){
		if(obj.hasClass('no_w')){
			scrollTo(0,0);
		}else{
			i.val(1);f.submit();t2.show();t1.hide();s.hide();u.hide();
		}
		return false;
	});
	if(s.hasClass('no_w')){
		s.click(function(){
			scrollTo(0,0);
			return false;
		});
	}
});
j('#refer_new_friends').ready(function(){
	var obj = j('#refer_new_friends');
	if(obj.length == 0) return false;
	j('a.open_contact').click(function(){
		var url = this.href;
		var win = window.open(url,'','status=1,width=605,height=402,scrollbars=1');
		win.focus();
		return false;
	});
});
function setMail(str){
	var obj = j('#refer_new_friends #email_list');
	if(obj.length == 0) return false;
	var content = j.trim(obj.val());
	content += (content.length >0)?',\r\n':'';
	obj.val(content+str);
}
j('#view360').ready(function(){
	var obj = j('#view360');
	if(obj.length == 0) return false;
	obj.click(function(){
		var $this = j(this);
		var cp = $this.next('.product_view_swf').lightbox();
		var g = cp.find('.p_middle');
		var files = eval(j.trim(cp.find('.p_top .hidden').text()));
		var t = cp.find('.p_top img');
		var s = cp.find('.p_top ul');
		if(t.length > 1){
			t.click(function(){
				var $this = j(this);
				$this.closest('ul').find('.bdred').removeClass('bdred');
				var index = $this.attr('alt');
				var tmp = files[index];
				var str = '<object name="flashloader" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" id="gallary" width="'+tmp.width+'" height="'+tmp.height+'" codebase="http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab">';
				str += '<param name="movie" value="'+tmp.swf+'" />';
				str += '<param name="quality" value="high" />';
				str += '<param name="bgcolor" value="#ffffff" />';
				str += '<param name="allowScriptAccess" value="sameDomain" />';
				str += '<embed quality="high" bgcolor="#ffffff" align="middle" play="true" loop="false" quality="high" src="'+tmp.swf+'" width="'+tmp.width+'" height="'+tmp.height+'" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.adobe.com/go/getflashplayer"></embed></object>';
				g.html(str);
				$this.addClass('bdred');
			});
			var pre=cp.find('.pre');
			var next=cp.find('.next');
			if(t.length >5){
				var current = 0;
				var all = Math.floor(t.length/5);
				pre.click(function(){
					s.animate({marginLeft:(parseInt(s.css('marginLeft'))+285)+"px"},200);
					current--;
					if(current == 0){
						next.show();
						pre.hide();
					}else{
						next.show();
					}
					return false;
				}).hide();
				next.click(function(){
					s.animate({marginLeft:(parseInt(s.css('marginLeft'))-285)+"px"},200);
					current++;
					if(current == all){
						pre.show();
						next.hide();
					}else{
						pre.show();
					}
					return false;
				});
			}else{
				next.hide();
				pre.hide();
			}
		}
		return false;
	});
	if(j('#ebay360').length){
		obj.trigger('click');
	}
});
var CZ = new Object();
//define package name
CZ.Api = new Object();
//define package function
CZ.Api.loadSub = function(sub,state,zip){
	if(zip.validate().data('jquery_validate_rs')){
		var data = {
			'zip':zip.val()
		};
		j.post('index.php?c=ajax&m=qasVerifyAddressNew&e=findsub',data,function(data,textStatus){
			if(data.flag){
				var sub_values = [];
				var state_values = [];
				var sub_str = '';
				var state_str = '';
				for(var i=0; i< data.data.length; i++){
					if(j.inArray(data.data[i].sub_name,sub_values) == -1){
						sub_values.push(data.data[i].sub_name);
						sub_str += '<option value="'+data.data[i].sub_name+'">'+data.data[i].sub_name+'</option>'
					}
					if(j.inArray(data.data[i].zone_code,state_values) == -1){
						state_values.push(data.data[i].zone_code);
						state_str += '<option value="'+data.data[i].zone_code+'">'+data.data[i].zone_code+'</option>';
					}
				}
				sub.html(sub_str).find('option:first').attr('selected','selected');
				state.html(state_str).find('option:first').attr('selected','selected');
			}
		},'json');
	}
};

j('#chg_billing_ads').ready(function(){
	var obj = j('#chg_billing_ads');
	if(obj.length == 0) return false;
	var t = j('.lightbox_billing_ads');
	obj.click(function(){
		var cp = t.lightbox();
		var zip = cp.find('input[name=billing_zip]');
		var sub = cp.find('select[name=billing_suburb]');
		var state = cp.find('select[name=billing_state]');
		var ajax_payee = j('#ajax_payee');
		var ajax_ads = j('#ajax_ads');
		var ajax_ads_info = j('#ajax_ads_info');
		cp.find('.js_input').validate();
		cp.find('#search_suburb').click(function(){
			if(zip.validate().data('jquery_validate_rs')){
				CZ.Api.loadSub(sub,state,zip);
			}
		});
		cp.find('#save_billing_ads').click(function(){
			var info = cp.find('input[type!=button],select').serializeArray();
			var flag = true;
			cp.find('.js_input').each(function(){
				flag &= j(this).validate().data('jquery_validate_rs');
			});
			if(flag){
				j.post('index.php?c=ajax&m=order&e=saveBillingInfo',j.toJsonObject(info),function(data,textStatus){
					if(data.status == 1){
						ajax_payee.html(data.payee);
						ajax_ads.html(data.semi_ads);
						ajax_ads_info.html(data.semi_info);
						t.find('input[name=billing_name]').val(data.payee);
						t.find('input[name=billing_zip]').val(zip.val());
						t.find('input[name=billing_suburb]').val(sub.val());
						t.find('input[name=billing_state]').val(state.val());
						t.find('input[name=billing_address]').val(data.semi_ads);
						cp.close();
					}
				},'json');
			}
		});
		return false;
	});
});


