if (top!=self){
	top.location = location;
}

var thumbview = {

	container : null,
	zoomImage : null,
	mode : 'center',
	img : '',

	init : function(){

		if(thumbview.container === null){
			thumbview.container = document.createElement('DIV');
			thumbview.container.className = 'hidden';
			thumbview.container.id = 'zoomContainer';
			thumbview.container.innerHTML = '<div class="zoomHeader"><a href="#" onclick="thumbview.close(); return false;">Close</a></div><div id="zoomImageContainer"><img id="zoomImage" src="" alt=""></div>';
			document.body.appendChild(thumbview.container);
		}
	},

	load : function(sImg, sId, sMode){

		thumbview.init();
		thumbview.img = sImg;
		thumbview.mode = sMode;
		thumbview.zoomImage = new Image();
		thumbview.zoomImage.src = sImg;
		xGetElementById('zoomImage').src = thumbview.zoomImage.src;
		xGetElementById('zoomImage').onload = thumbview.show;
	},

	show : function(){

		try{

			xOpacity(thumbview.container, 0);
			xRemoveClass(thumbview.container, 'hidden');

			if (thumbview.mode == 'center'){
				xCenter(thumbview.container);
			}else{
				xMoveTo(thumbview.container,
					xScrollLeft() + (document.body.offsetWidth - thumbview.container.offsetWidth)/2,
					50
				);
			}

			xAniOpacity(thumbview.container, 1, 1000, 1);

		}catch(e){
			location.href = thumbview.img;
		}
	},

	close : function(){
		xAniOpacity(thumbview.container, 0, 1000, 1, thumbview.hide);
	},

	hide : function(){
		xAddClass(thumbview.container, 'hidden');
	}
}

var bom = {

	base: 'http://www.lazinc.com',
	events : [],

	load : function(){
		png.fnLoadPngs();
	},

	unload : function(){

		// destroy event listeners
		for(var i = 0, j = bom.events.length; i < j; i++){
			xRemoveEventListener(bom.events[i][0], bom.events[i][1], bom.events[i][2], bom.events[i][3]);
		}
	},

	report : function(msg){ }
}

var png = {

	applyPositioning : true,
	blank : 'http://www.lazinc.com/skins/main/images/blank.gif',
	blank_pattern : /blank\.gif$/i,
	browser_pattern : /MSIE (5\.5|[6])/,

	fnLoadPngs : function() {

		if(document.all && png.browser_pattern.test(navigator.userAgent)){

			var list = xGetElementsByClassName('transparent', document);

			for (var i = 0, j = list.length; i < j; i++) {

				// background pngs
				if (list[i].currentStyle.backgroundImage.match(/\.png/i) !== null) {
					png.bg_fnFixPng(list[i]);
				}
				// image elements
				if (list[i].tagName=='IMG' && list[i].src.match(/\.png$/i) !== null){
					png.el_fnFixPng(list[i]);
				}

				// apply position to 'active' elements
				if (png.applyPositioning && (list[i].tagName=='A' || list[i].tagName=='INPUT') && list[i].style.position === ''){
					list[i].style.position = 'relative';
				}
			}
		}
	},

	bg_fnFixPng : function(obj) {
		var mode = 'scale';
		var bg	= obj.currentStyle.backgroundImage;
		var img_src = bg.substring(5,bg.length-2);

		if (obj.currentStyle.backgroundRepeat == 'no-repeat') {
			mode = 'crop';
		}
		obj.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + img_src + "', sizingMethod='" + mode + "')";
		obj.style.backgroundImage = 'url('+png.blank+')';
	},

	el_fnFixPng : function(img) {
		var src = img.src;
		img.style.width = img.width + "px";
		img.style.height = img.height + "px";
		img.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + src + "', sizingMethod='scale')";
		img.src = png.blank;
	}
}

