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');
	target.change(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("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');});
});