var autoform = {

	errs : 0,
	el : null,
	emptyString : /^\s*$/,
	email : /^[^@]+@[^@.]+\.[^@]*\w\w$/,
	msg : '',
	button : null,
	button_msg : '',
	transport : 'html',

	message : function(title, msg){
		autoform.openFeedback(title, msg);
	},

	validate : function(el, transport){

		try{

			if(!xGetElementById('feedback')){

				var feedback = document.createElement('DIV');
				feedback.className = 'feedbackContainer hidden';
				feedback.id = 'feedback';
				feedback.innerHTML = '<div id="feedbackTitle" class="feedbackTitle">&nbsp;</div><div id="feedbackMessage">&nbsp;</div><div class="feedbackFooter"><a href="#" onclick="autoform.closeFeedback(); return false;" title="Close Message">Close</a></div>';
				document.body.appendChild(feedback);
			}

			autoform.el = el;
			autoform.transport = transport;
			autoform.errs = 0;
			autoform.msg = '';

			var fields = xGetElementsByClassName('validate',autoform.el);

			for(var i = 0, j = autoform.el.elements.length; i < j; i++){

				if(xHasClass(autoform.el.elements[i], 'validate')){

					// required field
					if(autoform.validatePresent(autoform.el.elements[i])){
						xRemoveClass(autoform.el.elements[i], 'error');

						// valid email field
						if(xHasClass(autoform.el.elements[i], 'email')){
							if(!autoform.validateEmail(autoform.el.elements[i])){

								autoform.msg += "<li>Invalid email address.</li>";

								xAddClass(autoform.el.elements[i], 'error');
								autoform.errs++;
							}
						}

					}else{

						var str = autoform.el.elements[i].name.replace(/\[/g, " ")
						str = str.replace(/]/g, "");

						autoform.msg += "<li>" + ucfirst(str) + " is required.</li>";
						xAddClass(autoform.el.elements[i], 'error');
						autoform.errs++;
					}
				}

				if(autoform.el.elements[i].type == 'submit'){
					autoform.button = autoform.el.elements[i];
					autoform.button_msg = autoform.el.elements[i].value;
				}
			}

			if(autoform.errs > 0){

				var errors;
				if (autoform.errs > 1){
					autoform.msg = '<ul>There are errors which need correcting:' + autoform.msg + '</ul>';
				}
				if (autoform.errs == 1){
					autoform.msg = '<ul>There is an error which needs correcting:' + autoform.msg + '</ul>';
				}
				autoform.message('Error!', autoform.msg);
				return false;

			}else{
				autoform.disableButton();
				return autoform.submit();
			}

		}catch(e){
			bom.report(e);
			autoform.submit();
		}
	},

	enableButton : function(){

		autoform.button.disabled = false;
		autoform.button.value = autoform.button_msg;
		xRemoveClass(autoform.button, 'disabled');
	},

	disableButton : function(){

		autoform.button.disabled = true;
		autoform.button.value = 'Sending ...';
		xAddClass(autoform.button, 'disabled');
	},

	validateEmail : function(oInput){

		if (autoform.email.test(oInput.value)) {
			return true;
		}else{
			return false;
		}
	},

	validatePresent : function(oInput){

		switch(oInput.tagName.toLowerCase()){

			case 'input':
				return !(autoform.emptyString.test(oInput.value));
			break;
			case 'select':
				return !((oInput.value == '0') || (oInput.value == 'false'));
			break;
		}
	},

	reset : function(){
		autoform.close();
	},

	submit : function(transport){

		if(autoform.transport != 'ajax'){
			return true;
		}

		try{

			var params = [];
			for(i=0, j = autoform.el.elements.length; i < j; i++){

				if(autoform.el.elements[i].options){
					var idx = autoform.el.elements[i].selectedIndex;
					params[i] = autoform.el.elements[i].name + '=' + autoform.el.elements[i].options[idx].value;
				}else{
					params[i] = autoform.el.elements[i].name + '=' + autoform.el.elements[i].value;
				}
			}
			xhr.request(autoform.el.action, autoform.el.method.toUpperCase(), params.join('&'));
			autoform.enableButton();

			return false;

		}catch(e){
			return true;
		}
	},

	trim : function(str){
		return str.replace(/^\s+|\s+$/g, '');
	},

	closeFeedback : function(){

		autoform.hideFeedback();

		xGetElementById('feedbackTitle').innerHTML = '&nbsp;';
		xGetElementById('feedbackMessage').innerHTML = '&nbsp;';

	},

	hideFeedback : function(){

		var feedback = xGetElementById('feedback');
		feedback.style.zIndex = -500;
		xAddClass(xGetElementById(feedback), 'hidden');
	},

	openFeedback : function(sTitle, sMsg){

		if(!xGetElementById('feedback')){

			var feedback = document.createElement('DIV');
			feedback.className = 'feedbackContainer hidden';
			feedback.id = 'feedback';
			feedback.innerHTML = '<div id="feedbackTitle" class="feedbackTitle">&nbsp;</div><div id="feedbackMessage">&nbsp;</div><div class="feedbackFooter"><a href="#" onclick="autoform.closeFeedback(); return false;" title="Close Message">Close</a></div>';
			document.body.appendChild(feedback);
		}

		xGetElementById('feedbackTitle').innerHTML = sTitle;
		xGetElementById('feedbackMessage').innerHTML = '<p>' + sMsg + '</p>';

		autoform.showFeedback();
	},

	showFeedback : function(){

		var feedback = xGetElementById('feedback');
		feedback.style.zIndex = -500;
		xRemoveClass(feedback, 'hidden');
		xCenter(feedback);
		feedback.style.zIndex = 1500;

		WCH.Apply('feedback');
	}
}

var contactForm = {

	open : function(sSubject, iItem, iLocation, sTitle){

		if(!xGetElementById('formContainer')){
			var container = document.createElement('DIV');
			container.className = 'formContainer hidden';
			container.id = 'formContainer';
			document.body.appendChild(container);
		}
		xhr.request('http://www.lazinc.com/contact/', 'GET', 'subject=sales&item=' + iItem);
	},

	show : function(){

		var container = xGetElementById('formContainer');

		xOpacity(container, 0);
		xRemoveClass(container, 'hidden');
 		xCenter(container);
		xAniOpacity(container, 1, 1000, 1);
	},

	close : function(){
		xAniOpacity(xGetElementById('formContainer'), 0, 1000, 1, function(){ xAddClass(xGetElementById('formContainer'), 'hidden') });
	}
}

var friendForm = {

	open : function(page){

		if(!xGetElementById('formContainer')){
			var container = document.createElement('DIV');
			container.className = 'formContainer hidden';
			container.id = 'formContainer';
			document.body.appendChild(container);
		}

		xhr.request('http://www.lazinc.com/send-to-friend/', 'GET', 'page=' + encodeURIComponent(page));
	},

	show : function(){

		var container = xGetElementById('formContainer');

		xOpacity(container, 0);
		xRemoveClass(container, 'hidden');
		xCenter(container);
		xAniOpacity(container, 1, 1000, 1);
	},

	close : function(){
		xAniOpacity(xGetElementById('formContainer'), 0, 1000, 1, function(){ xAddClass(xGetElementById('formContainer'), 'hidden') });
	}
}

var xhr = {

	init : false,
	req: null,		// stores url for playblack
	silent: false,		// if true, don't update indicator or "chrome"
	active: false,		// shows whether xhr is currently processing request
	stack: [],

	request : function(url, method, params, silent, contentType){

		if(xhr.init == false){
			xhr.init = true;
		}

		try{

			if(xhr.active == false){

				xhr.active = true;
				xhr.req = url;
				xhr.silent = silent ? silent : false;
				xhr.send(url, method, params, contentType);

			}else{
				xhr.error('Busy');
			}

		}catch(e){
			xhr.error(e);
		}
	},

	send : function(url, request_method, params){

		var connection;
		if (window.XMLHttpRequest) { // Mozilla, Safari,...

			connection = new XMLHttpRequest();

		} else if (window.ActiveXObject) { // IE

			try{
				connection = new ActiveXObject("Msxml2.XMLHTTP");
			}catch(e){

				try{
					connection = new ActiveXObject("Microsoft.XMLHTTP");
				}catch(e){}
			}
		}

		if (connection) {

			try{

				connection.onreadystatechange = function(){

					if (connection.readyState == 4) {
						if (connection.status == 200) {
							xhr.read(connection.responseText);
						}else{
							xhr.error('failed');
						}
					}
				}

				if(params.length > 0){
					params += '&response=ajax';
				}else{
					params += 'response=ajax';
				}

				if(request_method == 'GET'){
					connection.open(request_method, url + '?' + params + '&random=' + Math.random(), true);
					// connection.setRequestHeader("Connection", "close");
					connection.send(null);
				}else{

					url += '?random=' + Math.random();

					connection.open(request_method, url, true);
					connection.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
					connection.setRequestHeader("Content-length", params.length);
					connection.setRequestHeader("Connection", "close");
					connection.setRequestHeader("Cache-Control", "must-revalidate");
					connection.send(params);
				}

			}catch(e){
				return xhr.error(e);
			}

		}else{
			return xhr.error('Cannot create an XMLHTTP instance.');
		}
	},

	error : function(msg){
		xhr.active = false;
		bom.report("Error sending request: " + msg);
		return false;
	},

	read : function(xml){

		try{ //Internet Explorer

			xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
			xmlDoc.async="false";
			xmlDoc.loadXML(xml);

		}catch(e){

			try{ //Firefox, Mozilla, Opera, etc.
				parser = new DOMParser();
				xmlDoc = parser.parseFromString(xml, "text/xml");
			}catch(e){
				xhr.error(e);
			}
		}

		try{
			xhr.update(xmlDoc);
		}catch(e){
			xhr.error(e);
		}
	},

	update : function(xmlDoc){

		var x = xmlDoc.getElementsByTagName('element');
		for (var i = 0, len = x.length; i < len; i++){

			var command = {};

			try{

				for (var j = 0, nodes = x[i].childNodes.length; j < nodes; j++){
					var varname = x[i].childNodes[j].tagName;
					var varval = x[i].childNodes[j].firstChild.nodeValue;
					command[varname] = varval;
				}

			}catch(e){
				xhr.error(e);
			}

			if(el = xGetElementById(command.node)){

				if(command.mode){

					switch(command.mode){

						case 'replace':
							el.innerHTML = command.value;
						break;
						case 'prepend':
							el.innerHTML = command.value + el.innerHTML;
						break;
						case 'append':
							el.innerHTML = el.innerHTML + command.value;
						break;
						case 'clear':
							el.innerHTML = '';
						break;
					}
				}

				if(command.addClass){
					xAddClass(el, command.addClass)
				}

				if(command.removeClass){
					xRemoveClass(el, command.removeClass)
				}
			}

			if(!!command.callback){
				eval(command.callback + '()');
			}
		}
		xhr.active = false;
	}
}

document.write('<link rel="stylesheet" type="text/css" media="all" href="' + bom.base + '/skins/main/css/javascript.css">');

xAddEventListener(window, 'load', bom.load);
xAddEventListener(window, 'unload', bom.unload);

// google analytics
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
try {

	var pageTracker = _gat._getTracker("UA-12372866-1");
	pageTracker._trackPageview();

}catch(err){

}
